Amis béta-testeurs du Framework .Net 2, voilà un billet
qui peut vous être utile… Aujourd’hui, je vais vous montrer comment faire tourner
MyGeneration avec la CLR 2.0. Alors, tout d’abord, pourquoi faire tourner MyGeneration
sous .Net 2.0 ? Pour ne pas réinstaller le Framework 1.1 qu’en bon geeks que nous
sommes nous considérons comme archaïque et complètement dépassé ? Pour pouvoir se
la péter sur son blog en disant « Ouais, moi je sais faire tourner MyGeneration
sous .Net 2 ! » ? Rien de tout ca ma bonne dame, il s’agit de pouvoir écrire nos
templates en C# 2.0 et de faire de l’introspection sur des Assemblys .Net 2 ! Et
là cela devient très intéressant si comme moi vous êtes un gros faignant et que
vous préférez partir des objets de votre domaine pour générer vos tables, procédures
stockées et autres couches d’accès aux données. En effet, on va pouvoir profiter
des nouveautés du Framework 2 (généricité, types nullables etc.) dans nos interfaces
du domaine et générer tout le reste à partir de ça !
Alors voilà la marche à suivre, elle est relativement
simple : Il suffit de créer un fichier de configuration pour MyGeneration.exe et
de le placer dans le répertoire de l’application. Voici son contenu pour que MyGeneration
tourne sous le Framework 2 beta 2 :
<?xml
version="1.0" encoding="utf-8"
?>
<configuration>
<startup>
<supportedRuntime
version="v2.0.50215"/>
</startup>
</configuration>
(Bien entendu, il faut changez le numéro de version si vous
utilisez une autre release du Framework).
Et voilà, c’est fini ! Voilà un petit template de test
pour vérifier que tout fonctionne :
<%
using System.Collections.Generic;
public class GeneratedTemplate : DotNetScriptTemplate
{
public GeneratedTemplate(ZeusContext context) : base(context) {}
//---------------------------------------------------
// Render() is where you want to write your logic
//---------------------------------------------------
public override void Render()
{
%>
<%
using System.Collections.Generic;
public class GeneratedTemplate : DotNetScriptTemplate
{
public GeneratedTemplate(ZeusContext context) : base(context) {}
//---------------------------------------------------
// Render() is where you want to write your logic
//---------------------------------------------------
public override void Render()
{
%>
You can toggle in out of script like this
<%
List<string> strings = new List<string>();
strings.Add("Hello");
strings.Add("C#");
strings.Add("2.0");
strings.Add("!");
output.writeln(string.Join(" ",strings.ToArray()));
}
}
%>
Note : Apparemment, l’environnement de script utilisé dans MyGeneration
ne fonctionne pas sous .Net 2... Mais personnellement, je m’en contrefiche !
EDIT : L'environnement de scripting dont je parle sert uniquement
à interpréter des scripts vbs et js.