Download præsentationen
Præsentation er lastning. Vent venligst
Offentliggjort afRebecca Frank Redigeret for ca. et år siden
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
Lignende præsentationer
© 2024 SlidePlayer.dk Inc.
All rights reserved.