29
1. .NET Arkitektur

1. .NET Arkitektur

Embed Size (px)

DESCRIPTION

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 - PowerPoint PPT Presentation

Citation preview

1. .NET Arkitektur

2Nordjyllands Erhvervakademi - 2008

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

3Nordjyllands Erhvervakademi - 2008

Del 1

• CLR-baseret eksekvering…

4Nordjyllands Erhvervakademi - 2008

Inspiration

• .NET er inspireret af en række elementer…

.NET

OOP JVM

GUIWeb

component-based design n-tier design

5Nordjyllands Erhvervakademi - 2008

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

Development Tools

app.exe

FCL

6Nordjyllands Erhvervakademi - 2008

.NET er “platformsuafhængigt”

• Kompilerede .NET applikationer kører på alle supporterede platforme:

APP.exe

?Win64 Win32

(XP,2K,98)WinCE

7Nordjyllands Erhvervakademi - 2008

CLR-baseret eksekvering

• .NET applikationer er ikke stand-alone .exe-programmer

APP.exe

other FCL components

CLR

JIT Compiler

obj code

OS Process

Underlying OS and HW

Core FCL

8Nordjyllands Erhvervakademi - 2008

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

9Nordjyllands Erhvervakademi - 2008

Del 2

• Applikationsdesign…

10Nordjyllands Erhvervakademi - 2008

• Mange applikationer designes med N "tiers"– god separation af ansvar– muliggør brug af samme back-end tiers til forskellige klienter

object

Applikationsdesign

Front-end

object

Business

Presentation Data Access Data

11Nordjyllands Erhvervakademi - 2008

Fysisk design

• Hvor placeres tiers fysisk?– Der findes en række forskellige designs…

• De mest almindelige er:– lokalt– remote– web app– web service

12Nordjyllands Erhvervakademi - 2008

(1) Loalt design

• Lokalt medfører at tiers befinder sig på den lokale maskine– dog kan data befinde sig på en remote maskine

FEobj obj

obj

• Fordele? – simpelt at lave!

• Ulemper? – Svært at deploy & vedligeholde– skal installeres og konfigureres på hver klient

13Nordjyllands Erhvervakademi - 2008

(2) Remote design

• Remote medfører at præsentationen kører på en separat maskine

FEobj obj

obj

• 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

proprietary protocols

ServerClient

14Nordjyllands Erhvervakademi - 2008

(3) Web app design

• Web app medfører at præsentationen genereres af en Web server

obj obj

obj

Browser

ANY platform

Web server

• 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

HTML / HTTP

WebPage

Server

15Nordjyllands Erhvervakademi - 2008

(4) Web service design

• Web services er objekter som er tilgængelige via webteknologier

• I stedet for HTML, sendes rå data i XML

obj obj

obj

custom FE

ANY platform

Server

Web server

XML / SOAP

obj

• Fordele? – Åben! muliggør integration af applikationer

• Ulemper? – En teknologi under udvikling…

other APP

ANY platform

16Nordjyllands Erhvervakademi - 2008

Del 3

• Komponent-baseret udvikling…

17Nordjyllands Erhvervakademi - 2008

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

Front-end

object object

object

app.exebusiness.dll data.dll

18Nordjyllands Erhvervakademi - 2008

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

Development Tools

.EXE / .DLL

code.vbcode.vb

code.cs

assembly

19Nordjyllands Erhvervakademi - 2008

CLR-baseret eksekvering revisted

• Alle assemblies skal være til stede:

.EXE

other FCL assemblies

CLR

JIT Compiler

obj code

OS Process

Underlying OS and HW

Core FCLassembly

.DLL.DLL

.DLL

obj codeobj code

obj code

20Nordjyllands Erhvervakademi - 2008

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…

21Nordjyllands Erhvervakademi - 2008

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…

22Nordjyllands Erhvervakademi - 2008

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

23Nordjyllands Erhvervakademi - 2008

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/

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).”

25Nordjyllands Erhvervakademi - 2008

.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

26Nordjyllands Erhvervakademi - 2008

.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

27Nordjyllands Erhvervakademi - 2008

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!

28Nordjyllands Erhvervakademi - 2008

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/

29Nordjyllands Erhvervakademi - 2008

Referencer

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