TechEd 2003: Marc Gusmano vertelt over Creating Application Starting Points and Sharing Best Practic

Creating Application Starting Points and Sharing Best Practices with Enterprise Templates – Marc Gusmano

dinsdag 1 juli 2003

 

Bij IT Development komt men naast de gebruikelijke problemen ook kwesties tegen die te maken hebben met het implementeren van de gewenste architectuur. De ontwikkeling van een goede architectuur is essentieel voor een goede performance en onderhoudbaarheid, maar werkt natuurlijk alleen als de ontwikkelaars zich daar ook aan houden. Echter, goede hulp is moeilijk te vinden en de best practices die beschikbaar zijn worden soms niet eens gelezen. De ontwikkelaar heeft behoefte aan hulp op een aantal vlakken.

De Enterprise Templates van Visual Studio.NET helpen architecten om de te gebruiken best practices en regels van een architectuur aan ontwikkelaars aan te bieden als Application Construction Toolkits. Deze hulp bestaat uit drie onderdelen:

  • Implementatiehulp: het verpakken van herbruikbare code op makkelijk te gebruiken manieren
  • Policies: het definiëren van actieve design time regels voor het voorkómen van veel voorkomende problemen
  • Guidance: het leveren van Just-In-Time hulp bij het ontwikkelen

 

