Præsentation er lastning. Vent venligst

Præsentation er lastning. Vent venligst

Introduktion Bjørk Boye Busch Otto Knudsen

Lignende præsentationer


Præsentationer af emnet: "Introduktion Bjørk Boye Busch Otto Knudsen"— Præsentationens transcript:

1 Introduktion Bjørk Boye Busch Otto Knudsen
Underviser ved Datamatikeruddannelsen, TietgenSkolen web: Materiale fra Prosa-workshops: Otto Knudsen C#-workshop

2 Workshop – Plan Emne Lektion C#-workshop
Introduktion til .NET, C# og Visual Studio .NET 2005 1 Eksempel (objektorientering, indkapsling, logisk lagdeling) 2 Hands on … 3 Brugergrænseflade og model (fysisk lagdeling) 4 Persistens – Filer, Databasetilgang (ADO.NET) 5 6 ASP.NET 2.0 7 Webtjenester 8 9 C#-workshop

3 Introduktion Hvem er I? Navn Baggrund – kodeerfaring Forventninger
C#-workshop

4 Overblik … .NET Visual Studio .NET C#.NET Applikations- typer
C#-workshop

5 Fordele ved .NET Understøtter flere sprog:
C#, C++, VB, J# (svarende til Java 1.2), … Samme tilgang, samme værktøjer — gældende for ethvert sprog Understøtter flere forskellige applikationstyper: Konsol, Windows GUI, web-baseret GUI, web-tjenester, pda, … Professionelle værktøjer og teknologier til rimelige penge: Visual Studio .NET er et brugbart og lettilgængeligt værktøj Fås gennem MSDNAA — MSDN Academic Alliance Giver mulighed for lovligt at distribuere software til læreanstalter og studerende Visual Studio, Windows, SQL Server, Visio, SharePoint, … C#-workshop

6 Ressourcer Nyttige .NET sider:
Microsoft Developer Network: MSDN Academic Alliance repository: Gode sider mht. .NET kode, diskussioner, osv: C#-workshop

7 Udvikling fra kommandolinje
Anvend Microsoft .NET Framework SDK Samme idé som Java og JDK SDK = Software Development Kit (100 MB download) Gratis, komplette kommandolinje-værktøjer og dokumentation Installeres som standalone produkt Installeres automatisk sammen med Visual Studio Bemærk: .NET-udvikling kræver en “moderne” version af Windows, dvs. Windows NT, 2000, 2003, XP eller Vista C#-workshop

