Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Migration nach VB.NET Jens Häupel Developer Platform & Strategy Group Microsoft Deutschland GmbH

Ähnliche Präsentationen


Präsentation zum Thema: "Migration nach VB.NET Jens Häupel Developer Platform & Strategy Group Microsoft Deutschland GmbH"—  Präsentation transkript:

1 Migration nach VB.NET Jens Häupel Developer Platform & Strategy Group Microsoft Deutschland GmbH

2 Agenda Top News - Was ist IN und was OUT Neuigkeiten, Änderungen Migration Bevor es losgeht Die Umstellung Technologien für den Teilupgrade Gegenüberstellung VB6 – VB.NET Performance Produktivität

3 VB.NET = VB6 + 1 = VB7? Neues Konzept, neue Basis Designed für.NET Framework CLR, Base Class Library Modernisierte und aufgeräumte Sprache Neue Sprachfeatures Komplett neue Architektur Komplett objektorientiert

4 VB.NET - Top News

5 Neues aus der IDE Eine IDE für alle Projekte/Solutions Web Development Desktop Development Mobile Development Start-Seite bietet Zugriff auf Projekte Online-Ressourcen Server Explorer SQL Server-Administration Zugriff auf System-Ressourcen

6 Neues aus der IDE Eine IDE für alle.NET-Sprachen MyProfile Intelligente Code-Formatierung Regions Dynamische Hilfe Aufgabenbereich Syntaxfehler Benutzerdefinierte Kommentare

7 Neues aus der IDE Klassenansicht Floating Windows XML Schema Designer Visual Studio Installer Custom Actions als.NET Code Benutzerdefinierte Dialoge Macro Explorer Integrierter Internet Explorer

8 Neue Features von VB.NET Überladung von Funktionen Verschiedene Signaturen Überschreiben von Funktionen Bsp: Ableiten von best. Control Dock / Anchor - Properties Protected Overrides Sub WndProc(ByRef msg As Message) ' Do something ' Finally: Pass message to default handler: MyBase.WndProc(msg) End Sub Protected Overrides Sub WndProc(ByRef msg As Message) ' Do something ' Finally: Pass message to default handler: MyBase.WndProc(msg) End Sub

9 Neue Features von VB.NET Einfach verbindend: WebServices ASP.NET – Code Behind Prinzip no more Visual Interdev GDI+ Visuelle Effekte (Opacity) Leichtere Lokalisierung Visueller Menüeditor

10 Neue Features von VB.NET Common Type System Identische Typen für alle Sprachen Strukturierte Ausnahmebehandlung Try 'execute some code Catch ix As System.IO.FileLoadException 'Handle IO Exception Catch sx As System.Security.SecurityException 'Handle Security Exception Catch ex As System.Exception When Exp=True 'Handle general Exception Finally 'Execute this code always when Try block is being left End Try Try 'execute some code Catch ix As System.IO.FileLoadException 'Handle IO Exception Catch sx As System.Security.SecurityException 'Handle Security Exception Catch ex As System.Exception When Exp=True 'Handle general Exception Finally 'Execute this code always when Try block is being left End Try

11 Neue Features von VB.NET Attribute Multithreading Völlig neues Objektkonzept Vererbung Class Object: Die Mutter aller Objekte Visual Tab Order Editing

12 Sprachliche Änderungen Array-Basis: 0 Private i, x, y As Integer i += 1, strName &= Bob, etc. For i As Integer = 0 To 10 ByRef / ByVal erforderlich Datentypen Byte : 8 Bit Integer : 16 Bit Long : 32 Bit Byte : 8 Bit Short : 16 Bit Integer : 32 Bit Long : 64 Bit in VB6in VB.NET

13 Ausgediente Controls Spinner Line und Shape DirListBox, FileListBox, DriveListBox CommonDialog Image Frame DomainUpDown, NumericUpDown System.Drawing Namespace OpenFileDialog, SaveFileDialog Color-, Font-, PageSetup-, PrintDialog PictureBox GroupBox, Panel

14 Strengere Typüberprüfung = Knebelung des Programmierers? Vermeidet Programmierfehler Erzwingt explizite Konvertierung Option Strict On Implizite Konvertierung Dim d1 As Double Dim s1 As String s1 = "12,3" d1 = s1 Dim d1 As Double Dim s1 As String s1 = "12,3" d1 = s1 12,3 oder 123 ?

15 Namespaces Gruppieren verwandte Objekte FileIO, Security, WinForms, … Voll qualifizierte Namen für Objekte MyGraphicLib.Drawing.Pen vs. AnotherPersonsGraphicLib. Drawing.Pen Vermeiden Namenskonflikte Import von Namespaces Imports System.IO

