Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

1 Anwendungen der nächsten Generation StandardBrowsers SmarterClients Smarter Devices Offene Internet Protokolle (HTTP, SMTP, XML, SOAP) Anwendungen rufen.

Ähnliche Präsentationen


Präsentation zum Thema: "1 Anwendungen der nächsten Generation StandardBrowsers SmarterClients Smarter Devices Offene Internet Protokolle (HTTP, SMTP, XML, SOAP) Anwendungen rufen."—  Präsentation transkript:

1 1 Anwendungen der nächsten Generation StandardBrowsers SmarterClients Smarter Devices Offene Internet Protokolle (HTTP, SMTP, XML, SOAP) Anwendungen rufen weltweit lose gekoppelte Dienstleistung auf Anwendungen werden WebServices OS Services Biz Tier Logic Biz Logic & Web Service OS Services Public Web Services Building Block Services InternalServices XML XML XML Servers Data, Hosts XML Other Services Services XML XML XML HTML

2 2 Die 3. Generation von Internet-Apps 1. Generation Generation Statische Seiten Dyn. Seiten , einfache Info Personalisation, E-Commerce IE, IIS Windows DNA 3. Generation Mehr als Surfen Web Services Microsoft.NET

3 3 WebService Provider Business Partners.NET Building Block Services Service Federation Lose gekoppelte Dienstleistungen Finance News B2B.NET Enterprise Server BizTalk Messaging SQL Server XML Exchange WebStorage Open Standards: TCP/IP XML HTTP SMTPSOAP Enterprise Applikationen Accounting Order/ Sales Dept. Knowledge Management Website XML EDIFACT X12

4 4.NET Building Block Services Verteilte, XML-basierte Dienste Verteilte, XML-basierte Dienste Arbeiten online oder offline (Intranet) Arbeiten online oder offline (Intranet) Identity Notification, Messaging Personalization XML Storage Calendar Directory and Search Software Delivery

5 5 WebServices Open Internet Protocols Internal Corporate Services Microsoft Building Block Services Web Services Built by 3 rd Parties Your Sales Data Service Your Internal Billing Service … Credit Card Statement Service Greenwich Mean Time Service Geographic Mapping Service Passport – Identity Service Directory and Search Service Personalization Service Software Delivery Service Calendaring Service Schematized Storage Service Notification & Msg Service Firewalls können für den Zugriff auf WebServices konfiguriert werden.

6 6 Web Service.NET Framework Web Service XML Base Classes Data & XML User Interface Common Language Runtime Web Services COM Interfaces

7 7 Framework, Languages and Tools Base Class Library Common Language Specification Common Language Runtime Data and XML VBC++C# Visual Studio.NET Web Services JScript… User Interface

8 8 Common Language Runtime Class Loader IL to Native Compilers Code Manager Garbage Collector Security EngineDebug Engine Type Checker Exception ManagerThread SupportCOM Marshaler

9 9 COM Runtime (OLE32.DLL) Microsoft Transaction Server (MTXEX.DLL) Layer (VBRUNxx.DLL) (MSVCRT.DLL) LoaderRemoting KontextConcurrencyTransaktionenTypsystem COM+ Runtime (OLE32.DLL) Layer (VBRUNxx.DLL) (MSVCRT.DLL) Common Language Runtime (MSCOREE.DLL) (MSCORLIB.DLL) Warum eine Runtime? Einheitliches Integrationsmodell

10 10 VB Compiler IL Code ASM Code Übersicht C# Compiler IL Code C++ Compiler IL Code JIT Compiler Common Language Runtime Betriebssystem

11 11 Sämtlicher Code wird unter Aufsicht der Common Language Runtime ausgeführt Sämtlicher Code wird unter Aufsicht der Common Language Runtime ausgeführt Runtime führt Sicherheitsüberprüfungen aus Runtime führt Sicherheitsüberprüfungen aus Runtime übernimmt Speicherverwaltung und Fehlerbehandlung ( GC, Exceptions) Runtime übernimmt Speicherverwaltung und Fehlerbehandlung ( GC, Exceptions) Runtime führt Versionsprüfungen aus Runtime führt Versionsprüfungen aus Dieser Code wird als Managed Code bezeichnet Dieser Code wird als Managed Code bezeichnet Basics Managed Code

