Præsentation er lastning. Vent venligst

Præsentation er lastning. Vent venligst

Maj 2005Embedded.NET1 Embedded.NET Introduktion til.NET framworket og.NET Compact Frameworket Captator Tlf: 8620 4242 www.captator.dk Carsten Juel Andersen.

Lignende præsentationer


Præsentationer af emnet: "Maj 2005Embedded.NET1 Embedded.NET Introduktion til.NET framworket og.NET Compact Frameworket Captator Tlf: 8620 4242 www.captator.dk Carsten Juel Andersen."— Præsentationens transcript:

1 maj 2005Embedded.NET1 Embedded.NET Introduktion til.NET framworket og.NET Compact Frameworket Captator Tlf: 8620 4242 www.captator.dk Carsten Juel Andersen Softwarearkitekt juel@captator.dk Mobil: 2348 0003

2 maj 2005Embedded.NET2 Agenda Introduktion til.NET.NET frameworket og.NET Compact frameworket. Embedded udvikling i.NET Windows XP embedded -.NET framework Windows CE -.NET compact framework Garbage Collection Parallelprogrammering: Processer og Threading Hvorfor.NET til embedded udvikling?

3 maj 2005Embedded.NET3 ? ? ? ? Intet menneske er en ø

4 maj 2005Embedded.NET4 …Brikkerne samlesxp

5 maj 2005Embedded.NET5 OS (Windows)(COM+ services) Common Language Runtime Base Class Library Overliggende frameworks: Data, … Web Forms Web Services ASP.NET Web Forms Web Services Mobile Internet Toolkit Windows Forms Common Language Specification VBC++C# Visual Studio.NET JScript… Frameworket, sprog og værktøjer

6 maj 2005Embedded.NET6 Common Language Runtime Class Loader IL to Native Compilers Code Manager Garbage Collector Security EngineDebug Engine Type CheckerException Manager Thread SupportCOM Marshaller Base Class Library Support

7 maj 2005Embedded.NET7 Eksekveringsmodel VBVC...Script IL Native Code “Econo”-JIT Compiler Standard JIT Compiler Native Code Install time Code Gen Common Language Runtime

8 maj 2005Embedded.NET8 Services der gør udvikling lettere Fælles (og stærke) typer Objekt håndtering Error Handling Lifetime management – Garbage Collection Selvbeskrivende objekter Dependency informationer - reflektion Fælles base classes Versionering Applikations isolering Side by Side XCOPY installation Operativsystem uafhængighed

9 maj 2005Embedded.NET9 Integreret i CLR Kontrollerer hvordan CLRen erklærer, benytter og håndtere typer Fælles for CLR, kompilere og værktøjer Indeholder predefinerede typer Alle klasser nedarver fra System.Object klassen En VB klasse = en C# klasse = en XX klasse =... Marshalling er ikke nødvendig Eks: Alle VBs datatyper mappes til CLR typer Features i sprogene kan være forskellige Fælles type system

10 maj 2005Embedded.NET10.NET typesystemet Value types Primitivesint i; Enums enum State { Off, On } Structsstruct Point { int x, y; } Reference types Classesclass Foo: Bar, IFoo {...} Interfacesinterface IFoo: Ibar {...} Arraysstring[] a = new string[10]; Delegatesdelegate void Empty(); Strenge

11 maj 2005Embedded.NET11 Bits and Pieces Assembly (application) -.exe /.dll Indeholder manifest Meta data Klasse Field Method Property Event Interface

12 maj 2005Embedded.NET12 Understøttelse af mange sprog Fælles framework: Fælles type system Base classes CLR Object-orienteret framework Procedurale sprog er velunderstøttede Funktionelle sprog er mulige … Mange sprog har været inddraget … også akademiske sprog

13 maj 2005Embedded.NET13 Visual Basic (*2) C# (*3) C++ JScript J# (Java) 2*COBOL Perl Python * 3 Delta Forth Dyalog APL Haskell Component Pascal TMT Pascal APL Asml ANSI C F# (ML & Caml) SML Standard ML SmallTalk (S#) SmallScript * 2 Oberon Scheme * 2, Tachy Mercury Mondrian Fortran * 2 Eiffel Delphi Borland C++ Builder Objective Caml RPG IL * 3 Java LISP LOGO Lua Oz Ada Mixal PHP * 2 Prolog P# Pan# Powerbuilder BrainFuck (X#) Pizza Beta (Aarhus University).NET Languages

