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

Slides:



Advertisements
Lignende præsentationer
SPBG.  Test driven development  Unit test frameworks  MOSS TDD  Mocking  Design patterns.
Advertisements

Mozilla ● Open source ● Web browser ● Mail klient ● Organisation ● Fremtiden... Henrik Gemal – Mozilla Evangelist - gemal.dk/mozilla.
Introduktion til sikkerhed i.NET Mark S. Rasmussen iPaper ApS Part 2.
Mød Microsoft – for udviklere & arkitekter Smart klient som Windows- applikation Installation og autoopdatering.Henrik Lykke Nielsen Captator – de danske.NET.
Når en applikation går i fejl… … er det interessant, at vide noget om: Hvornår gik applikationen i fejl Hvilken applikation gik i fejl Hvad er fejlen.
Februar 2005Sprog-nyheder i C# og VB1 Captator Tlf: Henrik Lykke Nielsen Softwarearkitekt, Microsoft Regional Director for Denmark.
SMALL BUSINESS er BIG BUSINESS Tips og Tricks til Small Business Server Rico Raja marts 2006.
Microsoft Windows.NET Compact Framework Niels Hilmar Madsen Developer & Platform Strategy Group Microsoft Danmark.
Student Application Manager Lars Ole Nielsen, IT Arkitekt.
C#: Data Typer. Indhold: “.NET is designed around the CTS, or Common Type System. The CTS is what allows assemblies, written in different languages, to.
Efteruddannelse Embedded C Modul 4 (Torsdag den 14/1-2010)
Using Transactional NTFS (TxF) in.NET Mark S. Rasmussen iPaper ApS improve.dk.
Deployment – Udrulning af arbejdspladser i et Microsoft netværk Martin Vittrup Senior Technology Specialist.
RT Speciale Evaluering af Java til udvikling af indlejrede realtidssystemer ved brug af en eksisterende ”Java Optimized Processor” (JOP) Speciale – efterår.
1 Meget kort om Remote Debugger Og ligeså kort demo af Unity.
Distribueret programmering, specielt Web Services Rasmus D. Lehrmann DM
Efteruddannelse Embedded C Modul 4 (Torsdag den 22/4-2010)
13 – Database med JDBC. 2 NOEA2009Java-kursus – JDBC JDBC JDBC er et standard bibliotek til at tilgå relational databaser API’et er en standardiseret.
1 JavaServer Faces Copyright © Lund & Bendsen Dynamikken i JSF.
Effective Java items Orange gruppe Thuy, Janne, Mads T.P., Oliver og Sebastian.
C#: Udtryk og metoder. Indhold “With regards to programming statements and methods, C# offers what you would come to expect from a modern OOPL…” Udtryk.
Datastrukturer og Collections Oversigt og forskel imellem Jave og.net Collections library Collection interfaces ArrayList IList interface Hashtable Hashtable.
06 – Java Packages Packages og ClassPath. 2 NOEA2009Java-kursus – Packages og class path Hvad er Packages? En package er en gruppering af relaterede typer.
Item gennemgang  Item: 01 – Static factory methods  Item: 09 – Override hashCode  Item: 17 – Design & document inheritence  Item: 25 – Lists over arrays.
Arne Winther Et værdifuldt samarbejde mellem hospital og produktudvikler.
Om ANDROID Jens Bennedsen og Jesper Tørresø marts 2011.
View Procedures Trigger og Function Jesper Tørresø DAB1 E07 1. november 2007.
Udvikling med Microsoft 2007 Office System Michell Cronberg Microsoft MVP, MCT, MCAD ISV Innovation Day 2006 ServerServer.
Udvikling med Microsoft 2007 Office System Michell Cronberg Microsoft MVP, MCT, MCAD ISV Innovation Day 2006 KlientKlient.
Objekter og klasser Applikationsdesign Code Namespace Value og reference typer Reference type Rasmus D. Lehrmann1.
12 – GUI med Swing. 2 NOEA2009Java-kursus – GUI med Swing Designer view Komponenter Frame Properties Inspector.
WCF service Hostet på website x. Opret tomt web applikations projekt.
Tråde og synkronisering. Tråde To typer tråde Dedikerede tråde -programmør opretter og tilknytter metode -”kører tråd-metoden (job) én gang” Tråd pulje.
Introduktion til.NET- platformen og version 2.0 Michell Cronberg Microsoft MVP
Mød Microsoft – for udviklere & arkitekter Visual Studio, Express og Team System Niels Hilmar Madsen Microsoft
Eksekvering/Otto Knudsen 1 Udrulning Publicering af en web-applikation.
Introduktion Bjørk Boye Busch Otto Knudsen
Distribution af funktionalitet Webservice med WCF x.
Distribution af funktionalitet Webservice med WCF x.
Web service - elementer SOAP (Simple Object Access Protocol) WSDL (Web Service Description language) UDDI (Universal Description, Discovery and Integration)
Web service - elementer SOAP (Simple Object Access Protocol) WSDL (Web Service Description language) UDDI (Universal Description, Discovery and Integration)
ASP.NET Custom Web Controls Deployment. Agenda – ASP.NET Web User Controls Composite Control Rendered Custom Control Deploy en Web Applikation.
Abstrakte klasser og interfaces i Java
Object-Orienteret Programmering og Design Kilde: Joe Hummel.
Presentation 27: Comparison of technologies Objektorienteret Middleware.
W: E: xTrace – trace på z/OS Dansk Gen brugergruppe 2008 Henrik Meisner Meisner IT.
Programering af mobile enheder Windows Phone Storage.
WebservicesWebservices Henrik Westergaard Hansen
Henrik Westergaard Hansen ISV Developer Evangelist Microsoft
Niels Ladegaard Beck Microsoft Student Partner Aarhus Universitet.
1..NET Arkitektur. 2 Nordjyllands Erhvervakademi Mål “Microsoft.NET is based on the Common Language Runtime (CLR) and an extensive set of Framework.
Uddannelse, marts 2007 Søren Vallø Business Development Manager.
N-lags design/Otto Knudsen 1 N-lags Design Definition Motivation.
Session Når man hoster en WCF Service på ASP.NET website, kan man bruge ASP.NET’s Session.
Gruppe sort Morten, Peter, Jesper, Spencer & Støving.
Maj 2003Bedre brugergrænseflader med multithreading1 Carsten Juel Andersen Softwarearkitekt Mobil: Captator Tlf:
CLR (.NET) og JVM 1.NET vs. Java.NET har fokus på sprog-uafhængighed … Java har fokus på platforms-uafhængighed … Windows OS.NET CLR IL kode (.exe,.dll)
#MapInfo konference 2006 – For enden af regnbuen… Microsoft.NET og MapXtreme 2005 Aske Butze-Ruhnenstierne Cowi A/S.
Begreber og Redskaber 5. Plan for idag Overblik over klasser,objekter,nedarvning –Repetition fra Dat A/Indledende programmering –Centrale begreber om.
Windows Vista Nis Bank Lorenzen Divisionschef – Windows Client
RT Speciale Evaluering af Java til udvikling af indlejrede realtidssystemer ved brug af en eksisterende ”Java Optimized Processor” (JOP) Speciale – efterår.
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.
Windows Mobile Den kan alt, så hvorfor har den ikke det totale verdensherredømme? Ved Martin Bahn Hansen.
1..NET Arkitektur. 2 Nordjyllands Erhvervakademi Mål “Microsoft.NET is based on the Common Language Runtime (CLR) and an extensive set of Framework.
Historie Android Inc oprettet i 2003 Købt af Google i 2005 Første version af Android ude i 2007 Kan bruges til andet end mobiltelefoner.
ASP.NET – web site publish. ASP.NET – site-version.
Web Services. OO (C++/ C#/Java) COM DCOM Web Services.
CRM-rapporter med PowerPivot Henrik Jensen Microsoft Dynamics CRM-arkitekt crmblog.dk.
Ændr 2. linje i overskriften til AU Passata Light AARHUS UNIVERSITET AU CS CHALLENGE MICHAEL I. SCHWARTZBACH KRISTOFFER JUST ANDERSEN INSTITUT FOR DATALOGI.
VI elsker programmering
Præsentationens transcript:

maj 2005Embedded.NET1 Embedded.NET Introduktion til.NET framworket og.NET Compact Frameworket Captator Tlf: Carsten Juel Andersen Softwarearkitekt Mobil:

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?

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

maj 2005Embedded.NET4 …Brikkerne samlesxp

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

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

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

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

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

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

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

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

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

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

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

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 Windows Mobile Roadmap

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

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

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

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

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

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

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() { //... }

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

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

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.

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

maj 2005Embedded.NET28 Spørgsmål nyheder, artikler, information,...