680 likes | 931 Views
Uppgradera till Visual Basic .NET. Per Ahlberg Johan Lindfors. Hur kan vi bli bättre. Era utvärderingar är viktiga! Betygsätt innehåll, talare, relevans Kommentera gärna Kommentarer förra kvarttalet Mer Visual Basic Jättebra att kunna ställa frågor innan seminariet
E N D
Uppgradera till Visual Basic .NET Per Ahlberg Johan Lindfors
Hur kan vi bli bättre... • Era utvärderingar är viktiga! • Betygsätt innehåll, talare, relevans • Kommentera gärna • Kommentarer förra kvarttalet • Mer Visual Basic • Jättebra att kunna ställa frågor innan seminariet • Vegetariska alternativ borde finnas
Vad har vi pratat om tidigare? • En hel del saker... • Windows Server 2003 • Säkerhet i .NET Framework • XML Web Services • J2EE och .NET • Java vs C# • Smarta klienter • .NET Compact Framework • Office 2003
Vad kommer vi prata om... • Idag • VB 6.0 till VB.NET • Nästa gång – februari/mars • Säkerhet, säkerhet, säkerhet • Och gången därpå – innan sommaren • Det vet jag inte än... • Jag jobbar på Longhorn, Whidbey, Yukon • Eller C++???
Lokala resurser för utvecklare • MSDN Flash • Regelbundet nyhetsbrev • MSDN Live • Regelbundna seminarier • MSDN Chatt • Ge feedback, ställ frågor • MSDN Webb • www.microsoft.se/msdn
MSDN TV • Presentationer och demonstrationer • Runt 30 minuter långa • 1-2 demonstrationer • Se på nätet eller ladda ner! • 17 sessioner just nu • C# • Visual Basic .NET • Säkerhet • DirectX
MSDN Prenumerationer • Prioriterad tillgång till mjukvara • Automatisk månadsvis uppdatering • Library • Operating Systems • Professional • Enterprise • Universal
Globala resurser för utvecklare • ”Developer Centers” • Säkerhet • Longhorn • Utbildning • MSDN TV • ”WebCasts” • Artiklar • Kod http://msdn.microsoft.com
PAG • Prescriptive Architecture Guidance • Relevanta tips • Konkreta förslag • Omfattande lösningar • Tekniskt bevisade • Fritt att ladda hem!
Empowerment – speciellt för ISV • Vad får jag? • Upp till fem licenser av • Windows XP/2000 Professional • Office XP/2000 Premium eller Developer • En serverlicens och fem CAL • Windows 2000/2003 Standard eller Enterprise • Exchange 2003 Standard eller Enterprise • SQL Server Standard eller Enterprise • SharePoint Portal Server • Fem stycken MSDN Universal-prenumerationer
Empowerment – speciellt för ISV • Jag åtar mig att utveckla en produkt för • Windows Server 2003, XP eller 2000 • SQL Server 2000 • Pocket PC eller Smartphone • Vad kostar det? • 375 USD • Kontakta: evakan@microsoft.com www.microsoft.com/sverige/partner/Empower_ISV_SE.asp
Agenda • Visual Studio .NET • Utvecklingsmiljön • Uppgradera till Visual Basic .NET • Att uppgradera • Verktyg • Windowsformulär och komponenter • ADO/XML • Webblösningar • Win32 API • Utrullning och installation
Nyheter i utvecklingsmiljön • Alla projekt och lösningar i samma miljö • Webbutveckling/Webbservices • Windows applikationer • Mobila lösningar • Windows services • Office 2003 • Gemensamma verktyg för alla språk/lösningar
01 Nyheter i utvecklingsmiljön • ”Rapid Application Development” (RAD) • Icke grafiska kontroller placeras separerat från UI • Arv med grafiska gränssnitt syns direkt • Ny meny editering • Handtag, dockning, låsa egenskaper • Ändra storlek på många kontroller • Plus mycket, mycket mer…
Kontrollskott! • Var ändrade Per typsnitt för texteditorn? • Vad står PAG för? • Vad är adressen till svenska msdn-webben?
Tips och Tricks! • Ta bort Microsoft.VisualBasic namnrymden! • Project | Common Properties | Imports • Koden som genereras av verktyget är bra kod! • Använd som exempelkod • Hjälptexten är gigantisk! • Lär dig att hitta och kopiera från exempel! • Lär dig hitta på nätet! • www.google.com • msdn.microsoft.com • www.pellesoft.se • www.gotdotnet.com • www.windowsforms.net
Agenda • Visual Studio .NET • Utvecklingsmiljön • Uppgradera till Visual Basic .NET • Att uppgradera • Verktyg • Windowsformulär och komponenter • ADO/XML • Webblösningar • Win32 API • Utrullning och installation
Visual Basic .NET • Inte bara Visual Basic 6.0 + 1 • Byggt för .NET Framework • Common Language Runtime (mscoree.dll) • Alla basklassbibliotek (mscorlib.dll + andra) • Moderniserad och uppstädad syntax • Helt och hållet objektorienterat språk
CLR: Nyckelfunktioner • Stöd för flera programspråk • Delade typer (Common Type System) • Ersätter delar av COM:s exekveringslager • Automatisk städning av objekt • ”Garbage Collection” • Stöd för multitrådning • Inbyggd säkerhet, ned på kod nivå • Kodbaserad, bevisbaserad
02 Visual Basic .NET • Förbättrat arv av interface • Överskrivning (override) och överlagring (overload) • Konstruktorer med parametrar • Strukturerad felhantering - SEH • (Try…Catch…Finally…End Try) • Genvägar Dim cnSql As New SqlConnection(strConn) Private i,x,y As Int32 i+=1, strName &=“Bob” For Each s As String In X
03 Visual Basic .NET – Viktiga nyheter • MessageBox.Show(“Hello World”) • ByRef eller ByVal krävs • Eventhanterare • Använder nyckelordet ”Handles” • Gemensam signatur • Arrays börjar nu alltid på 0 • Varianter finns ej längre, ”object” istället • Property…End Property Handles Button1.Click, Button2.Click (sender As Object, e As xxxEventArgs)
Visual Basic .NET - Upprensning • Borttaget • Def... • Imp, Eqv • Funkar faktiskt men… • GoTo [Line no.] • Ta bort • GoSub…Return • LSet, VarPtr, ObjPtr, StrPtr
Visual Basic .NET - Datatyper • Heltal: • Flyttal • Currency ersatt av Decimal
04 Visual Basic .NET – Till sist... • Det är fortfarande Visual Basic • Körs endast med .NET Framework • RAD för både Windows och Webb • < 100% bakåt kompabilitet • VBA • Inte ett .NET språk • Kommer leva kvar!
Uppgradering • Alternativ • Delvis uppgradering (använd COM interop) • Utvärdera fördelar • Ger det mer värde? • Ökad prestanda? • Ökad skalbarhet? • Utvärdera kostnader • Kan jag använda uppgraderingshjälpen? • Storlek och komplexitet? • Befintlig kvalitet på kod? • Drar fördel av .NET Framework? • Nytt språk och ny arkitektur? • Applikationens livslängd?
Uppgradering - förberedelser • Bryt upp applikationer i mindre projekt • Slå fast förhållandet mellan applikationerna • Kör ”Upgrade Wizard” • Beräkna tidsåtgången för varje del • Förbereda, uppgradera, fixa • Designa om och testa
Uppgradering • Kör sida vid sida • VB6 & Visual Studio på samma maskin • Installera i vilken ordning som helst • Använd ”Upgrade Wizard” • ActiveX kontroller ändras ej • Kör Visual Basic 6.0 under uppgradering • Ändrar ej originalet
05 Verktyg - ”Upgrade Wizard” • Fel som inte hanteras • Dim x As New y • Vissa typ-konverteringar • Egenskaper skickade med ByRef • Dim x()ReDim x(5,5) • Vissa funktioner på ActiveX kontroller
06 Verktyg - ”Code Snippet” • Vad är det? • Ett inbyggt verktyg i Visual Studio .NET • Alternativ till projekt konvertering • Gjort för kod snuttar • Fungerar bra med ASP till ASP.NET också!
07 Verktyg – ”Code Advisor for VB6” • Vad är det? • Add-in till Visual Basic 6 • Ger förslag direkt i VB6 koden • Vad som inte kommer att fungera • Vad som bör göras • ”Best practices”
08 Användargränssnittet • Windows Forms på det nya sättet • Windows Forms med .NET klasser • Bättre grafik med GDI+ • Genomgånde förändringar: • Gemensam utvecklingsmiljö • Kontroller och händelser • Globalisering / lokalisering Dim frm As New Form1 frm.Show() ‘eller frm.ShowDialog()
Användargränssnittet • Vissa nya eller mycket förbättrade kontroller • LinkLabel, NotifyIcon • MainMenu, ContextMenu • Hjälpkontroller • ToolTip • ErrorProvider • HelpProvider • ToolBar • Splitter
09 Användargränssnittet • Borttagna eller ersatta kontroller • Spinner • Line and Shape • DirListBox, FileListBox, DriveListBox • CommonDialog • Image • Frame
Användargränssnittet • Ändringar för mushändelser • Nya mushändelser: • MouseEnter, MouseHover, MouseLeave • MouseWheel • MouseEventArgs objektet: • Button • X, Y • Clicks • Delta • Grafiska kontroller ger också åtkomst till mushändelser
10 Användargränssnittet • Arbeta med Drag-and-Drop • Mellan kontroller - samma som mellan applikationer • Ungefär samma koncept som i Visual Basic 6.0 • Inget support för automatisk drag-and-drop • AllowDrop = True • Alla händelser utom DragLeave får DragEventArgs: • AllowedEffect • Data • Effect • KeyState och X,Y
11 Komponenter • Ofta relativt enkla att uppgradera • Rena klasser utan användargränssnitt • Redan delvis objektorienterade • Fundera på ny arkitektur • WebServices alternativt .NET Remoting • Använda Dataset, XML • Fungerar även mot VB6 • COM interop
Kontrollskott! • Try... Catch... ???... End Try • Går det att skapa en event-hanterare i runtime? • Nämn tre verktyg för uppgradering av kod!
Tips och Tricks! • Förbered VB 6 kod för uppgradering: • Använd inte: • Default-egenskaper • ”Late Binding” • Varianter • Använd ”Code Advisor”! • Använder du ActiveX kontroller? • Kontrollera med leverantör om .NET versioner finns tillgänliga!
Agenda • Visual Studio .NET • Utvecklingsmiljön • Uppgradera till Visual Basic .NET • Att uppgradera • Verktyg • Windowsformulär och komponenter • ADO/XML • Webblösningar • Win32 API • Utrullning och installation
ADO till ADO.NET • Vad är ADO? • ActiveX Data Objects • COM baserat • Många olika data källor • Både kopplad och frånkopplat • Begränsat stöd för XML • Fungerar fortfarande i Visual Basic.NET! • Färdiga ”COM” wrappers för ADO
ADO.NET ADO.NET Konsumenter Data Providers Windowsformulär DataAdapter DataSet Webbformulär Connection Command Övriga DataReader
ADO.NET Scenarios • Kopplat • Connection, command, data reader • Mellan lager • Data adapter • Urkopplat • DataSet, DataTable, DataView, and others
12 ADO till ADO.NET • Connection objektet • Väldigt likt ADO Connection objekt • Command • Väldigt likt ADO Command objekt • Data reader • Framåt, endast-läsing recordset • Data adapter • Ingen motsvarighet i ADO • DataSet • Representation i minnet av en databas
13 MSXML till .NET XML • Microsoft XML Core Services • MSXML 4.0 Service Pack 2 • COM Objekt • I princip samma DOM objekt modell • Fast lite annorlunda klassnamn • System.XML namnrymden • MSXML ServerXMLHTTP/XMLHTTP • http post/get för ”hand” • Använd HttpWebRequest, HttpWebResponse • Använd Webservice i stället
Utmaningar med klassisk ASP • Läsbarhet av kod, mycket kod! • Komplex “PostBack”-hantering • Återanvändning • Prestanda • Låsning av DLL’er • Utrullning • Sessioner • Cachning
Nyheter i ASP .NET • Ny arkitektur • .NET Framework • Web Forms, serverkontroller, Web Services • Tillförlitlighet • Konfigurering • Tillståndshantering • Säkerhet • Cachning
Begäran Svar 6 1 7 9 8 2 5 3 4 Arkitekturen i ASP.NET ASP.NET HTTP Runtime Moduler Sidhanterare ”Page Handlers” ASPXmotor Instans ”Page” ASP.NET sida Klass ”Page”
WebForms • Filändelsen är .ASPX • Nytt ”Page” direktiv • WebForm är en objektmodell • Händelsestyrt • Exekveras både på klient och server <%@ Page Language="vb" Inherits=”klass"%> <form id="Form1" method="post" runat="server"> <asp:Button id="Button1" runat="server“ Text=“Tryck“/> </form>