16 VB.NET vs. C# Case-Insensitiv Automatische Änderung der Variablenschreibweise im ganzen Code Optionale Parameter Intellisense Intelligente Formatierung Background-Kompilierung Syntax-Check während der Eingabe Aufgabenliste

17 Migration nach.NET - Bevor es losgeht

18 Vorüberlegungen Alles umstellen, teilweise oder gar nicht Modular oder monolithisch? Größe der Projekte Abgeschlossen oder in ständiger Weiterentwicklung Art der Projekte Verwendete Technologien und Sprachelemente Codequalität

19 Auswahl / Bewertung Welche Vorteile bringt die Umstellung? Standardisierung auf einer Plattform Skalierbarkeit Verbesserung der Architektur Einfachere Weiterentwicklung Bessere Interoperabilität mit anderen Sprachen Neue Features, bessere Leistung Aufwand bewerten Schritte planen

20 Upgrade Überlegungen Nicht-upgradebare Technologien TechnologieEmpfehlung Visual Basic 6.0 drawing modelIn VB6 belassen oder in GDI+ neu DAO and RDO data bindingUpdate nach ADO oder ADO.NET Dynamic Data Exchange (DDE)In VB6 belassen oder alternate Methode verwenden OLE Container ControlIn VB6 belassen Visual Basic 5.0 controlsUpgrade nach Visual Basic 6.0 bzw. Danach nach Visual Basic.NET DHTML ApplicationsLeave; can work with.NET Microsoft ® ActiveX ® Arbeitet über COM interop mit.NET Property pagesIn VB6 belassen UserControlsIn VB6 belassen - can work with.NET WebClassesIn VB6 belassen - can work with.NET

21 Wie herangehen? Aufspalten in Teilprojekte COM Komponenten weiter verwenden COM Interop Abhängigkeitshierarchie (Client Middle Tier Server) Client Middle Tier Server COM Interop.NET COM.NET

22 Migration: Vorbereitung Code vor dem Konvertieren analysieren Alte Konstrukte beseitigen DefInt, DefStr, Def*… GoTo, GoSub.. Return VarPtr, ObjPtr, StrPtr, Lset Option Base <> 0 Strings fester Länge Implizite Deklaration Private Sub Test() Variable1 = "Test" Variable1 = Varialbe1 & "-Lauf" Debug.Print Variable1 End Function Private Sub Test() Variable1 = "Test" Variable1 = Varialbe1 & "-Lauf" Debug.Print Variable1 End Function

23 Migration: Vorbereitung Alte Konstrukte beseitigen Implizite Typkonvertierung Late Binding Werte für Konstanten Variants Private Function Test(x, y) Test = x + y End Function Private Function Test(x, y) Test = x + y End Function Me.MouseCursor = 3 Me.MouseCursor = 3

24 Migration: Vorbereitung Implizite Erstellung von Instanzen Dim c as MathLib.MyClass Set c = New MathLib.MyClass c.CallAMethod Set c = Nothing c.CallAMethod Dim c as MathLib.MyClass Set c = New MathLib.MyClass c.CallAMethod Set c = Nothing c.CallAMethod Dim c as New MathLib.MyClass c.CallAMethod Set c = Nothing c.CallAMethod Dim c as New MathLib.MyClass c.CallAMethod Set c = Nothing c.CallAMethod ' RunTime Error ' will execute

25 VB6 Code Advisor Migrationsanalyse in VB6 Download URL: 4D40-B015-0CAA02634FAE&displaylang=en

26 Migration nach.NET - Die Umstellung

27 VB.NET Upgrade Wizard VB6 und VB.NET installiert Ebenso: verwendete Controls Keine gegen- seitige Beeinflussung

28 VB.NET Upgrade Wizard Es ist Ihr Code! Struktur bleibt erhalten Kommentare ebenso Microsoft.VisualBasic.Compatibility Prinzipien

29 VB.NET Upgrade Wizard

30 Nach dem Auto-Upgrade UpgradeReport.htm Inline Kommentare Log File UpgradeSupport.VB Referenzen Alte COM Controls TypeLibraries Microsoft.VisualBasic.Compatibility

31 UpgradeReport

32 Code-Änderungen Kommentare im Code UPGRADE_ISSUE UPGRADE_TODO UPGRADE_WARNING UPGRADE_NOTE

33 UpgradeSupport.vb Friend-Objekte DAO, RDO, …

34 Upgrade Sample Demo: Upgrade eines VB6-Programmes

35 Endziele Verzichten auf die Compatibility Lib.NET Befehle verwenden Keine ActiveX Controls.NET Controls einsetzen Keine Win32 APIs.NET Klassen verwenden

