1 / 59

Visual Basic .NET & C# Die Qual der Wahl?

Visual Basic .NET & C# Die Qual der Wahl?. Frank Prengel Technologieberater Microsoft GmbH frankpr@microsoft.com. Agenda. Das .NET Framework Visual Basic .NET: Überblick Visual C# .NET: Überblick Vergleich der Sprachen Gemeinsamkeiten, Syntax, Sonstiges Migration Zusammenfassung.

stephanie
Télécharger la présentation

Visual Basic .NET & C# Die Qual der Wahl?

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  19. Syntax: Grundlegendes

  20. Syntax: Grundlegendes

  21. Syntax: Daten & Typen Datentypunterstützung • nicht CLS-konform

  22. Syntax: Daten & Typen

  23. Syntax: Daten & Typen

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

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

  26. Syntax: Funktionen

  27. Demo Syntax: Funktionen

  28. Demo Syntax: Funktionen

  29. Syntax: Objekte

  30. Syntax: Objekte • Garbage Collector  nichtdeterministische Finalisierung • besser: IDisposable.Dispose() zur expliziten Freigabe von Ressourcen • in C# autom. Scoping durch using:using (Font myFont=new Font(...)) { ... }

  31. Syntax: Objekte

  32. Syntax: Objekte

  33. Syntax: Objekte

  34. Syntax: Objekte

  35. Syntax: Verschiedenes

  36. Demo Syntax: Verschiedenes

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

  38. Sonstiges

  39. Sonstiges

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

  41. Migration VB 6 VB .NET

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

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

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

  45. Demo VB6  VB .NET

  46. VB6  VB .NET Weiterführende Infos im Internet: • MSDN® Website: • http://msdn.microsoft.com/ • VB .NET Upgrade Websites: • http://msdn.microsoft.com/vbasic/technical/upgrade/guide.asp • http://msdn.microsoft.com/vstudio/nextgen/Technology/vbupgrade.asp • http://msdn.microsoft.com/library/techart/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 073561587X"Von Microsoft Visual Basic 6.0 nach Microsoft Visual Basic.NET" Microsoft Press; ISBN 3860636669 • Dan Appleman: "Moving to VB.NET"Apress; ISBN: 1893115976

  48. Migration Java Visual C#

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

  50. Java  C# Java Language Conversion Assistant • aktuell: Beta2 (http://msdn.microsoft.com/vstudio/downloads/jca/default.asp) • konvertiert automatisch • Java  C# • JSP  ASP.NET (final version) • J2EE  .NET (ArtinSoft, MS-Partner) • Integration in Visual Studio .NET • unterstützt JDK 1.1.4

More Related