ItemTemplate Windows 8

by Nicolas Calvi 29. avril 2013 16:00

Un petit post pour vous partager un petit soucis que j'ai rencontrer. Je me suis créer des "ProjectTemplates" et "ItemTemplates" pour mes projets MVVM sous Windows 8. Là où la création du "ProjectTemplate" se passe sans soucis, je me suis aperçu que mes "ItemTemplates" ne s'affichais pas quand je faisais "Nouvel élément".

En fait, Visual Studio 2012 exporte ceci dans son fichier "MyTemplate.vstemplate" :

<VSTemplate Version="3.0.0" xmlns="http://schemas.microsoft.com/developer/vstemplate/2005" Type="Item">
  <TemplateData>
    <DefaultName>ItemView.xaml</DefaultName>
    <Name>Black Windows 8 Empty View</Name>
    <Description>Vue pour être utilisée dans une pattern MVVM Black Blog</Description>
    <ProjectType>CSharp</ProjectType>
    <SortOrder>10</SortOrder>
    <Icon>__TemplateIcon.jpg</Icon>
    <PreviewImage>__PreviewImage.jpg</PreviewImage>
  </TemplateData>
  <TemplateContent>
    <References />
    <ProjectItem SubType="Designer" TargetFileName="$fileinputname$.xaml" ReplaceParameters="true">HomeView.xaml</ProjectItem>
    <ProjectItem SubType="Code" TargetFileName="$fileinputname$.xaml.cs" ReplaceParameters="true">HomeView.xaml.cs</ProjectItem>
  </TemplateContent>
</VSTemplate>

Or avec cette définition, l'ItemTemplate ne s'affiche pas dans ma liste. En cherchant un peu je me suis rendy compte qu'il manquait en fait un élément de définition dans le fichier. Si j'ajoute cette ligne dans le fichier de définition :

<TemplateGroupID>WinRT-Managed</TemplateGroupID>

Mon "ItemTemplate" s'affiche bien, il faut juste le savoir.

Surface sous VS2010 et Framework 4.0

by Nicolas Calvi 19. janvier 2010 00:55

Si comme moi vous voulez développer vos applications Surface sous Visual Studio 2010, mais surtout tirer partie du Framework .Net 4.0 avec Surface, il existe un moyen très simple pour y arriver.

Tous d'abord vous devez installer le Surface SDK 1.0 SP1, pour ceux qui sont sous un système 64 Bit, il faut tricher sur la procédure d'installation comme je l'ai expliqué sur un ancien billet.

En effet il vous suffit de copier les templates de Visual Studio 2008 vers Visual Studio 2010 dans un répertoire "Surface", et miracle ca marche ! Pour cela suivez ces indications :

1) Copiez tous les fichiers ".zip" du répertoire "C:\Program Files (x86)\Microsoft SDKs\Surface\v1.0\Item Templates\" vers "C:\Users\{Utilisateur Surface}\Documents\Visual Studio 2010\Templates\ItemTemplates\Visual C#\Surface\".

2) Copiez tous les fichiers ".zip" du répertoire "C:\Program Files (x86)\Microsoft SDKs\Surface\v1.0\Project Templates\" vers "C:\Users\{Utilisateur Surface}\Documents\Visual Studio 2010\Templates\ProjectTemplates\Visual C#\Surface\".

Ensuite pour utiliser le template, faire "Nouveau Projet" et miracle, un onglet "Surface" est apparu avec les template :

Vous pouvez aussi rechercher les templates dans la box de recherche en haut à droite :

Créez votre projet puis, pour que cela fonctionne, il faut faire ces deux opérations sur le projet fraichement créé.

1) Ajoutez la référence "System.Xaml".

2) Pour ceux qui sont sous un système 64 Bit, il faut changer la target de compitalion vers "x86" pour forcer la compiltation 32bit.

Et voilà c'est magique ! Vous pouvez exécuter votre projet surface avec Visual Studio 2010 et utiliser toutes les nouveautées du Framework .Net 4.0.

Installer le SDK Surface sur Windows 7 - 64 bit

by Nicolas Calvi 29. septembre 2009 20:13

Même si ce que je vais écrire plus bas n'est pas supporté par Microsoft, certains qui comme moi, développent sur Surface et voudraient installer le SDK sur leur machine de salon qui est en 64 bit pourraient être intéressés par ce tutorial. Je vais donc reprendre l'excellent post de Brian Peek sur l'installation du SDK Surface sur une Windows 7 - 64 bit.

Le post de Brian est clair mais en voici une transposition en français et surtout avec quelques petits ajouts suite a ma propre expérience de l'installation. Avant de commencer, il faut savoir que Surface et tous ses assemblies doivent s'exécuter en 32 bit mais sont compilés sous l'instruction Any CPU. De ce fait, l'exécution du SDK Surface sur un système 64 bit ne pose aucun soucis d'autant plus qu'elle n'est pas contre indiqué par le CLR, il faut donc forcer les assemblies à utiliser le CLR en 32 bit

1. Pré requis :

