Bienvenue à Blogs CodeS-SourceS Identification | Inscription | Aide

Lorsque l’on écrit du XAML, les tags XML peuvent vraiment devenir très longs et pas pratique à lire:

image

Il y a une option vraiment pratique dans l’éditeur de Visual Studio qui va nous permettre de réorganiser tout cela en mettant les attributs XAML les uns en dessous des autres:

image

Et lorsque l’on met en forme tout le document XAML(Edit>Advanced>Format Document), voici ce que l’on obtient:

image

 

C’est beaucoup plus lisible! Cette option existe aussi pour l’éditeur XML.

 

@+

Lors de cette session que j’ai animé avec Rui, j’ai eu l’occasion de présenter, en plus des nouveautés de SQL Server 2008, comment utiliser l’édition “database” de Visual Studio 2008. Le principe? Avoir les mêmes outils lors que l’on travaille avec une base de données qu’avec du code .Net. En particulier: compilation, tests, comparaison de bases, analyse de code, refactoring  et ce qui est presque le plus important: la possibilité d’intégrer le source de la base de données dans un contrôleur de source avec le code applicatif!

Voici le webcast: http://www.microsoft.com/france/vision/mstechdays10/Webcast.aspx?EID=03f05fee-4c60-491b-b58d-3c1385dbc757

Ou trouver cette version de Visual Studio? En fait, elle est en téléchargement ici pour Visual Studio 2008 SP1 si vous vous avez déjà une version Team Developper ou Team Suite!

@+

Je profite de la sortie des power tools pour TFS 2010 RC (http://visualstudiogallery.msdn.microsoft.com/en-us/a4f8a47e-1f6b-49d6-8f6e-34f705a2001b) pour mettre à jour mon contrôle de workflow pour le Team Explorer et l’interface web de TFS:

image

 

image

 

Pour télécharger et tester c’est ici: http://tfsworkflowcontrol.codeplex.com/releases/view/41005

@+

J’ai publié une version silverlight du contrôle WPF. Il fonctionne exactement de la même façon, mais cette fois ci il cible l’interface web de TFS:

image

Dans le même template de work items il est maintenant possible d’afficher le workflow à la fois dans Team Explorer et dans les clients web.

Le contrôle pour le Team Explorer est ici, et le nouveau contrôle web est .

Bon téléchargement.

@+

Daniel Wertheim viens de publier un condensé sous forme de PDF de tout son travail sur EF 4, que  ce soit au niveau des entités elle-même comme la publication en service. Le billet est ici: http://daniel.wertheim.se/2009/12/14/putting-entity-framework-4-to-use-in-a-business-architechture/ Ici un lien vers le PDF ainsi que l’archive contenant le code. On peut considérer son travail comme un workshop bien pratique pour s’initier à EF 4.

@+

Ce billet est un peu la suite de celui sur la sauvegarde, car la procédure est presque la même. L’idée est la suivante: à partir d’une collection, je veux créer une copie de celle-ci sur le même serveur ou un autre serveur mais dans dans tous les cas avec un nom différent. Il y a plusieurs raisons pour cela, par exemple:

  • créer une copie pour un serveur pour tester une nouvelle configuration matérielle par exemple
  • pour fusionner plusieurs serveurs en 1: le renommage permet de palier l’utilisation du nom par défaut qui a du être utilisé sur tous les serveurs.

 

Une fois la collection détachée de TFS, il faut en faire une copie dans Sql Server sur le même serveur SQL Server ou un autre. Une fois la copie effectuée on effectue l’attachement avec la ligne de commande suivante:

TfsConfig collection /attach /collectionDb:.\sqlexpress;Tfs_MaCollectionBis /collectionName:MaCollectionBis /clone

Et si j’avais voulu le faire à partir de l’interface de TFS, cela se passe comme n’importe quelle attachement:

image

A l’étape suivante, on nous informe qu’il s’agit d’un clonage de collection (car j’essaye l’attachement sur le même serveur) et qu’il faut donc en donner un nouveau:

image

Et il suffit ensuite d’effectuer l’attachement tout simplement!

 

@+

Brian Harry vient de l'annoncer sur son blog: http://blogs.msdn.com/bharry/archive/2009/12/01/tfs-2010-power-tools-are-available.aspx.

Pas mal de choses ont changé car certaines fonctionnalités ont été intégrées dans le produit lui-même. Tous les détails sont ici: http://blogs.msdn.com/bharry/archive/2009/11/18/tfs-2010-power-tools-coming-soon.aspx.

On se retrouve à présent avec les mêmes outils sur la beta 2 de TFS 2010, qu'avec TFS 2008.

Bon téléchargement!

@+

Si vous voulez backuper toutes vos bases de TFS y compris celles des collections de projets, il y a une application procédure pour ça :) Mais si vous voulez seulement demander à vos DBAs de sauvegarder que vos collections vous allez avoir un problème: on peut peux pas sauvegarder une collection sans la détacher au préalable via la console TFS car la collection sera alors  inutilisable. Il faut donc passer par la procédure suivante:

  1. Détacher dans TFS
  2. Backup
  3. Re-attacher dans TFS.