14 maj 2005Embedded.NET14.NET i en embedded sammenhæng Windows Windows XP embedded med.NET framework installeret Windows CE / Pocket PC / SmartPhone.NET Compact Framework 2.0 Delmængde af det ”komplette”.NET framework 2.0 En del af Visual Studio 2005 (release sensommer i år) Vil være i ROM på nogle kommende devices

15 maj 2005Embedded.NET15 Tykke klienter til store og små Visual Studio.NET + Smart Device Extensions Windows CEWindows XP Other Windows CE Devices Microsoft Smartphone Pocket PC + PPC Phone Edition … Tablet PCs Notebook PCs.NET Compact Framework.NET Framework

16 maj 2005Embedded.NET16 Richer Platform Capabilities.NET CF 2.0 MFC 8.0, ATL 8.0 Broad managed code support Notifications Broker, Location, Camera, Watson, D3DM.NET CF SP2 VGA (PPC) QVGA (SP) Square Landscape ATL 4.2,.NET CF Enhanced Emulator Configuration Mgr, Bluetooth, SMS MFC, ATL Active Sync Connection Mgr MAPI OBEX Telephony MFC Win32, POOM Better Development V isual Studio 2005 (C#, VB.NET, C++) eVC 3 (C++) eVC 4 (C++) VS.NET 2003 (C#, VB.NET) eVC 3 (C++) eVC 4 (C++) VS.NET 2003 (C#, VB.NET) eVC 3 (C++) eVB 3 (VB) Core OS WinCE 5.0WinCE 4.2 WinCE 3.0 More Device Choices Future Windows Mobile Platform 2003 Second Edition 200320022000 Windows Mobile Roadmap

17 maj 2005Embedded.NET17 Display USB or Serial Processor Memory GSM/GPRS CDMA/1xRTT Device Hardware WiFi Bluetooth Radio Drivers Windows Mobile CE DB ActiveSync SQL Mobile Pocket Outlook Pocket Internet Explorer Windows Media Player Windows CE Native Win32 MFCATL Managed.NET Compact Framework 2.0 Server side ASP.NET Mobile Controls * = Managed wrappers Visual Studio 2005 Home Screen User Interface/Shell HTML Control DOM GAPI Camera D3DM Remote API Configuration* Bluetooth Not. Broker Pocket Watson Connection Manager TAPI* SMS* MAPI* POOM* Multimedia Communication Device Management Presentation SQL Mobile ADO CE XML CE DB OLE DB Data Access Software Platform (APIs) Windows Mobile Platform

18 maj 2005Embedded.NET18 Visual Studio 2005 emulatorer Pocket PC SmartPhone

19 maj 2005Embedded.NET19 Garbage Collection Garbage Collection rydder op Som udvikler skal vi kun bekymre os om at ”new”e objekter, GC ”delete”r objekterne for os Ved GC forfølges alle GC Roots (registre, stack for samtlige tråde, statiske referencer m.v.) Alle objekter der kan nåes fra en GC Root er del af programmet – øvrige er ikke og kan Garbage Collectes

20 maj 2005Embedded.NET20 Garbage Collection Garbage Collection med generationer Hvis objekter overlever en garbage collection er der stor sandsynlighed for at de derefter lever længe Objekter oprettes i generation 0, men bevæger sig mod generation 2 hvis de overlever længe nok tid

21 maj 2005Embedded.NET21 Processer, AppDomains og Threads En.NET applikation artes ved at.NET CLR’en launches Der skabes et AppDomain Applikationen loades i AppDomain’et Applikationen afvikles i en eller flere tråde AppDomain er en logisk processgrænse Windows Process der afvikler.NET applikation AppDomain.NET CLR AppDomain Threads

22 maj 2005Embedded.NET22 Fra single- til multithreaded applikation Flere samtidige I/O operationer File, netværk, webservices etc. Indlæs fil1 Indlæs fil2 Indlæs fil3 Indlæs fil1 Indlæs fil2 Indlæs fil3 Start tråd1 Start tråd2 Start tråd3 Afvent tråd1 Afvent tråd2 Afvent tråd3 Start tråd1 Start tråd2 Start tråd3 Afvent tråd1 Afvent tråd2 Afvent tråd3 Indlæs fil1 Indlæs fil2 Indlæs fil3

23 maj 2005Embedded.NET23 Start og join af tråde Thread demo Start et antal tråde og afvent at alle tråde afsluttes System.Threading.Thread thread = new System.Threading.Thread( new System.Threading.ThreadStart(ProcessThread)); thread.Start(); //... // Afvent at tråd afslutter thread.Join(); // Alternativt – afvent på tråd afslutter eller timeout if (!thread.Join(new System.TimeSpan(0, 0, 2))) { // Afsluttede ikke indenfor 2 sekunder } System.Threading.Thread thread = new System.Threading.Thread( new System.Threading.ThreadStart(ProcessThread)); thread.Start(); //... // Afvent at tråd afslutter thread.Join(); // Alternativt – afvent på tråd afslutter eller timeout if (!thread.Join(new System.TimeSpan(0, 0, 2))) { // Afsluttede ikke indenfor 2 sekunder } private void ProcessThread() { //... } private void ProcessThread() { //... }

24 maj 2005Embedded.NET24 Thread pool Thread pools er et velkendt design pattern i forbindelse med multithreading Minimerer resourceoverheadet ved brug af tråde.NET har en indbygget thread pool Opretter 25 ”arbejds”-tråde første gang den benyttes Sæt arbejdsopgave1 i kø Sæt arbejdsopgave2 i kø Sæt arbejdsopgave3 i kø Afvent at de afslutter Sæt arbejdsopgave1 i kø Sæt arbejdsopgave2 i kø Sæt arbejdsopgave3 i kø Afvent at de afslutter Indlæs fil1 Indlæs fil2 Indlæs fil3

25 maj 2005Embedded.NET25 Thread pool Thread pool demo En tråd i thread pool afslutter ikke når ”arbejdet” er fuldført, derfor kan join ikke benyttes System.Threading.WaitCallback threadCallback = new System.Threading.WaitCallback(ProcessThread2); System.Threading.ThreadPool.QueueUserWorkItem( threadCallback, fileName); //... // Egen logik benyttes i stedet for join // ProcessEnded er en lokal property (der ikke er vist her) while (!ProcessEnded) { System.Threading.Thread.Sleep(10); } System.Threading.WaitCallback threadCallback = new System.Threading.WaitCallback(ProcessThread2); System.Threading.ThreadPool.QueueUserWorkItem( threadCallback, fileName); //... // Egen logik benyttes i stedet for join // ProcessEnded er en lokal property (der ikke er vist her) while (!ProcessEnded) { System.Threading.Thread.Sleep(10); } private void ProcessThread2(object state) { //... _processEnded = true; } private void ProcessThread2(object state) { //... _processEnded = true; } Et vilkårligt objekt kan overføres her Et vilkårligt objekt kan overføres her

26 maj 2005Embedded.NET26 Hvorfor? Færre fejlkilder!.NET platformen (og andre managed omgivelser) minimerer fejlkilder Referencer (frem for pointere) og Garbage Collection Memoryleaks (udvikler fejl eller cirkulære referencer) For tidlig frigivelse af hukommelse Ikke muligt at skrive eller tilgå hukommelse udenfor programmet Runtime checking Der kan ikke skrives ud over kanten af et array Typecasts til forkert type giver runtime fejl Stærk typede sprog – f.eks. C# Compileren sikrer konsistens brug af typer m.v.

27 maj 2005Embedded.NET27 Hvorfor? OO principper Kan gøre komplekse problemer mere overskuelige ”Plug-and-play” arkitektur – f.eks. strategy pattern Uniformt typesystem Præcise fejlmeddelelser Exceptions stacktrace letter fejlfinding også uden debugging Meta programmering Reflektion Assemblies Versions, sikkerheds og deployment afgrænsning

28 maj 2005Embedded.NET28 Spørgsmål www.captator.dk www.captator.dk nyheder, artikler, information,...


Download ppt "Maj 2005Embedded.NET1 Embedded.NET Introduktion til.NET framworket og.NET Compact Frameworket Captator Tlf: 8620 4242 www.captator.dk Carsten Juel Andersen."

Lignende præsentationer


Annoncer fra Google