SaveAs

Implémenter le FileSavePicker/FileOpenPicker dans une application Windows Phone 8.1 Silverlight

Le FileSavePicker est l’une des nouveautés du SDK Windows Phone 8.1. Il nous permet par exemple d’implémenter la fonctionnalité « enregistrer sous… ». Nous étions jusqu’à présent limité à la sauvegarde dans la « pellicule »  ou « les photos enregistrées ».

En effet, on peut maintenant donner la possibilité à l’utilisateur de choisir l’emplacement de sauvegarde d’un fichier.

Si vous avez essayé d’implémenter cette fonctionnalité, vous êtes sans doute tombé sur l’article MSDN qui traite le sujet mais malheureusement, il cible les Universal Apps.

Il existe pourtant bien un article sur MSDN qui traite du FileOpenPicker pour une application Windows Phone 8.1 Silverlight, mais il est bien caché :

Continue your Windows Phone Silverlight 8.1 app after calling a file picker

Bref, voici mon implémentation du FileSavePicker pour WP8.1 Silverlight:

Dans le fichier app.xaml.cs, ajouter les lignes suivantes (event args + abonnement à l’évent)

public FileSavePickerContinuationEventArgs FilePickerContinuationArgs { get; set; }

Dans la méthode InitializePhoneApplication(), s’abonner à l’évènement ContractActivated:

PhoneApplicationService.Current.ContractActivated += Application_ContractActivated;

Créer le délégué:

// Code to execute when the application is activated
// This code will not execute when the application is first launched
private void Application_ContractActivated(object sender, IActivatedEventArgs e)
{
  var filePickerContinuationArgs = e as FileSavePickerContinuationEventArgs;
  if (filePickerContinuationArgs != null)
       this.FilePickerContinuationArgs = filePickerContinuationArgs;
}

Maintenant, l’application est prête à utiliser le FilePicker.

Dans les pages où l’on souhaite utiliser le FilePicker, il ne reste plus qu’à déclencher le FileSavePicker et à vérifier le contenu de l’argument FilePickerContinuationArgs (déclaré dans l’App) pour savoir si l’application s’affiche suite à l’ouverture d’un FilePicker:

Dans le OnNavigatedTo :

protected override void OnNavigatedTo(NavigationEventArgs e)
{
   var app = App.Current as App;
   if (app.FilePickerContinuationArgs != null)
         this.ContinueFileSavePicker(app.FilePickerContinuationArgs);
}

Créer le délégué async:

public async void ContinueFileSavePicker(FileSavePickerContinuationEventArgs args)
{
    if ((args.ContinuationData["Operation"] as string) == "SaveMyPicAs" &&  args.File != null)
    {
         StorageFile file = args.File;

         if (file.Name.EndsWith("jpg"))
         {
            // Save my content into the selected file
            // Prevent updates to the remote version of the file until we finish making changes and call CompleteUpdatesAsync.
            CachedFileManager.DeferUpdates(file);

           // MyBorder is the xaml Border control I want to render
           var bmpCurrentScreenImage = new WriteableBitmap((int)MyBorder.ActualWidth, (int)MyBorder.ActualHeight);
           bmpCurrentScreenImage.Render(MyBorder, new MatrixTransform());
           bmpCurrentScreenImage.Invalidate();

           // write to file
           await FileIO.WriteBytesAsync(file, bmpCurrentScreenImage.ToByteArray());

           // Let Windows know that we're finished changing the file so the other app can update the remote version of the file.
           // Completing updates may require Windows to ask for user input.
           FileUpdateStatus status = await CachedFileManager.CompleteUpdatesAsync(file);

           // You can use my nuget package called "Toastinet" to display toast
           if (status == FileUpdateStatus.Complete)
              MyToast.Message = "File saved";
           else
              MyToast.Message = "Unable to save file";
        }
    }
}

La dernière étape consiste à déclencher le FileSavePicker, lors d’un clique utilisateur par exemple:

