CSHARP

Document Sample
CSHARP Powered By Docstoc
					  Platforms and tools for Web
Services and Mobile Applications

       Introduction to C#

           Bent Thomsen
         Aalborg University
      3rd and 4th of June 2004
           Introduction to C#

What is C#
 Java like language from Microsoft
     Object Orientated Language
     Derived from C++
  Has the power of C++ and the simplicity of
  Visual Basic
  Part of Microsoft .NET framework
  If you are serious about .Net you need to
  learn C#
           Introduction to C#

What is C# (con’t)
 Cross Platform (or not)
     Can only run on Windows OS
  Cross Language
     Able to use objects created in C++.NET and
      Visual Basic.NET and all the other .NET
      Languages
             Introduction to C#

 Getting started with C#

• What do you need?
  – Windows OS Machine.
     • Windows 2000, XP or 2003
  – Microsoft .NET SDK
     • www.microsoft.com
  – Text Editor
     • Save files with a .cs extension
            Introduction to C#

 Getting started with C# (con’t)


• What about a development environment?
  – Visual C++ from Visual Studio 6.0
     • Requires registry tweaking
  – Visual Studio.NET
  – 3rd Party software
     • Emacs and XEmacs
     • Borland
             C# vs. The World
How does C# work?
• Compilation Process


       .cs
                  csc   .exe                 CPU
                                       JIT
                         .dll                code
    Source Code
                        Microsoft
                        Intermediate
      CLS               Language
                        (MSIL)
    Compliant
    Languages
              C# vs. The World
 How does C# work? (con’t)
• Common Language Runtime (CLR)
  – Provides an execution engine for developers code
     •   Code management (loading and execution)
     •   Memory management
     •   Garbage Collection
     •   Verification of type safety
     •   Enforcement of code access security
     •   Interoperation between managed code, COM objects,
         and pre-existing DLLs
             C# vs. The World
The Language (con’t)
• Hello world

   using System;

   class HelloWorld {
     public static void Main() {
       Console.WriteLine(“Hello World!");
     }
   }

   >csc HelloWorld.cs
   >Hello World!
               C# vs. The World
The Language (con’t)
• Properties

   public class button {         button b = new button();
     private string caption;
                                 b.Caption = “abc”
       public string Caption {   string s = b.Caption;
         get {
           return caption;
         }
         set {
           if (value != null)
             caption = value;
         }
       }
   }
            C# vs. The World

The Language (con’t)
• Parameter Passing
     By Value
     By Reference
  public static void Swap(ref int x, ref int y) {
    int z = x;
    x = y;
    y = z;
  }
             C# vs. The World
The Language (con’t)
• Pointers
  – Not recommended for use

   public struct Node {
     public int value;
     public unsafe Node* next;
   }

   public unsafe class A {
     . . .

   public class A {
     public unsafe void B (char *p) {
     . . .
             C# vs. The World
The Language (con’t)
• Boxing / Unboxing
  – Allows value types to be converted to and from
    objects automatically

   ArrayList list = new ArrayList();
   int z = 100;

   list.Add(1);
   list.Add(13.12);
   list.Add(z); //integers are automatically boxed
                 //when they are added to the list
             C# vs. The World
The Language (con’t)
• Delegates
  – Basically a type-safe object orientated function
    pointer

   delegate void simpleDelegate();

   Class Test {
     static void F() {
       System.Console.Writeline(“Test.F”);
     }
     static void main (){
       simpleDelegate d = new simpleDelegate(F);
       d();
     }
   }
             C# vs. The World
The Language (con’t)
• Delegates (con’t)

   void multiCall (simpleDelegate d, int count) {
     for (int i=0; i<count; i++){
       d();
     }
               C# vs. The World
The Language (con’t)
• Versioning

         v.1            v.2
    Class A        Class A
                 x();
  x();
                 y();
                              Which one to use?


    Class B        Class B

  y();           y();
             C# vs. The World
The Language (con’t)

• Versioning
  – C# requires developers to clearly state their intent
     • Use of the keyword ‘new’ and ‘override’


   Class Derived B {
     new public void x () {
     . . .

   Class Derived B {
     public override void x () {
     . . .
                C# vs. The World
 The Language (con’t)
• Libraries


       Few core libraries
       Uses the libraries from the .NET framework
            Threading, Collection, XML, ADO+, ASP+, GDI+ &
             WinForms libraries
             C# vs. The World
Comparison of C# syntax with Java and C++
• Similarities

      Single rooted class hierarchy
      Similar keywords (derived from C++)
      Virtual Machine & IL/CLR
      Garbage Collection
      No global methods
      Interface, no Multiple inheritance
      Exception handling
             C# vs. The World
Comparison of C# syntax with Java and C++
• Differences

      Syntax and Keywords not from C++
      Properties, Delegates, Boxing, Pointers,
       Libraries, etc.
      Preprocessor Directives
           C# vs. The World
 C# Advantages
• Easy to learn, similar to both C++ and JAVA
• Can use existing pool of C++ and Visual Basic
  programmers.
• Can use components from .NET
• Syntactical Sugar
             C# vs. The World
    C# Disadvantages
•   Only runs on Windows machines
•   Limited choice in development environment
•   Locked into Microsoft compatibility
•   Not extensively tested
•   Not enough maturity time

				
DOCUMENT INFO
Shared By:
Categories:
Tags:
Stats:
views:6
posted:9/22/2012
language:English
pages:21