SlideShare ist ein Scribd-Unternehmen logo
1 von 32
Einführung in .NET



Martin Saternus & Andreas Heil
Senior Student Partner
MAP - Microsoft Academic Program
Microsoft Deutschland GmbH
Agenda
   Microsoft .NET Framework
   .NET 2.0
   .NET vs. Java
   …
   …
Die „Problemchen“
   Deployment komponentenbasierter
    Anwendungen ist nicht einfach
       Es droht die DLL-Hölle
   Das Web-Programmierungsparadigma
       Zustandslose HTML-Seiten (oder Web-
        Applikationen) sind schwer zu entwickeln
   API‘s
       Es gibt eine Vielzahl von API‘s (COM, Win32,
        MFC, usw.)
       Plattformabhängigkeit der API‘s
Die „Problemchen“
   Applikationen integrieren
       Sprachen haben unterschiedliche Typsysteme
           Denken Sie nur mal an Strings...
       COM „sitzt auf“ anderen Objektkonzepten
       COM ist ein binärer Kommunikations-standard
       DCOM und Firewalls sind problematisch
   Dienst- und Plattformintegration
       Keine Standards für die Interoperabilität
Die Welt hat sich verändert
   Microsoft ist groß geworden in einer Welt...
       ...mit Desktops
       ...mit lokalen Netzwerken
   Die zukünftige Welt bringt uns...
       ...eine große Vielfalt von Computern (Devices)
       ...eine Vernetzung aller Computer über das
        Internet
Vision
   Software als Service
   Unterstützung von Smart Devices
                                                                 Microsoft
   offene Standards als                                        Web Services
    Grundlage
                              Partner Web Services
                                                                    andere
                                                                  Web Services

                            Internet + XML

Clients
                                    Ihr Unternehmen.com
                               Geschäftslogik der Applikation

                               Datenzugriff und -speicherung

                                   andere Applikationen
Herausforderungen (1/2)
   Wie verändert ein globales Netzwerk die
    Softwarewelt?
       Neue Möglichkeiten für das Deployment
       Neue Geschäftsmodelle
       Möglichkeit der Anwendungsintegration via
        Netzwerk
           Plattformunabhängigkeit (OS, Hardware,
            Komponententechnologien)
       Sicherheitsanforderungen steigen
       Web-Programmierung muss effizienter werden
Herausforderungen (2/2)
   Wie verändert die große Device-Vielfalt die
    Softwarewelt?
       Die Zielplattform für den Code ist unbekannt
       Es wird plattform-unabhängiger Code gebraucht
       Was auf dem Desktop geht, muss auch auf einem
        Palmtop (o. ä.) funktionieren
Lösungsansatz .NET Framework


  VB      C++      C#       JScript    J#

       Common Language Specification

        ASP.NET




                                            Visual Studio.NET
                                            Visual Studio.NET
                                  Windows
 Web Forms Web Services
                                   Forms
  Mobile Internet Toolkit

            ADO.NET and XML

             Base Class Library

        Common Language Runtime

             Operating System
.NET Framework Standards

                   Rotor      ECMA/ISO Standard
                 CLI + mehr   Common Language
                                Infrastructure
.NET Framework



                 SSCLI

        .NET                  CLI

                  CE
Runtime Compiler

Source
             VB             C#               C++
Code
          Compiler        Compiler        Compiler


IL Code   Assembly       Assembly         Assembly


  Ngen      Common Language Runtime JIT Compiler



Native    Managed         Managed         Managed     Unmanaged
Code        Code           CLR
                           Code            Code         Code
          CLR Services


                          Operating System Services
Assemblies
   .NET Anwendungen bestehen aus Assemblies
   Private Assemblies
       Identifikation anhand eines einfachen Namens
       Keine Versionsüberprüfung
       Installation per Filecopy
           Standardmäßig befinden sich Assembly und Anwendung im
            gleichen Verzeichnis
           Verzeichnis kann per CFG-Datei definiert werden
   Shared Assembly
       Identifikation über einen Strong Name
           Eindeutig per Public-Key-Verschlüsselung
           Strong Name = Identität + Public Key
       Versionsüberprüfung durch die Runtime
       Installation im Global Assembly Cache