Il ne faut pas confondre cette procédure d’attachement/détachement à celle de SQL Server concernant la base de données de la collection de projet. Dans notre cas la collection reste toujours connectée au serveur SQL. Cette procédure est obligatoire car la procédure de détachement copie des données dans la base de la collection pour la rendre transportable.

Alors comment faire pour automatiser tout ça? La réponse en 4 lettres: SSIS ou Sql Server Integration Services. On va donc créer un package pour réaliser ces 3 opérations.

On commence déjà par créer le package. L’ensemble de ces opérations ont été effectuées sur un TFS Basic. Ensuite on crée la tâche pour détachement de la collection: on va utiliser la ligne de commande via TfsConfig dans une tâche “Execute Process”:

 image

Ensuite on sauvegarde la base via la simple tâche de backup:

image

Et pour finir on copie notre tâche de détachement et on la modifie pour en faire une tâche d’attachement:

image

Voici l’enchainement dans SSIS:

image

On peut aussi ajouter la tâche d’attachement dans le handler d’erreur pour être sur qu’en cas d’erreur dans le script:  la collection est toujours attachée au final.

@+

Je l'ai dis en commentaire dans mon précedent post, mais au moins ici ca a l'air plus clair!

Cela ne marche pas en Silverlight 3. Sur le msdn  (http://msdn.microsoft.com/en-us/library/system.windows.markup.xmlnsdefinitionattribute%28VS.95%29.aspx)  on a ce gros warning:

XmlnsDefinitionAttribute is not relevant for XAML usage of custom assemblies that contain custom types for Silverlight. You still must map each assembly/namespace combination for XAML usage on a per-page basis as documented in the topic Silverlight XAML Namespaces, and Mapping XAML Namespaces as Prefixes. In Silverlight 3, the native XAML processor does not necessarily consume XmlnsDefinitionAttribute values found in assemblies as part of its parsing behavior, nor does the XAML markup compile build action. Silverlight 3 defines XmlnsDefinitionAttribute values on its core assemblies that are representative of the default Silverlight XML namespace as well as the types that Silverlight defines for the XAML namespace, but these attributes are provided mainly for development environments or tools.

Mais il n'y aucune remarque contre son utilisation en Silverlight 4: http://msdn.microsoft.com/en-us/library/system.windows.markup.xmlnsdefinitionattribute%28VS.100%29.aspx

Lorsqu’un projet WPF devient complexe, on commence à surcharger les espaces de noms pour pouvoir utiliser nos contrôles. Voici un simple projet de contrôles:

image

Rien que pour ces 2 contrôles qui sont dans des espaces de noms différents je suis obligé de déclarer ceux-ci dans toute fenêtre ou contrôle qui en ont besoin:

image

C’est franchement pas pratique: avec cette méthode, si je veux avoir une bibliothèque organisé par espace de nom et facilement utilisable, je suis obligé d’avoir un espace de nom xaml pour chaque espace de nom .Net.

La solution à ce problème est l’utilisation de l’attribut XmlnsDefinitionAttribute: on va pouvoir définir une url comme espace de nom, exactement comme les contrôles natifs de Microsoft:

[assembly: XmlnsDefinition("http://blogs.developpeur.org/miiitch/wpf","MyControlLibrary")]
[assembly: XmlnsDefinition("http://blogs.developpeur.org/miiitch/wpf", "MyControlLibrary.Admin")]

Comme on peut le voir, je peux définir la même url pour plusieurs espaces de nom .Net. Ainsi le xaml est simplifié, et il n’y a plus de référence à l’espace de nom de l’assembly d’origine:

 

image

Comme l’espace de nom de la bibliothèque d’origine a disparu, cela signifie aussi que le refactoring sur les contrôles est possible sans avoir à modifier le xaml.

@+

J.D. Meier vient de l’annoncer sur son blog: http://blogs.msdn.com/jmeier/archive/2009/11/24/now-available-final-pdf-of-the-microsoft-application-architecture-guide-second-edition.aspx

On peut soit télécharger soit la version PDF, consulter l’ouvrage en ligne, ou même l’acheter.

@+

Dans VS 2005 et VS 2008 l’affichage de l’historique d’un fichier n’est pas “la plus puissante” fonctionnalité du Team Explorer:

image

 

L’historique est présent en barre d’outil par défaut et il ne peut y avoir qu’un historique à la fois. C’est bien… mais pas suffisant :)

En 2010 c’est tout autre chose:

  • On peut avoir plusieurs historiques simultanément : un onglet par historique
  • Les données sont beaucoup plus complètes. C’est ce que l’on va voir.

 

Voici le nouvel écran d’historique:

image

Jusque là, rien de spécia coté donnéesl. On a par contre une barre d’outil qui nous proposent plusieurs options. On peut aussi voir les historiques en fonction des labels posés:

image

Prenons un autre fichier, dans une branche par exemple. Avec TFS 2008, l’historique commençait au moment de la création de la branche. Maintenant on a beaucoup plus d’informations:

image

On a non seulement l’historique habituel, mais aussi l’historique des versions des branches annexes. Par exemple tout en bas, sélectionné, on peut voir l’historique du fichier sur la branche principale.

A ce niveau nous travaillons sur les fichiers, mais il est aussi possible d’analyser les opérations réalisées sur un changeset pour identifier les sources des modifications lors des merges:

image

Ceci est l’affichage en mode historique du changeset 24. On identifie clairement que les données viennent des changeset 22 et 23 de la “Main”.

Pourquoi tout ceci en 2010 et pas en 2008 ? Parce que le controleur de source a été radicalement modifié au niveau du référencement des éléments. Ce billet donne un aperçu de ces changements et de la nouvelle philosophie qui se cache derière le terme de “slot mode”: http://blogs.msdn.com/mitrik/archive/2009/05/28/changing-to-slot-mode-in-tfs-2010-version-control.aspx.

 

@+

C’est sorti en 1.0 il y a 2 jours. Pour le téléchargement c’est ici: http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=beb29d27-6f0c-494f-b028-1e0e3187e830

Il y a aussi un SDK interactif: http://www.microsoft.com/maps/isdk/silverlight/

image

@+

Ce qui me gênait avec VS 2008 ou 2005 est la visualisation des conflits dans le Source Control Explorer. TFS nous a toujours laissé la possibilité de fusionner les conflits comme on le souhaite (en gardant la version locale, la version serveur, ou une fusion manuelle des deux). Mais si l’on ne réalisait pas l’opération au moment du “get latest”, les conflits étaient difficiles à retrouver, et souvent, on devait les résoudre en simulant un check-in. Dans la prochaine version du Source Control Explorer, un nouvel onglet apparaît: les conflits. Il suffit maintenant de résoudre directement les conflits par ce panneau pour finaliser le check-in.

 

image

J’ai juste un petit regret: il n’est pas possible de voir qu’un fichier est en conflit directement dans l’arbre de source et la liste des fichiers, à la TortoiseSVN.

2 nouveautés bien pratiques de TFS 2010 autour de la gestion des workspaces. Tout d’abord dans la fenêtre de gestion des workspaces:

image

Cette case permet d’afficher les workspaces placés sur d’autres ordinateurs.

Autre nouveauté, la possibilité de partager les workspaces:

image

Il y a maintenant 3 possibilités lors de la création d’un workspace:

  • private: comme on a l’habitude avec VS2005/2008: le workspace est uniquement utilisable par le propriétaire
  • public: le workspace est à tout le monde
  • public (limited): le workspace est à tout le monde mais que le propriétaire a le droit d’archiver à partir de ce workspace.

 

Voyons ce qu’il se passe avec un workspace public mais “limited” vu d’un autre utilisateur. Le workspace apparaît dans la liste, avec le nom du propriétaire:

image

Si j’essaye d’éditer le workspace, tout est en lecture seule:

image

J’aurais pu éditer le workspace si l’utilisateur courant avait la permission “Administer workspaces”.

 

Si j’essaie d’archiver j’obtiens le message suivant:

image 

Il y a beaucoup de possibilités avec ces workspaces comme la possibilité d’avoir un workspace que l’on partage avec un collègue pour travailler en alternance  sur un projet avant d’archiver sans avoir besoin de shelve. C’est, en tout cas une meilleure option que l’archivage comme option de partage de code!!

 

@+

L’une des fonctionnalités les plus attendues de TFS 2010 est la possibilité de gérer des collections de projets. Voici comment cela se présente dans la console de TFS 2010 beta 2:

image

Ceci est la console de TFS 2010 Basic beta 2 que j’ai installé dans une VPC. Chaque collection de projets regroupe l’ensemble des éléments que l’on avait dans un seul serveur en 2008 et 2005. L’intérêt est que l’on peut maintenant sur un seul serveur isoler des collections de projets entre elles et surtout on va pouvoir les migrer sur un autre serveur!

Voici à quoi ressemble une collection dans le serveur de base de donnée. Ici comme c’est une version “Basic”, j’ai pu installer TFS 2010 sur SQL Express:

image

Il y a donc une base de donnée par collection. Contrairement aux version antérieures de TFS où le contrôleur de source, la gestion des work items et des builds par exemples étaient séparées.

Ajoutons une nouvelle collection:

image

image

image 

Et à la fin:

image

Coté Visual Studio on retrouve nos 2 collections ainsi:

image

On ne travaille que sur une collection à la fois. C’est donc notre nouvelle granularité entre le serveur et les projets:

image

On remarque bien la séparation entre les 2 collections. Voici la vue coté base:

image

Chaque collection est bien une base de donnée.

Puisque ce tout est embarqué dans une base de donnée, on peut imaginé beaucoup de scénarii basés sur ce mécanisme. Entre autre:

  • Archivage simplifié
  • Reprise panne du serveur simplifiée aussi: il suffit de reattacher la collection sur un nouveau serveur
  • En tant que consultant en SSII, cela nous arrive de travailler sur un projet pour un client et devoir ensuite livrer les sources. Avec ce mécanisme, on peut livrer l’historique complèt du projet.
  • Isolation: un seul serveur, plusieurs équipes avec chacune sa collection. Tout ce petit monde est isolé des uns des autres.

 

 

@+

image

Je ne l’avais pas vu passé avant aujourd’hui, mais je viens de voir que la RTM de Windows Virtual PC et Windows XP Mode sont disponibles sur MSDN depuis le 7 octobre. Cela tombe bien il y a plein de bonne chose à installer en VPC!

 

image

image

Faîtes chauffer vos modem :)

@+

Michel

Cela ne vous ait jamais arrivé d’être sur un projet qui n’avance pas en vous demandant qu’est ce qu’il fait que rien ne bouge ? En bien, ne cherchez plus, ce qui bloque tout cela, c’est le « Plouf ». Guillaume Duquesnay d’Octo nous présente cet adversaire avec beaucoup d’humour et de justesse et surtout nous donne des armes pour le battre.

La video est ici. Bon visionnage!

@+

Depuis les premières version de TFS, lorsqu’on supprime une build, on supprime également le label associé. Cela peut être génant lorsque l’on veut garder une revenir sur le code d’une build bien après qu’elle ait été supprimée (soit à la main soit parce que les “retention policies” ont fait le nettoyage).

Avec le SP1 de VS 2008 on peut modifier cela de façon globale en ajouter un élément de paramétrage dans le fichier de configuration du tiers applicatif:

<appSettings>

  <add key="PreserveLabelsOnBuildDeletion" value="true" />

</appSettings>

 

Merci au post de Buck qui m’a fait découvrir cela:

http://blogs.msdn.com/buckh/archive/2008/10/20/tfs-2008-sp1-new-setting-to-delete-a-build-without-deleting-the-build-label.aspx

On y apprend aussi que ce comportement sera configurable dans TFS 2010

@+

Plus de Messages Page suivante »


Les 10 derniers blogs postés

- Nouveau système d'aide pour Visual Studio 2010 : pour ceux qui n'apprécient pas trop l'absence d'index... par CoqBlog le il y a 13 heures et 47 minutes

- L'interface naturelle de Windows Phone 7 Series par Perspective le il y a 15 heures et 3 minutes

- Comment mapper une vue SQL sur une collection de complex type? par Matthieu MEZIL le 03-19-2010, 21:05

- SQL Server : Query Notification ou comment être notifié de modifications de données côté application (SqlDependency) par SQL Server vu par Christian Robert le 03-19-2010, 15:06

- [WF4] Un Binding Activity/ActivityDesigner qui passe mal? par Blog de Jérémy Jeanson le 03-19-2010, 13:42

- MyTIC – SharePoint 2010 : déjà un mythe Microsoft ? par Le Blog (Vert) d'Arnaud JUND le 03-19-2010, 08:54

- TechDays 2010 Genève : Retrouvez-moi pour une session sur la Haute disponibilité et le ScaleOut avec SQL Server par SQL Server vu par Christian Robert le 03-18-2010, 15:45

- [MIX10] Keynote deuxième journée – Internet Explorer 9, Html5, Visual Studio 2010, OData par Atteint de JavaScriptite Aiguë [Cyril Durand] le 03-17-2010, 19:40

- Certifications beta .NET 4 par Kévin Gosse le 03-17-2010, 19:33

- [Mix 2010] – Microsoft Translator Technology Preview V2 par RedoBlog - The .NET Gentleman !!! le 03-17-2010, 18:53