Visual Studio 2005 Patrik Löwendahl, SweNUG, Cornerstone Johan Lindfors.

Slides:



Advertisements
Liknande presentationer
Interface.  Interface är en datatyp och har alltså egen syntax och en hel del egna regler för vad arv från interface innebär.  Interface är renodlad.
Advertisements

”Ett sätt att distribuera Business Objects via webben”
Algoritmer och data strukturer -Länkade listor
Fortsättningskurs i Programmering lektion 6
Metoder i java Det finns två typer av metoder i java
Om Java C =>Java syntax variabler metoder färdiga klasser
Arv.
Abstract & sealed.
Objektorienterad tänkande
Programmering II C#, ID1304.
Polymorfism.
Metoder.
Att programmera i språket Java
Alice in Action with Java
i olika programmeringsspråk
Sid period2CD5250 OOP med C++ Mats Medin MDH/IDT Objektbaserad programmering –Grundläggande om klasser och objekt – (Arv får vänta)  Iden med klasser.
Föreläsning 4, Kapitel 4 Gruppera objekt Kursbok: “Objects First with Java - A Practical Introduction using BlueJ”, David J. Barnes & Michael Kölling.
Programmering i C# 2. Inledande detaljer.
Sid period2CD5250 OOP med C++ Mats Medin MDH/IDT C++ - förbättrat C?  Procedurellt program ser ut som C: sekvens, selektion, iteration  /* kommentar.
Sid 1 CD5250 OOP med C++ Daniel Flemström MDH/IDT CD5250 OOP med C++
Programmering i C# 3. Klasser.
Pekare och speciell programstruktur i inbyggda system
Datasamlingar och generiska enheter
Föreläsning 2 Kort Översikt Över Javaspråket. Källkodsformat Unicode används åäöμψζ tillåtna Inte alla miljöer klarar av det Källkod Bytekod Java VM för.
4. Arv och dynamisk bindning
Föreläsning 8, kapitel 8 Förbättra strukturen med arv Kursbok: “Objects First with Java - A Practical Introduction using BlueJ”, David J. Barnes & Michael.
Vektorer (klassen Vector) Sortering
Mer om arv - Polymorfism Kursbok: “Objects First with Java - A Practical Introduction using BlueJ”, David J. Barnes & Michael Kölling Fredric Ragnar
Programmering i C# 5. Structer.
Arv.
1. En infrastruktur för programutveckling
Lennart Edblom, Frank Drewes, Inst. f. datavetenskap 1 Föreläsning 8: Underprogram Underprogram Räckvidd Parameteröverföring.
Sid period2CD5250 OOP med C++ Mats Medin MDH/IDT Generiska algoritmer Kan användas på containertyper och arrays Använder iteratorer Implementerar.
Utveckling med ramverket .net
Föreläsning 8 Arv och abstrakta klasser. Arv Definierar en klass utifrån en redan existerande klass Den nya klassen utökar den ärvda klassen ( extends.
1 Välkommen till Sommarkollo Johan Lindfors.NET Framework 2.0.
Föreläsning 5, Kapitel 5 Använda Java-bibliotek för att få avancerad funktionalitet Kursbok: “Objects First with Java - A Practical Introduction using.
Riktade listor i C och Java Lösning till gruppövning 1.
1 Föreläsning 6 Programmeringsteknik och Matlab 2D1312/2D1305 Metoder & parametrar Array API och klassen ArrayList.
Namnrum, räckvidd och rekursion Linda Mannila
Föreläsning 1 Reserverade ord Javas API Identifierare Litteraler Variabler Kompilering och interpretering.
Föreläsning 9 Gränssnitt. Super Super kan användas till anrop av en omdefinierad metod Super kan användas till anrop av konstruktorer i superklassen Super.
För utveckling av verksamhet, produkter och livskvalitet. Stack och Kö - Implementering - Tilllämpningar.
Stack och Kö -Implementering -Tilllämpningar -- Kapitel 16, 11.
Föreläsning 4 programmeringsteknik och Matlab 2D1312/ 2D1305
F. Drewes, Inst. f. datavetenskap1 Föreläsning 2: Variabler och datatyper Variabler Bindning Typkontroll Några viktiga datatyper.
Objektorienterad programmering
Föreläsning 2. Allmänt STL genererar varningar i Visual C++ –”#pragma warning (disable : 4786)”
Köer -- Kapitel 16. Principen med en kö Köer är FIFO datastrukturer  First In – First Out  enqueue() Lägg till data i kön (först)  dequeue() Hämta.
7. Delegerare och notifierare
Föreläsning 17 Repetition. Källkodsformat Unicode används åäöμψζ tillåtna i namn på identifierare Inte alla miljöer klarar av det Källkod Bytekod Java.
Lennart Edblom & Frank Drewes, Inst. f. datavetenskap 1 Föreläsning 2: Variabler och datatyper Variabler Bindning Typkontroll Några viktiga datatyper.
ITM1 Kapitel 8 Datastrukturer Grundläggande datavetenskap, 4p Utgående från boken Computer Science av: J. Glenn Brookshear.
OOP F5:1 Stefan Möller OOP Objekt-orienterad programmering Föreläsning 5 Klasser och objekt Skapa objekt - new Referenser Konstruktorer Inkapsling.
Övning2 programmeringsteknik och Matlab 2D1312/ 2D1305
Sid period2CD5250 OOP med C++ Mats Medin MDH/IDT Funktionsmall template void myfunc(Type * arr, int n) { // kod; // objekt av typ Type kan deklareras.
1 Föreläsning 2 Reserverade ord Javas API Identifierare Litteraler Variabler Kompilering och interpretering.
OOP&M - teori1 OOP&M – Föreläsning 5 kap 8-13 Operatorer,typkonvertering, booleska operatorer, if och else.
Föreläsning4 Repetition slingor Metoder. while-sats består av följande delar: 1. while 2. Villkor-sats (condition) 3. uttryck (statement) while-sats int.
Programmering i.NET Farid Naisan, Universitetsadjunkt Datavetenskap, Teknik och samhälle, Malmö högskola Assembly.
1 Föreläsning 4 Metoder & parametrar Array API och klassen ArrayList.
Lennart Edblom, Frank Drewes, Inst. f. datavetenskap 1 Föreläsning 3: Abstrakta datatyper Algebror Abstrakta datatyper Inkapsling och informationsmaskering.
Överlagring av operatorer, friends, user-defined conversions, klassmallar sid. 1 6/29/2015 CD5250 OOP med C++ Mats Medin MDH/IDT Överlagring av operatorer.
OOP&M - teori1 OOPM del II– Föreläsning vecka Mer om ärvning.. Abstrakta klasser/metoder Gränssnitt/Interface klasser.
OOP&M - teori1 OOPM del II – Föreläsning vecka Abstrakta klasser/metoder igen Gränssnitt/Interface klasser igen tillämpat.
Lab Contact 1  Lab Assistants:  Meng Liu, Group B  Sara Abbaspour, Group A
TDP004 Objektorienterad Programmering Fö 6 Objektorientering forts.
TDP004 Objektorienterad Programmering Fö 8 Sammanfattning
Detaljer i exception-hantering
Föreläsning 8: Exempel och problemlösning
Presentationens avskrift:

Visual Studio 2005 Patrik Löwendahl, SweNUG, Cornerstone Johan Lindfors

Visual Studio 2005.NET Framework 2.0 Namnrymder, basklasser och programmeringsspråk

Mål med presentationen  Introducera.NET Framework 2.0  Generics  Anonyma metoder  Iteratorer  Delade klasser  Nyheter i språken  Refactoring och code snippets i Visual C#  My.* i Visual Basic.NET  C++/CLI

Att skriva typsäker kod  Kod förlitar sig ofta på typen object  Kan användas som vilken typ som helst  Vanligt för fält, parametrar/returvärden  Den tekniken har en del sårbarheter  Ingen typkontroll vid kompilering  “Boxing”, “Unboxing” och typkontroller vid exekvering  Oväntade typkonvertingar

demo Exempel på typsäkerhet

En stack med och utan Generics object int object int object int object int Box Push Utan Generics object int Unbox Pop Push Med Generics int Pop

Generics  Definitioner kan parameteriseras med typdetaljer  Möjliggör generisk kod som är ovetande om typinformation vid kompileringsögonblicket  Korrekt typ används först vid JIT-kompilering  “Generics” i Eiffel & Ada, “templates” i C++  Kan använda generisk typinformation på många platser i applikationer  Klasser, strukturer, gränssnitt, metoder,delegater...

Sätta begränsningar  Sätter krav på typer som får anges som generisk typinformation.  Försäkrar att typer erbjuder krävd funktionalitet  Ännu starkare typkontroll vid kompilering  Minskar behovet för explicita typkonverteringar  Kan begränsa användandet  Det finns tre sorters begränsningar  Klass  Interface  Konstruktor

demo Implementera Generics

Anonyma Metoder  Viss kod anropas bara av delegater  Händelsehanterare och “callback”  Anonyma metoder är en elegant lösning  Tillåter kod för delegater att skrivas “in-line”  Kan användas överallt en delegat förväntas  Påminner om Lisp och Python  Förlitar sig på implicit konvertering av delegat  Kräver kompatibla parametrar och returvärden

demo Anonyma metoder

Enumeratorer  Det är vanligt att iterera genom samlingar  foreach bygger på ett känt mönster.  I C# 1.x implementerar vi själva mönstret.  Omständigt och repetetivt om man vill ha hårdtypning. public interface IEnumerable { IEnumerator GetEnumerator(); } public interface IEnumerator { object Current { get; } bool MoveNext(); void Reset(); }

Iteratorer  Kompilatormagi för att slippa implementera IEnumerable-mönstret  Nya nyckelord  yield return – producerar nästa element  yield break – indekerar avslutad iteration  Kan implementeras som en metod eller en egenskap om den returnerar  IEnumerable  IEnumerator  IEnumerable  IEnumerator

demo Iteratorer

Delade typer  Tillåter implementation av en typ över flera filer  Klasser och strukturer (och gränssnitt i C#)  Deklareras med nya nyckelordet partial  En hel del fördelar  Stora implementationer kan delas upp  Användarkod kan separeras från genererad  Flera utvecklare kan jobba med samma typ  Möjliggör “code-beside” vs “code-behind”  Kan underlätta underhåll och källkodshantering  Underlättar inte versionshantering

demo Delade typer

Andra förbättringar  Edit and Continue stöd i C#  Egenskaper med skilda ”accessors” för get/set  Elegantare delegathantering  Statiska klasser  Alias för global namnrymd ”::”  #pragma warning  Speciell syntax för tomma värdetyper  INullable pattern  int? I

demo Andra nyheter

”Refactoring”  Metodik för att hantera kod som genomgår evolution  Visual Studio 2005 levereras med stöd för refactoring-processen  Promote  Extract  Encapsulate  Rename  Ytterligare förbättringar...

demo Refactoring i C#

Säkerhetsuppdateringar  SecureString  Använder DPAPI  SecurityContext klass  System.Security.AccessControl  System.Security.Cryptography  DPAPI  Kod och bevisbaserad säkerhet  Bevis för installerad i GAC

My.* klasser  Erbjuder snabb åtkomst till vanliga funktioner  Minskar antalet rader kod  My.* innehåller:  My.Application  My.Computer  My.User  My.Forms  My.Webservices  My.Resources  My.Settings

Nya nyckelord  Continue  Hoppar till nästa iteration i Do, For och While  Using  Försäkrar hanteringen av resurser Dim p As Pen = New Pen(c) Try g.DrawLine(p, 0, 0, 50, 50) Finally If Not p Is Nothing Then CType(p, IDisposable).Dispose() End If End Try Using p As New Pen(c) g.DrawLine(p, 0, 0, 50, 50) End Using

Andra förbättringar Dim b(0 To 7) As Byte  Överlagring av vanliga operatorer  För klasser och strukturer  Ny IsNot operator  Underlättar syntaxen från Not och Is  Explicita nollindexerade vektorer  Skräddarsydd händelsehantering  XML dokumentation genom kommentaren '''

demo Nyheter i Visual Basic.NET

Förbättringar i Visual C  Språk och biblioteksförbättringar  Mycket hög anpassning till standards (>98%)  Eleganta tillägg till språket för att koda mot CLR  Förbättringar i ATL, MFC, SCL och CRT  Nya funktioner i kompilatorn  Mixad, ren och verifierbar kompilering  64-bitars ren och korskompilering  Förbättrad produktivitet och enkelhet

CLR datatyper  Deklarera hanterade CLR datatyper class N { /*...*/ }; // Native C++ class ref classR { /*...*/ }; // CLR reference class value class V { /*...*/ }; // CLR value class interface classI { /*...*/ }; // CLR interface enum class E { /*...*/ }; // CLR enumeration delegate void ThingEventHandler( int ); // Delegate eventThingEventHandler^ Thing; // Event

demo Använda C++/CLI

Andra förbättringar i FX 2.0  Semaforer  Komprimering av strömmar  Konsoluppdateringar  HttpListener  Seriella portar  FTP klasser  Debuggningsattribut

Sammanfattning .NET Framework 2.0  Generics  Anonyma metoder  Iteratorer  Partiella typer  Säkerhet, nya klasser, förbättringar  Språken  Refactoring, enkelhet, standardisering