Strong Name & Codesigning
   Strong Name garantiert Codeintegrität
       Unbemerktes Einschleusen von modifiziertem
        Code wird verhindert
       Aber: Auch böse Menschen arbeiten mit Strong
        Names
   Code-Signing garantiert Codeidentität
       Code ist aufgrund seines X.509-Zertifikats
        eindeutig identifizierbar
.NET Framework

  VB      C++      C#       JScript    J#

       Common Language Specification

        ASP.NET
                                  Windows




                                            Visual Studio.NET
                                            Visual Studio.NET
 Web Forms Web Services
                                   Forms
  Mobile Internet Toolkit

            ADO.NET and XML

             Base Class Library

        Common Language Runtime


             Operating System
Einheitliches Programmier Model
           Gleiche API ungeachtet der
            Sprache und des Models

           .NET Framework



VB Forms         MFC/ATL                ASP



              Windows API
Wieviel einfacher?

Windows API
 HWND hwndMain = CreateWindowEx(
     0, "MainWClass", "Main Window",
     WS_OVERLAPPEDWINDOW | WS_HSCROLL | WS_VSCROLL,
     CW_USEDEFAULT, CW_USEDEFAULT,
     CW_USEDEFAULT, CW_USEDEFAULT,
     (HWND)NULL, (HMENU)NULL, hInstance, NULL);
 ShowWindow(hwndMain, SW_SHOWDEFAULT);
 UpdateWindow(hwndMain);


.NET Framework
 Form form = new Form()
 form.Text = "Main Window"
 form.Show()
Klassenbibliothek
               System.Web                             System.Windows.Forms
Services             UI                       Design         ComponentModel
 Description          HtmlControls
Discovery             WebControls
Protocols                                                System.Drawing
Caching              Security             Drawing2D              Printing
Configuration        SessionState             Imaging            Text

               System.Data                                 System.Xml
OleDb                SqlClient                XSLT               Serialization
Common               SQLTypes                 XPath

                                     System
Collections           IO                Security               Runtime
Configuration         Net               ServiceProcess          InteropServices
Diagnostics           Reflection        Text                   Remoting
Globalization         Resources         Threading              Serialization
Framework, Languages und Tools

  VB      C++      C#        JScript   J#

       Common Language Specification

         ASP.NET
                                  Windows




                                            Visual Studio.NET
                                            Visual Studio.NET
  Web Forms Web Services
                                   Forms
   Mobile Internet Toolkit

             ADO.NET and XML

             Base Class Library

         Common Language Runtime


              Operating System
Sprachen
   Die .NET Plattform ist Sprachneutral
       Alle .NET Sprachen sind gleich berechtigt
       Wahl der Sprache nach Ihren Fähigkeiten
   Common language specification (CLS)
       Satz an Merkmalen, die in jeder Sprache garantiert sind
   Microsoft liefert
       Visual Basic®, C++, C#, J#, JScript®
   Drittanbieter liefern
       APL, COBOL, Delphi, Pascal, Eiffel, Haskell, ML, Oberon,
        Perl, Python, Scheme, Smalltalk…
Agenda
   Microsoft .NET Framework
   .NET 2.0
   Web Services
Generics                    ...UND hier



           VB        VC++         C#      ...         JScript

                  UND hier…

  Support für
                                 MS-IL
   Generics/
Polymorphismus



                 Common Language Runtime
                               Loader
                                            JIT
                 Verifier

                                                ...
                  GC             Native
                                 Code
