110 likes | 249 Views
.NET ohjelmointi. VB.NET -kielellä RäsSe, lokakuu 2004. Historiaa. .NET julkaistiin 6/2000 Julkaisun yhteydessä CLI (common language infrastructure) ECMA.n standartoitavaksi Kehittelyn taustalla Anders Hejlsberg (palkattiin Borlandilta kehittämään Java-virtuaalikonetta)
E N D
.NET ohjelmointi VB.NET -kielellä RäsSe, lokakuu 2004
Historiaa • .NET julkaistiin 6/2000 • Julkaisun yhteydessä CLI (common language infrastructure) ECMA.n standartoitavaksi • Kehittelyn taustalla Anders Hejlsberg (palkattiin Borlandilta kehittämään Java-virtuaalikonetta) • Sun ja Microsoft erimielisyyksiin JVM:stä
.NET • Suurin muutos sitten DOS Win • MS:n taisteluase Javaa vastaan satsattu paljon • Sovelluskehittäjälle • Yhteinen runtime • Uusi komponenttimalli • Uudet kielet ?.NET • Parempi kehitysympäristö • XML-tuki • Tukihenkilölle • DLL ongelmat poistuu • Tietoturva • Uusi integreointimalli
.NET perhe • C# • VB.NET • ASP.NET • ADO.NET • J# • (C++) • … muut .NET kielet
Käsitteitä • CLS – Common Language Specifigation, määrittää millainen .NET kielen tulee olla • CTS – Common Type System, määrittää kielen muuttujatyyppirakenteen kaikille .NET kielille • BCL – Base Class Library, kaikille kielille yhteinen perusluokkakirjasto • CLR – Common Language Runtime on ajonaikainen ympäristö (lataa sovellukset, suorittaa JIT käännökset, huolehtii suoritusoikeuksista, muistin hallinta, kutsuu käyttöjärjestelmän palvelut) • JIT – Just In Time
Mitä uutta • Managed koodia suoritetaan CLR:n alla ei enää bin-koodia, vaan MSIL-kieltä (Microsoft Intermediate Language, assembly-kieli) koodi ajetaan frameworkissä (vrt. Javan VM…) { C# FrameWork käyttöjärjestelmä } • Alusta riippumaton hajautustekniikka (Web Services) • Helpompi hallita… asennus on xcopyä (on dll-tiedostoja, muttei tarvitse rekisteröintiä)
FrameWork VB.NET C++ C# J# Jne.. Common Language Specification ASP.NET Windows Forms ADO.NET and XML Base Class Library Common Language Runtime Windows COM+ Services
Koodista sovellukseksi… • Kirjoita lähdekoodi • Käännä lähdekoodi exeksi (csc.exe) • VB.NET kääntäjä kirjoittaa MSIL-koodin ja luettelon (manifest), jossa on PE (Win32 portable executable) otsikko koodiin tulee _CorExeMain ajonaikainen tiedosto • Kun sovellus käynnistetään, otetaan PE ja tarvittavat DLL:t, myös mscoree.dll (CorExeMainiä varten) • Käyttöjärjestelmän lataaja hyppää PE:n aloituskohtaan = aloituskohta on _CorExeMain-funktion aloituskohta
… koodista sovellukseksi • CorExeMain käynnistää MSIL koodin suorituksen • MSIL-koodia ei voi suorittaa suoraan, vaan se on käännettävä CLR:n avulla konekieleksi. Käännöksessä käytetään JIT täsmäkääntäjää JITeistä on käytössä kolme erilaista vaihtoehtoa • Asennusaikainen (PreJIT) – kääntää asennuksen aikana bin-koodiksi • JIT – suorituksen aikainen käännös • EconoJIT – koneille joissa vähän muistia eli käännetään osia sitä mukaa kuin tarvitaan
CLR käännös, suoritus kuvana Lähdekoodi Kääntäjä Code / Metadata Käännös tehdään Metodikohtaisesti JIT valinnan mukaisesti; Ensimmäisellä kutsu- Kerralla tai asennetta- essa Native code JIT compiler
ILDASM • IL Disassembler • Tee sovellus ja käännä exe • Aja ildasm • Start – Programs – MS Visual Studio.NET 2003 – Visual Studio.NET Tools – Visual Studio.NET 2003 Command Promt • Avaa File/Open toiminnolla exe • Tutustu Manifestiin ja assembler koodiin