Create your own awesome maps

Even on the go

with our free apps for iPhone, iPad and Android

Get Started

Already have an account?
Log In

Metaprogrammierung by Mind Map: Metaprogrammierung
0.0 stars - reviews range from 0 to 5

Metaprogrammierung

Ziel

Wiederverwendbar

Beispiel, FK-Indizes für Tabellen erstellen, OMG, CWM

bei standardisierten Metamodellen

Komplexität reduzieren

mehr Flexibilität

Entwicklungszyklus den UAM ein Stück näher bringen

Chancen

Einsatz mit DSL´s

Einbezug von Business-Analysten, Businessregeln der Software, Verwaltung der instabilen Programmteile, als Folge von kurzfristigen Management-Entscheiden

Einbezug aller Stakeholder, erfordert Teamarbeit und einen Blick über den Tellerrand

evtl. schnellere Reallisierung möglich, The human factor ;-)

Tools in .NET

CodeDom

Ist mir zu akademisch und unflexibel, nur VB.NET und C#

Dynamic binder

Reflection

T4

Text Template während der Entwicklung, benötigt Visual Studio

Preprocessed Templates zum Teil zur Laufzeit, in Kombination mit

bald: Compiler as a Service (eval)

evtl. dann mal so einfach wie in Javascript?

eval

Roslyn project

evtl. C# 6.0 und VB.NET 12

DSL Embedding

Eval

API's, Compiler API's, Syntax Tree API, Symbol API, Binding and Flow API's, Emit API, Compiler Pipeline, Parser, Symbols, Metadata Import, Binder, Il Emitter, Language Service, Formatter, Colorizer, Outlining, Navigate To, Object Browser, Completion List, Find All References, Rename, Quick Info, Signature Help, Extract Method, Go To Definition

CTP verfügbar ab Oktober 2011, Scripting Engine, kombinierbar mit statischen Code, Objekte zur Laufzeit erweitern, Execute(code, session), Session, Syntax Parsing, Syntax.ParseStatement

Definition

Klassisch

Ein Programm, dass ein Programm schreibt, während der Entwicklung, UML/DSL

Konfigurationsdateien

Codegenerierung in Anwendung eingebettet

Ein Programm, dass zur Laufzeit ein Programm erstellt, zur Laufzeit, Herausforderungen, Performance, Optimierung, Test/Validierung, Schadcode

Programmcode liegt in Form von Daten vor, Metaprogramm führt Daten aus