1 / 29

1. .NET Arkitektur

1. .NET Arkitektur. Mål. “Microsoft .NET is based on the Common Language Runtime (CLR) and an extensive set of Framework Class Libraries (FCL). The CLR defines a common programming model and a standard type system for cross-platform, multi-language development.” CLR-baseret eksekvering

Download Presentation

1. .NET Arkitektur

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. 1. .NET Arkitektur

  2. Mål “Microsoft .NET is based on the Common Language Runtime (CLR) and an extensive set of Framework Class Libraries (FCL). The CLR defines a common programming model and a standard type system for cross-platform, multi-language development.” • CLR-baseret eksekvering • Applikationsdesign • Komponent-baseret udvikling

  3. Del 1 • CLR-baseret eksekvering…

  4. Inspiration • .NET er inspireret af en række elementer… OOP JVM GUI .NET Web component-based design n-tier design

  5. .NET understøtter en række sprog • .NET understøtter VB, C# (C-sharp), C++, J# (Java 1.1), Eiffel, etc. code.vb code.cs code.cpp ... FCL Development Tools app.exe

  6. .NET er “platformsuafhængigt” • Kompilerede .NET applikationer kører på alle supporterede platforme: APP.exe ? Win64 Win32 (XP,2K,98) WinCE

  7. JIT Compiler CLR-baseret eksekvering • .NET applikationer er ikke stand-alone .exe-programmer APP.exe OS Process CLR other FCL components Core FCL obj code Underlying OS and HW

  8. CLR-baseret eksekvering medfører: • Klienter behøver CLR & core FCL for at køre .NET apps • tilgængelig via Redistributable .NET Framework • 20MB download • kører på 98 og derover, NT (sp6a) og derover • Runtime er automatisk med Vista • Afvejning af design… • managed execution (memory protection, etc.) • portabilitet: • generelt assembly-sprog • FCL = abstraktionslag mellem app og OS • langsommere eksekvering? • JIT kompilering er kostbart • men JIT-compiler kan udnytte target HW • man kan også bruge pre-JIT

  9. Del 2 • Applikationsdesign…

  10. object Applikationsdesign • Mange applikationer designes med N "tiers" • god separation af ansvar • muliggør brug af samme back-end tiers til forskellige klienter object object Front-end Presentation Business Data Access Data

  11. Fysisk design • Hvor placeres tiers fysisk? • Der findes en række forskellige designs… • De mest almindelige er: • lokalt • remote • web app • web service

  12. FE obj obj obj (1) Loalt design • Lokalt medfører at tiers befinder sig på den lokale maskine • dog kan data befinde sig på en remote maskine • Fordele? • simpelt at lave! • Ulemper? • Svært at deploy & vedligeholde • skal installeres og konfigureres på hver klient

  13. FE obj obj obj (2) Remote design • Remote medfører at præsentationen kører på en separat maskine Client Server proprietary protocols • Fordele? • Lettere at vedligeholde, back-end tiers kan opdateres uden at gøre noget ved klienten • mere sikkert, idet databasen tilgås fra serveren - ikke klienten • Ulemper? • Klienter kræver ofte samme OS som server; firewall problematik

  14. (3) Web app design • Web app medfører at præsentationen genereres af en Web server Web server Web Page obj obj Browser obj ANY platform Server HTML / HTTP • Fordele? • skalerer til internet, udvider applikationens mulige målgruppe • ingen firewall-problematik (HTTP / port 80 trafik) • Ulemper? • browser-baseret klient kan begrænse klientens kvalitet

  15. (4) Web service design • Web services er objekter som er tilgængelige via webteknologier • I stedet for HTML, sendes rå data i XML custom FE Web server obj obj obj ANY platform obj other APP Server ANY platform XML / SOAP • Fordele? • Åben! muliggør integration af applikationer • Ulemper? • En teknologi under udvikling…

  16. Del 3 • Komponent-baseret udvikling…

  17. Komponent-baseret udvikling • Applikations tier består ofte af mange komponenter/klasser • Ex: • typisk GUI applikation med lokalt design har 3 komponenter • pakket som 1 EXE og 2 DLL object object Front-end object app.exe data.dll business.dll

  18. Assemblies • .NET pakker komponenter i såkaldte assemblies • 1 assembly = 1 eller flere kompilerede klasser • .EXE repræsenterer en assembly med klasser + Main program • .DLL repræsenterer en assembly med klasser code.vb code.vb code.cs Development Tools assembly .EXE / .DLL

  19. JIT Compiler CLR-baseret eksekvering revisted • Alle assemblies skal være til stede: .DLL .DLL .EXE .DLL OS Process CLR other FCL assemblies Core FCL assembly obj code obj code obj code obj code Underlying OS and HW

  20. Assembly - hvor placeres de? • Hvordan finder CLR de rette assemblies? • Indtil videre, er et simpelt svar tilstrækkeligt: • DLL-filerne skal ligge i samme katalog som EXE • FCL assemblies ligger i GAC • CLR kigger først i GAC, derefter i EXE's katalog…

  21. GAC? • GAC = Global Assembly Cache • C:\Windows or C:\WinNT katalog • Observations: • Stifinder giver et fladt billede af GAC • DOS-prompt giver den faktiske repræsentation • GAC kan indeholde forskellige versioner af samme assembly • Enkelte assemblies er blevet pre-JIT-kompileret ("native image") • Hacker-proof vha digitale signaturer…

  22. Opsummering • .NET arkitekturen er: • multi-language • cross-platform • baseret på CLR, FCL, og JIT teknologi • Applikationsdesign er typisk multi-tier • Applikationsdesign giver komponentbaseret udvikling • .NET komponenter pakkes som assemblies

  23. Referencer • Bøger: • J. Richter, "Applied Microsoft .NET Framework Programming" • T. Thai and H. Lam, ".NET Framework Essentials" • Web sites: • http://msdn.microsoft.com/net • http://www.gotdotnet.com/

  24. 2. Udvikling til .NET Mål “Microsoft .NET development is based on an underlying framework of tools and classes. These tools and classes are known as the Framework SDK (Software Development Kit).”

  25. .NET udvikling • Der er i øjeblikket 3 muligheder for udvikling af assemblies: 1) .NET Framework SDK • gratis (100 MB) • komplet sæt af command-line tools og dokumentation • fås til Windows NT, 2000, XP Pro, Vista • andre platforme? • Mac OS X via Rotor (i.e. SSCLI) • Linux (og Mac??) via Mono project

  26. .NET udvikling 2) Visual Studio .NET • 5-6 CDs, 192 MB RAM (minimum) • kraftfuldt, integreret udviklingsmiljø (IDE) • et IDE til det hele: GUI, web-baseret, web service, DLL’er, etc. • Dette er hvad 99% af aktørerne bruger • $$ 3) gratis IDE’er • Express udgaver af Visual Studio • #develop, en forsimplet klon af VS.NET • WebMatrix, til web-baserede applikationer

  27. Opsummering • .NET er multi-language • Framework SDK baseret på C# og VB.NET • mange andre sprog er tilgængelige • .NET-udvikling er komponentbaseret • hjælpeklasser implementeres i en eller flere DLL’er • EXE implementeres ved at bruge hjælpeklasserne • if (assembly A bruger en klasse fra assembly B) A skal referere B!

  28. Referencer • Bøger: • J. Richter, "Applied Microsoft .NET Framework Programming" • Web sites: • http://msdn.microsoft.com/net • MSDNAA: http://www.msdnaa.net/ • Rotor (SSCLI): http://msdn.microsoft.com/net/sscli • Mono: http://www.go-mono.com/ • Gratis IDE’er: • http://www.icsharpcode.net/OpenSource/SD/default.asp • http://www.asp.net/webmatrix/

  29. Referencer • Bøger: • T. Archer and A. Whitechapel, "Inside C#" (2nd edition) • S. Lippman, "C# Primer" • J. Mayo, "C# Unleashed"

More Related