8 Eksempel Beregn BMI (Body Mass Index) C#-workshop // BMI.cs
public class BMI { public static void Main() { System.Console.WriteLine("** BMI **\n"); System.Console.Write("Indtast din vægt i kg: "); int v = int.Parse(System.Console.ReadLine()); System.Console.Write("Indtast din højde i cm: "); int h = int.Parse(System.Console.ReadLine()); double bmi = v / ((h / 100d) * (h / 100d)); System.Console.WriteLine("\nDit BMI er {0:f2}", bmi); System.Console.ReadLine(); } C#-workshop

9 Namespaces Alt i .NET indlejres i klasser
Klasser samles i namespaces for at organisere koden Et namespace er en navngiven samling af typer System namespace er det grundlæggende .NET namespace Eksempel: System.Console.WriteLine("..."); Console klasse System namespace i FxCL WriteLine metode C#-workshop

10 FxCL .NET Framework Class Library indeholder tusindvis af klasser
Ligesom Java’s JCL Organiseret vha. namespaces: System System.Data System.Windows.Forms osv. C#-workshop

11 Kompilering og afvikling
Brug C#-kompileren til at kompilere vha. Framework SDK Åbn Visual Studio .NET konsol-vinduet csc er kommandolinje C#-kompileren Benyt /t:exe for at kompilere en konsolbaseret EXE-fil Benyt /out: for at specificere navnet på EXE-fil c:\> csc /t:exe /out:BMI.exe bmi.cs Microsoft (R) Visual C# .NET Compiler version for Microsoft (R) .NET Framework version Copyright (C) Microsoft Corporation All rights reserved. c:\> BMI.exe ** BMI ** Indtast din vægt i kg: 75 Indtast din højde i cm: 174 Dit BMI er 24.77 C#-workshop

12 Hurtig introduktion til C#
C# er i bund og grund Java … … og C++ C#-workshop

13 C# - En stærk kombination …
Pointere (unsafe coding) Operator overloading Preprocessor direktiver struct, enums, generics m.m. Java Klassestruktur Single inheritance Interfaces Garbage Collection Code Safety Typestærkt Ingen globale typer og variable Ekstra bonusser Properties Indexers Attributter Delegates Events C#-workshop

14 Eksempel - Personklasse
public class Person { // Felter private string navn; private int vægt = 0; private int højde = 0; // Konstruktør public Person(string navn) { this.navn = navn; } // Egenskaber public string Navn { get { return this.navn; } } public int Vægt { get { return this.vægt; } set { this.vægt = value; } } public int Højde { get { return this.højde; } set { this.højde = value; } C#-workshop

15 Eksempel - Beregningsklasse
public class BMIKlasse { public static double BeregnBMI(int vægt, int højde) { double højdeIMeter = højde / 100d; double bmi = vægt / (højdeIMeter * højdeIMeter); return bmi; } C#-workshop

16 Eksempel – Main-programmet
public class BMIApp { public static void Main(string[] args) { System.Console.WriteLine("Indtast navn, vægt og højde:"); string navn = System.Console.ReadLine(); int vægt = int.Parse(System.Console.ReadLine()); int højde = int.Parse(System.Console.ReadLine()); double bmi = BMIKlasse.BeregnBMI(vægt, højde); System.Console.WriteLine("\n{0}'s BMI er {1:f2}", navn, bmi); System.Console.ReadLine(); } C#-workshop

17 Komilering af afvikling
Endnu engang anvendes C# kommadolinje-kopileren: c:\> csc /t:exe /out:BMIApp.exe bmiapp.cs person.cs bmiklasse.cs Microsoft (R) Visual C# .NET Compiler version for Microsoft (R) .NET Framework version Copyright (C) Microsoft Corporation All rights reserved. c:\> BMIApp.exe Indtast navn, vægt og højde: Otto 74 175 Otto’s BMI er 24.77 C#-workshop

18 Kodeafviklingsmodellen
Hvordan virker .NET? C#-workshop

19 komponent-baseret design
Påvirkninger .NET er et produkt af mange påvirkninger … OOP JVM GUI .NET Web komponent-baseret design N-lags design C#-workshop

20 .NET Framework Class Library (FxCL) Common Language Runtime (CLR)
Arkitektur Multi-language, Virtual Machine Driven … C# C++ VB J# Din applikation .NET Framework Class Library (FxCL) Common Language Runtime (CLR) Operativsystem Hardware C#-workshop

21 Kodeafviklingsmodellen
.EXE er IKKE et "standalone" program (ligesom Java) Når en .EXE afvikles, hentes CLR, som igen henter FxCL CLR er en Virtual Machine, som JIT-kompilerer koden én metode ad gangen C#-workshop

22 Arkitektur C#-workshop

23 Java’s Execution Model
C#-workshop

24 .NET vs. Java .NET har fokus på sprog-uafhængighed …
Java har fokus på platforms-uafhængighed … .NET Java C# VB J# Java kode (.java) IL kode (.exe, .dll) Byte Code (.class) .NET CLR JVM/JRE Windows OS Win- dows Linux Unix Mac C#-workshop

25 .NET vs. Java .NET har fokus på sprog-uafhængighed …
Java har fokus på platforms-uafhængighed … .NET Java C# VB J# Java kode (.java) IL kode (.exe, .dll) Byte Code (.class) .NET CLR JVM JVM JVM JVM Windows OS Win- dows Linux Unix Mac C#-workshop

26 .NET vs. Java .NET har fokus på sprog-uafhængighed …
Java har fokus på platforms-uafhængighed … .NET Java C# VB J# Java kode (.java) IL kode (.exe, .dll) Byte Code (.class) .NET CLR JVM/JRE JVM JVM JVM JVM Windows OS Win- dows Linux Unix Mac C#-workshop

27 MSIL-kode MSIL-koden kan ”knækkes” …
C#-workshop

28 Kodeafviklingsmodellen
CLR Traditionelt Windows program VC++ Windows program .NET Windows program .NET FxCL MFC WIN 32 API Windows operativsystem C#-workshop

29 Kodeafviklingsmodellen
.EXE OS Proces CLR JIT Kompiler andre FxCL komponenter Basis FxCL obj kode Underliggende OS og HW C#-workshop

30 Hvor er .NET installeret?
CLR er en normal Windows DLL FxCL er placeret i GAC’en GAC = Global Assembly Cache se mappen "C:\Windows\Assembly" Bemærkninger: Nogle assemblies er blevet præ-JIT-kompileret ("native image") Assemblies indeholder digitale signaturer GAC is versions-specifik— hver komponent kan optræde i flere versioner Anvender .NET en CLASSPATH ligesom Java? NEJ! .NET søger først i GAC’en, dernæst i den samme mappe som .EXE’en Søgninger kan skræddersys vha. .config-filen C#-workshop

31 Konsekvenser CLR & FxCL er nødvendige for at afvikle .NET applikationer Kan findes på Redistributable .NET Framework (20MB download) Kan afvikles på Windows 98 og nyere versioner C#-workshop

32 Konsekvenser .NET applikationer er versions-specifikke:
Applikationen er afhængig af den .NET-version, som den kompileres op imod Applikationen vil IKKE kunne afvikles, medmindre den specifikke version af .NET er installeret … Kompileret med SDK 1.0 / VS .NET 2002? => .NET v1.0 skal være installeret Kompileret med SDK 1.1 / VS .NET 2003? =>.NET v1.1 skal være installeret Kompileret med SDK 2.0 / VS .NET 2005? =>.NET v2.0 skal være installeret C#-workshop

33 Konsekvenser Ligesom Java, så er .NET’s kodeafviklingsmodel en trade-off: "Managed execution" (mere sikkerhed, beskyttelse af hukommelse, osv.) portabilitet langsommere afviklingshastighed (10%?) C#-workshop

34 .NET er portabelt? Meget af .NET er ECMA-standardiseret
Nu også tilgængeligt på flere platforme: Forskellige versioner af Windows (inkl. CE and Mobile versioner) Linux/OS X: Mono projektet understøttet af Novell (veludbygget) Unix: dotGNU (ikke særligt udbygget) FreeBSD/OS X: Rotor/SSCLI Microsoft's shared-source release af .NET til forskningsformål C#-workshop

35 Pause … Herefter kodeeksempler … C#-workshop


Download ppt "Introduktion Bjørk Boye Busch Otto Knudsen"

Lignende præsentationer


Annoncer fra Google