Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Visual Basic.NET & C# Die Qual der Wahl? Frank Prengel Technologieberater Microsoft GmbH

Ähnliche Präsentationen


Präsentation zum Thema: "Visual Basic.NET & C# Die Qual der Wahl? Frank Prengel Technologieberater Microsoft GmbH"—  Präsentation transkript:

1 Visual Basic.NET & C# Die Qual der Wahl? Frank Prengel Technologieberater Microsoft GmbH

2 Agenda Das.NET Framework Das.NET Framework Visual Basic.NET: Überblick Visual Basic.NET: Überblick Visual C#.NET: Überblick Visual C#.NET: Überblick Vergleich der Sprachen Vergleich der Sprachen Gemeinsamkeiten, Syntax, Sonstiges Gemeinsamkeiten, Syntax, Sonstiges Migration Migration Zusammenfassung Zusammenfassung

3 Agenda Das.NET Framework Das.NET Framework Visual Basic.NET: Überblick Visual Basic.NET: Überblick Visual C#.NET: Überblick Visual C#.NET: Überblick Vergleich der Sprachen Vergleich der Sprachen Gemeinsamkeiten, Syntax, Sonstiges Gemeinsamkeiten, Syntax, Sonstiges Migration Migration Zusammenfassung Zusammenfassung

4 Das.NET Framework Win32 MSMQ(MessageQueuing)COM+ (Transactions, Partitions, Object Pooling) IISWMI Common Language Runtime Base Class Library ADO.NET: Data and XML Web Services User Interface Common Language Specification VBC++C#J#JScript… Visual Studio.NET ASP.NETWinForms

5 Das.NET Framework Visual Studio.NET: integrierte Entwicklungsumgebung Visual Studio.NET: integrierte Entwicklungsumgebung Solution Explorer, Toolbox, Debugger Solution Explorer, Toolbox, Debugger visuelle Designer, Code Editor visuelle Designer, Code Editor IntelliSense, Syntaxkontrolle, dyn. Hilfe IntelliSense, Syntaxkontrolle, dyn. Hilfe mehrsprachige Projektmappen mehrsprachige Projektmappen RAD für RAD für Desktop Desktop Server Server Web (UI, -services) Web (UI, -services) Smart Devices Smart Devices Win32 MSMQ (Message Queuing) COM+ (Transactions, Partitions, Object Pooling) IISWMI Common Language Runtime Base Class Library ADO.NET: Data and XML Web ServicesUser Interface Common Language Specification VBC++C#J#JScript… Visual Studio.NET ASP.NETWinForms

6 Das.NET Framework Common Language Specification Common Language Specification definiert Anforderungen, die.NET- Sprachen erfüllen müssen definiert Anforderungen, die.NET- Sprachen erfüllen müssen sichert Interoperabilität der Sprachen sichert Interoperabilität der Sprachen Datentypen sind Teilmenge des Common Type System Datentypen sind Teilmenge des Common Type System Microsoft: Visual Basic ®, C#, C++, J#, JScript ® Microsoft: Visual Basic ®, C#, C++, J#, JScript ® andere: Cobol, Perl, Python, Smalltalk, Delphi,... andere: Cobol, Perl, Python, Smalltalk, Delphi,... Win32 MSMQ (Message Queuing) COM+ (Transactions, Partitions, Object Pooling) IISWMI Common Language Runtime Base Class Library ADO.NET: Data and XML Web ServicesUser Interface Common Language Specification VBC++C#J#JScript… Visual Studio.NET ASP.NETWinForms

7 Das.NET Framework Common Language Runtime Common Language Runtime verwaltet ausgeführten Code verwaltet ausgeführten Code Typprüfungen, Fehlerbehandlung, Garbage Collection, … virtuelle Maschine Typprüfungen, Fehlerbehandlung, Garbage Collection, … virtuelle Maschine selbstbeschreibende Komponenten selbstbeschreibende Komponenten Assemblies enthalten Metadaten + Code Assemblies enthalten Metadaten + Code Just-In-Time-Compiler Just-In-Time-Compiler MSIL Maschinencode MSIL Maschinencode Komp. auf Methodenebene Komp. auf Methodenebene Optimierung zur Laufzeit Optimierung zur Laufzeit feinkonfigurierbare Sicherheit feinkonfigurierbare Sicherheit Win32 MSMQ (Message Queuing) COM+ (Transactions, Partitions, Object Pooling) IISWMI Common Language Runtime Base Class Library ADO.NET: Data and XML Web ServicesUser Interface Common Language Specification VBC++C#J#JScript… Visual Studio.NET ASP.NETWinForms