12 12 Compiler erzeugen keinen native Code sondern eine prozessorunabhängige Zwischensprache Compiler erzeugen keinen native Code sondern eine prozessorunabhängige Zwischensprache Sprachintegration erfolgt auf Codeebene Sprachintegration erfolgt auf Codeebene MSIL – Microsoft Intermediate Language MSIL – Microsoft Intermediate Language MSIL wird oft auch mit IL bezeichnet MSIL wird oft auch mit IL bezeichnet Basics Microsoft Intermediate Language

13 13 IL-Code wird vor der Ausführung immer (!) durch Compiler in echten Maschinencode übersetzt IL-Code wird vor der Ausführung immer (!) durch Compiler in echten Maschinencode übersetzt Unabhängigkeit von Hardwareplattformen Unabhängigkeit von Hardwareplattformen unter Windows CE bereits mit einem IL-Vorläufer im Einsatz unter Windows CE bereits mit einem IL-Vorläufer im Einsatz Basics Code wird kompiliert

14 14 JIT CompilerKlasse A Methode 1 (IL) Methode 2 (IL) Methode 3 (IL) Methode 4 (IL) Klasse B Methode 1 (IL) Methode 2 (IL) (1) Methodenaufruf (2) IL-Code durch native Code ersetzen Methode 1 (ASM) Basics Code wird kompiliert

15 15 Die IL unterscheidet sich von reinen Assemblersprachen Die IL unterscheidet sich von reinen Assemblersprachen komplexe Datentypen und Objekte sind fester Bestandteil komplexe Datentypen und Objekte sind fester Bestandteil Konzepte wie Vererbung und Polymorphie werden von vornherein unterstützt Konzepte wie Vererbung und Polymorphie werden von vornherein unterstützt Basics Implikationen

16 16 Sprachen werden gleichwertig, da alle Compiler MSIL-Code erzeugen Sprachen werden gleichwertig, da alle Compiler MSIL-Code erzeugen eine C# Klasse kann von einer VB.NET Klasse abgeleitet sein eine C# Klasse kann von einer VB.NET Klasse abgeleitet sein einheitliche Fehlerbehandlung einheitliche Fehlerbehandlung Compilerbau wird einfacher Compilerbau wird einfacher kein eigenes Typsystem kein eigenes Typsystem keine eigene Standardbibliothek keine eigene Standardbibliothek Sprachen sind per Definition interoperabel Sprachen sind per Definition interoperabel Implikationen Basics Implikationen

17 17 Das Typsystem wandert vom Compiler in die Runtime Das Typsystem wandert vom Compiler in die Runtime Typen werden eindeutig Typen werden eindeutig ein String unter C# und ein String unter VB.NET sind identisch ein String unter C# und ein String unter VB.NET sind identisch Sprachen werden interoperabel, da sie das gleiche Typsystem benutzen Sprachen werden interoperabel, da sie das gleiche Typsystem benutzen CTS – Common Type System CTS – Common Type System Common Type System Basics Common Type System

18 18 Object Value Type Enum Type String Array Exception Boolean Byte Char Currency DateTime Decimal Double Guid Int16 Int32 Int64 SByte Single TimeSpan TypedRef. UInt16 UInt32 UInt64 Void Delegate Typen im Namespace System Common Type System Das Objektmodell

19 19 Zwei Objekte sind gleich, wenn deren Inhalte gleich sind Zwei Objekte sind gleich, wenn deren Inhalte gleich sind Zwei Objekte sind identisch, wenn sie die gleiche Instanz referenzieren Zwei Objekte sind identisch, wenn sie die gleiche Instanz referenzieren Gleichheit definiert sich über die virtuelle Methode System.Object.Equals Gleichheit definiert sich über die virtuelle Methode System.Object.Equals identisch: System.Object.Equals = true identisch: System.Object.Equals = true gleich: System.Object.Equals.Value = true gleich: System.Object.Equals.Value = true Common Type System Gleichheit und Identität von Objekten

20 20 Die Common Language Runtime ermöglicht unabhängig von Programmiersprachen eine durchgängig objekt- und komponentenorientierte Programmierung Die Common Language Runtime ermöglicht unabhängig von Programmiersprachen eine durchgängig objekt- und komponentenorientierte Programmierung.NET Sprachen sollten sich auf die Typen beschränken, die über das Common Type System definiert sind.NET Sprachen sollten sich auf die Typen beschränken, die über das Common Type System definiert sind Bestandsaufnahme