Generics Beispiel
class Node<T> {
  T     m_data;                        //Create a linked list of integers
  Node<T> m_next;                             Node<Int32> head = new
                                              Node<Int32>(5, null);
 public Node(T data, Node<T> next) {          head = new Node<Int32> (10, head);
   m_data = data;                              head = new Node<Int32> (15, head);
   m_next = next;
 }                                     // Sum up integers by traversing linked list
                                              Int32 sum = 0;
                                              for (Node<Int32> current = head;
 // Access the data for the node
                                                   current != null;
 public T Data {
                                                   current = current.Next) {
    get { return m_data; }
                                                sum += current.Data;
    set { m_data = value; }                   }
 }

 // Access the next node
 public Node<T> Next {
    get { return m_next; }
    set { m_next = value; }
 }
Generics vs Polymorphismus (1/2)

                               Staff object p
Polymorphisches Register
      SortedList r                        Student object s


       r[1] = p                      Contractor object c


            r[2]=s

      r[3]=c                                Student t = (Student) r[2];


    vom Typ object         •Dynamische Typinforamtion in r
                           • Überpüfung bei Zuweisung!
Generics vs Polymorphismus (2/2)

                                Staff object p
   Generisches Register
      SortedList gr                        Student object s


         gr[1] = p                    Contractor object c


              gr[2]=s

        gr[3]=c                             Student t = gr[2];


vom Typ <IAccess> objects   •Information für gr zur Kompliierzeit
                            •Kein Casting für Zuweisung nötig
Java vs .NET
Agenda
   Microsoft .NET Framework
   .NET 2.0
   Web Services
Was ist ein Web Services?
   Dienste im Netz, die über Standard-Protokolle erreichbar sind
   Datenaustausch basiert auf XML- Dokumenten
   Plattform- und unternehmensübergreifende Transaktionen


     Lager                                     Lieferant A




                                                   Lieferant B
            Ihr
       Unternehmen               Bestell-
                                 wesen

Verbinden (Web)                             Lieferant C
Finden (UDDI)
                                                          Kunden
Daten (XML)
Interagieren (SOAP)
Was ist ein Web Service?
                                       DCOM
                                      Service


                                        Web
 Client              Port 80           Service




                                       RMI
                                       Service


                      Firewall

     eine Komponente, die über Standard-
      Webprotokolle interagiert
     Universal Firewall Penetration Protokoll
Web Services Stack

Web Service Directory :               UDDI

Beschreibung von WS :                 WSDL

Datenaustausch zw. WS :               SOAP

Universelles Datenformat :            XML

Kommunikationsnetz :                  Internet

 einfache, offene und akzeptierte Standards
SOAP