8 Agenda Das.NET Framework Das.NET Framework Visual Basic.NET: Überblick Visual Basic.NET: Überblick Visual C#.NET: Überblick Visual C#.NET: Überblick Vergleich der Sprachen Vergleich der Sprachen Gemeinsamkeiten, Syntax, Sonstiges Gemeinsamkeiten, Syntax, Sonstiges Migration Migration Zusammenfassung Zusammenfassung

9 Visual Basic.NET Basic für das neue Jahrtausend… Basic für das neue Jahrtausend… bietet Features, die Entwickler bisher an Basic vermissten bietet Features, die Entwickler bisher an Basic vermissten mehr als nur Visual Basic "6 + 1" mehr als nur Visual Basic "6 + 1" …mit der Power von.NET …mit der Power von.NET einfaches Web Development einfaches Web Development voller Zugriff auf die.NET-Plattform voller Zugriff auf die.NET-Plattform Daten, XML, WinCE-Entwicklung,... Daten, XML, WinCE-Entwicklung,... einfaches Deployment einfaches Deployment Microsoft Installer Microsoft Installer

10 Visual Basic.NET modern & leistungsfähig modern & leistungsfähig komplett objektorientiert komplett objektorientiert unterstützt freies Threading unterstützt freies Threading unterstützt strukturierte Fehlerbehandlung unterstützt strukturierte Fehlerbehandlung robust robust strikte Typprüfung strikte Typprüfung Variableninitialisierung bei Deklaration Variableninitialisierung bei Deklaration vereinfacht vereinfacht basiert auf.NET Base Class Library basiert auf.NET Base Class Library viele "Legacy"-Features entfernt viele "Legacy"-Features entfernt

11 Visual Basic.NET volle Objektorientierung volle Objektorientierung Strukturierung in Namensräumen Strukturierung in Namensräumen Vererbung: von einer Basisklasse, von beliebig vielen Interfaces Vererbung: von einer Basisklasse, von beliebig vielen Interfaces Overriding & Shadowing von Basisklassenmethoden Overriding & Shadowing von Basisklassenmethoden Überladen von Methoden Überladen von Methoden nicht a priori abwärtskompatibel nicht a priori abwärtskompatibel CLS-konform CLS-konform

12 Agenda Das.NET Framework Das.NET Framework Visual Basic.NET: Überblick Visual Basic.NET: Überblick Visual C#.NET: Überblick Visual C#.NET: Überblick Vergleich der Sprachen Vergleich der Sprachen Gemeinsamkeiten, Syntax, Sonstiges Gemeinsamkeiten, Syntax, Sonstiges Migration Migration Zusammenfassung Zusammenfassung

13 Visual C#.NET erste konsequent komponentenorientierte Sprache der "C-Familie" erste konsequent komponentenorientierte Sprache der "C-Familie" Syntax ähnlich C++ & Java Syntax ähnlich C++ & Java vereinfachte Programmierung vereinfachte Programmierung keine Header-Dateien, Makros, IDL keine Header-Dateien, Makros, IDL keine Mehrfachvererbung keine Mehrfachvererbung typsicher typsicher XML-Kommentare zwecks Dokumentation XML-Kommentare zwecks Dokumentation

14 Visual C#.NET bestmögliche Interoperabilität mit bestehendem Code bestmögliche Interoperabilität mit bestehendem Code COM-Komponenten: COM Interop COM-Komponenten: COM Interop Win32 API: P/Invoke Win32 API: P/Invoke vorzeichenlose Datentypen vorzeichenlose Datentypen unterstützt Pointer und C-ähnliche Speicherverwaltung unterstützt Pointer und C-ähnliche Speicherverwaltung unsafe, stackalloc unsafe, stackalloc memory pinning von Variablen ( fixed ) memory pinning von Variablen ( fixed )

15 Agenda Das.NET Framework Das.NET Framework Visual Basic.NET: Überblick Visual Basic.NET: Überblick Visual C#.NET: Überblick Visual C#.NET: Überblick Vergleich der Sprachen Vergleich der Sprachen Gemeinsamkeiten, Syntax, Sonstiges Gemeinsamkeiten, Syntax, Sonstiges Migration Migration Zusammenfassung Zusammenfassung