21 21 Compiler (C#, VB.NET, etc.) Typ A {…} Source Code Typ B {…} Typ C {…} Metadaten für die Typen A, B und C MSIL-Code für Typ A MSIL-Code für Typ B MSIL-Code für Typ C Modul Metadaten und Reflection Übersetzen von Sourcen

22 22 Ein Modul dient als Container für Typen Ein Modul dient als Container für Typen Ein Modul enthält Ein Modul enthält den IL-Code der Typen den IL-Code der Typen Beschreibung der Typen Beschreibung der Typen Die Beschreibung der Typen wird mit Metadaten bezeichnet Die Beschreibung der Typen wird mit Metadaten bezeichnet Jedes Modul enthält Metadaten Jedes Modul enthält Metadaten Compiler erstellt Metadaten on the fly Compiler erstellt Metadaten on the fly Metadaten und Reflection

23 23 Metadaten sind für alle Module auf die gleiche Art und Weise aufgebaut Metadaten sind für alle Module auf die gleiche Art und Weise aufgebaut Einheitliches Format !!! Einheitliches Format !!! Metadaten eines Moduls können zur Laufzeit ausgelesen und geändert werden Metadaten eines Moduls können zur Laufzeit ausgelesen und geändert werden Diesen Vorgang nennt man Reflection Diesen Vorgang nennt man Reflection.NET Framework stellt entsprechende Klassen über den Namespace System.Reflection bereit.NET Framework stellt entsprechende Klassen über den Namespace System.Reflection bereit Metadaten und Reflection

24 24.NET Framework ASPVB FormsMFC & ATL Windows API Warum ein Framework? Einheitliches Programmiermodell

25 25 System System.DataSystem.Xml System.Web Globalization Diagnostics Configuration Collections Resources Reflection Net IO Threading Text ServiceProcess Security Design ADO SQLTypes SQL XPath XSLT Runtime InteropServices Remoting Serialization ConfigurationSessionState CachingSecurity Services Description Discovery Protocols UI HtmlControls WebControls System.Drawing Imaging Drawing2D Text Printing System.WinForms DesignComponentModel Base Class Library

26 26 Hello, World! C# using System; namespace HelloWorld { public class Class1 public class Class1 { public static void Main() public static void Main() { Console.WriteLine("Hello, World!"); Console.WriteLine("Hello, World!"); } }} VB.NET Imports System Namespace HelloWorld Class Class1 Class Class1 Shared Sub Main() Shared Sub Main() Console.WriteLine("Hello, World!") Console.WriteLine("Hello, World!") End Sub End Sub End Class End Class End Namespace Alternativ: Module Module1 Sub Main() Sub Main() Console.WriteLine("Hello, World!") Console.WriteLine("Hello, World!") End Sub End Sub End Module

27 27 Hello, World: C# IL.namespace HelloWorld {.class public auto ansi Class1.class public auto ansi Class1 extends [mscorlib]System.Object extends [mscorlib]System.Object {.method public hidebysig static void Main() il managed.method public hidebysig static void Main() il managed {.entrypoint.entrypoint.maxstack 8.maxstack 8 IL_0000: ldstr "Hello, World!" IL_0000: ldstr "Hello, World!" IL_0005: call void [mscorlib]System.Console::WriteLine(class System.String) IL_0005: call void [mscorlib]System.Console::WriteLine(class System.String) IL_000a: ret IL_000a: ret }.method public hidebysig specialname rtspecialname.method public hidebysig specialname rtspecialname instance void.ctor() il managed instance void.ctor() il managed {.maxstack 8.maxstack 8 IL_0000: ldarg.0 IL_0000: ldarg.0 IL_0001: call instance void [mscorlib]System.Object::.ctor() IL_0001: call instance void [mscorlib]System.Object::.ctor() IL_0006: ret IL_0006: ret } }}

28 28 C# und VB.NET Gemeinsamkeiten Namespaces Namespaces Enthalten Typdefinitionen und Namespaces Enthalten Typdefinitionen und Namespaces Typdefinitionen Typdefinitionen Klassen, Strukturen, Interfaces, Delegates... Klassen, Strukturen, Interfaces, Delegates... Elemente von Typen Elemente von Typen Konstanten, Felder, Methoden, Properties, Events, Operatoren, Konstruktoren, Destruktoren Konstanten, Felder, Methoden, Properties, Events, Operatoren, Konstruktoren, Destruktoren Organisation der Dateien Organisation der Dateien Keine Header-Dateien, Programmcode ist in-line Keine Header-Dateien, Programmcode ist in-line Die Reihenfolge der Deklarationen ist ohne Bedeutung Die Reihenfolge der Deklarationen ist ohne Bedeutung

29 29 Stabile und dauerhafte Software Automatisches Speichermanagement Automatisches Speichermanagement Keine Speicherlecks oder wilde Pointer Keine Speicherlecks oder wilde Pointer Garbage Collection Garbage Collection C# und VB.NET kommen ohne Pointer aus C# und VB.NET kommen ohne Pointer aus Eingebauter Typ: String Eingebauter Typ: String Benutzerdefinierte Referenztypen Benutzerdefinierte Referenztypen Große Auswahl an Kollektionen Große Auswahl an Kollektionen Referenz- und Ausg a beparameter ( out, ref ) Referenz- und Ausg a beparameter ( out, ref ) 99% der Pointer werden nicht mehr benötigt 99% der Pointer werden nicht mehr benötigt C#: Dennoch sind Pointer über unsafe-Code verfügbar C#: Dennoch sind Pointer über unsafe-Code verfügbar Exceptions Exceptions Error Handling von Anfang an bedacht Error Handling von Anfang an bedacht Typsicherheit (type safety) Typsicherheit (type safety) Keine uninitialisierten Variablen Keine uninitialisierten Variablen Keine unsichere Casts Keine unsichere Casts Versionsverwaltung Versionsverwaltung Wurde von Grund auf berücksichtigt Wurde von Grund auf berücksichtigt

30 30 Alles ist wirklich ein Objekt C#/VB.NET vereinen Klassen und primitive types C#/VB.NET vereinen Klassen und primitive types Alles ist ein Objekt ohne die Performance-Probleme anderer Systeme Alles ist ein Objekt ohne die Performance-Probleme anderer Systeme Dim s as String, o as Object o = s Einfach und erweiterbar Einfach und erweiterbar Man kann neue primitive types erzeugen Man kann neue primitive types erzeugen Intuitiv in Syntax und Semantik Intuitiv in Syntax und Semantik VB.NET: Variant entfällt VB.NET: Variant entfällt COM-Interop: COM-Interop: Transparenter Zugriff auf COM-Objekte Transparenter Zugriff auf COM-Objekte.NET-Objekte über COM nutzbar.NET-Objekte über COM nutzbar

31 31 Zwei Arten von Typen Value (struct) Reference (class) Variable enthält WertReferenz SpeicherStackHeap Initialisiert mit Alles 0 Konstante: null Zuweisung kopiert Wert kopiert Referenz int i = 123; string s = "Hello world"; 123 i s "Hello world" 123 j t int j = i; string t = s;

32 32 Boxing und Unboxing Jeder Datentyp kann als Objekt gespeichert oder übergeben werden Jeder Datentyp kann als Objekt gespeichert oder übergeben werden int i = 123; object o = i; int j = (int)o; 123 io 123 System.Int32 }Boxing 123 j }Unboxing