   Früher: Simple Object Access Protocol
   Mechanismus zum Austausch von strukturierter
    und typisierter Information zwischen
    Kommunikationsendpunkten im Internet auf Basis
    von XML
   HTTP als Transportprotokoll
   XML zur Datenkapselung
   Spezifikation enthält
       SOAP Envelope (für Framework)
       SOAP Encoding (optional, für plattform-übergreifendes
        Marshaling von Daten/Objekten)
Web Service Prog.modell
   Erstellen Sie eine .asmx Datei, die eine Klasse mit den
    Methoden enthält, die Sie zur Verfügung stellen
    möchten
   Das Hinzufügen des Attributs WebMethod zu einer
    Public-Methode macht sie automatisch zu einem Web
    Service
   ASP.NET macht den "Rest"
       Erzeugen der Service-Beschreibung als
        WSDL-Datei (Web Service Description Language)
       Compile on demand
Fragen ???

Weitere ähnliche Inhalte

Ähnlich wie Einführung in .NET

C / C++ Api for Beginners
C / C++ Api for BeginnersC / C++ Api for Beginners
C / C++ Api for BeginnersUlrich Krause
 
C API for Lotus Notes & Domino
C API for Lotus Notes & DominoC API for Lotus Notes & Domino
C API for Lotus Notes & DominoUlrich Krause
 
Roadshow: Einstieg in die Hybrid-App Entwicklung mit dem Intel XDK und Apache...
Roadshow: Einstieg in die Hybrid-App Entwicklung mit dem Intel XDK und Apache...Roadshow: Einstieg in die Hybrid-App Entwicklung mit dem Intel XDK und Apache...
Roadshow: Einstieg in die Hybrid-App Entwicklung mit dem Intel XDK und Apache...Gregor Biswanger
 
Entity Framework Core - Der Umstieg auf Core
Entity Framework Core - Der Umstieg auf CoreEntity Framework Core - Der Umstieg auf Core
Entity Framework Core - Der Umstieg auf CoreNETUserGroupBern
 
Fachreferat: Visual Studio 2012, Windows 8 und .NET 4.5
Fachreferat: Visual Studio 2012, Windows 8 und .NET 4.5Fachreferat: Visual Studio 2012, Windows 8 und .NET 4.5
Fachreferat: Visual Studio 2012, Windows 8 und .NET 4.5Digicomp Academy AG
 
ESE Conference: iOS, Android, WP7... Alle nativ auf einen Streich! streich
ESE Conference: iOS, Android, WP7...Alle nativ auf einen Streich! streichESE Conference: iOS, Android, WP7...Alle nativ auf einen Streich! streich
ESE Conference: iOS, Android, WP7... Alle nativ auf einen Streich! streichRomano Roth
 
.NET Core, .NET Standard & ASP.NET Core - Eine Übersicht
.NET Core, .NET Standard & ASP.NET Core - Eine Übersicht.NET Core, .NET Standard & ASP.NET Core - Eine Übersicht
.NET Core, .NET Standard & ASP.NET Core - Eine ÜbersichtJürgen Gutsch
 
Typ-sichere DSLs
Typ-sichere DSLsTyp-sichere DSLs
Typ-sichere DSLsWerner Keil
 
Referat: Architektur und Entwicklung mobiler Anwendungen
Referat: Architektur und Entwicklung mobiler AnwendungenReferat: Architektur und Entwicklung mobiler Anwendungen
Referat: Architektur und Entwicklung mobiler AnwendungenDigicomp Academy AG
 
Continuous Integration mit Hudson (JUG Stuttgart, 11.02.2010)
Continuous Integration mit Hudson (JUG Stuttgart, 11.02.2010)Continuous Integration mit Hudson (JUG Stuttgart, 11.02.2010)
Continuous Integration mit Hudson (JUG Stuttgart, 11.02.2010)Wiest Simon
 
Python in der Luft- und Raumfahrt
Python in der Luft- und RaumfahrtPython in der Luft- und Raumfahrt
Python in der Luft- und RaumfahrtAndreas Schreiber
 
C/ C++ for Notes & Domino Developers
C/ C++ for Notes & Domino DevelopersC/ C++ for Notes & Domino Developers
C/ C++ for Notes & Domino DevelopersUlrich Krause
 
Google Web Toolkit
Google Web ToolkitGoogle Web Toolkit
Google Web ToolkitTorben Brodt
 
Lotus Foundations Workshop Teil1
Lotus Foundations Workshop Teil1Lotus Foundations Workshop Teil1
Lotus Foundations Workshop Teil1Andreas Schulte
 

Ähnlich wie Einführung in .NET (20)

C / C++ Api for Beginners
C / C++ Api for BeginnersC / C++ Api for Beginners
C / C++ Api for Beginners
 
C API for Lotus Notes & Domino
C API for Lotus Notes & DominoC API for Lotus Notes & Domino
C API for Lotus Notes & Domino
 
Roadshow: Einstieg in die Hybrid-App Entwicklung mit dem Intel XDK und Apache...
Roadshow: Einstieg in die Hybrid-App Entwicklung mit dem Intel XDK und Apache...Roadshow: Einstieg in die Hybrid-App Entwicklung mit dem Intel XDK und Apache...
Roadshow: Einstieg in die Hybrid-App Entwicklung mit dem Intel XDK und Apache...
 
.NET und jetzt!
.NET und jetzt!.NET und jetzt!
.NET und jetzt!
 
Entity Framework Core - Der Umstieg auf Core
Entity Framework Core - Der Umstieg auf CoreEntity Framework Core - Der Umstieg auf Core
Entity Framework Core - Der Umstieg auf Core
 
profil_2017
profil_2017profil_2017
profil_2017
 
Fachreferat: Visual Studio 2012, Windows 8 und .NET 4.5
Fachreferat: Visual Studio 2012, Windows 8 und .NET 4.5Fachreferat: Visual Studio 2012, Windows 8 und .NET 4.5
Fachreferat: Visual Studio 2012, Windows 8 und .NET 4.5
 
ESE Conference: iOS, Android, WP7... Alle nativ auf einen Streich! streich
ESE Conference: iOS, Android, WP7...Alle nativ auf einen Streich! streichESE Conference: iOS, Android, WP7...Alle nativ auf einen Streich! streich
ESE Conference: iOS, Android, WP7... Alle nativ auf einen Streich! streich
 
.NET Core, .NET Standard & ASP.NET Core - Eine Übersicht
.NET Core, .NET Standard & ASP.NET Core - Eine Übersicht.NET Core, .NET Standard & ASP.NET Core - Eine Übersicht
.NET Core, .NET Standard & ASP.NET Core - Eine Übersicht
 
Typ-sichere DSLs
Typ-sichere DSLsTyp-sichere DSLs
Typ-sichere DSLs
 
Referat: Architektur und Entwicklung mobiler Anwendungen
Referat: Architektur und Entwicklung mobiler AnwendungenReferat: Architektur und Entwicklung mobiler Anwendungen
Referat: Architektur und Entwicklung mobiler Anwendungen
 
Continuous Integration mit Hudson (JUG Stuttgart, 11.02.2010)
Continuous Integration mit Hudson (JUG Stuttgart, 11.02.2010)Continuous Integration mit Hudson (JUG Stuttgart, 11.02.2010)
Continuous Integration mit Hudson (JUG Stuttgart, 11.02.2010)
 
Bit wisem 2015-wieners-sitzung-10_Programmiersprachen
Bit wisem 2015-wieners-sitzung-10_ProgrammiersprachenBit wisem 2015-wieners-sitzung-10_Programmiersprachen
Bit wisem 2015-wieners-sitzung-10_Programmiersprachen
 
Was ist neu in .NET 4.5?
Was ist neu in .NET 4.5?Was ist neu in .NET 4.5?
Was ist neu in .NET 4.5?
 
2 Interop
2 Interop2 Interop
2 Interop
 
Kickoff
KickoffKickoff
Kickoff
 
Python in der Luft- und Raumfahrt
Python in der Luft- und RaumfahrtPython in der Luft- und Raumfahrt
Python in der Luft- und Raumfahrt
 
C/ C++ for Notes & Domino Developers
C/ C++ for Notes & Domino DevelopersC/ C++ for Notes & Domino Developers
C/ C++ for Notes & Domino Developers
 
Google Web Toolkit
Google Web ToolkitGoogle Web Toolkit
Google Web Toolkit
 
Lotus Foundations Workshop Teil1
Lotus Foundations Workshop Teil1Lotus Foundations Workshop Teil1
Lotus Foundations Workshop Teil1
 

Mehr von Andreas Heil

Anwendungsentwicklung fuer Intelligente Umgebungen im Web Engineering
Anwendungsentwicklung fuer Intelligente Umgebungen im Web EngineeringAnwendungsentwicklung fuer Intelligente Umgebungen im Web Engineering
Anwendungsentwicklung fuer Intelligente Umgebungen im Web EngineeringAndreas Heil
 
Foederiertes Geraete- und Dienstmanagement mit Web-Technologien
Foederiertes Geraete- und Dienstmanagement mit Web-TechnologienFoederiertes Geraete- und Dienstmanagement mit Web-Technologien
Foederiertes Geraete- und Dienstmanagement mit Web-TechnologienAndreas Heil
 
Programming Robots
Programming RobotsProgramming Robots
Programming RobotsAndreas Heil
 
Lightweight Concurrency
Lightweight ConcurrencyLightweight Concurrency
Lightweight ConcurrencyAndreas Heil
 
Robots in Human Environments
Robots in Human EnvironmentsRobots in Human Environments
Robots in Human EnvironmentsAndreas Heil
 
Vom PC zum Roboter
Vom PC zum RoboterVom PC zum Roboter
Vom PC zum RoboterAndreas Heil
 
Student Technology Conference 2004
Student Technology Conference 2004Student Technology Conference 2004
Student Technology Conference 2004Andreas Heil
 

Mehr von Andreas Heil (10)

Windows 8
Windows 8Windows 8
Windows 8
 
Anwendungsentwicklung fuer Intelligente Umgebungen im Web Engineering
Anwendungsentwicklung fuer Intelligente Umgebungen im Web EngineeringAnwendungsentwicklung fuer Intelligente Umgebungen im Web Engineering
Anwendungsentwicklung fuer Intelligente Umgebungen im Web Engineering
 
Foederiertes Geraete- und Dienstmanagement mit Web-Technologien
Foederiertes Geraete- und Dienstmanagement mit Web-TechnologienFoederiertes Geraete- und Dienstmanagement mit Web-Technologien
Foederiertes Geraete- und Dienstmanagement mit Web-Technologien
 
My Robot
My RobotMy Robot
My Robot
 
Programming Robots
Programming RobotsProgramming Robots
Programming Robots
 
Lightweight Concurrency
Lightweight ConcurrencyLightweight Concurrency
Lightweight Concurrency
 
Ethics of AI
Ethics of AIEthics of AI
Ethics of AI
 
Robots in Human Environments
Robots in Human EnvironmentsRobots in Human Environments
Robots in Human Environments
 
Vom PC zum Roboter
Vom PC zum RoboterVom PC zum Roboter
Vom PC zum Roboter
 
Student Technology Conference 2004
Student Technology Conference 2004Student Technology Conference 2004
Student Technology Conference 2004
 

Einführung in .NET