16 Gemeinsamkeiten gleichberechtigte Sprachen in.NET gleichberechtigte Sprachen in.NET visuelle Designer für WinForms, WebForms, XSD, HTML,... visuelle Designer für WinForms, WebForms, XSD, HTML,... verwenden.NET-Klassenbibliothek verwenden.NET-Klassenbibliothek unterstützen COM Interop, P/Invoke unterstützen COM Interop, P/Invoke Sprachcompiler generieren MSIL Sprachcompiler generieren MSIL hohe Performance hohe Performance s. z.B. B. Marquardt "Performance in.NET", XML in Action 2002, Potsdam s. z.B. B. Marquardt "Performance in.NET", XML in Action 2002, Potsdam

17 Gemeinsamkeiten Sub Main(ByVal args() As String) Console.WriteLine("Hello VB") Console.WriteLine("Hello VB") End Sub [STAThread] static void Main(string[] args) { Console.WriteLine("Hello C#"); }.method private hidebysig static void Main(string[] args) cil managed {.entrypoint.entrypoint.custom instance void [mscorlib]System.STAThreadAttribute::.ctor() = ( ).custom instance void [mscorlib]System.STAThreadAttribute::.ctor() = ( ) // Code size 11 (0xb) // Code size 11 (0xb).maxstack 1.maxstack 1 IL_0000: ldstr "Hello C#" IL_0000: ldstr "Hello C#" IL_0005: call void [mscorlib]System.Console::WriteLine(string) IL_0005: call void [mscorlib]System.Console::WriteLine(string) IL_000a: ret IL_000a: ret } // end of method Class1::Main.method public static void Main(string[] args) cil managed {.entrypoint.entrypoint.custom instance void [mscorlib]System.STAThreadAttribute::.ctor() = ( ).custom instance void [mscorlib]System.STAThreadAttribute::.ctor() = ( ) // Code size 14 (0xe) // Code size 14 (0xe).maxstack 8.maxstack 8 IL_0000: nop IL_0000: nop IL_0001: ldstr "Hello VB" IL_0001: ldstr "Hello VB" IL_0006: call void [mscorlib]System.Console::WriteLine(string) IL_0006: call void [mscorlib]System.Console::WriteLine(string) IL_000b: nop IL_000b: nop IL_000c: nop IL_000c: nop IL_000d: ret IL_000d: ret } // end of method Class1::Main VB C# Demo

18 Agenda Das.NET Framework Das.NET Framework Visual Basic.NET: Überblick Visual Basic.NET: Überblick Visual C#.NET: Überblick Visual C#.NET: Überblick Vergleich der Sprachen Vergleich der Sprachen Gemeinsamkeiten, Syntax, Sonstiges Gemeinsamkeiten, Syntax, Sonstiges Migration Migration Zusammenfassung Zusammenfassung

19 Syntax: Grundlegendes Groß-/Kleinschreibung VB kein Unterschied DIM a as dOuBle' OK Dim b As Integer, B as Long ' Fehler! C# wesentlich int a, A; // OK Long b; // Fehler! nicht CLS-konform, falls public! nicht CLS-konform, falls public! [CLSCompliant(true)] verwenden [CLSCompliant(true)] verwenden

20 Syntax: Grundlegendes Blocktrennzeichen VB Sub... End Sub (u.ä.) keine beliebigen Blöcke möglich keine beliebigen Blöcke möglich C# {... } AnweisungstrennzeichenVB CR/LF (auch: ":") Zeilenfortsetzung: " _" Zeilenfortsetzung: " _" Formatierung ist entscheidend! Formatierung ist entscheidend! C#; freie Formatierung möglich freie Formatierung möglich

21 Syntax: Daten & Typen Datentypunterstützung Visual Basic.NET C#.NET CTS ObjectobjectSystem.Object StringstringSystem.String BytebyteSystem.Byte ShortshortSystem.Int16 IntegerintSystem.Int32 LonglongSystem.Int64 SinglefloatSystem.Single DoubledoubleSystem.Double BooleanboolSystem.Boolean CharcharSystem.Char DecimaldecimalSystem.Decimal sbyteSystem.SByte ushortSystem.UInt16 uintSystem.UInt32 ulongSystem.UInt64 nicht CLS-konform nicht CLS-konform

22 Syntax: Daten & Typen Arrays: Größenänderungen VB ReDim Preserve... C#n/a Framework-Klassen wie ArrayList verwenden Framework-Klassen wie ArrayList verwenden Arrays: Erstellung VB Dim a(n) as Integer erzeugt n+1 Elemente (0... n) ! erzeugt n+1 Elemente (0... n) ! C# int [] a = new int[n]; erzeugt n Elemente (0... n-1) ! erzeugt n Elemente (0... n-1) !

23 Syntax: Daten & Typen Variableninitialisierung VB automatisches Initialisieren mit 0 oder Nothing nur bei Erzeugung (lokale Variablen!) nur bei Erzeugung (lokale Variablen!) C# explizites Initialisieren notwendig VB + C# Initialisieren bei Deklaration möglich: Dim i as Integer = 0 int i = 0;

24 Syntax: Daten & Typen VB unterstützt außerdem: VB unterstützt außerdem: Steuerung expliziter Variablendeklaration: Option Explicit { On | Off } Steuerung expliziter Variablendeklaration: Option Explicit { On | Off } Steuerung von Typumwandlungen: Option Strict { On | Off } Steuerung von Typumwandlungen: Option Strict { On | Off } Steuerung des Stringvergleichs: Option Compare { Binary | Text } Steuerung des Stringvergleichs: Option Compare { Binary | Text }

25 C# unterstützt außerdem: C# unterstützt außerdem: ?: ?: > > operator overloading public static MyType operator –(MyType x){... } operator overloading public static MyType operator –(MyType x){... } Testen auf Überlauf bei arithmetischen Operationen: checked / unchecked Testen auf Überlauf bei arithmetischen Operationen: checked / unchecked Syntax: Daten & Typen VB: IIf(a,b,c) Demo

26 Syntax: Funktionen Deklaration VB Function FunctionName(arg1 as Type,... argN as _ Type) as ReturnType... Return someVariableOfReturnType End Function Sub ProcedureName(arg1 as Type,... argN as Type)... End Sub C# ReturnType FunctionName(Type arg1,... Type argN) {... return someVariableOfReturnType; }

27 Syntax: Funktionen Select Case / switch VB Select Case i Case "Frank", "Michael" To "Paul" Case "Frank", "Michael" To "Paul" Console.WriteLine("Frank's group") Console.WriteLine("Frank's group") Case o Case o Console.WriteLine("It's John") Console.WriteLine("It's John") Case Else Case Else Console.WriteLine("S.o. else") Console.WriteLine("S.o. else") End Select C# switch(i) { case "Frank" : case "Michael" : case "Paul" : Console.WriteLine("Frank's group"); break; case "John" : Console.WriteLine("John"); break; default: Console.WriteLine("S.o. else"); break; } Demo

28 Syntax: Funktionen Verschiedenes VB Vorhandensein von Return in allen Rückkehrzweigen einer Funktion wird nicht geprüft Vorhandensein von Return in allen Rückkehrzweigen einer Funktion wird nicht geprüft Unterstützung optionaler Parameter Unterstützung optionaler Parameter OLE Automation! OLE Automation! Unterstützung von Modulen Unterstützung von Modulen Variablen & Funktionen Assembly-global Variablen & Funktionen Assembly-global Shared members: Zugriff über Typ oder Instanz Shared members: Zugriff über Typ oder Instanz Standardsichtbarkeit in Klassen: Public Standardsichtbarkeit in Klassen: Public C# static members: Zugriff nur über Typ static members: Zugriff nur über Typ Standardsichtbarkeit in Klassen: private Standardsichtbarkeit in Klassen: private Demo

29 Syntax: Objekte Konstruktoren VB Public Class AClass Public Sub New(ByVal n as String) Public Sub New(ByVal n as String)... End Sub... End Class... End Sub... End Class C# public class AClass { public AClass(string n) {... } public AClass(string n) {... }... }... } Aktuelle Instanz referenzieren VB Me Me C# this this

30 Syntax: Objekte Destruktoren VB Protected Overrides Sub Finalize()... C#~AClass() {... } Garbage Collector nichtdeterministische Finalisierung Garbage Collector nichtdeterministische Finalisierung besser: IDisposable.Dispose() zur expliziten Freigabe von Ressourcen besser: IDisposable.Dispose() zur expliziten Freigabe von Ressourcen in C# autom. Scoping durch using : using (Font myFont=new Font(...)) {... } in C# autom. Scoping durch using : using (Font myFont=new Font(...)) {... }

31 Syntax: Objekte Vererbung vs. Interface-Implementation VB Public Class DClass Inherits BClass Implements IInt Welche Methode implementiert welche? Sub X() Implements IInt.Y Welche Methode implementiert welche? Sub X() Implements IInt.Y eine Methode kann vielfach implementieren: Sub X() Implements IInt1.Y, IInt2.Z eine Methode kann vielfach implementieren: Sub X() Implements IInt1.Y, IInt2.Z C# public class DClass : BClass, IInt explizite Interface-Methoden-Implementation: int IInt.X(); (Cast auf Interface nötig; kein public/private/... erlaubt!) explizite Interface-Methoden-Implementation: int IInt.X(); (Cast auf Interface nötig; kein public/private/... erlaubt!)

32 Syntax: Objekte Schlüsselwörter VB MustInherit, NotInheritable, Overridable, Overrides, Shadows,... C# abstract, sealed, virtual, override, new,... Konstruktor der Basisklasse aufrufen VB Public Sub New(ByVal n as String) MyBase.New() MyBase.New()... End Sub... End Sub C# public AClass() : base() {... } impliziter Aufruf des Default-C'tors impliziter Aufruf des Default-C'tors

33 Syntax: Objekte Events VB Dim WithEvents o as EventSource... Event Happened(...)... RaiseEvent Happened()... Sub hendl() Handles o.Happened... Delegates (s. C#)Delegates (s. C#) C# public delegate void HappenedHndl(object sender, EventArgs e); public event HappenedHndl Happened;... Happened(this, eventargs);... public void sthHappened(object s, EventArgs a); o.Happened += new HappenedHndl(sthHappened);

34 Syntax: Objekte Verschiedenes VB unterstützt With -Konstrukt: With myObj.SomeFct(x,y).val = 42 End With unterstützt With -Konstrukt: With myObj.SomeFct(x,y).val = 42 End With Unterstützung von "Legacy"-VB-Anweisungen im Namensraum Microsoft.VisualBasic Unterstützung von "Legacy"-VB-Anweisungen im Namensraum Microsoft.VisualBasic bequemes Verwenden von Late Binding bequemes Verwenden von Late Binding Imports gewährt Zugriff auf Namensräume und Objekte Imports gewährt Zugriff auf Namensräume und Objekte C# unterstützt Parameter vom Typ out unterstützt Parameter vom Typ out

35 Syntax: Verschiedenes Unsafe Code VBn/a C# Zeiger etc. möglich: Zeiger etc. möglich: unsafe void Foo() { char* buf = stackalloc char[256];... } char* buf = stackalloc char[256];... } nicht durch die CLR verifizierbar nicht durch die CLR verifizierbar Ausführung nur unter "verschärften" Sicherheitsbedingungen möglich Ausführung nur unter "verschärften" Sicherheitsbedingungen möglich

36 Syntax: Verschiedenes Dokumentation VB keine besondere Unterstützung keine besondere Unterstützung manuelles Erstellen von Hilfe-Dateien manuelles Erstellen von Hilfe-Dateien Add-Ins (IntelliDoc) Add-Ins (IntelliDoc) V.Next... V.Next... C# Spezielle Tags für XML-Dokumentation: /// Erste Klasse! /// Spezielle Tags für XML-Dokumentation: /// Erste Klasse! /// Generieren von Online-Dokumentation Generieren von Online-Dokumentation Demo

37 Agenda Das.NET Framework Das.NET Framework Visual Basic.NET: Überblick Visual Basic.NET: Überblick Visual C#.NET: Überblick Visual C#.NET: Überblick Vergleich der Sprachen Vergleich der Sprachen Gemeinsamkeiten, Syntax, Sonstiges Gemeinsamkeiten, Syntax, Sonstiges Migration Migration Zusammenfassung Zusammenfassung

38 Sonstiges Class View VB Standard StandardC# erweitert erweitert

39 Sonstiges Echtzeit-Syntaxkontrolle VB Code Validation Background Compile (entdeckt Build Errors zur Entwurfszeit!) C# Code Validation VerschiedenesVB Automatische End... -Blockanweisungen Automatische End... -Blockanweisungen Automatisches Einrücken von Code Automatisches Einrücken von Code Automatische Groß-/Kleinschreibung Automatische Groß-/Kleinschreibung C# Automatische {} -Klammerpaare Automatische {} -Klammerpaare Automatisches Einrücken (begrenzt) Automatisches Einrücken (begrenzt)

40 Agenda Das.NET Framework Das.NET Framework Visual Basic.NET: Überblick Visual Basic.NET: Überblick Visual C#.NET: Überblick Visual C#.NET: Überblick Vergleich der Sprachen Vergleich der Sprachen Gemeinsamkeiten, Syntax, Sonstiges Gemeinsamkeiten, Syntax, Sonstiges Migration Migration Zusammenfassung Zusammenfassung

41 Migration VB 6 VB.NET

42 VB6 VB.NET 3 Upgrade-Strategien: komplette Neuimplementierung in.NET komplette Neuimplementierung in.NET komplette Portierung komplette Portierung alte Programmarchitektur bleibt intakt alte Programmarchitektur bleibt intakt Mischlösung Mischlösung auf bestehenden Code aufbauen auf bestehenden Code aufbauen VB 6-Komponenten weiterverwenden,.NET-Komponenten sinnvoll darauf aufsetzen VB 6-Komponenten weiterverwenden,.NET-Komponenten sinnvoll darauf aufsetzen später Schritt für Schritt migrieren später Schritt für Schritt migrieren

43 VB6 VB.NET Sie entscheiden: Sie entscheiden: Wie sieht Ihre Anwendungsarchitektur aus? Wie sieht Ihre Anwendungsarchitektur aus? Handelt es sich um eine Neuentwicklung oder soll die Applikation nur noch gewartet werden? Handelt es sich um eine Neuentwicklung oder soll die Applikation nur noch gewartet werden? Machen Sie einen Upgrade-Plan! Machen Sie einen Upgrade-Plan! Welche Aspekte/Teile Ihrer Anwendung gewinnen "added value" durch.NET? Welche Aspekte/Teile Ihrer Anwendung gewinnen "added value" durch.NET? Wie kann die bestehende Anwendung für das Upgrade "fit" gemacht werden? Wie kann die bestehende Anwendung für das Upgrade "fit" gemacht werden?

44 VB6 VB.NET Upgrade-Technologien: Code-Migration Code-Migration Upgrade Wizard Upgrade Wizard Sourcecode Analyzer Tools (Dritthersteller) Sourcecode Analyzer Tools (Dritthersteller) Application Mining Tools (Dritthersteller) Application Mining Tools (Dritthersteller) Interoperabilität Interoperabilität COM Interop COM Interop Platform Invoke (P/Invoke) Platform Invoke (P/Invoke)

45 VB6 VB.NET Demo

46 VB6 VB.NET Weiterführende Infos im Internet: MSDN ® Website: MSDN ® Website: VB.NET Upgrade Websites: VB.NET Upgrade Websites: upgrade/guide.asp upgrade/guide.asp Technology/vbupgrade.asp Technology/vbupgrade.asp VB 6tovbdotnet.htm VB 6tovbdotnet.htm

47 VB6 VB.NET Weiterführende Informationen – Bücher: Ed Robinson, Michael Bond, Ian Oliver: "Upgrading Microsoft Visual Basic 6.0 to Microsoft Visual Basic.NET" Microsoft Press; ISBN X "Von Microsoft Visual Basic 6.0 nach Microsoft Visual Basic.NET" Microsoft Press; ISBN Ed Robinson, Michael Bond, Ian Oliver: "Upgrading Microsoft Visual Basic 6.0 to Microsoft Visual Basic.NET" Microsoft Press; ISBN X "Von Microsoft Visual Basic 6.0 nach Microsoft Visual Basic.NET" Microsoft Press; ISBN Dan Appleman: "Moving to VB.NET" Apress; ISBN: Dan Appleman: "Moving to VB.NET" Apress; ISBN:

48 Migration Java Visual C#

49 Java C# 3 Wege zu.NET für Java-Programmierer: VJ COM-Anwendungen: COM Interop VJ COM-Anwendungen: COM Interop Visual J#.NET: Java-Sprache für.NET (erzeugt MSIL) Visual J#.NET: Java-Sprache für.NET (erzeugt MSIL) Java Language Conversion Assistant (JLCA): Sourcecode-Migration Java C# Java Language Conversion Assistant (JLCA): Sourcecode-Migration Java C#

50 Java C# Java Language Conversion Assistant aktuell: Beta2 ( ) aktuell: Beta2 ( ) konvertiert automatisch konvertiert automatisch Java C# Java C# JSP ASP.NET (final version) JSP ASP.NET (final version) J2EE.NET (ArtinSoft, MS-Partner) J2EE.NET (ArtinSoft, MS-Partner) Integration in Visual Studio.NET Integration in Visual Studio.NET unterstützt JDK unterstützt JDK 1.1.4

51 Java C# Demo

52 Agenda Das.NET Framework Das.NET Framework Visual Basic.NET: Überblick Visual Basic.NET: Überblick Visual C#.NET: Überblick Visual C#.NET: Überblick Vergleich der Sprachen Vergleich der Sprachen Gemeinsamkeiten, Syntax, Sonstiges Gemeinsamkeiten, Syntax, Sonstiges Migration Migration Zusammenfassung Zusammenfassung

53 Zusammenfassung Highlights VB CLS-konform CLS-konform gute Unterstützung von OLE Automation gute Unterstützung von OLE Automation Background Compile beim Editieren Background Compile beim Editieren einfache Event-Syntax einfache Event-Syntax weitgehende automatische Codeformatierung weitgehende automatische Codeformatierung C# "Sprache des.NET Framework" "Sprache des.NET Framework" erzwingt Programmierdisziplin erzwingt Programmierdisziplin XML-Dokumentation XML-Dokumentation ermöglicht "unsicheren" Code ermöglicht "unsicheren" Code

54 Zusammenfassung Naheliegende Migrationspfade: Naheliegende Migrationspfade: Visual Basic 6 Visual Basic.NET Visual Basic 6 Visual Basic.NET C/C++, Java Visual C#.NET C/C++, Java Visual C#.NET VB.NET ist vollwertige.NET-Sprache VB.NET ist vollwertige.NET-Sprache kein Grund für Minderwertigkeitskomplexe mehr! kein Grund für Minderwertigkeitskomplexe mehr! Base Class Library bestimmt verfügbare Funktionalität Base Class Library bestimmt verfügbare Funktionalität Wahl der Sprache für 95% der Probleme irrelevant Wahl der Sprache für 95% der Probleme irrelevant

55 Zusammenfassung Sie haben die Q VBC#.NET.NET.NET.NET Wahl!Sie haben die Qu Sie haben die

56 Fragen?

57 Weitere Informationen INFO: "Differences Between Visual Basic.NET and Visual C#.NET" White Paper Is Available (Q308470) US;Q INFO: "Differences Between Visual Basic.NET and Visual C#.NET" White Paper Is Available (Q308470) US;Q US;Q US;Q Daniel Appleman "Visual Basic.NET or C#...Which to Choose?" Daniel Appleman "Visual Basic.NET or C#...Which to Choose?" Eric Gunnerson "A Programmer's Introduction to C#", Apress 2001 Eric Gunnerson "A Programmer's Introduction to C#", Apress 2001 Daniel Appleman "Moving to VB.NET: Strategies, Concepts, and Code", Apress 2001 Daniel Appleman "Moving to VB.NET: Strategies, Concepts, and Code", Apress 2001 Bernd Marquardt "Performance in.NET", XML in Action 2002, Potsdam Bernd Marquardt "Performance in.NET", XML in Action 2002, Potsdam VB.NET Upgrade Guide upgrade/guide.asp VB.NET Upgrade Guide upgrade/guide.asp upgrade/guide.asp upgrade/guide.asp Java Language Conversion Assistant Java Language Conversion Assistant

58 Allgemeine Informationen Jeffrey Richter: "Applied Microsoft.NET Framework Programming" Microsoft Press; ISBN: Ralf Westphal: ".NET kompakt" Spektrum Akad. Vlg.; ISBN:

59 Microsofts Vision Empower people through software any time, any place, and on any device. great


Herunterladen ppt "Visual Basic.NET & C# Die Qual der Wahl? Frank Prengel Technologieberater Microsoft GmbH"

Ähnliche Präsentationen


Google-Anzeigen