Introduktion Bjørk Boye Busch Otto Knudsen

Slides:



Advertisements
Lignende præsentationer
HUNDE SPEED km h 34,4 HUNDE SPEED km h 34,1 HUNDE SPEED km h 32,8 HUNDE SPEED km h 31,9 HUNDE SPEED km h 31,8 HUNDE SPEED km h 30,9.
Advertisements

SPBG.  Test driven development  Unit test frameworks  MOSS TDD  Mocking  Design patterns.
Hjemmesidekonstruktion Tjekspørgsmål 1.Hvad er et markup-sprog – hvad bruges det til? 2.Hvad er forskellen mellem et markup-sprog og et scriptsprog? 3.Hvad.
Velkommen til Softwarekonstruktion
Introduktion til ASP.NET 2 Michell Cronberg Microsoft MVP, MCAD TechTalks hos Microsoft.
C# introduktion. using System; Namespace MyFirst { class eks1 { public static void Main() { Console.WriteLine("Hej!"); Console.Write("Skriv dit navn her:
Mozilla ● Open source ● Web browser ● Mail klient ● Organisation ● Fremtiden... Henrik Gemal – Mozilla Evangelist - gemal.dk/mozilla.
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.
App Inventor. Hvad er App Inventor? Et web-baseret app udviklings ”tool” hvor programmør novicer kan udvikle Android apps. Det bruges stort set ligesom.
Microsoft Windows.NET Compact Framework Niels Hilmar Madsen Developer & Platform Strategy Group Microsoft Danmark.
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.
07 – Kort om OO Introduktion.
Communication & Design ODEUM e-Plan Landinspektør Martin Høgh Urban Planning and Transport.
Sikkerhed/Otto Knudsen 1 Diagnostics  Debug af web-applikationer.
RT Speciale Evaluering af Java til udvikling af indlejrede realtidssystemer ved brug af en eksisterende ”Java Optimized Processor” (JOP) Speciale – efterår.
T1 – OPGAVE 14.2 LINETT & SABRINA Klasse Varer namespace Opgave_14._2 { class Varer { private string vare; private string farve; private double.
Array og ArrayList Et slideshow. Som er sødt.. Hvordan virker ArrayList?  ArrayList NAVN = new ArrayList ();  NAVN.add(”Værdi”);  NAVN.add(index, ”værdi”)
1 JavaServer Faces Copyright © Lund & Bendsen Dynamikken i JSF.
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.
Distribueret programmering, specielt.NET Remoting Rasmus D. Lehrmann DM
Statistik.
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.
01 – Java platform for starters. 2 NOEA2009Java-kursus – Java Platform Introduktion til Java Baggrund Hvad er Java? Faciliteter i Java.
Technology Briefing. Hvorfor snakker vi drift? Meget fokus fra Microsoft på effektiv drift Dynamic Systems Initiative MS Operations Framework Meget fokus.
WCF service Hostet på website x. Opret tomt web applikations projekt.
Kursus om borger.dk og brugen af digital signatur
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/Otto Knudsen 1 Overblik WebForms ASP.NET.
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
Pleje og Sundhed Gennemførte719 Inviterede895 Svarprocent80% FREDERICIA KOMMUNE MTU og Psykisk APV 2012 Rapportspecifikationer.
Programering af mobile enheder Windows Phone Storage.
Begreber og Redskaber 9. Plan for idag I dag: Datastrukturer Tabeller Lister, mængder, maps, grafer Hægtede lister.
1..NET Arkitektur. 2 Nordjyllands Erhvervakademi Mål “Microsoft.NET is based on the Common Language Runtime (CLR) and an extensive set of Framework.
18 – Java Server Faces. 2 NOEA2009Java-kursus – JSF 2 Web-applikationer - 1 Brugere interagerer med en Web-browser Browseren sender forespørgsler til.
ETU 2008 | Elevtilfredshedsundersøgelse Erhvervsskolen Nordsjælland HTX (Teknisk Gymnasium) - Hillerød Baseret på 313 besvarelser.
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)
Begreber og Redskaber 5. Plan for idag Overblik over klasser,objekter,nedarvning –Repetition fra Dat A/Indledende programmering –Centrale begreber om.
MSBuild & Team Build i C#/C++ solutions VSTS ERFA d. 25 November.
1 Tråde 2 Plan Trådbegrebet Synkronisering Koordinering Eksempel: et flertrådet spil.
1 USB Gennemgang af installering af USB driver til ICT. Er fortaget på Windows XP.
Grunde til at jeg elsker dig
Items 4, 14, 24, 34, 44, 54 Orange gruppe Liv, Jonas, Thorkil, Søren S og Martin D.
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.
Fundamentale datastrukturer
1..NET Arkitektur. 2 Nordjyllands Erhvervakademi Mål “Microsoft.NET is based on the Common Language Runtime (CLR) and an extensive set of Framework.
Introduktion til Access (Access, del 1). RHS – Informationsteknologi – Fra design til udvikling Vi ved nu, hvordan vi finder et design for en database,
1 Team Build med Team Foundation Server 2008 Konfiguration og udvidelse af build jobs Kort præsentation Hvorfor bruge Team Build Afvikling af et build.
1 Fundamentale datastrukturer. 2 Definitioner: abstrakt datatype, datastruktur Elementære datastrukturer og abstrakte datatyper : arrays, stakke, køer,
C#: Udtryk og metoder Kilde: Joe Hummel. 2 Nordjyllands Erhvervakademi – 2008 Indhold “With regards to programming statements and methods, C# offers what.
03 – Udtryk og metoder. 2 NOEA2009Java-kursus – Udtryk og metoder Udtryk i Java Java har standard udtrykene… Værditildeling Subrutiner og funktionskald.
1 Web-apps vs native apps Cross-platform værktøjer (tools) Steen Jensen, efterår 2013.
Begreber og Redskaber 4. Plan for idag Om metoder, parametre, returværdier Et par ord om objekt-orientering Håndkøring af programmer.
Begreber og Redskaber 3. Plan for idag Om metoder, parametre, returværdier Overblik over klasser,objekter,nedarvning Et par ord om objekt-orientering.
Web Services. OO (C++/ C#/Java) COM DCOM Web Services.
Programmering I Java/C# Datatekniker Dit første projekt.
Præsentationens transcript:

Introduktion Bjørk Boye Busch Otto Knudsen Underviser ved Datamatikeruddannelsen, TietgenSkolen email: bjbu@tietgen.dk web: http://bjbu.net/ Materiale fra Prosa-workshops: http://prosa.bjbu.net/ Otto Knudsen email: nokn@tietgen.dk C#-workshop

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

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

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

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 http://www.msdnaa.net Giver mulighed for lovligt at distribuere software til læreanstalter og studerende Visual Studio, Windows, SQL Server, Visio, SharePoint, … C#-workshop

Ressourcer Nyttige .NET sider: Microsoft Developer Network: http://msdn.microsoft.com/ MSDN Academic Alliance repository: http://msdnaacr.net/ Gode sider mht. .NET kode, diskussioner, osv: http://www.devsource.com/ http://www.gotdotnet.com/ http://www.asp.net/ C#-workshop

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 http://msdn.microsoft.com/net 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

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

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

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

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 8.00.50727.42 for Microsoft (R) .NET Framework version 2.0.50727 Copyright (C) Microsoft Corporation 2001. 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

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

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

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

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

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

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 8.00.50727.42 for Microsoft (R) .NET Framework version 2.0.50727 Copyright (C) Microsoft Corporation 2001. All rights reserved. c:\> BMIApp.exe Indtast navn, vægt og højde: Otto 74 175 Otto’s BMI er 24.77 C#-workshop

Kodeafviklingsmodellen Hvordan virker .NET? C#-workshop

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

.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

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

Arkitektur C#-workshop

Java’s Execution Model C#-workshop

.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

.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

.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

MSIL-kode MSIL-koden kan ”knækkes” … http://www.aisto.com/roeder/dotnet/ C#-workshop

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

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

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

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

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

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

.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) http://www.mono-project.com/ Unix: dotGNU (ikke særligt udbygget) http://www.dotgnu.org/ FreeBSD/OS X: Rotor/SSCLI Microsoft's shared-source release af .NET til forskningsformål http://msdn.microsoft.com/net/sscli C#-workshop

Pause … Herefter kodeeksempler … C#-workshop