Voor wie Enterprise Templates nog niet kent, is het aan te raden Visual Studio op te starten en te kiezen voor File, New, Project. Onder Other Projects bevindt zich een map Enterprise Template Projects, die een aantal Enterprise Templates bevat. Selecteer daar dan bijvoorbeeld Visual Basic (of Visual C#) Simple Distributed Application en zie wat er voor u aangemaakt wordt. Probeer vervolgens eens uit of het mogelijk is om alle project typen in de nieuwe Solution aan te maken. Dat zal niet zo blijken te zijn. Men is beperkt tot een welgedefiniëerde set van project typen. Dit is één van de opties die de policies van Enterprise Templates bieden.

 

Bouwen van Enterprise Templates

Om je eigen Enterprise Template te bouwen volg je een zevental stappen. Een hoop van deze stappen hebben weinig met het creëren van het template te maken, maar juist met de registratie die nodig is voor COM. Helaas is Visual Studio.NET en diens objectmodel nog grotendeels COM-gebaseerd.

 

  1. Maak een Visual Studio.NET Class Library in de taal van je keuze. Noem deze bijvoorbeeld TechEd.
  2. Voeg een referentie toe aan het project naar de envDTE assembly. Hierin bevindt zich het object model van VS.NET
  3. Plaats een aantal attributen op de klasse om de interoperabiliteit met COM juist te laten verlopen. De benodigde attributen zijn GuidAttribute en ProgIdAttribute. Importeer voor het gemak de namespaces van System.Runtime.InteropServices en EnvDTE
    _
    Public Class TechEd
    End Class
  4. Implementeer vervolgens de IDTWizard interface, die bestaat uit alleen de Execute methode. De argumenten van de methode geven informatie over onder andere de context en custom parameters. Bijvoorbeeld de ContextParams array biedt de projectnaam als tweede item ContextParams(1). Deze parameters zijn allemaal gedocumenteerd in MSDN Online Help.
    Het Application argument van de Execute methode is een referentie naar de applicatie waarin het project gemaakt wordt, oftewel VS.NET. Deze is te casten naar EnvDTE.DTE, die vervolgens gebruikt kan worden om het VS.NET objectmodel te benaderen. Deze biedt allerhande mogelijkheden om programmatisch nieuwe projecten en folders aan te maken voor de nieuwe solution.
    In de implementatie van de Execute methode kunnen Windows Forms gelanceerd worden om de gebruiker om extra informatie te vragen. Dit kan een simpel formulier zijn, maar ook een complete wizard.
  5. Registreer de assembly bij COM door een strong name toe te voegen aan de assembly. Plaats de gebruikelijke attributen voor een strong name, zoals de AssemblyVersionAttribute en AssemblyKeyFileAttribute. Tenslotte moet de Framework SDK tool regasm.exe de .NET assembly registreren als COM component in de registry: regasm teched.dll /codebase
  6. Maak .vsz en .vsdir bestanden waarmee we het Enterprise Template registreren bij Visual Studio.NET. De .vsz file vertelt VS.NET welk component gebruikt moet worden bij het aanmaken van een nieuw solution op basis van een Enterprise Template. De .vsdir file bevat allerhande informatie voor het gebruikersvriendelijke tonen van de template gegevens in de New Project dialoog van VS.NET, zoals de omschrijving van het project en de te gebruiken ico file voor het icoontje van het project. Verder bevat het ook een verwijzing naar de .vsz file.
  7. Registreer tenslotte de .vsz en .vsdir files bij VS.NET met behulp van een aantal registry entries. Dit kan eenvoduig gedaan worden met behulp van een .reg file.

 

Policies

Policies zijn design-time regels, gedefinieerd in een XML grammar genaamd Template Description Language (TDL). De regels geven richting aan welke projecten wel of niet toegestaan zijn in een (bepaald punt van de) solution. Dit biedt meer actieve sturing voor de programmeur. Verder kunnen policies ook default waarden en ranges van properties definiëren en gerichtere context en help onderwerpen aangeven.

 

Per Visual Studio project kan een policy file toegevoegd worden bij de project properties die te vinden zijn in het Properties Window (niet de Project Properties dialoog). In de folder

C:\Program Files\Microsoft Visual Studio.NET 2003\EnterpriseFrameworks\Policy zijn een tweetal van deze bestanden terug te vinden. TDL bestanden zijn typisch erg groot van omvang en ook niet eenvoudig om aan te passen als ruwe XML. Microsoft heeft de Policy Editor, een unsupported tool om de policies te kunnen bewerken, die inclusief sourcecode te downloaden is van http://msdn.microsoft.com/vstudio/downloads/updates/default.aspx. Microsoft denkt er aan om deze tool te integreren in de volgende versie van VS.NET.

In de ontwikkelomgeving zal het schenden van één van de regels van een policy resulteren in Policy Reminders. Deze zijn te herkennen aan de verticale rode squiggles in het Tasks window.

 

 Policy Window

 

 

 

Just-In-Time Guidance

De laatste optie die Enterprise Templates te bieden heeft, is het leveren van op help gerichte help informatie. Dit kan in de vorm van HTML pagina’s of met compiled help (.chm) bestanden. Verder is het mogelijk om extra links te laten verschijnen in Dynamic Help, zodat context sensitieve informatie getoond wordt in het betreffende window. Hiervoor is ook een XML formaat gedefinieerd. Ook is het mogelijk om help te maken die er uitziet zoals de help van VS.NET zelf.

De VS Help Integration Kit (VSHIK) is te downloaden op http://msdn.microsoft.com/downloads/default.asp door te zoeken naar VSHIK. Met de VSHIK kan de custom help file geïntegreerd worden in de Table of Contents en de index van de VS.NET online help.

 

Ontwikkelingen in de toekomst

In de toekomst kan er een splitsing gemaakt worden in de .tdl files. Nu moet alles in één (groot) file staan, wat hergebruik en onderhoudbaarheid van de templates in de weg staat. Er zal migratie support zijn voor het upgraden van de policy files en uiteraard een aangepaste en vernieuwde versie van de Policy Editor.

 

Overige resources

Extra resources zijn te vinden op de nieuwsgroep microsoft.public.vsnet.enterprise.tools en op www.gotdotnet.com/team/architecture/patterns/templates.aspx.

 

Alex Thissen, Twice IT

 

Commentaar van anderen:
ChristianLouboutin op 17-8-2010 om 3:08
Christian Louboutin Shoes, Christian Louboutin, Christian Louboutin Shoes, Wedding Shoes, Christian Louboutin Shoes, Christian Louboutin includes recently been produced in a selection with trends, designs, designs and also styles that will need achieved great decide of millions of most women several over the globally. Wedding Shoes, Christian Louboutin, Christian Louboutin Shoes, Wedding Shoes, Discount Christian Louboutin, Louboutin Sale A number of sizes are usually seriously outstanding and simply the rest are special variations among traditional general trends. Louboutin Shoes, Christian Louboutin Discount, Louboutin, Christian Louboutin Sale, Buy Christian Louboutin, Christian Louboutin Pumps, YSL Shoes sandals are known for their own particularly crafte heels, outstanding models and also high-priced and furthermore well highly regarded amongst girls cirlces. Christian Louboutin Sandals, Yves Saint Laurent Shoes, Christian Louboutin Boots, Manolo Blahnik Shoes, Yves Saint Laurent Boots, Miu Miu Shoes Sandals designs are glamorous and sexy, and they are worn by some of the world most beautiful women. Christian Dior Shoes, Christian Louboutin Flats, Christian, Louboutin Shoes, Christian Louboutin Sale, Discount Christian Louboutin Why is everyone infatuated with these red-soled shoes Read on to find out why, and you also find some of the best of Louboutin line. Herve Leger Bandage Dress, Herve Leger Dress, Herve Leger V Neck Dress, Herve Leger Bandage Dress, Herve Leger Dress Most people associate Louboutin shoes with sky-high, stiletto heels, the patent sandals with wedge heels prove that sexy and wearable can go hand-in-hand.
Geef feedback:

CAPTCHA image
Vul de bovenstaande code hieronder in
Verzend Commentaar