private void OnSaveAs(object sender, EventArgs e)
{
    var savePicker = new FileSavePicker
    {
       SuggestedStartLocation = PickerLocationId.PicturesLibrary,
       SuggestedFileName = "4shot_polaroid"
    }; 

    // Dropdown of file types the user can save the file as savePicker.
    FileTypeChoices.Add("JPEG", new List<string> { ".jpg", ".jpeg" });
    savePicker.ContinuationData["Operation"] = "SaveMyPicAs";
    savePicker.PickSaveFileAndContinue();
}

Voilà, j’espère que ça en aidera certains.

Je remercie Toss.Net de m’avoir aidé à trouver l’article dans le MSDN.

Lien

Toastinet : Toast notification helper


toastToastinet : Toast notification helper

I recently published a new control for Windows Phone (WinPRT), Windows 8 (WinRT) and WPF (.NET4.5) applications.

This control imitate a toast notification commonly used on Windows Phone device.

You can customize its style, color, font, background and animation. It’s easy to use and really fast to implement.

Example:

toastinet2

Implementation:

<toastinet:Toastinet x:Name="Toast"
                     Title="Toastinet"
                     Canvas.ZIndex="1"
                     VerticalAlignment="Top" />

Preview:

You can download Toastinet directly from Visual Studio with Nuget or get its source code from Codeplex

 

Démonter le démarreur d’un SV 650

J’ai récemment été confronté à un problème de démarrage sur mon SV 650 N 2007.

panne

Alors qu’elle a toujours démarrée au quart de tour, voilà qu’un matin, pourtant ensoleillé, ma fidèle moto, à en croire le bruit inhabituel que produit le démarreur, ne semble pas décidée à m’emmener sur le chemin du travail.

C’est comme si le démarreur s’arrêtait en cours de route, n’ayant plus suffisamment de force pour entrainer les pignons moteur. Surtout qu’à force d’essais, il fini par ne plus du tout se déclencher, et seul un « clap clap » se fait entendre lors d’un appuie sur le bouton de démarrage.

Après être parvenu à démarrer la moto en la poussant, me voilà rassuré et mes craintes liées au moteur se dissipent peu à peu.

Pousse pousse

Je vous renvoi tout d’abord à ce tuto qui peut s’avérer utile pour diagnostiquer le problème: http://www.forum-sv650.com/e107_plugins/forum/forum_viewtopic.php?143193

Dans le cas où le démarreur est mis en cause, il vous reste la possibilité de le démonter afin de repérer le problème. En ce qui me concerne, ce sont les charbons du démarreur qui étaient usés et qui ne jouaient donc plus leur rôle de contacteur.

Dépose du démarreur

Le démarreur se trouve juste au dessus du filtre à huile, derrière le radiateur d’huile:

WP_20140319_11_02_58_Pro

Et pour le déposer, il suffit de dévisser les 2 vis qui le maintiennent au moteur, sans oublier de dévisser au préalable le câble d’alimentation du démarreur:WP_20140319_11_02_58_Pro - Copy

Un point important à noter, c’est qu’il n’est pas nécessaire de vidanger le moteur pour déposer le démarreur. En effet, il se trouve au dessus du niveau maxi de la jauge d’huile moteur. Il est donc logique que la partie du moteur dans laquelle le démarreur plonge la tête n’est pas immergée dans l’huile. Vous pouvez donc enlever le démarreur de son logement sans risque de perdre de l’huile. Il peut y avoir cependant un peu d’huile moteur arrivée là par projection des roues dentées.

WP_20140318_23_50_16_Pro

Une fois déposé, le démarreur peut être démonté.

Démontage du démarreur

Rien de bien compliqué dans le démontage du démarreur. Il suffit de dévisser les 2 longues vis :

WP_20140318_23_49_57_Pro

Il n’y a plus qu’à dépiécer le tout en faisant attention à se souvenir de l’ordre des pièces. Au cas où, n’hésitez pas à vous rendre ici pour avoir un schéma de montage: http://www.pieces-suz.com/suzuki-recherche-bike-pieces_nn.php?compteur=2910&PartsListID=3423839

En ouvrant le tout, si vous constatez un dépôt important de poudre, c’est sans doute que vous avez le même problème que moi:

WP_20140318_23_52_24_Pro

En effet, cette poudre est la résultante de l’usure des charbons. Ces charbons se présentent sous la forme de petits cubes rectangulaire et permettent de transmettre le courant qui arrive de l’alimentation au moteur du démarreur par simple contact.

Support de CharbonSur la photo, on constate aisément que le charbon B est bien plus usé que le A qui possède une épaisseur plus importante. Le ressort chargé de le pousser vers l’intérieur, plus précisément vers le moteur rotatif du démarreur n’exerce plus suffisamment de force pour amener le charbon en contact avec le moteur. Voilà pourquoi le démarreur ne tourne plus.

Rendez-vous donc sur le site du graal: pieces-suz.com, pour commander un charbon à 32,89€.

Note: Pour réparer temporairement le problème, j’ai placé un petit écrou entre le ressort et le charbon, donc au dos du charbon, de sorte que la force du ressort exercée sur le charbon soit plus forte et que ce dernier puisse ainsi faire contact avec le moteur du démarreur.

Faites attention en achetant la pièce manquante. Les charbons A et B sont vendus séparément. Le charbon A constitue en fait une partie du support de charbon tandis que le charbon B est une pièce à part rattachée à la vis d’alimentation (partie neuve sur la photo):

Charbon et Support

 

Interop Sample Windows Phone

Appel d’une fonction C/C++ en Windows Phone

Introduction

Pour les besoins d’un client, j’ai récemment été confronté à l’exploitation d’une librairie C sur Windows Phone. N’étant pas moi même familier au développement natif C et C++, je me suis arraché les cheveux à vouloir effectuer des appels de méthodes C à partir d’un projet Windows Phone classique. Pour faciliter le travail de ceux qui seraient confronté à la même problématique, je vais partager avec vous mon expérience.

Nous allons donc voir comment procéder pour exécuter du code écrit en C ou en C++ à partir d’un Windows Phone.

Pour cela, nous allons rapidement faire la distinction entre code natif et code managé, présenter l’architecture Windows Phone pour mieux comprendre le cloisonnement des couches, présenter le projet de type Hybrid que nous allons utiliser et enfin détailler les étapes de la réalisation.

Code natif vs code managé

Tout d’abord, il faut faire la distinction entre code managé et code natif.

Le code natif est du code C ou C++ compilé pour les plateformes ARM ou x86.

Le code managé, c’est du code C# compilé en langage MSIL (Microsoft IntermediateLanguage). Contrairement au code natif, la mémoire est gérée grâce au Garbage collector.

Pour Windows Phone 8, la compilation s’effectue « sur le cloud », c’est à dire au moment de la publication, en code natif pour ARM.

A la différence de Windows Phone 7.x, Windows Phone 8 supporte Visual C++ 2012, c’est à dire la version complète de C++, qui est disponible sur desktop.  Les versions desktop et mobile utilisent le même compilateur et le même IDE. Cela signifie que les applications Windows Phone peuvent utiliser du code existant C et C++ développé pour d’autres plateformes, en complément de librairies tierces et middleware (compatibilité source).

Attention cependant, Windows Phone 8 supporte une partie limitée des APIs COM et Win32 disponibles sur desktop. Une liste complète est disponible ici: http://msdn.microsoft.com/en-us/library/windowsphone/develop/jj207198(v=vs.105).aspx.

Pour aller plus loin sur le sujet, n’hésitez pas à consulter le MSDN: http://msdn.microsoft.com/en-us/library/windowsphone/develop/jj681687(v=vs.105).aspx