Pour pouvoir utiliser le SDK il faut avoir préalablement installé XNA Game Studio 2.0 (le Runtime suffit) qui est nécessaire pour la suite des festivités. Bien sûr, on pourra par la suite utiliser les templates Surface sous Visual Studio 2008 avec XNA Game Studio 3.0 (que je vous conseil d'installer avant le SDK Surface), mais ceux ci ne sont pas des pré requis.

Ensuite il vous faudra vous procurer le programme ORCA qui permet la manipulation des MSI, si vous ne savez pas ou le trouver cliquez ici.

Dernière vérification, sous qu'elle forme se présente votre MSI du SDK Surface ? Si il correspond a la capture suivante passez à l'étape 2, sinon suivez les instructions en bas de la capture :

Si vous n'avez pas le SDK sous cette forme c'est que vous possédez seulement le fichier SurfaceSDKWE.msi. Pour arriver a l'image ci-dessus, exécutez ceci en ligne de commande (remplacez bien sûr les chemins par les vôtres et vérifiez que tous les répertoires existent déjà) : 

msiexec /a "C:\Surface\SurfaceSDKWE.msi" /qb TARGETDIR="C:\Surface\Extract"

Cela va extraire les fichiers du MSI afin de faire une manipulation à l'étape 2.

2. Modification du MSI d'installation :

Si vous tentez d'installer le MSI maintenant, vous aurez le message comme quoi votre système ne répond pas aux pré requis d'installation, cela est dû au fait que vous êtes en 64 bit. Pour pouvoir contourner ça nous allons utiliser ORCA, l'outil téléchargé plus haut. Il va nous permettre de retirer cette condition. Faite click droit sur le MSI et cliquez sur Edit with Orca.

Allez dans la section LaunchCondition, sélectionnez les deux conditions suivante :

  • Installed OR (VersionNT=600 AND ServicePackLevel>=1)
  • Installed OR NOT VersionNT64

Puis faite click droit Drop Row et pour finir faite File > Save. Maintenant le SDK Surface pourra se lancer sur votre machine 64 bit.

Il reste une dernière étape avant d'installer le SDK. En effet dans les répertoires d'installation du SDK Surface, il y a un exécutable nommé [répertoire d'extraction MSI]\Surface SDK 1.0 SP1\Microsoft Surface\v1.0\setupcustomaction.exe. Cet exécutable est lancé pendant l'installation du SDK et doit impérativement se lancer en 32 bit mais lui aussi est en Any CPU. Il va donc falloir redéfinir les flags de l'assembly, pour cela nous allons utiliser l'utilitaire corflags qui est fournis avec Visual Studio.

Lancez le Visual Studio 2008 Command Prompt. Allez dans le répertoire ou se trouve le setupcustomaction.exe puis lancer la ligne de commande suivante :

corflags setupcustomaction.exe /32bit+ /force

Attention, cette opération va retirer la signature (nom fort) de l'assembly (il en sera de même pour tous les corflags que l'on fera par la suite). Une fois cette opération terminée, vous pouvez enfin installer le SDK Surface sur votre ordinateur !

3. Modifier les Assemblies Surface :

Maintenant que le SDK est installé (pour tout ce qui va suivre je prendrais comme hypotèse que le SDK est installé à cet emplacement : C:\Program Files (x86)\Microsoft SDKs\Surface\v1.0\ et C:\Program Files (x86)\Microsoft Surface\v1.0\ ) il faut modifier les exécutables du SDK pour que le CLR les exécute en 32 bit. Cette opération sera la même que pour le setupcustomaction.exe a savoir l'utilisation de corflags.

Lancez le Visual Studio 2008 Command Prompt et allez dans le répertoire C:\Program Files (x86)\Microsoft SDKs\Surface\v1.0\Tools\Simulator\, depuis ce répertoire lancez la ligne de commande suivante : 

corflags SurfaceSimulator.exe /32bit+ /force

Cela va modifier le simulateur Surface afin qu'il fonctionne correctement (a savoir en 32 bit), mais il va falloir le faire avec tous les autres exécutables du SDK, pour cela j'ai fait un batch qui est téléchargeable ici, il va faire un corflags sur tous les exécutables du répertoire C:\Program Files (x86)\Microsoft Surface\v1.0\.

4. Modifier les Samples :

Si vous voulez utiliser les samples par défaut de la table Surface dans le simulateur, vous devez déjà extraire ceux-ci. Pour cela, allez dans le répertoire C:\Program Files (x86)\Microsoft SDKs\Surface\v1.0\Samples\ et décompressez le fichier Surface Code Samples.zip dans ce même répertoire (il va créer un répertoire SDKSamples). Une fois décompressé, allez SDKSamples et éditez le fichier InstallSamples.bat avec un éditeur texte. Dans ce fichier, remplacez tous les SOFTWARE\Microsoft par SOFTWARE\Wow6432Node\Microsoft, enregistrez et lancez le batch en question.

Par la suite il faudra aussi exécuter un corflags sur les exécutables générés pour les samples, pour cela Lancez le Visual Studio 2008 Command Prompt et exécutez les deux batchs que j'ai fait pour vous, qui sont téléchargeables ici pour le premier et là pour le second.

 

Voilà vous avez fini, vous pouvez maintenant profiter du SDK Surface sur votre machine avec Windows Seven 64 bit.