80 likes | 187 Views
Entwicklung verteilter Anwendungen I WS 2013/14 Prof. Dr. Herrad Schmidt. Kapitel 2 .NET und C #. Microsoft .NET Framework:. .NET Framework 4.0 siehe http://msdn.microsoft.com/en-us/library/ff361664(v=VS.100). aspx
E N D
Entwicklung verteilter Anwendungen IWS 2013/14Prof. Dr. Herrad Schmidt Kapitel 2 .NET und C#
Microsoft .NET Framework: .NET Framework 4.0 siehe http://msdn.microsoft.com/en-us/library/ff361664(v=VS.100).aspx bzw. .NET Framework 4.5siehe http://msdn.microsoft.com/en-us/library/ff361664.aspx Entwicklungsumgebung Visual Studio 2010 bzw. 2012: http://msdn.microsoft.com/en-us/vstudio/ Quelle: http://msdn.microsoft.com/en-us/library/zw4w595w.aspx
C#-Grundlagen s.a. http://msdn.microsoft.com/en-us/library/z1zx9t92.aspx Objektorientierte Sprache (keine Mehrfachvererbung, aber es können mehrere Schnittstellen implementiert werden) Klasse Object ist Wurzel aller Klassen Interfaces Properties (get/set) GarbageCollector Generische Methoden und Typen, Iteratoren Delegates Attribute (Metadaten zu Typen) Zeiger möglich, aber nicht unbedingt üblich Keine Headerdateien
Quellcode wird beim Kompilieren in einen Intermediate Language (IL)-Code (sprachunabhängig) übersetzt und mit Ressourcen und Metadaten etc. in eine ausführbare Datei (Assembly) gespeichert. Bei der Ausführung wird die Assembly (Zwischencode) just-in-time durch die CLR in die Maschinensprache der CPU übersetzt. Quelle: http://msdn.microsoft.com/en-us/library/z1zx9t92.aspx
C# (1): Klassenpublicclass K{publicstring Zeichenkette;public K() { Zeichenkette = "blabla" ; }publicvoid Methode() { … }} Eigenschaften (properties) public string Bezeichnung { get { return Zeichenkette; } set { Zeichenkette = value; } } Vererbung (nurbeiKlassen, nichtbeistruct) und Polymorphismussiehehttp://msdn.microsoft.com/en-us/library/ms173149.aspx und http://msdn.microsoft.com/en-us/library/ms173152.aspx Containerklassen (Collections) und Iteratorenarray, ArrayList, List<t>, dictionary, foreach
C# (2): Schnittstellen (interfaces)Zusammenfassung von (automatisch öffentlichen) Methoden, Eigenschaften und Ereignissen ohne Implementierung;Eine oder mehrere Klassen oder Strukturen enthalten die Implementierung. Sie erben vom interface. Delegaten (Delegatentyp)Eine Klasse, die einen Verweis auf eine oder mehrere Methoden enthalten kannDeklaration des DelegatentypsMeinDelegat mit Signatur:publicdelegateintMeinDelegat (string Text); Instanziierung:MeinDelegatmd = newMeinDelegat(DelegatmethodeX); MeinDelegatmd = DelegatmethodeX; // seit C# 2.0 auch möglich Aufruf:md("blabla");
C# (3): Ereignis (event)s.a. http://msdn.microsoft.com/en-us/library/awbftdfh.aspx Prinzip:DerHerausgeber verfügt über ein event und löst es aus.Der Abonnent behandelt das Ereignis durch Ereignishandlermethoden.Ereignisse basieren auf dem EventHandler-Delegaten publicdelegatevoidEventHandler(objectsender, EventArgs e); und der EventArgs-Klasse. Die Herausgeberklasse deklariert ein event: publiceventEventHandler Aktion; Abonnent fügt Methode hinzu:Objekt.Aktion += Ereignishandlermethode; Herausgeber löst das Ereignis aus:Aktion(this, …);
Solution 1_C-Sharp-Grundlagen: A_Konsolenanwendung B_Listen C_Interface D_Delegate E_EventOhneDaten F_EventMitDaten Übung 1:Konsolenanwendung in C# Schreiben Sie ein C#-Programm mit Events und Delegaten:Es gibt Teilnehmerobjekte und ein Verwaltungsobjekt. Wenn die Teilnehmer sich anmelden, ändert sich ihr Status (angemeldet = 1). Wenn der Anmeldeschluss erreicht ist, löst das Verwaltungsobjekt ein Event aus, wodurch bei allen Teilnehmern der Status auf 2 gesetzt wird (im Sinne einer Anmeldebestätigung).