1..NET Arkitektur
2 Nordjyllands Erhvervakademi 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 Nordjyllands Erhvervakademi Del 1 CLR-baseret eksekvering…
4 Nordjyllands Erhvervakademi Inspiration.NET er inspireret af en række elementer….NET OOP JVM GUI Web component-based design n-tier design
5 Nordjyllands Erhvervakademi NET understøtter en række sprog.NET understøtter VB, C# (C-sharp), C++, J# (Java 1.1), Eiffel, etc. code.vbcode.cscode.cpp... Development Tools app.exe FCL
6 Nordjyllands Erhvervakademi NET er “platformsuafhængigt” Kompilerede.NET applikationer kører på alle supporterede platforme: APP.exe ? Win64Win32 ( XP,2K,98) WinCE
7 Nordjyllands Erhvervakademi 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
8 Nordjyllands Erhvervakademi 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 Nordjyllands Erhvervakademi Del 2 Applikationsdesign…
10 Nordjyllands Erhvervakademi 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 BusinessPresentationData AccessData
11 Nordjyllands Erhvervakademi Fysisk design Hvor placeres tiers fysisk? –Der findes en række forskellige designs… De mest almindelige er: –lokalt –remote –web app –web service
12 Nordjyllands Erhvervakademi (1) Loalt design Lokalt medfører at tiers befinder sig på den lokale maskine –dog kan data befinde sig på en remote maskine FE obj Fordele? –simpelt at lave! Ulemper? –Svært at deploye & vedligeholde –skal installeres og konfigureres på hver klient
13 Nordjyllands Erhvervakademi (2) Remote design Remote medfører at præsentationen kører på en separat maskine FE 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 Server Client
14 Nordjyllands Erhvervakademi (3) Web app design Web app medfører at præsentationen genereres af en Web server 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 Web Page Server
15 Nordjyllands Erhvervakademi (4) Web service design Web services er objekter som er tilgængelige via webteknologier I stedet for HTML, sendes rå data i XML 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
16 Nordjyllands Erhvervakademi Del 3 Komponent-baseret udvikling…
17 Nordjyllands Erhvervakademi 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 app.exe business.dll data.dll
18 Nordjyllands Erhvervakademi 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.vb code.cs assembly
19 Nordjyllands Erhvervakademi 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 FCL assembly.DLL obj code
20 Nordjyllands Erhvervakademi 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 Nordjyllands Erhvervakademi 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 Nordjyllands Erhvervakademi 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 Nordjyllands Erhvervakademi Referencer Web sites: – –
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 Nordjyllands Erhvervakademi 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, Windows 7 andre platforme? –Linux og Mac via Mono projekt
26 Nordjyllands Erhvervakademi NET udvikling 2) Visual Studio.NET 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 Mono WebMatrix, til web-baserede applikationer
27 Nordjyllands Erhvervakademi 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 Nordjyllands Erhvervakademi Referencer Web sites: – –Mono: –Gratis IDE’er: