Welcome to MSDN Blogs Sign in | Join | Help

Je voulais tester le bon fonctionnement de cette configuration, et bingo, cela marche comme annoncé :)

Après l’installation du produit, j’ai du néanmoins procéder à un redémarrage pour que la partie création de base fonctionne. Mais reprenons étape par étape.

Tout d’abord, dans la console d’administration, il faut choisir de configurer les éléments installés (un peu en mode SharePoint, où on installe d’abord les binaires, puis on configure le serveur). Ici, le mode basic suffit:

basic 

Plus tard, je testerais le mode Advanced : comme j’ai aussi une instance SharePoint Server sur ma machine, je suis curieux de savoir si on peut l’utiliser pour héberger le portail TFS… Mais en attendant,  on passe quelques écrans indicatifs :

dbinstance

Puis on choisit un moteur de base de données (existant ou installation d’un SQL Express) :

dbselect

Puis l’instance :

dbconfirm

Ensuite, on valide les paramètres généraux :

dbvalid

L’installation vérifie que la machine est prête. par exemple, si la machine est dans le domaine, les contrôleurs de domaine sont-ils disponibles, etc

dbcheck

Le serveur est alors configuré :

complete

Et normalement, si tout se passe bien :

success

Et voila votre serveur disponible sur votre station Windows 7, dans une configuration intégralement x64 :

webaccess

En dehors de devoir redémarrer la machine, alors que ne devrait y obliger (le Framework 4.0 était déjà installé), cela se déroule vraiment comme sur des roulettes :)

J’ai commencé ce week-end à jouer avec VS2010 et son modèle de projet WPF. Je créé mon projet, une application WPF, je commence à jouer avec, et au bout de quelques secondes, un glyphe m’interpelle :

image

Pas de problème, je clique dessus (on verra bien ce que cela fait), et en apparence, rien… Sauf qu’en regardant le xaml, je me suis rendu compte de la déclaration de la page est passée de :

<Window x:Class="WpfApplication1.Window1"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="Window1" Height="300" Width="300">

à

<Window x:Class="WpfApplication1.Window1"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="Window1" mc:Ignorable="d" xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        d:DesignHeight="300" d:DesignWidth="300" SizeToContent="WidthAndHeight">

Et le glyphe a aussi changé :

image

Et si je reclique dessus, retour à l’original.

Ainsi, VS2010 gère t’il maintenant certains attributs de Blend spécifique au mode conception. C’est une bonne chose et il va falloir que j’en teste plus.

Ce n’est qu’un détail. Mais si tout le reste est à l’avenant…

Si l’on n’y prête garde, tenter de créer un projet SharePoint avec Visual Studio 2010 peut réserver une mauvaise surprise :

image

C’est vide :(

Mais un petit détail change tout : la version du Framework ciblée :

image

Bref, ne pas oublier que l’outil est multi-cibles :)

Question récurrente s’il en est :) Pour démarrer, l’incontournable est “Windows Presentation Foundation Unleashed”, aux éditions SAMS :

book

Si vous ne devez en lire qu’un, c’est celui-là, sans la moindre réserve. Après, quand il s’agit de reprendre de façon plus avancé chaque concept, je conseille plutôt “Pro WPF in C# 2008”, aux éditions Apress:

 untitled

Il doit y avoir une version VB, mais je ne l’ai pas lu…

Et pour SilverLight ? C’est plus nuancé : après avoir fait beaucoup de WPF, j’ai été un peu déçu par “SilverLight 2 Unleashed” aux éditions SAMS. Pour quelqu’un qui n’a jamais fait de WPF, ce livre convient peut être, mais je reste dubitatif. Et dans la série bible, toujours chez Apress, on trouve “Pro Silverlight 2 in C# 2008” :

untitled3

Reste un intriguant “Pro Silverlight for the Enterprise”, que je n’ai pas lu non plus:

untitled2

J’ai un peu peur en lisant la table des matières. Je pense que je vais plutôt investiguer “WCF Multi-tier Services Development with Linq”, chez Packt Publishing. Cela parle plus de Link for SQL que d’Entity Framework, et en lisant la table des matières, je ne suis pas sûr que cela tire parti des spécificités du Framework 3.5, mais pour du développement d’entreprise, je le sens plus :

1847196624

Un problème assez courant en dev : comment rejouer des requêtes SOAP, afin de reproduire un scénario (cas d’erreur à reproduire, développement sans accès à l’infrastructure, etc). Le premier outil qui vient à l’esprit est Fiddler. Le souci avec cet outil est que lorsque l’on veut rejouer une trace, les règles travaillent sur les urls, et donc les query string. En mode SOAP, le client poste sur une url unique, et Fiddler a du mal à s'y retrouver.

Il existe deux autres outils : strace et httpreplay. Le premier permet de capturer des échanges entre un client et un serveur. Le second permet de rejouer ces traces. Il permet de rejouer aussi les traces de Fiddler. Pour rejouer mes traces, déjà prises avec Fiddler, j’ai donc installé HttpReplay. Pius j’ai récupéré l’archive Fiddler, l’ai renommé en zip, et ai extrait le sous-répertoire raw.

En allant dans le répertoire d’installation de HttpReplay, j’ai lancé la commande suivante :

SOCKTRC.EXE /s:81 /e:HTTPREPLAY.DLL /LOG:c:\temp\raw /RESPECTPOST

avec :

  • /s:81, pour que l’outil écoute sur le port 81.
  • /e:HTTPREPLAY.DLL, pour préciser que le plugin httpreplay doit être utiliser.
  • /LOG:c:\temp\raw, pour préciser le répertoire contenant les traces.
  • /RESPECTPOST, pour préciser que la mise en correspondance entre un appel et sa réponse doit tenir compte du corps de la demande, et pas simplement de l’URI.

Ultime point à ne pas oublier avant de lancer le client du Web Service, positionner le proxy du poste à localhost, port 81:

image

Et après, j’ai pu retester tout mon scénario dans une VPC sans avoir besoin d’être réellement connecté au serveur :)

image

Simple mais efficace…

J’ai un disque qui est crypté avec BitLocker (politique d’entreprise). Lorsque j’ai procédé au cryptage, parmi les options disponibles, j’ai choisi de sauvegarder la clé de secours sur un disque connecté en usb (le disque que j’utilise pour faire mes sauvegardes). Grossière erreur :(

En effet, récemment, en arrivant au bureau, j’ai eu un joli écran bleu lors de l’ouverture de session (registry error). Je me dis, pas de problème, je boote en mode sans échec, je trouve quel service ou driver pose problème, je répare, et hop, plus de problème. Donc, je redémarre le poste, et comme il détecte qu’il s’est crashé, il me propose la liste des options de récupération. Je choisi “Mode sans échec” et là, j’ai un joli message qui m’indique que le disque étant crypté, il me faut fournir la clé de secours pour pouvoir démarrer dans l’un des modes sans échec. Clé qui est bien sur chez moi, à 60 km de là.

j’ai réussi à m’en sortir avec pas mal de chance. Comme le plantage avait lieu lors de l’ouverture d’une session de domaine, j’ai parié sur le fait que cela devait être lié au démarrage d’un service, et que si j’arrivais à ouvrir “très vite” une session, j’aurais peut être le temps d’intervenir. J’ai donc bouté en mode normal, ouvert une session avec un compte local à la machine, et j’ai eu alors le temps de désactiver le cryptage du disque. Au redémarrage suivant, j’ai alors pu ouvrir en mode sans échec, et dans ce mode, j’ai restauré un point de restauration précédent.

Après cette restauration, le poste était effectivement réparé, et j’ai alors pu remettre le cryptage en place.

Moralité : sauvegardez votre clé de façon à ce qu’elle soit toujours facilement accessible (votre webmail par exemple). Et vive les points de restauration :)

J’ai voulu installé les derniers drivers ATI, mais au lancement de l’outil, ce dernier s’est crashé bien comme il faut :

image

Avant de passer à la suite, une mise en garde s’impose. A moins que vous n’ayez un problème (bug) censé être corrigé dans une version récente des drivers, ou que vous utilisiez un jeu ou un outil dont les performances sont explicitement améliorées par la mise à jour, remplacer vos drivers comporte plus de risque de se retrouver avec une machine bancale qu’autre chose. Et les manipulations suivantes étant un peu hardcore, si vous avez le moindre doute, ne tentez rien…

Si vous êtes encore là…

En recherchant sur le .Net, j’ai constaté que le problème était assez commun et provenait du fait que l’outil était lié à une version spécifique de librairies systèmes, pas forcément présente sur la machine. Parmi les différentes solutions, dont installer des hotfix, une a retenu mon attention : modifier manuellement la dépendance. Elle est un peu plus complexe mais ne nécessite aucune modification du système…

Pour commencer, lancez l’installation. Elle va se planter et vous laisser un répertoire C:\ATI\SUPPORT\8-12_vista64_dd_72276\Bin64 (certains numéros peuvent changer).

Chez certains personnes, la modification des fichiers manifest semble ne pas être nécessaire. Vous pouvez tester directement l’étape suivante et revenir ici en cas d’échec persistant.

