Deklarative Programmierung mit Attributen

Slides:



Advertisements
Ähnliche Präsentationen
C Sharp (C#) Martin Saternus Senior Student Partner
Advertisements

der Universität Oldenburg
der Universität Oldenburg
Metamodell, Reflection in objektorientierten Sprachen
Programmierung II Prof. Dr. Michael Löwe
Definition von Klassen in Java
SQL Server 2005.NET Integration Sebastian Weber Developer Evangelist Microsoft Deutschland GmbH.
.NET Remoting und XML Web Services. Ralf Westphal
Was ist neu in VS 2003 ? Ein Überblick. Bernd Marquardt Software & Consulting
Web Matrix Project Kurzüberblick Dirk Primbs Technologieberater Developer Platform Strategy Group Microsoft Deutschland GmbH.
FH-Hof Einbindung von JavaScript Anweisungen
Java: Objektorientierte Programmierung
Java: Dynamische Datentypen
Indirekte Adressierung
FH-Hof Verwaltung von Zeichenketten Richard Göbel.
Java: Referenzen und Zeichenketten
Java: Grundlagen der Objektorientierung
XDoclet ETIS SS05.
Programmieren mit JAVA
Programmieren mit JAVA
VB .NET Proseminar .NET SS04.
Introducing the .NET Framework
Projektplan: Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University.
DVG Interfaces. DVG mehrfache Vererbung 4 Mehrfache Vererbung ist die Ableitung einer Klassen von mehreren anderen Klassen. –farbigerPunkt.
07-GraphischeObjekte Graphische Objekte in EMMA301Paint.
Abstrakte Klassen, Interface
DVG Klassen und Objekte
05 - Reflection Das Reflection API Reflection2 Ziel Es kommt vor, dass eine Methode ein Objekt als Parameter übergeben bekommt, ohne dass bekannt.
RelationentheorieObjektorientierte Datenbanken AIFB SS Das ODMG-Objektmodell vs. relationales Modell (1/9) ODMG-Objektmodell Literal_type Atomic_literal.
Hänchen & Partner GmbH 1 Web-Anwendungen mit dem Jakarta Struts Framework 3.Juli 2003 Martin Burkhardt.
MSDN Webcast Visual Studio 2005 mit Visual FoxPro Jochen Kirstätter Mai 2005 –
Presenter: Daniel Walzenbach Technologieberater
MSDN Webcast: VB.NET für Einsteiger und Umsteiger, Teil 10 Die erste, eigene Klassenbibliothek (Level 100) Presenter: Daniel Walzenbach Technologieberater.
Presenter: Daniel Walzenbach Technologieberater
Einführung in die Programmierung Wintersemester 2013/14 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Wir bauen uns eine Webapplikation!
Einführung in die Programmierung
Informatik 1 Übung 8. NACHBESPRECHUNG Übung 8 Rekursion Existiert Weg von A nach B?
Entwicklung verteilter Anwendungen I, WS 13/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 12 Folie 2 Web Services (1)
IT2 – WS 2005/20061Oct 10, 2005 Externes Verhalten – Quelltext (source code) Durch Aufrufe der Konstruktoren und Methoden kann das externe Verhalten (=die.
SQL Server 2005 CLR-Integration
Consulting and Solutions.NET Vortragsreihe – Vorstellung der Referenten Happy Arts Software Markus Kämmerer IT-Erfahrung seit 1987,
EPROG Tutorium Einheit 4 Klassen und Objekte. Wiederholung Schleifen do... while while for break/continue Strings String char Methoden für Strings Arrays.
Einführung in die Programmierung Wintersemester 2008/09 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Einführung in die Programmierung Wintersemester 2008/09 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Einführung in die Programmierung Wintersemester 2008/09 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Einführung in die Programmierung Wintersemester 2010/11 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Einführung in die Programmierung Wintersemester 2011/12 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Windows Presentation Foundation, Vorlesung Wintersemester 2013/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 2 Folie 2 XAML (1) s.a.
Entwicklung verteilter Anwendungen I, WS 13/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 1 Folie 2 Microsoft.NET Framework: Quelle:
OOP-Begriffe Abstraktion Modellieren Klasse Objekt Attribute Methoden
Vortrag: Visual Basic Neuerungen Autor : Dennis Hoyer
EPROG Tutorium #5 Philipp Effenberger
Voyager Eigenschaften/Vorzüge Universalität: –ROI-Modelle: CORBA, RMI, DCOM –verschiedene Namens-, Verzeichnisdienste Nachrichtentypen: synchron, oneway,
Mag. Thomas Hilpold, Universität Linz, Institut für Wirtschaftsinformatik – Software Engineering 1 Programmierpraktikum Java SS 2005 Mag.Thomas Hilpold.
OOP-Begriffe Abstraktion Modellieren Klasse Objekt Attribute Methoden
RelationentheorieObjektorientierte Datenbanken  AIFB SS C++-ODL (1/6) Erweiterung des deklarativen Teils einer C++-Klasse Datentypen d_String,
HG13_ Herzgen, Jung & Lorkowski1 Java Programmierung BlueJ Workshop.
Einführung in die Programmierung mit Java
Java-Kurs Übung Besprechung der Hausaufgabe
Java-Kurs - 5. Übung Besprechung der Übungsaufgabe Klassen und Objekte
IT2 – WS 2005/20061Nov 14, 2005 Visibility  public: Sichtbar in allen Paketen  protected: Sichtbar innerhalb des Pakets und in den Unterklassen  (default,
NET Remoting.Net („dotnet“) :von Microsoft eingeführte Plattform für verteilte Anwendungen, virtuelle Maschine für die verteilte Ausführung von.
Objektorientierte Programmierung (OOP)
Microsoft Student Partner
Objektorientierte (OO) Programmierung
Objektorientierte Programmierung §Klassen §Objekte §Attribute §Eigenschaften §Methoden §Datenkapselung §Ereignisse §Vererbung §Entwicklungszeit §Laufzeit.
Grundkurs Informatik 11-13
Implementieren von Klassen
 Präsentation transkript:

Deklarative Programmierung mit Attributen MSDN TechTalk – <<Monat JJJJ>> <<Thema>> 1 Deklarative Programmierung mit Attributen Ralf Westphal ralfw@ralfw.de

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

Attribute Typsichere erweiterbare Metadaten Anwendung 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

Beispiele <WebService()> _ Public Class MyService <WebMethod()>_ Public Function Add(...) ... End Class [Serializable()] Public class MyClass { public string name; } <DBTable("Customers")> _ Public Class Customer <DBField("CustomerID")>_ Public id As String Public companyname As String ... End Class

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

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

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 <Assembly: AssemblyVersion("1.0.*")> [type: Serializable()]

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

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

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

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

MSDN TechTalk – <<Monat JJJJ>> <<Thema>> 12 Fragen!? MSDN TechTalk – <<Monat JJJJ>> <<Thema>> 12 Uff...

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

Ü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: www.ralfw.de

MSDN TechTalk – <<Monat JJJJ>> <<Thema>> 15 Bücher des Referenten MSDN TechTalk – <<Monat JJJJ>> <<Thema>> 15 .NET kompakt 140 Seiten, Spektrum Akademischer Verlag, 2002, ISBN 3827411858 ADO.NET Datenbankprogrammierung 130 Seiten , Addison-Wesley , 2002 , ISBN 3827319978 Jetzt lerne ich ADO.NET Einfache Datenbankprogrammierung im .NET- Framework 400 Seiten, Markt+Technik, 2002, ISBN 3827262291 (erscheint 2003)