Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Deklarative Programmierung mit Attributen Ralf Westphal

Ähnliche Präsentationen


Präsentation zum Thema: "Deklarative Programmierung mit Attributen Ralf Westphal"—  Präsentation transkript:

1 Deklarative Programmierung mit Attributen Ralf Westphal

2 Deklarative Programmierung? Beschreiben, was ein Ergebnis sein soll Weniger fehlerträchtig, da kein Prozess implementiert werden muss Nicht das Wie nennen, um zu dem Ergebnis zu kommen Gegensatz: Imperative Programmierung Beispiel: SQL select vs low-level DB API

3 Attribute Typsichere erweiterbare Metadaten Typsicher: Attribute sind Klassen Erweiterbar: Eigene Attributklassen möglich Metainformation: Annotation von Sprachkonstrukten z.B. Assembly, Klasse, Eigenschaft, Methode, Parameter Sprachübergreifend Attribute sind nicht neu Sichtbarkeitsangaben, COM+ Tx-Einstellungen, XML-Attribute, COM Typlibs Anwendung Sprachabhängige Notation Attributdefinitionen sind Konstruktoraufrufe Attributobjekt wird erst bei Zugriff via Reflection erzeugt

4 Beispiele _ Public Class MyService _ Public Function Add(...)... End Class [Serializable()] Public class MyClass { public string name;... } _ Public Class Customer _ Public id As String Public companyname As String... End Class

5 Attribute im.NET Framework XML-Serialisierung XML Web Services Code Access Security Serviced Components COM-Interop, P/Invoke Assemblyannotation Attributdefinition etc.

6 Definition Ableitung einer Klasse von System.Attribute Klassennamepostfix: Attribute Einschränkung der Nutzung über AttributeUsage- Attribut Konstruktor-Parameter, Felder, Eigenschaften Als Typen sind nur vordefinierte erlaubt, z.B. Boolean, Char, Integer, String, Object Eindim. Arrays dieser Typen Zuweisung im Quelltext durch konstanten Ausdruck Mehrfachbenutzung eines Attributes nur erlaubt, wenn AllowMultiple = true Attributvererbung nur, wenn Inherited = true Gilt nur für Klassen, Methoden, Eigenschaften, Ereignisse, Parameter

7 Anwendung Sprachabhängige Syntax für die Annotation Attributangaben sind Konstruktoraufrufe Übergabe von Parametern Aufruf erst bei Zugriff mit Reflection Zuweisung von Werten an öffentliche Felder in Konstruktor-Parameterliste [DllImport("Kernel32", CharSet=CharSet.Auto)] Mehrere Attribute können dasselbe Konstrukt annotieren Getrennte Attributangabe Kommaseparierte Liste Explizite Gültigkeitsangabe möglich [type: Serializable()]

8 Zugriff Container implementiert Zugriff auf Attribute Ohne Container keine Wirkung Der Wert eines Attributs entsteht im Auge des Betrachters Instanzen über Reflection ermitteln System.Attribute.IsDefined(),.GetAttribute(),.GetAttributes() Ziel-Typ.IsDefined(), GetAttributes() Funktioniert nicht für Pseudo-benutzerdefinierte Attribute (PbA) Z.B. System.SerializableAttribute Speicherung als komprimierte Bit-Information in den Assembly-Metadaten Alternative für einige PbA: Eigenschaften auf System.Type wie.IsSerializable

9 Attributaktivität Passive Attribute Werden durch den Container interpretiert Aktive Attribute Container stößt Funktionalität in Attributinstanz an Automatische Aktivität mit Kontextattributen

10 Kontextattribute Automatische Aktivierung bei Objekterzeugung.NET Remoting Infrastruktur ist Container Definieren virtuelle Remoting-Grenzen in einer AppDomain Dienen der Registrierung von Kontexteigenschaften und –sink-Objekten Sinks ermöglichen das Abfangen von Nachrichten (Methodenaufrufe) in einen Kontext hinein Definition Ableitung der Attributklasse von ContextAttribute Zu annotierende Klasse muss von ContextBoundObject abgeleitet sein

11 Deklarative Programmierung! Annotation von Konstrukten mit Funktionalität Aktive Attribute Kein Eingriff in Konstrukte nötig Orthogonale Funktionalität Alternative zu Ausprogrammierung (Instrumentierung) Delegation Vererbung

12 Fragen!? Uff...

13 Ressourcen J. Richter: Microsoft.NET Framework Programmierung; ISBN , MSPress 2002Microsoft.NET Framework Programmierung I. Rammer: Advanced.NET Remoting; ISBN , APress 2002Advanced.NET Remoting;

14 Über den Referenten Ralf Westphal ist freier Softwaretechnologievermittler. Er arbeitet als Fachautor, Coach/Berater, Softwareentwickler und Sprecher auf Konferenzen im In- und Ausland wie Microsoft Technical Summit, XML-in-Action, BASTA!, COMDEX, Software Development oder XML One. Der Schwerpunkt seiner Arbeit liegt bei der Vermittlung und Anwendung moderner Softwaretechnologien und -konzepte auf der Microsoft Plattform mit Fokus in den Bereichen OOP/komponentenorientierte Entwicklung, Softwarearchitektur und.NET Framework. Darüber hinaus ist Ralf Westphal einer der deutschen Microsoft MSDN Regional Directors, Mitglied verschiedener Fachbeiräte und war von 1998 bis 2001 Chefredakteur der Visual Basic Fachzeitschrift BasicPro. Homepage:

15 .NET kompakt.NET kompakt 140 Seiten, Spektrum Akademischer Verlag, 2002, ISBN ADO.NET Datenbankprogrammierung 130 Seiten, Addison-Wesley, 2002, ISBN Jetzt lerne ich ADO.NET Jetzt lerne ich ADO.NET Einfache Datenbankprogrammierung im.NET- Framework 400 Seiten, Markt+Technik, 2002, ISBN (erscheint 2003) Bücher des Referenten


Herunterladen ppt "Deklarative Programmierung mit Attributen Ralf Westphal"

Ähnliche Präsentationen


Google-Anzeigen