36 Code Snippet Tool Visual Studio.NET IDE Tool Teilupgrade per Snippet Cut & Paste Type Code

37 Technologien für den Teilupgrade

38 Hello COM -.NET is calling COM Components in.NET.NET object COM object RCW IUnknown IDispatch.NET Components in COM COM object CCW.NET object IUnknown IDispatch

39 COM in.NET Runtime Callable Wrapper (RCW) Erzeugen / Binden an COM Objekt Bedient COM Interfaces und übernimmt Transformation in managed Code Data Marshaling Lifetime Managment des COM Objekts COM HRESULT.NET Exceptions Beachten Sie Datentypen (variants,...) Primary Interop Assemblies (PIA) Deployment

40 .NET in COM COM Callable Wrapper (CCW) Erzeugen / Binden an managed Objekt Simuliert COM interfaces (IUnknown and IDispatch) Data Marshaling Lifetime Managment der.NET Komponente.NET Exception COM HRESULT Beachten Sie Datentypen (Variants,...) Default constructor Deployment

41 Upgrade von ActiveX Controls Einige Controls werden nicht supported Einige Controls wurden ersetzt in.NET Alle anderen per Wrapper-Klassen A.ocx Interop.AxA. DLL AxInterop.AxA.DLL Windows Form COM Interop COM Interop Translation Translation Extended properties Extended properties

42 VB6 - VB.NET - Gegenüberstellung

43 Eventhandling in VB6 Ein Eventhandler für jedes Objekt

44 Eventhandling in VB.NET Eine Routine behandelt mehrere gleiche Events Handles-Klausel Signatur

45 Menüs in VB.NET Wysiwyg Menü-Editor Eventhandler Private Sub OnClickHandler(ByVal sender As System.Object, _ Private Sub OnClickHandler(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles mnuProp.Click ByVal e As System.EventArgs) Handles mnuProp.Click End Sub End Sub

46 Context-Menüs in VB.NET Private Sub MouseUpHandler(ByVal sender As Object, _ ByVal e As System.Windows.Forms.MouseEventArgs) _ ByVal e As System.Windows.Forms.MouseEventArgs) _ Handles MyBase.MouseUp Handles MyBase.MouseUp If e.Button = MouseButtons.Right Then If e.Button = MouseButtons.Right Then ContextMenu1.Show(Me, New Drawing.Point(e.X, e.Y)) ContextMenu1.Show(Me, New Drawing.Point(e.X, e.Y)) End If End If End Sub End Sub Private Sub MenuOnClickHandler(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles mnuSendMail.Click ByVal e As System.EventArgs) Handles mnuSendMail.Click Dim mnuItem As MenuItem = DirectCast(sender, MenuItem) Dim mnuItem As MenuItem = DirectCast(sender, MenuItem) ' Do something ' Do something End Sub End Sub Eventhandler Anzeigen des Menüs

47 File IO in VB6 4,2 s für 1000 Durchläufe

48 File IO in VB.NET.NET-Methode Traditionelle VB-Methode 2,6 s 1,3 s für 1000 Durchläufe

49 DoDragDrop() Drag & DropMouseDown DragEnter DragDrop e.Effect e.Data.GetData() Target Control Source Control DragDropResult

50 Drag & Drop Demo: Drag & Drop eines Bitmap

51 Drucken in VB.NET Globales Printer Object wird ersetzt durch: PrintDocument PrintDialog PrintPreview (sichtbar) PrintPreviewDialog MSDN:.NET Framework QuickStarts.NET Samples - Windows Forms: Printing MSDN:.NET Framework QuickStarts.NET Samples - Windows Forms: Printing

52 Drucken: Prinzip PrintPage Event:

53 Win32 APIs bzw. Pinvoke Aufruf von unmanaged System Code Pinvoke in VB.NET Win32 APIs in VB6 Kein 'As Any' Type mehr in.NET !!

54 PInvoke (advanced) Attribute spezifizieren genauer

55 Win32 API.NET Framework bieten Win32 API Funktionalität Leichter nutzbar als Win32 API Framework Class Library Beispiele System.Diagnostics System.Drawing System.Environment System.Win32 u.a.

56 ADO versus ADO.NET ActiveX Data Objects Vielzahl von Datenquellen Connected und disconnected XML Support enthalten COM-basierend Native.NET Komponente Vielzahl von Datenquellen Entwickelt für ver- bindungslosen Zugriff Von vorn herein für XML entwickelt.NET-basierend ADO ADO.NET

57 ADO versus ADO.NET Demo: Migration von ADO-Projekten

