Uppgradera till Visual Basic.NET Per Ahlberg Johan Lindfors.

Slides:



Advertisements
Liknande presentationer
Snabbguide och tips.
Advertisements

Tomas Sandström, Adtollo
Skapa ett video-CV på YouTube
Formulär Tänkte nu gå igenom vad ett formulär är och hur man kan skapa dem i Access.
API skillnader EPiServer 7 - CMS6R2 Uppgradering från CMS6R2
Scouttåget i Malmö, 6 april 2013 Pontus Vinderos
Hur kan drift av Topobase underlättas ?
BPOS till Office 365 – övergång för befintliga BPOS-kunder
Migrera befintliga system till Windows Azure
void hittaMax(int tal[], int antal, int *pmax) { int i; ??=tal[0]; for(i=1;i??) ??=tal[i]; } int main() { int v[]={1,2,3,4,2}; int.
Fujitsu 1. © Fujitsu 2008 Stockholm Libris inspirationsdag Kristian Wallin Anne Sandfær Fujitsu Services A/S.
Access med Sebastian och Robert
Frågor Allmän IT-kunskap avsnitt 1 kapitel 1 Repetition 4
Göran Husman Office 365 MVP / HumanData AB
Mjukvara och nätverk Vad är det?.
Programmering B PHP Lektion 1
Lokala teknikmiljöer Utredning GEM-0001-A NUAK Jenny H Svensson, Projektledare.
”Ett sätt att distribuera Business Objects via webben”
Sweden SharePoint User Group WictorWilén
Inmatning till databaser
Next previous Internetprogrammering 2000 Internetprogrammering 2000 Föreläsning 10 Distribuerad programmering med Javas RMI, Remote Method Invocation.
DCV Idéskiss Design Jag tror att jag ska ha en mörk och stilren design på mitt DCV. Det ska finnas dynamisk funktionalitet där designen byts utan att sidan.
Bo Linde Solution Specialist EPM Microsoft AB Project Server.
Verktyg för att hantera IT-Projekt
Ajax Dynamiska webbsystem. AJAX och web 2.0 Web 2.0 är egentligen bara ett ”buzzword” för en modern webbsajt. Innehållet skulle till exempel vara: Rich.
Metoder i java Det finns två typer av metoder i java
Arv.
Inkapsling.
Objektorienterad tänkande
Programmering II C#, ID1304.
Polymorfism.
Programmeringsteknik K och Media
Att programmera i språket Java
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Kapitel 11: Implementation av filsystem.
1 Windows Azure Mikael ÖstbergTorkel Ödegaard. 2.
Programmering B PHP Lektion 1 Mahmud Al Hakim Folkuniversitetet
Programmering B PHP Lektion 2
Tabeller.
UTVECKLING MED RAMVERKET.NET Marcus Medina. Dagens visdomsord ” Ingen vet vad han klarar innan han har försökt. ” - Publilius Syrus (85 f.Kr.-43 f.Kr.).
Standardisering ger dig mer tid Peter Frodin. EFFECT-Direct / BDD Systems Management Server (SMS) Infrastucture Optimization Model (IOM) Vista Nästa steg.
1. En infrastruktur för programutveckling
PROCESSPROGRAMMERING Föreläsning ‏ Innehåll: Högnivå objekt för trådprogrammering: - Trådgrupper (”Thread pools”)‏ - Exekverare (Executor.
© 2007 Cisco Systems, Inc. All rights reserved.Cisco Public ITE PC v4.0 Chapter 1 1 Operating Systems Networking for Home and Small Businesses – Chapter.
Flexicon – Din systempartner
UTVECKLING MED RAMVERKET.NET Marcus Medina. Dagens visdomsord “Det verkar alltid omöjligt tills dess att det är gjort” Nelson Mandela.
1 Föreläsning 6 Programmeringsteknik och Matlab 2D1312/2D1305 Metoder & parametrar Array API och klassen ArrayList.
Välkommen till Sommarkollo Windows Presentation Foundation och Expression Blend Robert FolkessonJohan Lindfors
Next previous RMI, Remote Method Invocation Om du har boken av Marty Hall, läs avsnitt 15.8 För fler exempel se:
Per Ahlberg Developer Evangelist, DPE Microsoft AB
Föreläsning 5 Arrayer & ArrayList Hur man använder API:n
1 Logging and monitoring of TCP traffic in SSH tunnels Masters thesis Anton Persson.
Microsoft Visual Studio och.NET Framework, idag och imorgon! Robert Folkesson
ISV Community Day Till sist Per Ahlberg Developer Evangelist Developer & Platform Evangelism Microsoft Sweden.
Välkommen till årets andra nätverksträff Sundsvall 30 maj, 2006 Funda Denizhan och Magnus Burell Verva, Nätverket 24-timmarswebben.
Välkomna Per Ahlberg Johan Lindfors. Hur kan vi bli bättre...  Era utvärderingar är viktiga!  Betygsätt innehåll, talare, relevans  Kommentera gärna.
1 Windows Azure Mikael ÖstbergTorkel Ödegaard. 2 Äshur Ashore Azzuure.
Rikare webb med AJAX, Microsoft Silverlight, WPF och Expression Studio Robert Folkesson
Sid 1 CD5250 Daniel Flemström MDH/IDT COM Extremely Rough Overview.
Jonny Karlsson PROCESSPROGRAMMERING Föreläsning 8 ( )‏ Innehåll:  Introduktion till Java EE (Enterprise Edition)  Enterprise Java Beans.
Utvecklarna Karin Älfvåg Marknadschef Developer & Platform Evangelism Microsoft AB Your potential. Our passion.
UTVECKLING MED RAMVERKET.NET Marcus Medina. Dagens visdomsord ”Google is your friend”
Moderna affärssystem - Systemutvecklarens roll -
1 Mjukvaru-utveckling av interaktiva system God utveckling av interaktiva system kräver abstrakt funktionell beskrivning noggrann utvecklingsmetod Slutanvändare.
Ladda ner och installera JAVA Mahmud Al Hakim DynamicOS
Microsoft Partner Program Petter Körnemark Microsoft Partner Program ISV/Software Solutions Competency Custom Development Solutions Competency Empower.
Windows Live Messenger. MSN. Vad är Windows Live Messenger ? Ett klient program för direktmeddelanden, dvs ett program som laddas ned från Internet och.
ISV Community Day Till sist Per Ahlberg Developer Evangelist Developer & Platform Evangelism Microsoft Sweden.
Windows Vista: Utrullning Maria Johansson Windows Imaging WIM-filer Flera images per WIM-fil Filbaserat Hårdvaruoberoende Komprimerade Fånga systemläget.
Programmering i.NET Farid Naisan, Universitetsadjunkt Datavetenskap, Teknik och samhälle, Malmö högskola Assembly.
Extremely Rough Overview
Presentationens avskrift:

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 

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

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

 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: Empowerment – speciellt för ISV

Vilka är vi som är här idag?

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

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… 01

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!   msdn.microsoft.com     

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  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

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 Dim cnSql As New SqlConnection(strConn) Private i,x,y As Int32 i+=1, strName &=“Bob” For Each s As String In X 02

 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 Visual Basic.NET – Viktiga nyheter (sender As Object, e As xxxEventArgs) 03

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 Heltal Visual Basic 6.0Visual Basic.NET 8-bitByte 16-bitIntegerShort eller Int16 32-bitLongInteger eller Int32 64-bitLong eller Int64

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! 04

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?

TeknikRekommendation Visual Basic 6.0 grafiska modell Låt vara eller skriv om med GDI+ DAO och RDO data bindningUppgradera till ADO or ADO.NET Dynamic Data Exchange (DDE)Låt vara eller använd alternativa kommunikations sätt OLE Container ControlLåt vara Visual Basic 5.0 kontrollerUppgradera till Visual Basic 6.0 eller Visual Basic.NET DHTML ApplikationerLåt vara; kan fungera i.NET Microsoft ® ActiveX ® ________Låt vara eller använd COM interop Property pagesLåt vara UserControlsLåt vara; kan fungera i.NET WebClassesLåt vara; kan fungera i.NET Uppgradering - Tekniker

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

 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 Uppgradering

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 05

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å! 06

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” 07

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() Dim frm As New Form1 frm.Show() ‘eller frm.ShowDialog() 08

Användargränssnittet  Vissa nya eller mycket förbättrade kontroller  LinkLabel, NotifyIcon  MainMenu, ContextMenu  Hjälpkontroller  ToolTip  ErrorProvider  HelpProvider  ToolBar  Splitter

Användargränssnittet  Borttagna eller ersatta kontroller  Spinner  Line and Shape  DirListBox, FileListBox, DriveListBox  CommonDialog  Image  Frame 09

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

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 10

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 11

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 DataAdapter Command DataReader Connection DataSet Windows formulär Webb formulär Övriga Data Providers ADO.NETKonsumenter

ADO.NET Scenarios  Kopplat  Connection, command, data reader  Mellan lager  Data adapter  Urkopplat  DataSet, DataTable, DataView, and others

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 12

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 13

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

ASP.NET HTTP Runtime ASPX motor Instans ”Page” ASP.NET sida Begäran 1 3 Svar 6 7 Moduler Klass ”Page” Sidhanterare ”Page Handlers” 8 2 Arkitekturen i ASP.NET

WebForms  Filändelsen är.ASPX  Nytt ”Page” direktiv  WebForm är en objektmodell  Händelsestyrt  Exekveras både på klient och server

”Server Controls”  HTML kontroller  Mappar väl mot vanliga HTML-element  Webb kontroller  Rikare funktionalitet  Objektmodell  Valideringskontroller  Mobila kontroller

”Web User Controls”  Egenskapade webbobjekt  Fungerar som en del av en webbsida  Ersätter ”server-side include”  ”Partial Caching”  Dela kontrollen med flera sidor  Skapas som en ”WebForm”

Uppgradera ASP till ASP.NET  Konvertera gränssnittet först  Använd ”Code-behind” klasser  Flytta eventuell logik till klasser  Här finns mest att tjäna  Har ofta VB6 komponenter  Konvertera dessa separat  Vissa utgår pga. bättre objektmodell i ASP.NET  Vissa kommer att läggas direkt i ASP.NET projektet 14

COM. NET COM.NET “COM Interop” .NET till COM  COM till.NET

Använd COM komponenter i.NET  Skapa en assembly som innehåller typ definitioner enligt COM för komponenterna  Lägg till en referens i Visual Studio.NET  Eller använd TLBIMP  Definiera typerna manuellt!  Använd som hanterade komponenter  Skapa en instans med “new”  Fånga fel  Arv och utveckling

Använd.NET komponenter i COM  Skapa “COM type library”  Med hjälp av TLBEXP  Eller med hjälp av Visual Studio.NET  Installera och registrera assemblyn  RegAsm  GACUtil  Sätt en referens till TLB om det behövs 15

 Vad är Win32 API?  DLL är en del av Windows OS  Inget inbyggt typbibliotek  Inte COM objekt  Fördelar  Sparar tid hos utvecklare  Gör saker som inte går med Visual Basic 6  Nackdelar  Svåra att använda  Kan vara komplexa att förstå Win32 API uppgradering

 Stöd för Win32 API i.NET  Dom flesta anrop fungerar fortfarande  Många migreras utan problem  Försök att undvika dem ändå! .NET Framework klasser inkapslar Win32 API funktioner  Exempel  System.Diagnostics  System.Drawing  System.Environment  …

 Tänk på  Wizarden konverterar numeriska datatyper  Strängar med fast längd stöds ej  UDT’s med med fast längd på strängar eller byte arrayer  Lägg till ”MarshallAs” attributet  Deklarationer med ”As Any” stöds ej  Callbacks funktioner måste fixas efter uppgradering  Använd ”delegates” med ”AddressOf” Win32 API uppgradering 16

Installation – icke.NET  Tänk på  Effekter på systemet  Kommer installation av applikation 1 bryta applikation 2?  ”Första-gångs-installation”  Applikationen måste installeras på varje klient  Uppdatering av en applikation  Måste installeras om på varje klient

 Nya alternativ  ”No-touch” installation  Isolerade applikationer är standard  Ingen registrering behövs  Stark versionshantering för delade komponenter  Installation är enkelt  XCOPY till klienten  Kör från en delad katalog  Klicka på en länk i en browser Installation

 URL-refererad program  Ingen installation, automatisk updatering  Klicka på en länk i en browser  Lagras i ”download cache”  Hämtas endast när uppdateringar finns  Refererade ”assemblies” hämtas automatiskt Installation – ”No Touch”

 Liten lokal assembly – ”laddare”  Ladda assemblies från en Webbserver  Applikation hämtas automatiskt  Uppdatera endast ”assemblies” på servern  Använd Assembly.LoadFrom(url)  Tar en URL som parameter  Laddar automatiskt ned ”assemblies”  Kontrollerar automatiskt efter nya versioner Installation – ”No Touch”

 Lagras i ”download cache”  Inte i ”global assembly cache” (GAC)  Ovanpå WinInet (IE) cache  Per användare .NET Framework krävs på klienten  Använd ”Updater Application Block”  För att automatiskt uppdatera en applikation  Färdiga klasser med funktionalitet  Stödjer våra riktlinjer - PAG 17

Kontrollskott!  Vad heter klassen som representerar en databas i primärminnet?  Filändelsen för ett webb forumlär i ASP.NET?  Var lagras ”assemblies” som installeras över webben?

Tips och Tricks!  Har du bråttom: Låt ADO vara kvar...  COM Interop fungerar bra!  Skriv.NET ”wrappers” för att spara tid!  Då behöver du inte skriva om dina klientapplikationer senare!  Förbered dina applikationer för en distribuerad miljö!  Skikta dem med XML eller WebServices!

Länkar till mer information  MSDN TV på svenska   Visual Basics hemsida  msdn.microsoft.com/vbasic  GotDotNet  