In diesen Folien erfahren Entwickler, ob es sich lohnt, bereits jetzt auf die neueste Version Visual Studio 2012 zu setzen. Wie gewohnt bringt Microsoft eine Fülle von neuen Features. Aber welche davon sind im Alltag wirklich relevant? Was wird nicht mehr unterstützt?
BASTA! Spring 2018 - Architekturen für .NET Core-AnwendungenRobin Sedlaczek
Slides from my workshop about software architectures for .NET Core applications at BASTA! Spring 2018 conference. We talk about architectures for enterprise mobile apps with Xamarin.Forms and ASP.NET Web Apps. Then we went hands-on and developed a CRM system called BASTAdynamics. :) One #microservice per desk, #containerized with #Docker, published to #Azure registry, deployed as Azure web apps. We have #aspnet #angular, #razor, #UWP & #Xamarin.Forms clients. #IdentityServer & @AzureCosmosDB in the backend. AND: We had a lot of fun! :)
Hands-on Workshop: API-Dokumentation mit OpenAPI / Swagger in ASP.NET CoreGregor Biswanger
Das Dokumentieren einer API wird oft als mühsame, aber wesentliche Aufgabe angesehen. Mit OpenAPI / Swagger können wir eine API-Dokumentation angenehm einfach in ASP.NET Core integrieren. Gregor Biswanger zeigt, wie eine API-Dokumentation mit einer Benutzeroberfläche hinzugefügt wird, mit der wir die API testen können.
Als Nächstes erfahren wir, wie wir Attribute und Konventionen verwenden, um die generierte OpenAPI-Spezifikation zu verbessern. Abschließend wird gezeigt, wie wir mit der Authentifizierung, Versionierung und Anpassung der Benutzeroberfläche umgehen.
Wie oft haben Sie schon in Foren gelesen: "Das geht nicht mit Bordmitteln; das muss man mit der C API machen". Schön und gut, aber wie geht das? Welche Tools benötige ich, und wo bekomme ich diese her? Die Session gibt einen Überblick über die Anwendungsgebiete der C / C++ API für Lotus Notes / Domino und erläutert die Installation einer Entwicklungsumgebung. Neben der Erstellung von C Programmen wird auch der direkte Aufruf von Funktionen aus Lotusscript heraus erläutert.
Praktische Beispiele sollen dem Entwickler den Einstieg in die Programmierung mit der C / C++ API für Lotus Notes / Domino erleichtern. Level: Einsteiger, die sich auch in Zeiten von XPages, JAVA und SSJS noch an das "Urgestein C" herantrauen.
Wachsende Daten beanspruchen schnellere und klügere Systeme, um die Datenverarbeitung bewältigen zu können. Die zeitgemäße Antwort darauf lautet: Big Data mit NoSQL! MongoDB ist eine der beliebtesten NoSQL-Datenbanken und bietet dem .NET-Entwickler einige Vorteile gegenüber bekannter SQL-Datenbanken. Der MongoDB-Experte Gregor Biswanger zeigt in seiner Session dazu einen perfekten Überblick und einige Tipps zum Einstieg aus der Praxis.
.NET Core, .NET Standard & ASP.NET Core - Eine ÜbersichtJürgen Gutsch
.NET Core 2.0 ist seit kurzem released, ebenso wie ASP.NET Core 2.0 und der .NET Standard 2.0.
Aber was ist das genau?
Was ist der .NET Standard und was hat er für Auswirkungen auf die Entwicklung mit .NET?
In diesem Vortrag möchte ich euch zeigen was das .NET Core ist, was für Chancen und Möglichkeiten ASP.NET Core bietet und was der .NET Standard damit alledem zu tun hat.
In diesen Folien erfahren Entwickler, ob es sich lohnt, bereits jetzt auf die neueste Version Visual Studio 2012 zu setzen. Wie gewohnt bringt Microsoft eine Fülle von neuen Features. Aber welche davon sind im Alltag wirklich relevant? Was wird nicht mehr unterstützt?
BASTA! Spring 2018 - Architekturen für .NET Core-AnwendungenRobin Sedlaczek
Slides from my workshop about software architectures for .NET Core applications at BASTA! Spring 2018 conference. We talk about architectures for enterprise mobile apps with Xamarin.Forms and ASP.NET Web Apps. Then we went hands-on and developed a CRM system called BASTAdynamics. :) One #microservice per desk, #containerized with #Docker, published to #Azure registry, deployed as Azure web apps. We have #aspnet #angular, #razor, #UWP & #Xamarin.Forms clients. #IdentityServer & @AzureCosmosDB in the backend. AND: We had a lot of fun! :)
Hands-on Workshop: API-Dokumentation mit OpenAPI / Swagger in ASP.NET CoreGregor Biswanger
Das Dokumentieren einer API wird oft als mühsame, aber wesentliche Aufgabe angesehen. Mit OpenAPI / Swagger können wir eine API-Dokumentation angenehm einfach in ASP.NET Core integrieren. Gregor Biswanger zeigt, wie eine API-Dokumentation mit einer Benutzeroberfläche hinzugefügt wird, mit der wir die API testen können.
Als Nächstes erfahren wir, wie wir Attribute und Konventionen verwenden, um die generierte OpenAPI-Spezifikation zu verbessern. Abschließend wird gezeigt, wie wir mit der Authentifizierung, Versionierung und Anpassung der Benutzeroberfläche umgehen.
Wie oft haben Sie schon in Foren gelesen: "Das geht nicht mit Bordmitteln; das muss man mit der C API machen". Schön und gut, aber wie geht das? Welche Tools benötige ich, und wo bekomme ich diese her? Die Session gibt einen Überblick über die Anwendungsgebiete der C / C++ API für Lotus Notes / Domino und erläutert die Installation einer Entwicklungsumgebung. Neben der Erstellung von C Programmen wird auch der direkte Aufruf von Funktionen aus Lotusscript heraus erläutert.
Praktische Beispiele sollen dem Entwickler den Einstieg in die Programmierung mit der C / C++ API für Lotus Notes / Domino erleichtern. Level: Einsteiger, die sich auch in Zeiten von XPages, JAVA und SSJS noch an das "Urgestein C" herantrauen.
Wachsende Daten beanspruchen schnellere und klügere Systeme, um die Datenverarbeitung bewältigen zu können. Die zeitgemäße Antwort darauf lautet: Big Data mit NoSQL! MongoDB ist eine der beliebtesten NoSQL-Datenbanken und bietet dem .NET-Entwickler einige Vorteile gegenüber bekannter SQL-Datenbanken. Der MongoDB-Experte Gregor Biswanger zeigt in seiner Session dazu einen perfekten Überblick und einige Tipps zum Einstieg aus der Praxis.
.NET Core, .NET Standard & ASP.NET Core - Eine ÜbersichtJürgen Gutsch
.NET Core 2.0 ist seit kurzem released, ebenso wie ASP.NET Core 2.0 und der .NET Standard 2.0.
Aber was ist das genau?
Was ist der .NET Standard und was hat er für Auswirkungen auf die Entwicklung mit .NET?
In diesem Vortrag möchte ich euch zeigen was das .NET Core ist, was für Chancen und Möglichkeiten ASP.NET Core bietet und was der .NET Standard damit alledem zu tun hat.
Codewiederverwendung in Xamarin-Apps maximierenAndré Krämer
Microsofts Xamarin Platform ermöglicht die Entwicklung von Apps für Android, iOS und Windows mit nur einem Werkzeug (Visual Studio) und einer Programmiersprache (C#). Da sich die Plattformen im Detail jedoch gehörig unterscheiden, bedeutet dies nicht, dass Sie Ihre Codebasis ohne Änderungen auf allen Plattformen nutzen können. Wie Sie trotz der Unterschiede möglichst viel Code plattformübergreifend wiederverwenden können, wird Ihnen André Krämer in diesem Vortrag zeigen. Dazu wird er die verschiedenen Optionen "Shared Projects", "Portable Class Libraries" und ".NET Standard Libraries" näher erläutern. Darüber hinaus wird er über Dependency Injection sprechen und den Xamarin Dependency Service mit leistungsstarken Inversion-of-Control- Containern wie Autofac vergleichen. Abgerundet wird der Vortrag mit einem Überblick über Xamarin.Essentials, einer Bibliothek, die plattformübergreifende Implementierungen gerätespezifischer Funktionen bietet.
Ein Blick in die Kristallkugel mit dem Ziel spannende und relevante Online-Trends für das Jahr 2001 hervorzusagen. Auf der Liste sind:
- UML
- .NET/C#
- SOAP
- P2P
- DivX ;-)
- UMTS
- RDF
- Micropayments
- XForms
- Spracherkennung/VoiceXML
WordPress sprachfähig machen - Lokalisierung Kür oder Krampf? - WordCamp Deut...David Decker
Session von (DECKERWEB) zu "WordPress sprachfähig machen - Lokalisierung Kür oder Krampf?"
Gehalten auf dem WordCamp Deutschland 2011 in Köln (24. September 2011),
Taugt AngularJS wirklich was? Erfahrungsbericht und AusblickPhilipp Burgmer
Slides for my presentation at WebTechCon/IPC 2014.
Visit us at http://www.thecodecampus.de
Folien zu meinem Vortrag bei der WebTechCon/IPC 2014.
AngularJS verspricht, die Entwicklung moderner Single-Page-Webanwendungen radikal zu vereinfachen. Doch kann dieses Versprechen auch bei Anwendungen, die über eine Demoanwendung (To-do-App) hinausgehen, gehalten werden? In diesem Vortrag zeigen wir die Stärken und Schwächen von AngularJS anhand unserer Erfahrungen aus mehreren Projekten und unserer Schulungen. Wie meistert man den Einstieg? Was sind die Gefahren, und wie minimiert man sie? Ist AngularJS bereit für den Einsatz in großen Anwendungen? Wir geben Antworten. Zusätzlich geben wir einen Ausblick auf AngularJS 2.0, wie die bekannten Schwächen dort behoben werden sollen und was an Neuerungen zu erwarten ist.
Using openArchitectureWare 4.0 in domain "registration"joergreichert
Some retro: This presentation dated 2006 shows how to do model driven software development with openArchitectureWare 4.0 in the example domain "registration".
Although openArchitectureWare is now superseded by Xtext, Xtend2 and Xbase it is always good to remember the principles of model driven software development.
Robuste Design Systems mit Storybook und Angular: vom Konzept zur lebendigen ...Andreas Wissel
Mit den stetig wachsenden Möglichkeiten, die Cross-Platform-Anwendungen bieten, wachsen auch die Anforderungen an deren Design. Skalierbarkeit, Flexibilität und Wandelbarkeit gehören zu den Grundprinzipien eines modernen User-Interfaces. Andreas Wissel und Christian Liebel erarbeiten mit Ihnen in diesem Workshop anhand von Praxisbeispielen einen robusten Workflow. Mit Storybook und Angular lassen sich so isolierte, test- und wartbare Komponenten im Handumdrehen umsetzen. Ihre Designer und Entwickler werden es lieben.
Konzepte, Werkzeuge und Ideen aus der Praxis für bessere und erfolgreichere .NET-Softwareprojekte:
Klassen/Objekte/Komponenten, Mehrschichtige .NET-Anwendungen, Bibliotheken und Pattern, Frameworks und Tools, Unit Testing und Codeanalyse, Continous Integration und Versionsverwaltung, Dokumentation und Instrumentation
Anwendungsbeispiele für Volltextsuche, Vorlagenerstellung mit der aktuellen eEvolution Version. Eine Präsentation von Alexander Kranz (eEvolution GmbH & Co. KG)
Ein kurzer Talk auf der DOAG (Deutsche Oracle Anwendergruppe) in Frankfurt über das gute Zusammenspiel von PHP5 und Oracle sowie ein kurzer Einblick in die Welt agiler Webentwicklung für businesskritische Anwendungen.
Large Language Models, Data & APIs - Integrating Generative AI Power into you...NETUserGroupBern
.NET User Group Meetup with Christian Weyer about Large Language Models, Data & APIs - Integrating Generative AI Power into your solutions - with Python and .NET
The document discusses creating secure .Net applications and implementing a zero trust security model. It introduces security context models which provide a framework for understanding authentication and authorization in modern applications. The remainder of the document outlines a demo of building a Blazor web application secured with Azure Active Directory, including authentication of external users, authorization with application roles, and using a security context diagram to communicate the security solution.
Weitere ähnliche Inhalte
Ähnlich wie Text Template Transformation Toolkit (T4)
Codewiederverwendung in Xamarin-Apps maximierenAndré Krämer
Microsofts Xamarin Platform ermöglicht die Entwicklung von Apps für Android, iOS und Windows mit nur einem Werkzeug (Visual Studio) und einer Programmiersprache (C#). Da sich die Plattformen im Detail jedoch gehörig unterscheiden, bedeutet dies nicht, dass Sie Ihre Codebasis ohne Änderungen auf allen Plattformen nutzen können. Wie Sie trotz der Unterschiede möglichst viel Code plattformübergreifend wiederverwenden können, wird Ihnen André Krämer in diesem Vortrag zeigen. Dazu wird er die verschiedenen Optionen "Shared Projects", "Portable Class Libraries" und ".NET Standard Libraries" näher erläutern. Darüber hinaus wird er über Dependency Injection sprechen und den Xamarin Dependency Service mit leistungsstarken Inversion-of-Control- Containern wie Autofac vergleichen. Abgerundet wird der Vortrag mit einem Überblick über Xamarin.Essentials, einer Bibliothek, die plattformübergreifende Implementierungen gerätespezifischer Funktionen bietet.
Ein Blick in die Kristallkugel mit dem Ziel spannende und relevante Online-Trends für das Jahr 2001 hervorzusagen. Auf der Liste sind:
- UML
- .NET/C#
- SOAP
- P2P
- DivX ;-)
- UMTS
- RDF
- Micropayments
- XForms
- Spracherkennung/VoiceXML
WordPress sprachfähig machen - Lokalisierung Kür oder Krampf? - WordCamp Deut...David Decker
Session von (DECKERWEB) zu "WordPress sprachfähig machen - Lokalisierung Kür oder Krampf?"
Gehalten auf dem WordCamp Deutschland 2011 in Köln (24. September 2011),
Taugt AngularJS wirklich was? Erfahrungsbericht und AusblickPhilipp Burgmer
Slides for my presentation at WebTechCon/IPC 2014.
Visit us at http://www.thecodecampus.de
Folien zu meinem Vortrag bei der WebTechCon/IPC 2014.
AngularJS verspricht, die Entwicklung moderner Single-Page-Webanwendungen radikal zu vereinfachen. Doch kann dieses Versprechen auch bei Anwendungen, die über eine Demoanwendung (To-do-App) hinausgehen, gehalten werden? In diesem Vortrag zeigen wir die Stärken und Schwächen von AngularJS anhand unserer Erfahrungen aus mehreren Projekten und unserer Schulungen. Wie meistert man den Einstieg? Was sind die Gefahren, und wie minimiert man sie? Ist AngularJS bereit für den Einsatz in großen Anwendungen? Wir geben Antworten. Zusätzlich geben wir einen Ausblick auf AngularJS 2.0, wie die bekannten Schwächen dort behoben werden sollen und was an Neuerungen zu erwarten ist.
Using openArchitectureWare 4.0 in domain "registration"joergreichert
Some retro: This presentation dated 2006 shows how to do model driven software development with openArchitectureWare 4.0 in the example domain "registration".
Although openArchitectureWare is now superseded by Xtext, Xtend2 and Xbase it is always good to remember the principles of model driven software development.
Robuste Design Systems mit Storybook und Angular: vom Konzept zur lebendigen ...Andreas Wissel
Mit den stetig wachsenden Möglichkeiten, die Cross-Platform-Anwendungen bieten, wachsen auch die Anforderungen an deren Design. Skalierbarkeit, Flexibilität und Wandelbarkeit gehören zu den Grundprinzipien eines modernen User-Interfaces. Andreas Wissel und Christian Liebel erarbeiten mit Ihnen in diesem Workshop anhand von Praxisbeispielen einen robusten Workflow. Mit Storybook und Angular lassen sich so isolierte, test- und wartbare Komponenten im Handumdrehen umsetzen. Ihre Designer und Entwickler werden es lieben.
Konzepte, Werkzeuge und Ideen aus der Praxis für bessere und erfolgreichere .NET-Softwareprojekte:
Klassen/Objekte/Komponenten, Mehrschichtige .NET-Anwendungen, Bibliotheken und Pattern, Frameworks und Tools, Unit Testing und Codeanalyse, Continous Integration und Versionsverwaltung, Dokumentation und Instrumentation
Anwendungsbeispiele für Volltextsuche, Vorlagenerstellung mit der aktuellen eEvolution Version. Eine Präsentation von Alexander Kranz (eEvolution GmbH & Co. KG)
Ein kurzer Talk auf der DOAG (Deutsche Oracle Anwendergruppe) in Frankfurt über das gute Zusammenspiel von PHP5 und Oracle sowie ein kurzer Einblick in die Welt agiler Webentwicklung für businesskritische Anwendungen.
Ähnlich wie Text Template Transformation Toolkit (T4) (20)
Large Language Models, Data & APIs - Integrating Generative AI Power into you...NETUserGroupBern
.NET User Group Meetup with Christian Weyer about Large Language Models, Data & APIs - Integrating Generative AI Power into your solutions - with Python and .NET
The document discusses creating secure .Net applications and implementing a zero trust security model. It introduces security context models which provide a framework for understanding authentication and authorization in modern applications. The remainder of the document outlines a demo of building a Blazor web application secured with Azure Active Directory, including authentication of external users, authorization with application roles, and using a security context diagram to communicate the security solution.
This document discusses best practices for securely provisioning Azure resources using GitHub and Terraform. It covers setting up GitHub Actions workflows to deploy resources with Terraform, integrating advanced security measures with SonarCloud, and key takeaways around protecting secrets, using standards like OpenID Connect, and maintaining code quality through dependency reviews and secret scanning. An agenda is provided that includes introductions, demonstrations of GitHub Actions, Azure, and Terraform, a discussion of GitHub advanced security and SonarCloud, and concluding key takeaways.
This document discusses securing .NET Core and ASP.NET Core applications. It covers authentication and authorization topics like OpenID Connect, OAuth, sessions, and HTTPS. It provides an overview of authentication flows like OAuth's resource owner credentials flow and OpenID Connect's authorization code flow. It also discusses securing single page applications, Azure managed identities, and using libraries instead of rolling your own security implementation.
This document discusses ASP.NET Core security topics like OpenID Connect, OAuth, authentication, authorization, and policies. It provides an overview of common flows like OAuth2 resource owner credentials, OpenID Connect authorization code, and hybrid flows. It also covers implementing authorization in ASP.NET Core using policies, requirements, and handlers. Code examples for OpenID Connect hybrid flow and OAuth2 resource owner credentials flow are referenced.
Ob ASP.net MVC, NuGet oder die codebasierten Migrationen bei EF – immer mehr Konzepte und Ideen schwappen von Ruby in die .Net Welt. Wieso aber gerade von Ruby? Und was macht Rails so beliebt bei Webentwicklern?
Ruby ist wie C# eine objektorientierte Programmiersprache. Damit enden die Gemeinsamkeiten aber schon fast. Die vielen fremden Konzepte und Ansätze machen einen Einstieg in Ruby und Rails nicht gerade einfach. Aber genau in diesen Unterschieden liegen die Stärken und machen Ruby so interessant.
Dieser Vortrag gibt einen Überblick über Ruby und Rails und hilft einem sich in dieser ungewohnten Umgebung zu Recht zu finden.
Bei all dem Hype rund um NoSQL übersieht man gerne wie viele einsatzbereite Produkte darauf warten unser Entwicklerleben zu vereinfachen. Eines dieser Produkte ist RavenDB, eine dokumentenorientierte Datenbank mit Transaktionsunterstützung. Im Gegensatz zu vielen NoSQL-Lösungen ist RavenDB voll in die .Net-Welt integriert. So kann man seine Abfragen mittels LINQ formulieren und muss nicht auf JavaScript setzen. Die grosse Erfahrung von Oren Eini bei der Optimierung von NHibernate und Entity Framework wurden in RavenDB aufgenommen. So hilft eine frühzeitige Erkennung von Select N+1 Abfragen spätere Probleme in der Produktion zu verhindern. Neben diesen Eigenheiten wird uns Johnny Graber auch zeigen was es alles für Einsatzmöglichkeiten gibt. Die Flexibilität von NoSQL gepaart mit der Einfachheit von RavenDB ist dabei keineswegs nur etwas für grosse Firmen wie Google, Facebook oder Twitter - der nächste Prototyp kann davon genauso gut profitieren.
What Doctors Can Teach Us on Continuous LearningNETUserGroupBern
Do you try to keep up with all the new frameworks, patterns and trends in IT? Good luck, it’s an endless stream of things to learn. The good news: software development isn’t the only profession with this problem. Doctors face the same challenges and must keep the safety of patients in mind while working as cost-effective as possible. With much higher stakes, it’s no surprise that medicine is a highly regulated field with explicit rules on the lifelong training – rules that we can use as a source of inspiration for our training.
In this session we will look how the doctors in Switzerland organise their continuing medical education, debunk some myths about learning and figure out how we can use our daily work as a jumpstart for improvement.
Mit Entity Framework Core hat Microsoft seine Datenzugriffstechnologie neu geschrieben. Dinge wie den ObjektContext oder den Edmx-Designer gibt es nicht mehr. Im Gegenzug läuft EF Core auf Linux und Mac OS X. Für die Verwendung mit NoSQL gibt es ebenfalls Bestrebungen.
Änderungen im Cardinality Estimator SQL Server 2014NETUserGroupBern
The document discusses cardinality estimation (CE) improvements in SQL Server 2014. CE is used to estimate the number of rows returned by query predicates and joins. The new CE in SQL 2014 improves on handling multi-column predicates using an exponential back-off algorithm, fixes issues with ascending key columns, and allows troubleshooting through extended events. The changes should improve query performance but may also cause regressions. Administrators are advised to test workloads thoroughly with the new CE enabled.
This document discusses different data processing models and their characteristics for structured and unstructured data at varying scales. It compares batch processing, interactive analysis, and stream processing in terms of query runtime, data volume handled, programming models, typical users, and examples of originating projects and open source implementations. It then provides examples of how organizations can gain competitive advantage by analyzing different types of data using these approaches.
This document provides an overview and introduction to NoSQL databases, focusing on MongoDB. It begins with definitions of NoSQL and examples of companies using NoSQL databases. It then discusses the motivations behind NoSQL, including the limitations of SQL and benefits of NoSQL for scalability. The document proceeds to describe MongoDB specifically as a document-oriented database, covering its data model, networking, drivers, collections and indexing. It also covers queries, atomic operations, replication, sharding, map-reduce and GridFS for large files. Well suited use cases include archiving, content management, ecommerce, gaming and mobile applications. The document concludes with a question and contact.
This document discusses administration topics across multiple sections. It begins with questions about changing system settings and replicating configurations. It then addresses challenges in current administration landscapes and why development and operations teams don't always collaborate effectively. Different sections explore administrative roles, dimensions, drivers like legal requirements and cloud computing, and desirable tools and practices for manageable systems. The document encourages developers to consider the administrator perspective and calls administrators to share their experiences to help improve systems.
This document discusses Behavior Driven Development (BDD) using Machine.Specifications, an open source BDD framework for .NET. It provides contact information, principles of BDD MIT events with no set agenda or roles, and lists contributors. It also outlines Machine.Specifications features like templates, behaviors, reporting, and integration with tools like ReSharper, TeamCity, Selenium, and NuGet. Links are provided to get involved via GitHub, a mailing list, and sample projects.
3. Über René Leupold
• Siehe Xing ;-)
• Speaker VSone 16.-17. Feb. 2011,
München (www.vsone.de)
– Inheritance mit EF (DB First, Model First,
Code First)
Hinweis: Verwendung für eigene Präsentationen nur mit Einverständnis des Autors
4. Was ist T4
• Code-Generator mit ASP ähnlicher
Syntax
• Templatesprache in VB.NET und C#
• Generierung von
technologieunabhängigem Code
• Erstmalig built-in mit VS 2008
• Verbesserte Integration mit VS 2010
Ein Tool das macht was ich
will (fast immer)
6. Abgrenzung
• Eine das kann VS Ultimate Show
• Eine Einführung in die Erstellung
eigener DSL’s
• Eine T4 Missionierung
Was ist dieser Vortrag nicht
7. Agenda
• Werkzeuge für Intellisense
• Syntax
• Prozessablauf und Architektur
• Aufbau Text Template
• Anwendungsszenarien
• Aufbau Preprocessed Template
• Beispielprojekt
• Vorteile
• Herausforderungen
• Ressourcen
8. Werkzeuge für Intellisense
Tangible T4 – Editor
• Visual Studio 2005
• Visual Studio 2008
• Visual Studio 2010
• Wir verlosen heute eine
Lizenz, das nächste Mal
auch und das
übernächste Mal immer
noch, bis Ende Jahr ;-)
Visual T4 – Editor (Clarius)
• Visual Studio 2005
• Visual Studio 2008
• Visual Studio 2010
– mittlerweile Beta
11. Include file=
• Relative Pfadangaben dirtemplate.ttinclude
• Umgebungsvariablen %pfad%template.ttinclude
• VS Makro $(SolutionDir)t4incT4.ttinclude
Neu in VS 2010
• Include Folder in Registry setzen
Datei ohne Pfad
• Drag and Drop - Support mit tangible T4-Editor
• Verhält sich wie SSI (Vorsicht)
Besonderheit
[HKEY_LOCAL_MACHINESoftwareWow6432NodeMicrosoftVisualStudio10.0TextTemplatingIncludeFolders.tt]
12. assembly name=
• Umgebungsvariablen %pfad%template.tt
• VS Makro $(ProjectDir)binT4.dll
Neu in VS 2010
• GAC
• Public Assembly Folder VS
Datei ohne Pfad
• Sperrung der Assembly bis Solution geschlossen wird
Besonderheit
Alternative: VolatileAssembly
13. assembly name=
• Assembly wird nicht mehr gesperrt
Neu ab VS 2010 SP1
• Temporäre Kopie der Assembly
• So wie VolatileAssembly
Angelehnt an Verhalten von ASP.NET
• ShadowCopy = false
Besonderheit (kann deaktiviert werden)
HKEY_LOCAL_MACHINESOFTWARE[Wow6432Node]MicrosoftVisualStudio10.0TextTemplating
14. • Primärer Einsatz für DSL
• Ermöglicht Zugriff auf das Modell
• Eigene DSL mit VS Visualization &
Modeling SDK
Class Diagram (als Beispiel)
Generated Directive
15. • Klasse muss von DirectiveProcessor
ableiten
• CodeDom Provider verwenden, wenn
Support für C# und VB.NET
• Klasse in Registry registrieren
• Bsp.: VolatileAssembly
• Alternative: Verwenden einer eigenen
Assembly
DirectiveProcessor
Custom Directive
20. ANWENDUNGSSZENARIEN
o Debugging
o Generierung von Datenbank(Bottom up)
o Mehrere Files mit einem Text Template erstellen
o Parametrisierte Text Templates
o Code in andere Solution erstellen (T4 Toolbox und TemplFileM.)
o Visual Studio 2010 Automation
o Refactoring handcodierter Klassen mit T4, VS FCM und StoryQ
o Beispiele Technologieunabhängigkeit mit Excel
o EF Codegenerierungsvorlage erstellen
o Model First mit EF CTP 5 und «UML/DSL»
24. BEISPIELPROJEKT
o Angepasster EDM-Designer
o Angepasste EF Codegenerierungsvorlage
o Generierung des langweiligen Codes
o Codezentrierte Entwicklung der funktionalen Anforderungen
o Generierung des StoryQ-Testgerüsts aus TFS Workitem
o Generierung der WCF-Services basierend auf den
geschriebenen Code
o T4 Templates ausführen mit F6 ;-)
26. Vorteile
Innerhalb der Solution (Freiräume)
Code-Qualität
Steigerung der Produktivität
Technologieunabhängiger Code
Keine Methodenbindung
Mehr Zeit für die Anforderungen
28. Herausforderungen
Menschlicher Faktor
Arbeiten ohne den gewohnten Komfort von VS
Kein Framework mit Basisskripts
Strukturierte Anforderungsdokumente
Technologische Weiterentwicklung der Templates
Designüberlegungen
29. T4 Erweitert
• EntityFrameworkTemplateFileManager
(EF.Utility.CS.ttinclude)
• Damien Guards Output manager
• TemplateFileManager by myself
• T4Toolbox (unterstützt Ausgabe in unterschiedliche
Projektmappen)
Mehrere Dateien mit T4
• MsBuild-Integration (VS Visualization & Modeling SDK)
• Chirpy (VS AddIn)
T4 mit Build ausführen