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

Slides:



Advertisements
Ähnliche Präsentationen
C Sharp (C#) Martin Saternus Senior Student Partner
Advertisements

der Universität Oldenburg
Seminar „Verteilte Systeme“ Thomas Bischoff
Deklarative Programmierung mit Attributen
SQL Server 2005.NET Integration Sebastian Weber Developer Evangelist Microsoft Deutschland GmbH.
Visual Basic.NET und Visual Basic 6 Ralf Westphal MSDN Regional Director, freier Fachautor & Berater
Interoperabilität Microsoft .NET und COM+ Dariusz Parys
Neue Mobilität Frank Prengel Developer Evangelist Developer Platform & Strategy Group Microsoft Deutschland GmbH
DI Christian Donner cd (at) donners.com
Was ist neu in VS 2003 ? Ein Überblick. Bernd Marquardt Software & Consulting
1. 2 Microsoft.NET Überblick Dirk Primbs Technologieberater Developer Platform & Strategy Group Microsoft Deutschland GmbH.
Web Matrix Project Kurzüberblick Dirk Primbs Technologieberater Developer Platform Strategy Group Microsoft Deutschland GmbH.
Microsoft Academic Program C# 2.0 Was gibts da Neues? Student Technology Conference 2005.
Spec# Proseminar Assertions im SS 2007 Uni Paderborn Andreas Martens Betreuer: Dipl. Inform. Björn Metzler.
Ausnahmen HS Merseburg (FH) WS 06/07.
Java: Objektorientierte Programmierung
Java: Dynamische Datentypen
Indirekte Adressierung
Java: Grundlagen der Sprache
Java: Referenzen und Zeichenketten
Java: Grundlagen der Objektorientierung
Seminar Sommersemester 2002 ASP.NET Andre Margousian.
Praktikum Entwicklung und Einsatz von Geosoftware I - Sitzung 3 Klassen, Objekte, Arrays und Kontrollstrukturen Sommersemester 2003 Lars Bernard.
Programmieren mit JAVA
Programmieren mit JAVA
VB .NET Proseminar .NET SS04.
Introducing the .NET Framework
Projektplan: Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University.
DVG Einführung in Java1 Einführung in JAVA.
DVG Klassen und Objekte
Java in 9 Folien Besser: Online-Buch Go to Java 2.
Presenter: Daniel Walzenbach Technologieberater
MSDN Webcast: VB. NET für Einsteiger und Umsteiger Einführung in VB
MSDN Webcast: VB.NET für Einsteiger und Umsteiger, Teil 7 Strukturierte Ausnahmebehandlung (Level 100) Presenter: Daniel Walzenbach Technologieberater.
MSDN Webcast: VB.NET für Einsteiger und Umsteiger, Teil 10 Die erste, eigene Klassenbibliothek (Level 100) Presenter: Daniel Walzenbach Technologieberater.
MSDN Webcast: VB.NET für Einsteiger und Umsteiger, Teil 2 Datentypen, Variablen, Namensräume, Ausdrücke und Operatoren (Level 100) Presenter: Daniel.
MSDN Webcast: VB.NET für Einsteiger und Umsteiger, Teil 5 Noch mehr Klassen und Strukturen (Level 100) Presenter: Daniel Walzenbach Technologieberater.
Presenter: Daniel Walzenbach Technologieberater
MSDN Webcast: VB.NET für Einsteiger und Umsteiger, Teil 9 Zeichenketten, Delegates und Events (Level 100) Presenter: Daniel Walzenbach Technologieberater.
Björn Schmidt, Hoang Truong Nguyen
Seite 1 Interface - Konzept Ein Interface führt einen neuen Datentyp ein: interface Frau {... } Das Interface enthält Deklarationen ( keine Definitionen.
Was umfaßt die CORBA Core Spezifikation? Welche zusätzlichen Komponenten muß ein ORB Produkt beinhalten? Core: CORBA Objekt Modell CORBA Architektur OMG.
University of Applied Sciences Übung Objektorientierte Programmierung II Dipl.-Inf. (FH) Markus Vogler.
Einführung in die Programmiersprache Java
Silverlight Eine Einführung. Agenda 1.Was ist Silverlight? 2.Die Silverlight Philosophie 3.Vorstellung des Szenarios 4.Einführendes Beispiel 5.Konzepte.
Informatik 1 Übung 8. NACHBESPRECHUNG Übung 8 Rekursion Existiert Weg von A nach B?
Entwicklung verteilter Anwendungen I, WS 13/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 12 Folie 2 Web Services (1)
SQL Server 2005 CLR-Integration
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt
Java und Eclipse.
Michael Köster User Experience Specialist Microsoft Corporation.
Consulting and Solutions.NET Vortragsreihe – Vorstellung der Referenten Happy Arts Software Markus Kämmerer IT-Erfahrung seit 1987,
Your name Bedeutung von Internet- Technologien Gruppe 1 Andreas Feuerstein Philipp Hochratner Christian Weinzinger.
Windows Presentation Foundation WS 2013/14 Prof. Dr. Herrad Schmidt
Windows Presentation Foundation, Vorlesung Wintersemester 2013/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 2 Folie 2 XAML (1) s.a.
Entwicklung verteilter Anwendungen I, WS 13/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 1 Folie 2 Microsoft.NET Framework: Quelle:
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt
Objektorientiertes Konstruieren
Vortrag: Visual Basic Neuerungen Autor : Dennis Hoyer
EPROG Tutorium #5 Philipp Effenberger
EPROG Tutorium #3 Philipp Effenberger
CuP - Java Vierte Vorlesung Entspricht ungefähr Kapitel 2.1 des Skriptums Montag, 14. Oktober 2002.
Starten der Entwicklungsumgebung (IDE)
Web und Mobile Apps Programmieren Marco Jakob Kurzvortrag OSS an Schulen
Microsoft.NET - Plattform Kurzer Überblick Vergleich mit Java Von Thomas Zahn Januar 2001.
Einführung in Java PING e.V. Weiterbildung Andreas Rossbacher 24. März 2005.
Microsoft Student Partner
C++ FÜR cOMPUTERSPIELENTWICKLER
JAVA - Einführung. © Übersicht Hintergrund und Geschichte Wie sieht ein JAVA Programm aus ? Was ist ein JAVA Programm ? Wie schreibt/übersetzt.
Implementieren von Klassen
 Präsentation transkript:

Visual Basic .NET & C# Die Qual der Wahl? BE2 - Visual Basic .NET & C# .NET - Überblick und Vergleich Visual Basic .NET & C# Die Qual der Wahl? Frank Prengel Technologieberater Microsoft GmbH frankpr@microsoft.com

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

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

BE2 - Visual Basic .NET & C# .NET - Überblick und Vergleich 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 MSMQ (Message Queuing) COM+ (Transactions, Partitions, Object Pooling) IIS WMI Win32

BE2 - Visual Basic .NET & C# .NET - Überblick und Vergleich 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 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 MSMQ (Message Queuing) COM+ (Transactions, Partitions, Object Pooling) IIS WMI Win32

BE2 - Visual Basic .NET & C# .NET - Überblick und Vergleich 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, ... VB C++ C# J# JScript … Visual Studio .NET What is the Common Language Specification? http://msdn.microsoft.com/library/en-us/cpguide/html/cpconwhatiscommonlanguagespecification.asp 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

BE2 - Visual Basic .NET & C# .NET - Überblick und Vergleich 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 VB C++ C# J# JScript … Visual Studio .NET Common Language Runtime http://msdn.microsoft.com/library/en-us/cpguide/html/cpconthecommonlanguageruntime.asp 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

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

BE2 - Visual Basic .NET & C# .NET - Überblick und Vergleich Basic für das neue Jahrtausend… bietet Features, die Entwickler bisher 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 Introduction to Visual Basic .NET for Visual Basic Veterans http://msdn.microsoft.com/library/en-us/vbcon/html/vboriIntroductionToVisualBasic70ForVisualBasicVeterans.asp

BE2 - Visual Basic .NET & C# .NET - Überblick und Vergleich 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

BE2 - Visual Basic .NET & C# .NET - Überblick und Vergleich 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

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

BE2 - Visual Basic .NET & C# .NET - Überblick und Vergleich Visual C# .NET erste konsequent komponentenorientierte Sprache der "C-Familie" Syntax ähnlich C++ & Java vereinfachte Programmierung keine Header-Dateien, Makros, IDL keine Mehrfachvererbung typsicher XML-Kommentare zwecks Dokumentation Visual C# Language http://msdn.microsoft.com/library/en-us/cscon/html/vcoriCStartPage.asp Comparison Between C++ and C# http://msdn.microsoft.com/library/en-us/cscon/html/vclrfComparisonBetweenCCSharp.asp

BE2 - Visual Basic .NET & C# .NET - Überblick und Vergleich 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)

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

BE2 - Visual Basic .NET & C# .NET - Überblick und Vergleich 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

BE2 - Visual Basic .NET & C# .NET - Überblick und Vergleich Gemeinsamkeiten Demo 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# Demo "MSIL_CHECKED" .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

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

Syntax: Grundlegendes BE2 - Visual Basic .NET & C# .NET - Überblick und Vergleich 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! [CLSCompliant(true)] verwenden "For two identifiers to be considered distinct, they must differ by more than just their case. "

Syntax: Grundlegendes BE2 - Visual Basic .NET & C# .NET - Überblick und Vergleich Syntax: Grundlegendes Anweisungstrennzeichen VB CR/LF (auch: ":") Zeilenfortsetzung: " _" Formatierung ist entscheidend! C# ; freie Formatierung möglich Blocktrennzeichen VB Sub ... End Sub (u.ä.)  keine beliebigen Blöcke möglich C# { ... }

BE2 - Visual Basic .NET & C# .NET - Überblick und Vergleich Syntax: Daten & Typen Datentypunterstützung Visual Basic .NET C# .NET CTS Object object System.Object String string System.String Byte byte System.Byte Short short System.Int16 Integer int System.Int32 Long long System.Int64 Single float System.Single Double double System.Double Boolean bool System.Boolean Char char System.Char Decimal decimal System.Decimal sbyte System.SByte ushort System.UInt16 uint System.UInt32 ulong System.UInt64 nicht CLS-konform

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

BE2 - Visual Basic .NET & C# .NET - Überblick und Vergleich Syntax: Daten & Typen Variableninitialisierung VB automatisches Initialisieren mit 0 oder Nothing nur bei Erzeugung (lokale Variablen!) C# explizites Initialisieren notwendig VB + C# Initialisieren bei Deklaration möglich: Dim i as Integer = 0 int i = 0; Wichtige Neuerung in VB.NET gegenüber VB6: Dim a, b, c As Integer erzeugt 3 Integer-Variablen(!)

BE2 - Visual Basic .NET & C# .NET - Überblick und Vergleich 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 } EXPLICIT: force expl. decl. of all variables default: OFF, if nothing specified if OFF, all vars are of type object STRICT: (neu in VB.NET) restricts implicit type conversions to only widening conversions OFF if nothing specified COMPARE: default comparison methods for strings Text: case insensitive

BE2 - Visual Basic .NET & C# .NET - Überblick und Vergleich Syntax: Daten & Typen Demo C# unterstützt außerdem: ?: ++ -- << >> operator overloading public static MyType operator –(MyType x){ ... } Testen auf Überlauf bei arithmetischen Operationen: checked / unchecked VB: IIf(a,b,c) Demo operator overloading: OP_OVERLOADING Demo checked/unchecked: MSIL_CHECKED

BE2 - Visual Basic .NET & C# .NET - Überblick und Vergleich 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; }

BE2 - Visual Basic .NET & C# .NET - Überblick und Vergleich Syntax: Funktionen Demo Select Case / switch VB Select Case i Case "Frank", "Michael" To "Paul" Console.WriteLine("Frank's group") Case o Console.WriteLine("It's John") Case 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: SWITCH_SELECTCASE

BE2 - Visual Basic .NET & C# .NET - Überblick und Vergleich Syntax: Funktionen Demo Verschiedenes VB Vorhandensein von Return in allen Rückkehrzweigen einer Funktion wird nicht geprüft Unterstützung optionaler Parameter OLE Automation! Unterstützung von Modulen Variablen & Funktionen Assembly-global Shared members: Zugriff über Typ oder Instanz Standardsichtbarkeit in Klassen: Public C# static members: Zugriff nur über Typ Standardsichtbarkeit in Klassen: private Demo Return: RETURN Demo optionale Parameter: OLEAUT Demo static members: OP_OVERLOADING

BE2 - Visual Basic .NET & C# .NET - Überblick und Vergleich Syntax: Objekte Aktuelle Instanz referenzieren VB Me C# this Konstruktoren VB Public Class AClass Public Sub New(ByVal n as String) ... End Sub ... End Class C# public class AClass { public AClass(string n) { ... } ... }

BE2 - Visual Basic .NET & C# .NET - Überblick und Vergleich Syntax: Objekte Destruktoren VB Protected Overrides Sub Finalize() ... C# ~AClass() { ... } Garbage Collector  nichtdeterministische Finalisierung besser: IDisposable.Dispose() zur expliziten Freigabe von Ressourcen in C# autom. Scoping durch using: using (Font myFont=new Font(...)) { ... }

BE2 - Visual Basic .NET & C# .NET - Überblick und Vergleich Syntax: Objekte Vererbung vs. Interface-Implementation VB Public Class DClass Inherits BClass Implements IInt Welche Methode implementiert welche? Sub X() Implements IInt.Y 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!) Demo "MultIFImpl"

BE2 - Visual Basic .NET & C# .NET - Überblick und Vergleich 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() ... End Sub C# public AClass() : base() { ... }  impliziter Aufruf des Default-C'tors

BE2 - Visual Basic .NET & C# .NET - Überblick und Vergleich Syntax: Objekte Events VB Dim WithEvents o as EventSource ... Event Happened(...) ... RaiseEvent Happened() ... Sub hendl() Handles o.Happened ... 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); Demo: EVENTS

BE2 - Visual Basic .NET & C# .NET - Überblick und Vergleich Syntax: Objekte Verschiedenes VB unterstützt With-Konstrukt: With myObj .SomeFct(x,y) .val = 42 End With Unterstützung von "Legacy"-VB-Anweisungen im Namensraum Microsoft.VisualBasic bequemes Verwenden von Late Binding Imports gewährt Zugriff auf Namensräume und Objekte C# unterstützt Parameter vom Typ out Visual Basic Runtime Namespace in Visual Studio http://msdn.microsoft.com/library/en-us/vbcon/html/vblrfVisualBasicRuntimeNamespaces.asp

Syntax: Verschiedenes BE2 - Visual Basic .NET & C# .NET - Überblick und Vergleich Syntax: Verschiedenes Unsafe Code VB n/a C# Zeiger etc. möglich: unsafe void Foo() { char* buf = stackalloc char[256]; ... } nicht durch die CLR verifizierbar Ausführung nur unter "verschärften" Sicherheitsbedingungen möglich

Syntax: Verschiedenes BE2 - Visual Basic .NET & C# .NET - Überblick und Vergleich Syntax: Verschiedenes Demo Dokumentation VB keine besondere Unterstützung manuelles Erstellen von Hilfe-Dateien Add-Ins (IntelliDoc) V.Next ... C# Spezielle Tags für XML-Dokumentation: /// <summary> Erste Klasse! </summary> /// <seealso cref="Class2"/> Generieren von Online-Dokumentation Demo: OP_OVERLOADING

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

BE2 - Visual Basic .NET & C# .NET - Überblick und Vergleich Sonstiges Class View VB Standard C# erweitert

BE2 - Visual Basic .NET & C# .NET - Überblick und Vergleich Sonstiges Echtzeit-Syntaxkontrolle VB Code Validation Background Compile (entdeckt Build Errors zur Entwurfszeit!) C# Verschiedenes VB Automatische End ... -Blockanweisungen Automatisches Einrücken von Code Automatische Groß-/Kleinschreibung C# Automatische {} -Klammerpaare Automatisches Einrücken (begrenzt)

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

Migration VB 6 VB .NET

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

VB6  VB .NET Sie entscheiden: Machen Sie einen Upgrade-Plan! 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?

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

BE2 - Visual Basic .NET & C# .NET - Überblick und Vergleich VB6  VB .NET Demo Demo: VB6_2_VBNET

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

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

Migration Visual C# Java

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#

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

BE2 - Visual Basic .NET & C# .NET - Überblick und Vergleich Java  C# Demo Demo: JAVA_2_CS

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

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

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

BE2 - Visual Basic .NET & C# .NET - Überblick und Vergleich Zusammenfassung VB C# .NET Sie haben die Q Sie haben die Sie haben die Qu Wahl!

BE2 - Visual Basic .NET & C# .NET - Überblick und Vergleich Fragen?

Weitere Informationen BE2 - Visual Basic .NET & C# .NET - Überblick und Vergleich Weitere Informationen INFO: "Differences Between Visual Basic .NET and Visual C# .NET" White Paper Is Available (Q308470) http://support.microsoft.com/default.aspx?scid=kb;EN-US;Q308470 Daniel Appleman "Visual Basic .NET or C#...Which to Choose?" http://www.desaware.com/Ebook2L2.htm Eric Gunnerson "A Programmer's Introduction to C#", Apress 2001 Daniel Appleman "Moving to VB.NET: Strategies, Concepts, and Code", Apress 2001 Bernd Marquardt "Performance in .NET", XML in Action 2002, Potsdam http://213.178.67.35/events/xmldevcon/Nachlese/Slides/N/N7.zip VB .NET Upgrade Guide http://msdn.microsoft.com/vbasic/techinfo/articles/ upgrade/guide.asp Java Language Conversion Assistant http://msdn.microsoft.com/vstudio/downloads/jca/default.asp

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

BE2 - Visual Basic .NET & C# .NET - Überblick und Vergleich Microsoft’s Vision Empower people software through great any time, any place, and on any device.