33 33 Implementation Inheritance Einfachvererbung (single inheritance) Einfachvererbung (single inheritance) Auch über Sprachgrenzen hinweg Auch über Sprachgrenzen hinweg Abstrakte Klassen, finale Klassen Abstrakte Klassen, finale Klassen Implementierung von beliebig vielen Interfaces Implementierung von beliebig vielen Interfaces Elemente einer Klasse Elemente einer Klasse Konstanten, Felder, Methoden, Konstruktoren, Destruktoren, Operatoren (C#) Konstanten, Felder, Methoden, Konstruktoren, Destruktoren, Operatoren (C#) Properties, Indexer (C#), Events (VB.NET) Properties, Indexer (C#), Events (VB.NET) Verschachtelte Typen Verschachtelte Typen Statische Elemente Statische Elemente Virtuelle Methoden Virtuelle Methoden VB.NET: Alle Methoden immer virtuell VB.NET: Alle Methoden immer virtuell Zugriffsschutz Zugriffsschutz public, protected, internal, private public, protected, internal, private public class Person { private int YOB; public int YearOfBirth { get { return YOB; }; set { YOB = value; }; } public int GetAgeToday() { return Today()-YearOfBirth; } }

34 34 Operator Overloading (C#) Die meisten Operatoren können überladen werden Die meisten Operatoren können überladen werden Arithmetische, Vergleichs-, Logik- und Bedingungsoperatoren Arithmetische, Vergleichs-, Logik- und Bedingungsoperatoren Allerdings nicht: Zuweisungsop., Spezialop. (sizeof, new, is, typeof) Allerdings nicht: Zuweisungsop., Spezialop. (sizeof, new, is, typeof) class Matrix {... Matrix operator +(Matrix l, Matrix r) { Matrix e = new Matrix(); e = l mit r verknüpfen return e; } }... Matrix a = new Matrix(...), b = new Matrix(...); Matrix c = a + b;

35 35 Interface Inheritance Interface erbt von Interface Public Interface Interface1 End Interface Public Sub M1() Public Property P1 As String Public Interface Interface2 End Interface Inherits Interface1 Public Sub M2() Public Property P2 As String

36 36 Property public class Button: Control { private string caption; private string caption; public string Caption { public string Caption { get { get { return caption; return caption; } set { set { caption = value; caption = value; Repaint(); Repaint(); } }} Button b = new Button(); string s = b.Caption; b.Caption = "OK";

37 37 Indexer (C#) public class ListBox: Control { private string[] items; private string[] items; public string this[int index]{ public string this[int index]{ get { get { return items[index]; return items[index]; } set { items[index] = value; set { items[index] = value; Repaint(); Repaint(); } }} ListBox listBox = new ListBox(); string s = listBox[0] listBox[0] = "hello"; listBox[1] = "world";

38 38 Strukturen struct Point { private double m_x, m_y; public Point(double x, double y) { m_x = x; m_y = y; } public double x { get { return m_x; } set { m_x = value; } }... public static Point operator+(Point l, Point r) { return new Point(l.x+r.x, l.y+r.y); } public override string ToString() { return "(" + m_x + ", " + m_y + ")"; }} Zusammenschluss von Daten und Code Zusammenschluss von Daten und Code Werttyp Werttyp Keine Vererbung Keine Vererbung Leichtgewichtiger Datencontainer Leichtgewichtiger Datencontainer

39 39 Attribute public class OrderProcessor { [WebMethod] [WebMethod] public void SubmitOrder(PurchaseOrder order) {...} public void SubmitOrder(PurchaseOrder order) {...}} [XmlRoot("Order", Namespace="urn:acme.b2b-schema.v1")] public class PurchaseOrder { [XmlElement("shipTo")] public Address ShipTo; [XmlElement("shipTo")] public Address ShipTo; [XmlElement("billTo")] public Address BillTo; [XmlElement("billTo")] public Address BillTo; [XmlElement("comment")] public string Comment; [XmlElement("comment")] public string Comment; [XmlElement("items")] public Item[] Items; [XmlElement("items")] public Item[] Items; [XmlAttribute("date")] public DateTime OrderDate; [XmlAttribute("date")] public DateTime OrderDate;}

40 40 Ausnahmebehandlung Try auszuführende Anweisungen Catch e As COMException Fehlerbehandlung Catch e As Exception... Catch When Err.Number = 5... Catch... Finally Abschließende Behandlung, auch ohne Fehler End Try

41 41 Delegates DelegateEmpfänger Delegate n:1 Empfänger Multicast Delegate n:m Empfänger DelegateEmpfänger 1:1 Empfänger Multicast Delegate Empfänger 1:n

42 42 C# und VB.NET C# VB.NET

43 43 WebForms Keine Scriptsprachen mehr! Keine Scriptsprachen mehr! Verwenden echter Sprachen: VB.NET, C#,... Verwenden echter Sprachen: VB.NET, C#,... Seite wird beim ersten Aufruf komplett auf dem Server kompiliert Seite wird beim ersten Aufruf komplett auf dem Server kompiliert Kompiliat wird beim Aufruf gerendert Kompiliat wird beim Aufruf gerendert Browser bekommen reines HTML zu sehen Browser bekommen reines HTML zu sehen Seiten können serverseitige UI-Controls verwenden Seiten können serverseitige UI-Controls verwenden Diese Controls werden WebControls genannt Diese Controls werden WebControls genannt

44 44 ADO.NET Architektur Managed Provider DataSet- Command DataReader Command Connection XmlDocument XmlReader XmlText-ReaderXmlNode-Reader TextReader String Stream Stream … … Web/Windows Form Controls VS.NET Designers myDataSet Item Cust Order VS.NET Class Generator

45 45 Assemblies.NET Anwendungen bestehen aus Assemblies.NET Anwendungen bestehen aus Assemblies Assembly = Komponente Assembly = Komponente Ein Assembly ist ein Container für Module Ein Assembly ist ein Container für Module Sämliche Sicherheits- und Versionsüberprüfungen durch die CLR erfolgen auf der Basis von Assemblies !!! Sämliche Sicherheits- und Versionsüberprüfungen durch die CLR erfolgen auf der Basis von Assemblies !!!

46 46 Compiler (C#, VB.NET, etc.) Typ A {…} Source Code Typ B {…} Typ C {…} Metadaten für die Typen A, B und C MSIL-Code für Typ A MSIL-Code für Typ B MSIL-Code für Typ C Modul (app1.vb) Manifest Assembly (app1.dll) Assemblies Übersetzen von Sourcen

47 47 Assemblies Sobald ein Modul kompiliert ist, gehört es zu einem Assembly Sobald ein Modul kompiliert ist, gehört es zu einem Assembly Compiler erstellt Assembly on the fly Compiler erstellt Assembly on the fly.NET Framework stellt entsprechende Klassen über den Namespace System.Reflection.Emit bereit.NET Framework stellt entsprechende Klassen über den Namespace System.Reflection.Emit bereit Die im Modul vorhandenen Typen sind nur innerhalb des Assemblies bekannt Die im Modul vorhandenen Typen sind nur innerhalb des Assemblies bekannt

48 48 Metadaten für D und E Modul 1 (app2.dll) Manifest Assembly (app1.dll) MSIL-Code für Typ D MSIL-Code für Typ E Metadaten für F und G Modul 2 (app3.dll) MSIL-Code für Typ F MSIL-Code für Typ G Assemblies Container für mehrere Module

49 49 Jedes Assembly enthält genau ein Manifest Jedes Assembly enthält genau ein Manifest Das Manifest beschreibt das Assembly Das Manifest beschreibt das Assembly Keine Headerdateien Keine Headerdateien Keine Typenbibliothek Keine Typenbibliothek Assemblies Manifest

50 50 Das Manifest beinhaltet Das Manifest beinhaltet Assembly-Identität = Name + Version + Ländercode Assembly-Identität = Name + Version + Ländercode Liste der Module, aus denen das Assembly besteht Liste der Module, aus denen das Assembly besteht Referenzierte Assemblies Referenzierte Assemblies Exportierte Typen und Resourcen Exportierte Typen und Resourcen Attribute Attribute Assemblies Manifest

51 51 Private Assembly Private Assembly Assembly kann nur von genau einer Anwendung benutzt werden Assembly kann nur von genau einer Anwendung benutzt werden Shared Assemby Shared Assemby Assembly kann global von allen Anwendungen benutzt werden Assembly kann global von allen Anwendungen benutzt werden Assemblies Kategorien

52 52 Identifikation anhand eines einfachen Namens, z.B. Reverse Identifikation anhand eines einfachen Namens, z.B. Reverse Keine Versionsüberprüfung Keine Versionsüberprüfung Installation per Filecopy Installation per Filecopy Standardmäßig befinden sich Assembly und Anwendung im gleichen Verzeichnis Standardmäßig befinden sich Assembly und Anwendung im gleichen Verzeichnis Verzeichnis kann per CFG-Datei definiert werden Verzeichnis kann per CFG-Datei definiert werden Assemblies Private Assembly

53 53 Identifikation über einen Strong Name Identifikation über einen Strong Name Eindeutig per Public-Key-Verschlüsselung Eindeutig per Public-Key-Verschlüsselung Strong Name = Identität + Public Key Strong Name = Identität + Public Key Versionsüberprüfung durch die Runtime Versionsüberprüfung durch die Runtime Installation im Global Assembly Cache ( SDK-Tool al.exe oder gacutil.exe) Installation im Global Assembly Cache ( SDK-Tool al.exe oder gacutil.exe) systemweiter Speicherbereich systemweiter Speicherbereich normale Dateien normale Dateien keine Registry-Einträge, o. ä. keine Registry-Einträge, o. ä. Assemblies Shared Assembly

54 54 Versionierung Aufbau der Versionsnummer

55 55 Versionierung Vorgaben per CFG-Datei definieren

56 56 Mehr Informationen


Herunterladen ppt "1 Anwendungen der nächsten Generation StandardBrowsers SmarterClients Smarter Devices Offene Internet Protokolle (HTTP, SMTP, XML, SOAP) Anwendungen rufen."

Ähnliche Präsentationen


Google-Anzeigen