Dans ce répertoire, il va falloir modifier tous les fichiers MANIFEST (7 en tout). Avant de procéder aux modifications, commencez par rechercher quelles versions des dll  sont présentes sur votre machine. Pour cela, faîtes une recherche sur le répertoire Windows des tous les fichiers contenant dans le nom Microsoft.VC80 :

image

Ici, j’ai recherché une version commune pour les quatre fichiers référencés (ATL, CRT, MFC et MFCLOC). J’ai retenu la 8.0.50727.1833. Le résultat pourrait être différent chez vous…

Ensuite, j’ai modifié tous les fichiers pour qu’ils référencient cette version. Par exemple, le contenu du fichier Microsoft.VC80.ATL.manifest devient :

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!-- Copyright © 1981-2001 Microsoft Corporation -->
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
    <noInheritable/>
    <assemblyIdentity
        type="win32"
        name="Microsoft.VC80.ATL"
        version="8.0.50727.1833"
        processorArchitecture="amd64"
        publicKeyToken="1fc8b3b9a1e18e3b"
    />
    <file name="ATL80.dll"/>
</assembly>

Une fois les sept fichiers modifiés, lancez une ligne de commande en mode Administrateur :

image

Et allez dans le répertoire “C:\ATI\SUPPORT\8-12_vista64_dd_72276\Bin64”. Lancez la commande “ATISetup.exe –UNINSTALL –OUTPUT SCREEN” si vous avez déjà des drivers ATI. Et rebootez (l’outil doit supprimer des fichiers en cours d’utilisation, il a vraiment besoin de ce reboot). N’essayez pas d’enchaîner avec la commande suivante, si vous ne rebooter pas, il faudra recommencer de toute façon.

Au reboot, attention aux yeux, c’est en mode VGA 800x600 que cela repart. Ouvrez la session, relancez une ligne de commande en mode administrateur et lancez “ATISetup.exe –INSTALL –OUTPUT SCREEN”. Après un dernier reboot, voila vos drivers à jour.

Vous pouvez maintenant installer le centre de contrôle. Cette fois, pas besoin de modifier les fichiers manifest. Une fois le programme décompressé (oui, il plante aussi), ouvrez une ligne de commande en mode Administrateur, allez dans “C:\ATI\SUPPORT\8-12_vista32-64_ccc_lang2_72277\Bin64” et lancez “ATISetup.exe –INSTALL –OUTPUT SCREEN”.

Quand à l’installation de l’utilitaire HydraVision, je vous laisse deviner ce qu’il faut faire :)

Il faudra que je creuse à l’occasion pour comprendre pourquoi ATI livre ses utilitaires d’installation en les liant à une version spécifique de librairies C++…

Par défaut, un défragmenteur est fourni avec 7, mais sans mode graphique. Pour ceux qui regrettent la grande époque de PCTools et consort, vous pouvez télécharger Auslogics Disk Defrag :

image

Testé sur un Windows 7 x64. Quand à savoir s’il est réellement plus performant que celui fournit en standard, c’est une autre histoire…

Allez, mon premier test de Live Writer. C’est surtout pour vérifier l’insertion de tableaux et d’images :)

Header1 Header2
l1 l2

image

Sans intérêt ici, mais au moins, pour mes prochains posts, je pourrais mettre des captures d’écrans :)

En voulant installer ce programme sur mon poste, je me suis retrouvé avec un message d'erreur de source e Twain invalide. C'est d'autant plus vexant que via d'autres programmes, le scanner marchait parfaitement bien (par WIA, je suppose). Ce n'est pas qu'il me serve souvent, mais je n'aime pas avoir un programme qui ne fonctionne pas sur mon poste :)

 Donc, petite rercherche sur le site de Canon France, je récupère la dernière version des logiciels SanGear et Toolbox, je réinstalle, reboote, et pas mieux. Quand j'ouvre le panneau de configuration de Toolbox, aucun scanner listé. Plutôt rageant.

 Allez, une petite recherche Internet, et là, je tombe sur différents posts : twain ne fonctionne pas en mode 64 bits, il faut formater le disque système en fat32, etc En bref, rien de pertinent, et je reste poli au vu de certaines suggestions...

 A tout hasard, je vais sur le site de Canon US, et là, surprise, dans les drivers, un joli lien Twain Driver Vista 64. Ok, je télécharge les versions us du drivers et de toolbox, ainsi que l'utilitaire deldrv, pour nettoyer l'existant. Je réinstalle tout, je reboote, je lance Toolbox, le scanner est bien listé (joie), je lance un scan, et là, échec : unable to open Twain source.

 Nouvelle recherche sur le web et cette fois, c'est plus concluant : il faut en fait rajouter le chemin du pilote Twain dans le path de la machine. En pratique, faîtes propriétés de l'ordinateur, paramètres systèmes avancés, variables d'envirronements (le bouton en bas de la boite de dialogue). Dans les variables systèmes, choisissez Path, Modifier, et ajouter à la fin ";%SYSTEMROOT%\twain_32\CNQ9950". Pensez à changer la dernière partie par le nom du répertoire contenant les drivers de votre scanner dans c:\windows\twain_32 (il peut y avoir plusieurs répertoires si vous avez aussi une webcam ou un appareil photo numérique). Fermer toutes les fenêtres que vous venez d'ouvrir et relancer Toolbox (pour qu'il prenne en compte la modification). Et là, enfin, tout marche :)

 Ouf, mais c'était bien compliqué pour un utilitaire comme celui là. Il est dommage que l'outil installant le driver ne fasse pas automatiquement cette modification du path...

Bon scan en 64 bits :)

Pour les abonnés, sur la même page que celle permettant de récupérer Windows 7, il est maintenant possible de télécharger le SDK. Bon download :)

Si vous avez une souscription MSDN, les ISO de la Beta 1 de Windows 7 sont disponibles depuis cette nuit en téléchargement. Il y a aussi un fix, un langage pack et le kit de développement de drivers. Je n'ai pas encore eu l'occasion de voir ce que contenait la langage pack, et en particulier si le français était présent, mais cela devrait être testé dans la journée :)

 Bon download...

 

 

un sujet finalement récurrent avec les betas de nos OS :)

En attendant que les Daemon Tools et consort soient à jour, pour installer sur la future beta 1 (plus que quelques jours) un Visual Studio ou un SQL Server, après divers tests, le meilleur résultat pour l'instant va pour Virtual ConeDrive.

 Bon pizza parti et meilleurs voeux :)

Patrice

Mais avec une barre de titre, bien entendu :)

Par défaut, on peut ouvrir une fenêtre sans décoration, ou alors avec une barre de titre standard (menu système, boutons de redimmensionnement et de fermeture). Mais si on veut la barre de titre sans le reste, c'est un peut plus embêtant. On peut toujours jouer sur la propriété ResizeMode="NoResize" pour supprimer deux des trois boutons. Mais le bouton Close est du genre résistant :)

Pour le faire disparaître, il faut en fait faire un peut d'interop et surcharger la méthode OnSourceInitialized de l'objet Window :

/// <summary>

/// Raises the SourceInitialized event. Overrided to cancel the close button.

/// </summary>

/// <param name="e">An EventArgs that contains the event data.</param>

protected override void OnSourceInitialized(EventArgs e)

{

base.OnSourceInitialized(e);

// D‚sactive le menu systŠme de la fenˆtre

IntPtr hwnd = new WindowInteropHelper(this).Handle;

int windowLong = GetWindowLong(hwnd, -16);

SetWindowLong(hwnd, -16, windowLong ^ WS_SYS_MENU);

}

 Et voila :)

Bon, il ne faut pas oublier de déclarer les deux API utilisées :

[DllImport("user32.dll")]

static extern int SetWindowLong(IntPtr hWnd, int nIndex, int dwNewLong);

[DllImport("user32.dll")]

static extern int GetWindowLong(IntPtr hWnd, int nIndex);

const int WS_SYS_MENU = 0x00080000;

J'ai eu récement à connecté un Canon 20D par USB à un portable sous Vista pour récupérer des photos. Et le résultat fut de prime abord assez frustrant : l'appareil n'apparaissait pas dans l'explorateur, et n'ayant pas de lecteur de cartes ou les CD de drivers de l'appareil, les photos me semblaient  hors d'atteinte :(

Et autant dire que des recherches rapides sur Internet n'étaient guère encourageante : l'utilitaire EOS Utility y était souvent décrit comme le passage obligé pour regler le problème, mais ce dernier n'était pas présent sur le site du contructeur...

 Mais une dernière recherche a fini par porter ses fruits : le menu du 20D propose une option Communication qui par défaut est réglée sur "Normal" mais peut prendre aussi la valeur "PTP". Or Vista communique avec les appareils photos via ce protocole. J'ai donc changé l'option et là, miracle : l'appareil était devenu visible dans l'explorateur. Seul "souci" restant : la carte était vue comme pleine, alors que ce n'était pas le cas. Mais comme tout le reste a fonctionné normalement, ce n'était pas vraiment génant.

 Dernier point : j'ai testé la connection aussi avec un portable sous Windows Server 64 bits, et cela a aussi fonctionné du premier coup. Cela devrait donc marcher avec toutes les déclinaisons de Vista :)

 

More Posts Next page »
 
Page view tracker