Upload
valentine-reilly
View
21
Download
1
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
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
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
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
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/