Petit rappel d’architecture Windows Phonearchi

Projet Hybride

Visual Studio mets à notre disposition le template de projet de type Hybrid (Class Libraries / Components) + (XAML + C# / VB) ».

Une application hybride va permettre d’exploiter du code natif à partir de code managé.

Elle se compose de 2 projets différents : le premier étant un projet classique Windows Phone 8 (xaml/c#) pour la partie managée et le deuxième un projet Windows Phone Runtime Component.

Le projet Windows Phone Runtime Component est un projet C++ qui va jouer le rôle de couche intermédiaire, appelée « wrapper ». Ce wrapper permet de faire le lien entre projet Windows Phone classique et librairie native C.

La DLL C est liée au wrapper qui va ainsi pouvoir exploiter ses méthodes natives.

Le wrapper est ensuite référencé au sein du projet Windows Phone classique.

archi2

L’hybride en pratique

Pour exploiter une librairie C, il faut:

  • Utiliser un projet de type Windows Phone Runtime Component comme Wrapper entre l’application Windows Phone et la librairie native
  • Disposer des fichiers .lib et .h (dans le cas d’une liaison statique)
  • Disposer des fichiers .lib (points d’entrées uniquement) + .h et de la DLL (dans le cas d’une liaison dynamique)

Mise en pratique

L’ objectif de la démonstration est de démontrer la faisabilité d’exécution de code C à travers l’utilisation d’un Windows Phone.

Nous allons développer une application Windows Phone classique à partir de laquelle il nous sera possible d’appeler du code natif.

La mise en pratique va se découper en 3 phases distinctes:

  1. l’implémentation de la librairie C
  2. la création du Wrapper (projet de type Windows Phone Runtime Component)
  3. la création d’une application classique Windows Phone, écrite en C#

La librairie C

Créer un projet de type Windows Phone Empty Static Library
tuto1
Une fois le projet créé, un fichier PhoneLib.cpp est inséré par défaut. Modifiez l’extension du fichier en PhoneLib.c de sorte à forcer la compilation en langage C.
tuto2

Ces fichiers c et h vont constituer notre point d’entrée dans la DLL.

Le fichier .h va contenir la déclaration de la méthode externe destinée à être appelée depuis notre application Windows Phone.

Ajouter le code suivant dans le .h :

#ifdef __cplusplus
extern "C"
{
#endif

 __declspec(dllexport) wchar_t* DisplayHelloFromLib();

#ifdef __cplusplus
}
#endif
Le fichier .c va contenir l’implémentation de la méthode DisplayHelloFromLib.
Ajouter le code suivant dans le .c
#include "pch.h"
#include "PhoneLib.h"

__declspec(dllexport) wchar_t* DisplayHelloFromLib()
{
	wchar_t  *data = L"Hello from static C";
	return data;
}

Cette méthode DisplayHelloFromLib() est la fonction qui va être appelée à partir du Wrapper. Dans notre exemple, elle se contente de retourner une chaîne de caractère « Hello from static C ».

Le Wrapper

Création d’un projet Windows Phone Runtime Component
tuto3 tuto4

Avant d’appeler notre méthode C précédemment crée, il va falloir référencer la librairie au sein du Wrapper. Contrairement aux projets classique avec code managé, il ne suffit pas de faire un clique droit sur le projet et d’ajouter une référence au projet. Cette référence passe par un paramétrage du Wrapper.

En effet, il faut « Linker » la librairie (.lib) au Wrapper.

Dans les propriétés du Wrapper, renseignez le nom de la librairie à linker:

tuto5

Pour pouvoir exploiter cette librairie il faut renseignez le chemin d’accès à cette librairie:

Il faut ensuite indiquer le chemin d’accès au fichier .h contenant la définition de la méthode C:

tuto6

Maintenant que la librairie est linkée, il nous est possible d’appeler la méthode C.

Déclarez une nouvelle méthode C++ dans le fichier Wrapper.h du Wrapper:

extern "C"
{
#include "PhoneLib.h"
#include "PhoneDLL.h"
}

namespace Wrapper
{
    public ref class WindowsPhoneRuntimeComponent sealed
    {
	public:
		String^ CallMyStaticCProgram();
    }
}

Notez l’utilisation du mot clé extern pour l’include des .h. Ceci permet d’indiquer que les fichiers .h en question sont étrangers au Wrapper.

Implémentez ensuite la méthode C++ qui va effectuer l’appel à la méthode C:

String^ WindowsPhoneRuntimeComponent::CallMyStaticCProgram()
{
        wchar_t *w = DisplayHelloFromLib();
	StringReference sr(const_cast&lt;wchar_t*&gt;(w));
	return sr;
}

Notez l’appel à notre méthode DisplayHelloFromLib déclarée dans la librairie C.

L’application Windows Phone

Il ne nous reste plus qu’à créer un projet Windows Phone classique, en XAML/C#, dans lequel on référence le projet Wrapper.

Une fois la référence ajoutée, il nous est possible d’instancier notre classe WindowsPhoneRuntimeComponent déclarée dans le Wrapper et d’appeler ensuite la méthode C++ appelant elle-même la méthode C:

private void Button_Click(object sender, RoutedEventArgs e)
{
            var wrapper = new WindowsPhoneRuntimeComponent();
            Tb.Text = wrapper.CallMyStaticCProgram();
}

WP_20140218_001
Et voilà. L’application Windows Phone appelle le Wrapper qui se charge à son tour d’appeler la librairie C.

Note:
Avant de pouvoir exécuter ce code sur un device Windows Phone, pensez à modifier la plateforme cible en ARM :

arm

Note: Vous constaterez que j’ai réalisé cette démonstration à l’aide d’une librairie statique.
En effet, il est en théorie possible d’appeler une librairie dynamique (en utilisant une dll). Malheureusement, je n’y suis pas encore parvenu car j’ai systématiquement une erreur (au runtime) de type « FileNotFoundException » laissant imaginer qu’une référence est manquante lors de l’appel à la méthode C.

error

Il est important de distinguer statique de dynamique: une librairie statique va être linkée à un projet sous forme de « package » contenant toutes les dépendances nécessaires pour fonctionner.
La librairie dynamique, contrairement à la statique, se présente sous la forme d’une dll seule, qui, lors de l’exécution va résoudre dynamiquement ses dépendances.
Je poursuis mes recherches sur la librairie dynamique. Si vous avez déjà pratiqué ce genre d’appel à une librairie dynamique, je suis preneur🙂

Téléchargez les sources ici: http://1drv.ms/1bJBDzR

50 euros offerts
En passant

Parrainage Numericable

Voilà maintenant plus d’un que je suis inscris chez Numéricable pour profiter de l’internet à haut débit.

Depuis 1 an, pas grand chose à signaler si ce n’est que je suis satisfait du service proposé:

– La box fonctionne bien, et son utilisation est assez simple et agréable.

– Le débit internet est satisfaisant (44.84Mbps)

speedtest

Le seul point négatif finalement, ce sont ces 2 appels en cours d’année pour me vendre tel ou tel abonnement. Mais bon, cette pratique semble de toute façon inévitable puisqu’on la retrouve chez tous les fournisseurs d’accès à internet et de toute façon, chez Numéricable, on pardonne ! Pourquoi ?

Parce Numéricable propose une généreuse offre de parrainage. En effet, pour un filleul parrainé, le parrain et le filleul reçoivent chacun 50€. Et cette offre de parrainage peut être renouvelée jusqu’à 10 fois par ans !50e2

Résultat des courses, avec un abonnement à 49,90 par mois et plus de 10 parrainages, je me retrouve à payer uniquement 2 mois d’abonnement sur l’année.

Donc pour continuer dans la foulée, j’ai décidé d’écrire un article, simplement pour vous fournir mes identifiants qui vous permettront de gagner 50€ lors de votre inscription chez Numéricable.

Pour celles et ceux qui souhaitent profiter de l’offre parrainage de Numéricable, voici mes identifiants:

IDENTIFIANT : 89431634

NOM : DEMICHELI

Comment procéder ?

Le système de Parrainage  a changé depuis février 2014 !

Pour en profiter, suivez le lien : http://bit.ly/1ouuDaf

Nouveau parrainage Numéricable 2014

Nouveau parrainage Numéricâble 2014

Il ne vous reste plus qu’à cliquer sur le bouton « Je profite du parrainage et j’économise 50€« .

Note: Vous devez vous connecter avec Facebook

face

et voici le résultat :

Echec lors de la synchronisation des mails outlook sous Windows Phone 8

Voilà quelques temps que je ne pouvais plus synchroniser mes mails outlook (depuis le domaine Supinfo) sur mon téléphone Windows Phone 8 ! En fait, je crois que le problème est propre aux Windows Phone 8 !

Lors de la synchronisation, le message d’erreur suivant apparaît:

Erreur de synchronisation…

Code erreur: 80070057

Si vous essayez de synchroniser vos mails Supinfo également,  ne cherchez plus, pas besoin de modifier à tire larigot les paramètres de synchronisation !

Accédez à votre messagerie sur internet (outlook.com) et rendez-vous dans les options, en haut à droite de l’écran.

Cliquez sur Paramètres et enfin option Régionale:

Options OWA

Vous devriez avoir une coche à cocher au niveau de l’encadré rouge sur l’aperçu ci-dessus.  L’intitulé ressemble à « Renommer les dossiers par défaut en fonction de la langue choisie ». Cochez là, et synchronisez !

Pour information, cette option permet de renommer les dossiers par défaut, notamment le dossier « Contacts » qui pose problème ici, car un caractère particulier s’est glissé  à la fin du nom et provoque une erreur de synchronisation !

Si l’erreur persiste, vous avez sans doute d’autres problèmes similaires. Pour s’en assurer, une petite manipulation vous permet de récupérer des logs et d’observer les noms de dossiers qui peuvent poser problème:

Reportez vous ici: http://jespermchristensen.wordpress.com/2013/01/14/windows-phone-8-outlook-sync-error-code-80070057/#comment-634

Pour les non bilingues, voici rapidement la démarche à suivre:

– Outlook.com / Options / Voir toutes les options / Téléphone /

– Sélectionnez votre téléphone puis cliquez sur « Démarrer l’enregistrement dans le journal »

– Effectuez une synchronisation à partir de votre téléphone

– Après l’échec, sur outlook.com, cliquez sur « Arrêter l’enregistrement »

– Vous recevrez un mail avec un fichier de log joint présentant la hiérarchie des dossiers synchronisés :


<Add>
  <ServerId>4</ServerId>
  <ParentId>0</ParentId>
  <DisplayName>Calendrier</DisplayName>
  <Type>8</Type>
</Add>
<Add>
  <ServerId>6</ServerId>
  <ParentId>0</ParentId>
  <DisplayName>Contacts
</DisplayName>
  <Type>9</Type>
</Add>

Observez bien le retour à la ligne après « Contacts » :


<DisplayName>Contacts
</DisplayName>

Le problème vient donc du dossier Contacts qu’il fallait renommer.

Voilà, j’espère que ça dépannera certains d’entre vous.

Sideloading : Déployer une application Windows Store sans la publier

Le Sideloading décrit la façon de déployer une application Windows Store sur une machine Windows 8 sans passer par le Store.

Petit récapitulatif:

Aujourd’hui, pour déployer une application Windows Store et la rendre disponible sur des tablettes ou pc Windows 8, il y a 2 façons de faire.

  • Soit en passant par le store et en rendant l’application téléchargeable via le store.
  • Soit en contournant le store et en installant l’application directement sur le device à partir du package.

Il faut garder en tête que le Sideloading est destiné à un usage en entreprise, et vise donc des applications LOB (line-of-business) (des applications qui sont destinées à être déployées sur plusieurs devices d’entreprise).

C’est pour cette raison que l’une des contraintes majeure pour pouvoir faire du Sideloading (gratuitement), c’est d’avoir Windows 8 Entreprise édition.

Note : Je précise gratuitement car vous avez tout de même la possibilité de faire du Sideloading sans Windows 8 Entreprise, en achetant une clé d’activation de Sideloading auprès de Microsoft. Je ne détaillerais pas cette méthode puisque je ne l’ai pas testé. Pour plus d’informations: http://technet.microsoft.com/en-us/library/hh852635.aspx

Prérequis

– Une tablette ou pc sous Windows 8 Entreprise

– Un domaine AD joignable

Préparation de la machine cible

La première chose à faire, c’est de joindre un domaine Active Directory. Ceci va permettre d’activer l’utilisation des GPO (Group Policy Object).

Vous l’aurez deviné, la seconde chose est d’activer une GPO qui va permettre d’autoriser toutes les applications à installer: « Allow all trusted applications to install« .

Et pour ce faire lancez la console gpedit.msc

gpedit

Rendez-vous ensuite dans le dossier Computer Configuration\Administrative Template\Windows Components\App Package Deployment

gpedit2

Double cliquez sur la GPO et activez la:

gpedit3

Et voilà, ce n’était pas plus sorcier que ça. La machine est maintenant prête à accueillir des applications LOB « clandestine ».

Ne reste plus qu’à y déployer notre application.

Déploiement de l’application sur la machine cible avec PowerShell

Il y a 5 façons différentes de déployer une application LOB. Je détaillerai ici l’utilisation des Cmdlet PowerShell.

Plus d’infos sur les autres méthodes dans le résumé en bas de page.

Créez votre package d’application à partir de Visual Studio:

gpeditPackage

Copiez le contenu du package sur une clé USB pour déployer l’application sur la machine que nous venons de préparer et branchez-y la clé.

Lancez la commande PowerShell:

powershell1

Tapez la commande add-appxpackage D:\CheminDeMonPackage.appx

Command Add Package

Et voilà, affichez l’accueil Windows 8 et hop, la tile de votre application s’affiche ! Lancez-la, le tour est joué.

Attention :

Il faut installer le certificat livré avec le package de l’application:

certificatSinon vous obtiendrez un message d’erreur vous expliquant que l’application ne peut être installée car le certificat utilisé pour signer l’application n’a pas été installé:

errorCert

Installez le certificat sur la machine locale, dans le conteneur Trusted Root Certification Authorities

cert3

Résumé

Pour activer le SideLoading, il faut

–        soit avoir Windows 8 Enterprise et appartenir à un domaine afin d’activer les GPO : Allow all trusted applications to install

–        soit acheter une clé d’activation de SideLoading pour Windows 8 Pro ou RT (http://go.microsoft.com/fwlink/?LinkId=264711)

Ensuite, il y a 5 façons différentes pour déployer une application LOB :

–        utiliser System Center Manager 2012 SP1 (beta)

–        utiliser Windows Intune cloud service http://blogs.technet.com/b/server-cloud/archive/2012/09/10/system-center-2012-configuration-manager-sp1-beta-and-windows-intune-update.aspx

–        Commandes PowerShell (présenté dans cet article) http://technet.microsoft.com/fr-fr/library/hh856045(en-us).aspx

–        Deployment Image Servicing and Management (DISM)

–        Créer un MSI pour déployer par GPO http://blogs.flexerasoftware.com/installtalk/2012/10/delivering-windows-8-apps-to-the-enterprisepart-2-by-debbie-urman-in-delivering-windows-8-apps-to-the-enterprisepart-1.html