260 likes | 281 Views
This session covers the fundamentals of .NET, focusing on the vision behind it, practical usage, and theoretical knowledge of C#. Explore relevant language features, deployment challenges, security mechanisms, and more.
E N D
Grundlagen .NET Hilmar Salomo Microsoft Student Consultant Student der Informatik FH Augsburg i-hilsal@microsoft.com Tobias Richling Microsoft Student Partner Student der Wirtschaftsinformatik Universität Münster tobias.richling@studentprogram.de Grundlagen .NET STC 02. – 03. Juni 2004
Ziele • Praxis !!! • Verständnis der Vision hinter .NET • Theoretische Kenntnisse in C# • Praktische Kenntnis im Umgang mit C# Grundlagen .NET STC 02. – 03. Juni 2004
Gliederung • Warum .NET? • Relevante Sprachfeatures von C# • Praxis • Zusammenfassung Grundlagen .NET STC 02. – 03. Juni 2004
Warum .NET: Softwareinseln Warum .NET Sprachfeatures Beispiel Zusammenfassung ? ? ? ? Grundlagen .NET STC 02. – 03. Juni 2004
Warum .NET: Probleme Warum .NET Sprachfeatures Beispiel Zusammenfassung • Schwieriges Deployment • DLL Hell • Versionierung • Nicht interoperabel da inkompatibel • Typsystem • unterschiedliche Technologien • Alte Techniken, z.T. nicht Objektorientiert • Sicherheitsmängel Grundlagen .NET STC 02. – 03. Juni 2004
Warum .NET: Vision Warum .NET Sprachfeatures Beispiel Zusammenfassung Grundlagen .NET STC 02. – 03. Juni 2004
Warum .NET: Vorteile Warum .NET Sprachfeatures Beispiel Zusammenfassung • Einfaches Deployment • Selbstbeschreibende Komponenten • Interoperabilität und Kompatiblität • Einheitliches Typsystem • Portierbares Framework • Vollständig Objektorientiert • Strenge Sicherheitsmechanismen • Sicherheit nach Codeidentität Grundlagen .NET STC 02. – 03. Juni 2004
Grundbausteine des .NET Framework Warum .NET Sprachfeatures Praxis Zusammenfassung Security, Evidence Visual Studio.NET Intermediate Language VB C++ C# JScript J# Common Language Specifications Windows Forms Web Forms WebServices Windows- Applikation ASP.NET ADO.NET Base Class Library, XML Common Language Runtime, Common Type System Grundlagen .NET STC 02. – 03. Juni 2004
Ausführungsmodell Warum .NET Sprachfeatures Praxis Zusammenfassung Sourcecode VB.NET VC#.NET VC++.NET Unmanaged Component Compiler Compiler Compiler Assembly Assembly Assembly IL-Code JIT Compiler NGEN CLR Managed Code Managed Code Managed Code Unmanaged Code Native Code CLR Services Operation System Services Grundlagen .NET STC 02. – 03. Juni 2004
Metadaten - Reflection System.Type Felder Methoden . . . Person p = new Person(“Hilmar",“Salomo"); Person p Hilmar Salomo Warum .NET Sprachfeatures Praxis Zusammenfassung public class Person { public string firstName; public string lastName; public bool Save() { System.Type t = this.GetType(); foreach(FieldInfo f in t.GetFields()) { ... } } } Grundlagen .NET STC 02. – 03. Juni 2004
Klassenbibliothek System.Web System.Windows.Forms Services UI Design ComponentModel Description HtmlControls Discovery WebControls Protocols System.Drawing Caching Security Drawing2D Printing Configuration SessionState Imaging Text System.Data System.Xml OleDb SqlClient XSLT Serialization Common SQLTypes XPath System Collections IO Security Runtime InteropServices Configuration Net ServiceProcess Remoting Diagnostics Reflection Text Grundlagen .NET STC 02. – 03. Juni 2004 Serialization Globalization Resources Threading
Sprachfeatures von C# Warum .NET Sprachfeatures Praxis Zusammenfassung • Typsystem und Typisierung • Zugriffsrechte • Klassen und Strukturen • Boxing und Unboxing • Enumerations • Felder • Properties und Indexer • Fehlerbehandlung • For Each Schleifen Grundlagen .NET STC 02. – 03. Juni 2004
Typ System Warum .NET Sprachfeatures Praxis Zusammenfassung • Basiert auf dem Common Type System • Einheitliches Konzept • „Alles“ ist ein Objekt • Referenz- und Valuetypes Value Reference Interfaces Simple Types Classes Enums Arrays Structs Heap Stack Grundlagen .NET STC 02. – 03. Juni 2004
Zugriffsrechte Warum .NET Sprachfeatures Praxis Zusammenfassung • Von C++ übernommen • public • protected • private • Erweiterungen in C# • sealed • internal • protected internal Grundlagen .NET STC 02. – 03. Juni 2004
Klassen vs. Strukturen Warum .NET Sprachfeatures Praxis Zusammenfassung Struktur Klasse Interface Interface Field Field Properties / Indexer Properties / Indexer Methoden Methoden Events / Delegates Subclass Subclass Heap Stack Grundlagen .NET STC 02. – 03. Juni 2004
Boxing und Unboxing Warum .NET Sprachfeatures Praxis Zusammenfassung • Werttypen können „boxed“ oder „unboxed“ werden • Boxing erlaubt Werttypen als Referenzen zu übergeben • Basiert auf der Tatsache, dass alles ein Objekt ist boxing double value; //Boxing object BoxedValue = value; //Unboxing value = (double)BoxedValue; Object Value Double Value unboxing Heap Stack Grundlagen .NET STC 02. – 03. Juni 2004
Enumerations Warum .NET Sprachfeatures Praxis Zusammenfassung • Benannte Elemente anstatt Nummern • Stark typisiert • Einfacher zu nutzen: „Color.Red“ als „3“ enum Color { White, // 1 Red = 3, Green, // 4 Blue, // 5 Yellow = 5 // auch 5!!!}; Grundlagen .NET STC 02. – 03. Juni 2004
Felder Warum .NET Sprachfeatures Praxis Zusammenfassung • Nullbasiert und typegebunden • Deklariert mit Type und Shape, aber ohne Grenze • Erzeugung mit „new“ und Grenzen oder Initialisierern • int [ ] SingleDim = new int [20]; • int [ , ] TwoDim = new [ ] {{1,2,3} {4,5,6}}; • int [ ] [ ] Jagged = new int [1] [ ]; Grundlagen .NET STC 02. – 03. Juni 2004
Properties Warum .NET Sprachfeatures Praxis Zusammenfassung • Mischung aus Membern (Feldern) und Methoden • Nutzen bei • „readonly“ / „writeonly“ Feldern • Validierungen bei der Zuweisung / Berechnungen Klasse String test private String test; int wrong public property Name get String Name set String Name Grundlagen .NET STC 02. – 03. Juni 2004
Properties Warum .NET Sprachfeatures Praxis Zusammenfassung public string name { get { return name; } set { name = value; } } Klasse String test private String test; int wrong public property Name get String Name set String Name Grundlagen .NET STC 02. – 03. Juni 2004
Indexer Warum .NET Sprachfeatures Praxis Zusammenfassung • Konsistenter Weg, um Container zu erstellen • Basieren auf der Property Idee • Index Qualifizierer können von jedem Typ sein public object this[string index] { get { return Dict.Item(index); } set { Dict.Item(index) = value; } } Grundlagen .NET STC 02. – 03. Juni 2004
Fehlerbehandlung Warum .NET Sprachfeatures Praxis Zusammenfassung • Try – Catch – finally Block try { // gefährlicher Code } Catch (e as Fehlerobjekt) { // Fehlerbehandlung } Finally { // Abschlussarbeiten } Try Fehler Kein Fehler Catch Fehlerobjekt Fehlerbehandlung Finally Abschlussarbeiten Grundlagen .NET STC 02. – 03. Juni 2004
Foreach Schleifen Warum .NET Sprachfeatures Praxis Zusammenfassung • Einfach Iterationsmöglichkeit für Collections • Einsatz für alle Arrays und sonstige Collections • Können in eigenen Collections verwandt werden Point[] Points = GetPoints();foreach( Point p in Points ){ MyPen.MoveTo(p.x,p.y);} Grundlagen .NET STC 02. – 03. Juni 2004
Zusammenfassung Warum .NET Sprachfeatures Praxis Zusammenfassung • Verständnis der Grundkonzepte von .NET • Überblick über die Grundlegenden Sprachfeatures von C# • Grundkenntnisse der Programmierung mit C# Grundlagen .NET STC 02. – 03. Juni 2004
Fragen Vielen Dank für die Aufmerksamkeit! Haben Sie noch Fragen? Grundlagen .NET STC 02. – 03. Juni 2004
Wie geht es weiter auf der STC…? Grundlagen .NET STC 02. – 03. Juni 2004