  • 1. Einführung in .NET Martin Saternus & Andreas Heil Senior Student Partner MAP - Microsoft Academic Program Microsoft Deutschland GmbH
  • 2. Agenda  Microsoft .NET Framework  .NET 2.0  .NET vs. Java  …  …
  • 3. Die „Problemchen“  Deployment komponentenbasierter Anwendungen ist nicht einfach  Es droht die DLL-Hölle  Das Web-Programmierungsparadigma  Zustandslose HTML-Seiten (oder Web- Applikationen) sind schwer zu entwickeln  API‘s  Es gibt eine Vielzahl von API‘s (COM, Win32, MFC, usw.)  Plattformabhängigkeit der API‘s
  • 4. Die „Problemchen“  Applikationen integrieren  Sprachen haben unterschiedliche Typsysteme  Denken Sie nur mal an Strings...  COM „sitzt auf“ anderen Objektkonzepten  COM ist ein binärer Kommunikations-standard  DCOM und Firewalls sind problematisch  Dienst- und Plattformintegration  Keine Standards für die Interoperabilität
  • 5. Die Welt hat sich verändert  Microsoft ist groß geworden in einer Welt...  ...mit Desktops  ...mit lokalen Netzwerken  Die zukünftige Welt bringt uns...  ...eine große Vielfalt von Computern (Devices)  ...eine Vernetzung aller Computer über das Internet
  • 6. Vision  Software als Service  Unterstützung von Smart Devices Microsoft  offene Standards als Web Services Grundlage Partner Web Services andere Web Services Internet + XML Clients Ihr Unternehmen.com Geschäftslogik der Applikation Datenzugriff und -speicherung andere Applikationen
  • 7. Herausforderungen (1/2)  Wie verändert ein globales Netzwerk die Softwarewelt?  Neue Möglichkeiten für das Deployment  Neue Geschäftsmodelle  Möglichkeit der Anwendungsintegration via Netzwerk  Plattformunabhängigkeit (OS, Hardware, Komponententechnologien)  Sicherheitsanforderungen steigen  Web-Programmierung muss effizienter werden
  • 8. Herausforderungen (2/2)  Wie verändert die große Device-Vielfalt die Softwarewelt?  Die Zielplattform für den Code ist unbekannt  Es wird plattform-unabhängiger Code gebraucht  Was auf dem Desktop geht, muss auch auf einem Palmtop (o. ä.) funktionieren
  • 9. Lösungsansatz .NET Framework VB C++ C# JScript J# Common Language Specification ASP.NET Visual Studio.NET Visual Studio.NET Windows Web Forms Web Services Forms Mobile Internet Toolkit ADO.NET and XML Base Class Library Common Language Runtime Operating System
  • 10. .NET Framework Standards Rotor ECMA/ISO Standard CLI + mehr Common Language Infrastructure .NET Framework SSCLI .NET CLI CE
  • 11. Runtime Compiler Source VB C# C++ Code Compiler Compiler Compiler IL Code Assembly Assembly Assembly Ngen Common Language Runtime JIT Compiler Native Managed Managed Managed Unmanaged Code Code CLR Code Code Code CLR Services Operating System Services
  • 12. Assemblies  .NET Anwendungen bestehen aus Assemblies  Private Assemblies  Identifikation anhand eines einfachen Namens  Keine Versionsüberprüfung  Installation per Filecopy  Standardmäßig befinden sich Assembly und Anwendung im gleichen Verzeichnis  Verzeichnis kann per CFG-Datei definiert werden  Shared Assembly  Identifikation über einen Strong Name  Eindeutig per Public-Key-Verschlüsselung  Strong Name = Identität + Public Key  Versionsüberprüfung durch die Runtime  Installation im Global Assembly Cache
  • 13. Strong Name & Codesigning  Strong Name garantiert Codeintegrität  Unbemerktes Einschleusen von modifiziertem Code wird verhindert  Aber: Auch böse Menschen arbeiten mit Strong Names  Code-Signing garantiert Codeidentität  Code ist aufgrund seines X.509-Zertifikats eindeutig identifizierbar
  • 14. .NET Framework VB C++ C# JScript J# Common Language Specification ASP.NET Windows Visual Studio.NET Visual Studio.NET Web Forms Web Services Forms Mobile Internet Toolkit ADO.NET and XML Base Class Library Common Language Runtime Operating System
  • 15. Einheitliches Programmier Model Gleiche API ungeachtet der Sprache und des Models .NET Framework VB Forms MFC/ATL ASP Windows API
  • 16. Wieviel einfacher? Windows API HWND hwndMain = CreateWindowEx( 0, "MainWClass", "Main Window", WS_OVERLAPPEDWINDOW | WS_HSCROLL | WS_VSCROLL, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, (HWND)NULL, (HMENU)NULL, hInstance, NULL); ShowWindow(hwndMain, SW_SHOWDEFAULT); UpdateWindow(hwndMain); .NET Framework Form form = new Form() form.Text = "Main Window" form.Show()
  • 17. Klassenbibliothek System.Web System.Windows.Forms Services UI Design ComponentModel Description HtmlControls Discovery WebControls Protocols System.Drawing Caching Security Drawing2D Printing Configuration SessionState Imaging Text System.Data System.Xml OleDb SqlClient XSLT Serialization Common SQLTypes XPath System Collections IO Security Runtime Configuration Net ServiceProcess InteropServices Diagnostics Reflection Text Remoting Globalization Resources Threading Serialization
  • 18. Framework, Languages und Tools VB C++ C# JScript J# Common Language Specification ASP.NET Windows Visual Studio.NET Visual Studio.NET Web Forms Web Services Forms Mobile Internet Toolkit ADO.NET and XML Base Class Library Common Language Runtime Operating System
  • 19. Sprachen  Die .NET Plattform ist Sprachneutral  Alle .NET Sprachen sind gleich berechtigt  Wahl der Sprache nach Ihren Fähigkeiten  Common language specification (CLS)  Satz an Merkmalen, die in jeder Sprache garantiert sind  Microsoft liefert  Visual Basic®, C++, C#, J#, JScript®  Drittanbieter liefern  APL, COBOL, Delphi, Pascal, Eiffel, Haskell, ML, Oberon, Perl, Python, Scheme, Smalltalk…
  • 20. Agenda  Microsoft .NET Framework  .NET 2.0  Web Services
  • 21. Generics ...UND hier VB VC++ C# ... JScript UND hier… Support für MS-IL Generics/ Polymorphismus Common Language Runtime Loader JIT Verifier ... GC Native Code
  • 22. Generics Beispiel class Node<T> { T m_data; //Create a linked list of integers Node<T> m_next; Node<Int32> head = new Node<Int32>(5, null); public Node(T data, Node<T> next) { head = new Node<Int32> (10, head); m_data = data; head = new Node<Int32> (15, head); m_next = next; } // Sum up integers by traversing linked list Int32 sum = 0; for (Node<Int32> current = head; // Access the data for the node current != null; public T Data { current = current.Next) { get { return m_data; } sum += current.Data; set { m_data = value; } } } // Access the next node public Node<T> Next { get { return m_next; } set { m_next = value; } }
  • 23. Generics vs Polymorphismus (1/2) Staff object p Polymorphisches Register SortedList r Student object s r[1] = p Contractor object c r[2]=s r[3]=c Student t = (Student) r[2]; vom Typ object •Dynamische Typinforamtion in r • Überpüfung bei Zuweisung!
  • 24. Generics vs Polymorphismus (2/2) Staff object p Generisches Register SortedList gr Student object s gr[1] = p Contractor object c gr[2]=s gr[3]=c Student t = gr[2]; vom Typ <IAccess> objects •Information für gr zur Kompliierzeit •Kein Casting für Zuweisung nötig
  • 26. Agenda  Microsoft .NET Framework  .NET 2.0  Web Services
  • 27. Was ist ein Web Services?  Dienste im Netz, die über Standard-Protokolle erreichbar sind  Datenaustausch basiert auf XML- Dokumenten  Plattform- und unternehmensübergreifende Transaktionen Lager Lieferant A Lieferant B Ihr Unternehmen Bestell- wesen Verbinden (Web) Lieferant C Finden (UDDI) Kunden Daten (XML) Interagieren (SOAP)
  • 28. Was ist ein Web Service? DCOM  Service Web Client Port 80 Service  RMI Service Firewall  eine Komponente, die über Standard- Webprotokolle interagiert  Universal Firewall Penetration Protokoll
  • 29. Web Services Stack Web Service Directory : UDDI Beschreibung von WS : WSDL Datenaustausch zw. WS : SOAP Universelles Datenformat : XML Kommunikationsnetz : Internet  einfache, offene und akzeptierte Standards
  • 30. SOAP  Früher: Simple Object Access Protocol  Mechanismus zum Austausch von strukturierter und typisierter Information zwischen Kommunikationsendpunkten im Internet auf Basis von XML  HTTP als Transportprotokoll  XML zur Datenkapselung  Spezifikation enthält  SOAP Envelope (für Framework)  SOAP Encoding (optional, für plattform-übergreifendes Marshaling von Daten/Objekten)
  • 31. Web Service Prog.modell  Erstellen Sie eine .asmx Datei, die eine Klasse mit den Methoden enthält, die Sie zur Verfügung stellen möchten  Das Hinzufügen des Attributs WebMethod zu einer Public-Methode macht sie automatisch zu einem Web Service  ASP.NET macht den "Rest"  Erzeugen der Service-Beschreibung als WSDL-Datei (Web Service Description Language)  Compile on demand