58 Angebot VB Resource Kit (im Web) Special Offer: VB Res Kit + VS.NET Trial Version 60 Tage testen Sample Apps: WinForms, Web, Data Access, WebServices ComponentOne Studio Enterprise Free & Trial Components Tech. Infos zum Upgrade nach VB.NET Tools

59

60 Ressourcen

61 MSDN GotDotNet: The Microsoft.NET Framework Community Bücher: form/ref=sr_sp_go_as/ form/ref=sr_sp_go_as/ Community Newsgroups auf msnews.microsoft.com

62 For More Information… 101 Visual Basic Code Samples msdn.microsoft.com/vbasic/downloads/samples/ For Windows developers windowsforms.net (TaskVision) For Web developers (ASP.NET Starter Kits) Time Tracker Reporting eCommerce (IBuySpy store) Portal (IBuySpy portal) Community Upgrading msdn.microsoft.com/vbasic/techinfo/articles/ upgrade/

63 Training and Events MSDN Webcasts, MSDN Online Seminars, Tech·Ed, PDC, Developer Days MSDN Essential Resources for Developers Subscription Services Online Information Membership Programs Print Publications Library, OS, Professional, Enterprise, Universal Delivered via CD-ROM, DVD, Web MSDN Online, MSDN Flash, How-to Resources, Download Center MSDN User Groups MSDN Magazine MSDN News

64 How-to Resources Simple, Step-by-Step Procedures Embedded development How-to resources General How-to resources Integration How-to resources JScript.NET How-to resources Microsoft.NET development How-to resources Office development resources Security How-to resources Microsoft Visual Basic.NET How-to resources Microsoft Visual C#.NET How-to resources Microsoft Visual Studio.NET How-to resources Web development How-to resources (ASP, IIS, XML) Web services How-to resources Windows development How-to resources

65 MSDN Webcasts Interactive, Live Online Events Interactive, synchronous, live online events Discuss the hottest topics from Microsoft Open and free for the general public Take place every Tuesday

66 MSDN Subscriptions The Way to Get Visual Studio.NET Visual Studio.NET MSDN Subscriptions NEW Professional Tools to build applications and XML Web services for Windows and the WebTools to build applications and XML Web services for Windows and the Web MSDN Professional MSDN Enterprise MSDN Universal Enterprise Developer Enterprise lifecycle toolsEnterprise lifecycle tools Team development supportTeam development support Windows Server 2003 and SQL ServerWindows Server 2003 and SQL Server Enterprise Architect Software and data modelingSoftware and data modeling Enterprise templatesEnterprise templates Architectural guidanceArchitectural guidance

67 Where Can I Get MSDN? Visit MSDN Online at msdn.microsoft.com Register for the MSDN Flash newsletter at msdn.microsoft.com/flash Become an MSDN CD subscriber at msdn.microsoft.com/subscriptions MSDN online seminars msdn.microsoft.com/training/seminars Attend more MSDN events

68 Microsoft Press ® Essential Resources for Developers Microsoft Visual Studio.NET is here! This is your chance to start building the next big thing. Develop your.NET skills, increase your productivity with.NET books from Microsoft Press

69 Microsoft Certified Solution Developer What is MCSD? Premium certification for professionals who design and develop custom business solutions How do I attain MCSD certification? Certification requires passing four exams to prove competency with Microsoft solution architecture, desktop applications, distributed application development, and development tools Where do I get more information? For more information about certification requirements, exams, and training options, visit

70 Training Training Resources for Developers Course Title: Course Number: Application Upgrade and Interoperability with Visual Studio.NET Availability: 2571 Detailed Syllabus: To locate a training provider for this course, please access Microsoft Certified Technical Education Centers are Microsofts premier partners for training services

71 Basics of Visual Basic.NET.NET Framework and Tools Operating System Common Language Runtime Base Class Library ADO.NET and XML ASP.NET Web Forms Web Services Mobile Internet Toolkit WindowsForms Common Language Specification Visual Basic C++C# Microsoft ® Visual J# ® … Microsoft ® Visual Studio ®.NET

72 © 2003 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary. Microsoft, MSDN, Visual Basic, Windows, Visual J#, Visual Studio, Visual C#, Visual C++, IntelliSense, ActiveX, JScript, and Microsoft Press are either registered trademarks or trademarks of Microsoft Corporation in the United States and/or other countries. The names of actual companies and products mentioned herein may be the trademarks of their respective owners.


Herunterladen ppt "Migration nach VB.NET Jens Häupel Developer Platform & Strategy Group Microsoft Deutschland GmbH"

Ähnliche Präsentationen


Google-Anzeigen