1 / 111

VB6 -> VB.NET 2008

VB6 -> VB.NET 2008. Mgr. Michal Neuwirth ISV Teachnical Readin e s s. Obsah. .NET Framework VB6 vs VB.NET 200 8 OOP API, COM, COM+ Windows Forms Přístup k datům Migration wizard. Co .NET přináší. Windows aplikace, Webové aplikace Windows a Web služby Konzolové aplikace

aimon
Download Presentation

VB6 -> VB.NET 2008

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. VB6 -> VB.NET 2008 Mgr. Michal Neuwirth ISV Teachnical Readiness

  2. Obsah • .NET Framework • VB6 vs VB.NET 2008 • OOP • API, COM, COM+ • Windows Forms • Přístup k datům • Migration wizard

  3. Co .NET přináší • Windows aplikace, Webové aplikace • Windows a Web služby • Konzolové aplikace • Aplikace pro mobilní zařízení • Aplikace pro TabletPC • Vývoj pro Servery – SQL, Biztalk, MOSS 2007, .... • Používání XML • Rychlý vývoj aplikací pomocí Visual Studia

  4. VB Runtime User Controls ActiveX Documents Forms Runtime Functions Memory Management Intrinsic Objects VB 6.0 aplikační prostředí VB Application Data Environment Web Classes Data Report Win32 API Calls ActiveX Designers Data Binding ActiveX Controls DirectX Typelib ADO COM Objects COM COM+ Services Operating System

  5. VB Runtime User Controls ActiveX Documents Forms Runtime Functions Memory Management Intrinsic Objects Přechod z VB6 na .NET VB Application Data Environment Web Classes Data Report Win32 API Calls ActiveX Designers Data Binding ActiveX Controls DirectX Typelib ADO COM Objects COM COM+ Services Operating System

  6. Data Environment Web Classes Data Report VB Runtime User Controls ActiveX Documents Forms ActiveX Designers Runtime Functions Memory Management Intrinsic Objects Data Binding ActiveX Controls DirectX Typelib ADO COM Objects Přechod z VB6 na .NET VB Application Win32 API Calls Common Language Runtime COM+ Services Operating System

  7. ASP.NETWeb Forms, Services Windows Forms ADO .NET and XML Base Class Libraries Přechod z VB6 na .NET VB Application Common Language Specification Win32 API Calls Common Language Runtime COM+ Services Operating System

  8. ASP.NETWeb Forms, Services Windows Forms ADO .NET and XML Base Class Libraries Přechod z VB6 na .NET Visual Studio.NET VB Application J# Other Languages… C# C++ Perl VB Common Language Specification Win32 API Calls Common Language Runtime COM+ Services Operating System

  9. ASP.NETWeb Forms, Services Windows Forms ADO .NET and XML Base Class Libraries .NET Framework a Runtime Visual Studio.NET J# Other Languages… C# C++ Perl VB Common Language Specification Win32 API Calls Common Language Runtime COM+ Services Operating System

  10. .NET Framework • Garbage Collector • Automatický systém na čištění paměti • Uvolňuje z paměti nepotřebné objekty, ne hned, ale v rámci garbage collection • Nastavení objektu na Nothing objekt nezničí, pouze připraví ke zničení • Assembly • Samopopisný soubor • Obsahuje metadata, výkonný kód, .... • Side by Side • Více verzí může běžet vedle sebe • Konfiguračním souborem lze nastavit jaké verze používat

  11. .NET Framework • Součástí .NET Frameworku • Microsoft.VisualBasic.DLL • Global Assembly Cache • Místo kam se „instalují“ sdílené assembly • Instalace • XCopy • .MSI • Click-Once • Cross-language a cross-platform ladění

  12. Code (IL) Zdrojový kód Kompilátor jazyka Assembly Metadata Nativní Kód JIT Compiler Vykonání Kompilace a běh aplikace Kompilace Při instalaci nebo při prvním zavolání každé metody

  13. Klient PC Click-Once instalace Web Server Setup.exe Setup.exe Dotnetfx.exe Dotnetfx.exe Mdac_typ.exe a Custom.msi Custom.msi Restart MDAC! Aplikace Aplikace a

  14. Visual Studio

  15. VB6 vs vb.net 2008

  16. Typy aplikací

  17. Typy projektů

  18. Datové typy • VB 2008 je silně typový jazyk, každá proměnná zná svůj typ v době překladu a musí bý inicializovaná hodnotou • Variantnení k dispozici • Fixní délka řetězců není k dispozici • Dim name As String * 15

  19. Pole • Option Base x • Ve VB6 určuje počáteční index polí • .NET má všechny pole od 0 -> Option Base není podporováno • Dim MojePole (5) = obsahuje 6 položek (0-5)

  20. Late binding • Některé defaultní vlastnosti se liší ve VB6 a VB.NET 'VB6 DimoAsObject Seto = Me.Label1 o = "SomeText"'default je Caption 'VB.NET DimoAsObject Seto = Me.Label1 o.Text = "SomeText"

  21. Cykly • While ... Wend • While ... End While

  22. Parametry funkcí • ByRef – default VB6 • ByVal – default VB 2008 • Optional - musí mít nastavenu výchozí hodnotu PublicSubTestSub(OptionalByRefp1AsString= "") EndSub

  23. Metody • ParamArray • pole objektů předem neznámého počtu • pouze jako poslední parametr • musí být explicitně uvedeno ByVal • pouze jedno-dimenzionální pole • všechny prvky mají stejný typ Sub StudentScores(ByVal Name As String, ParamArrayByVal Scores() As Integer) ……End SubStudentScores("Jamie", 10, 26, 32, 15, 22, 24, 16)

  24. Enum PublicEnumMyEnum FirstValue SecondValue ThirdValue EndEnum PublicSubTestEnum() Dime AsMyEnum e = SecondValue EndSub MyEnum.SecondValue

  25. Structure PrivateTypeMyType xAsInteger yAsInteger nameAsString End Type PublicSubTestUDT() DimudtAsMyType udt.name = "Joe" udt.x = 5 udt.y = 10 EndSub PrivateStructureMyType DimxAsShort DimyAsShort DimnameAsString EndStructure

  26. Vlastnosti PrivatemTextAsString PrivatemObjAsObject 'Text PublicPropertyGetText() AsString Text = mText EndProperty PublicPropertyLetText(ByValValue AsString) mText = Value EndProperty 'Object PublicPropertyGetObj() AsObject Obj = mObj EndProperty PublicPropertySetObj(ByValValue AsObject) SetmObj = Value EndProperty

  27. PrivatemTextAsString PrivatemObjAsObject PublicPropertyText() AsString Get ReturnmText EndGet Set(ByValValue AsString) mText = Value EndSet EndProperty PublicPropertyObj() AsObject Get Obj = mObj EndGet Set(ByValValue AsObject) mObj = Value EndSet EndProperty

  28. Vlastnosti • ReadOnly • obsahuje pouze blok Get • WriteOnly • obsahuje pouze blok Set • Set blok obsahuje implicitní parametr Value PublicReadOnlyPropertyObj() AsObject Get Obj = mObj EndGet EndProperty PublicWriteOnlyPropertyTextW() AsString Set(ByValValue AsString) mText_w = Value EndSet EndProperty

  29. On Error vs Try/Catch/Finally Try '<code that may fail> Catch ex As Exception '<error handling code> Finally '<clean up> End Try fReRaise = False fReRaise = False OnError GoTo ErrHandler '<code that may fail> GoTo CleanUp ErrHandler: If '<condition we can handle>Then '<error handling code> Else fReRaise = True End If CleanUp: If fReRaise Then Err.Raise errNum Try '<code that may fail> OnError GoTo ErrHandler '<code that may fail> Catch ex As Exception '<error handling code> ErrHandler: If '<condition we can handle>Then '<error handling code> Finally '<clean up> Else fReRaise = True End If CleanUp: If fReRaiseThen Err.RaiseerrNum

  30. Globální objekty

  31. Další vlastnosti

  32. Struktury souborů • VB6 • .frm, .frx, .cls, .ctl., .bas, .res, ..... • VB.NET • .vb, .resx

  33. oop

  34. Namespaces • Logické hierarchické třídění tříd • System.Windows.Forms • Zajišťuje jednoznačnost jmen • System.Windows.Forms • Neuwirth.Forms • Jmenný prostor může být rozložen do více souborů • Imports „zkracuje“ syntaktický zápis DimfrmForm1AsNewSystem.Windows.Forms.Form ImportsSystem.Windows.Forms DimfrmForm2 AsNewForm

  35. Objektové programování • VB6 částečně objektový • Nebyla podpora dědičnosti, pouze implementace interface • Nebyla podpora konstruktorů a destruktorů • VB 2008 • Vychází z konceptu .NET frameworku, kde je vše založeno na objektech • Plně objektový jazyk se vším všudy • Chybí jenom vícenásobná dědičnost

  36. Stav: • Jede • Sviti • Bourane • Kradene • ......... • Vlastnosti: • Barva • Výkon • Motor • Převodovka • Počet dveří • ......... • Metody (operace): • Nastartuj • Zastav • Rozsvit svetla • Zhasni • Otevri dvere • ......... Konstruktor Vytvoření nového automobilu Destruktor Sešrotování • Události: • Zastavil jsem • Rozsvítil jsem • Zhasnul jsem • Otevřel jsem dveře • ......... • Výjimky: • Prasklo kolo • Natural v diesel motoru • ......... Třída (objekt) automobil

  37. Základní pojmy • Encapsulation (zapouzdření) • třída je zapouzdřená jednotka obsahující kód a data • zakrytím detailů implementace, lze měnit kód uvnitř metod, bez ovlivnění klientů využívajících tyto metody • K datům přistupovat zásadně pomocí metod nebo je definovat jako vlastnosti! Nikdy napřímo!

  38. Základní pojmy • Inheritance (dědičnost) • vytvoření třídy na základě již existující • VB.NET umožňuje pouze dědičnost z jedné třídy • základní třída je rodič, odvozená je potomek • vícenásobná dědičnost za použití interface • Polymorphism (polymorfizmus) • dvě či více tříd definují vlastnost či metodu stejného jména • Metoda Nastup rodiče a potomka může mít odlišné chování • zajištěno přepisováním metod a vlastností

  39. Základní pojmy • Deklarace třídy • popis třídy a jejích členů (vlastnosti, metody, ….) • Instance třídy • deklarace proměnné určitého typu třídy PublicClassCar Private m_colorAsString PublicSubNew() m_color = "White" EndSub EndClass PublicmyCarAsNewCar()

  40. Tvorba instance • neexistuje SET • AS NEW ve VB6 vytvoří objekt inicializovaný na Nothing a až při prvním použití třídy je třída vytvořena • AS NEW v .NET rovnou vytvoří instanci • toto je stejné Dim Emp As New EmpObj Dim Emp As EmpObj = New EmpObj

  41. Modifikátory přístupu • Public • neomezený přístup (default) • Private • Protected • přístup z potomků • Friend • přístup pouze v rámci souboru, kde je třída deklarovaná • Protected Friend

  42. Dědičnost • Osobní automobil je potomek obecného automobilu PublicClassPKW InheritsCar Privatem_tzAsBoolean PublicSubNew() m_tz = False EndSub EndClass

  43. MyBase, MyClass • MyBase • slouží k odkazu na deklaraci rodiče dané třídy • lze přistoupit k public a protected členům • MyClass • slouží k odkazu na deklaraci dané třídy

  44. Prvky tříd • Konstanty • Private Const MyInt As Integer = 5 • Proměnné • Události • Metody • Vlastnosti • Indexer • Konstruktorya destruktory • Operátory

  45. Shared members • Vlastnosti, metody a proměnné, které jsou společné (sdílené) pro všechny instance dané třídy • „globální“ proměnná v rámci třídy • Inicializují se při natažení třídy do paměti • Patří třídě a nikoliv instanci • Shared metoda nemůže používat non-shared prvky • nelze použít Me ani MyClass Private Sharedkola as Integer PublicShared SubNastavKola() kola = 5 EndSub PKW.NastavKola()

  46. Shared members • Shared metoda nemůže používat non-shared prvky • nelze použít Me ani MyClass

  47. Instance members • Vše co nemá modifikátor Shared • Každá instance obsahuje vlastní, separátní kopii proměnných • Me • ekvivalent this z C/C++/C# • aktuální instance dané třídy • lze použít s IS a též přiřadit proměnné

  48. Konstruktor • Nahrazuje událost Class_Initializez VB6 • Má jméno New() • Třídy lze poté volat s New() • Dim FirstClass as New MyClass() • Lze volat konstruktor rodičovské třídy (pouze v instance konstruktoru) • MyBase.New() • Lze volat konstruktor z jiného instance konstruktoru dané třídy • MyClass.New(0) • Instance konstruktor musí explicitně jako první příkaz zavolat jiný konstruktor • MyClass.New(), MyBase.New()

  49. Konstruktor • Parametrizovaný konstruktor PublicClassCar Privatem_sedadlaAsInteger PublicSubNew(ByValiAsInteger) MyBase.New() m_sedadla = i EndSub EndClass

More Related