Bienvenue à Blogs CodeS-SourceS Identification | Inscription | Aide

Thomas Lebrun

Tout sur WPF, LINQ, C# et .NET en général !

Actualités

[.NET] Tour d'horizon d'Orcas, le prochain Visual Studio

Ayant téléchargé la dernière CTP (Community Technology Preview) du prochain Visual Studio (nom de code: Orcas), je me suis dit qu'il serait intéressant d'en faire un petit tour d'horizon, afin de voir ce que nous réserve notre futur environnement de travail préféré Wink

Certes, Scott Guthrie nous a déjà présenté certaines fonctionnalités de cette nouvelle version, mais je trouvais son post trop orienté "développement Web": je vais donc tâcher d'être un peu plus généraliste Smile 

 

Au niveau de l'interface graphique elle-même, on remarque quelques évolutions. En effet, les menus ont des bords arrondis:

De plus, le Ctrl + Tab a également subit un petit relooking plutôt sympathique:

Et comme les choses sont très bien faîtes, ces "previews" sont en live donc la moindre modification dans un fichier de code ou autre sera répercutée dans la preview.

Attention à bien prendre en garde que la page des propriétés peut ne pas être fonctionnelle dans votre IDE. En effet, vous pourriez être confronté à ce message d'erreur:

Si tel est le cas, sachez (pour faire court) que le problème vient du fait de l'installation conjointe de SQL Server et de la CTP de Visual Studio sur la même machine. Pour en savoir plus sur cette erreur, rendez-vous ici.

Bon, ca c'était pour la partie "fun": on va maintenant passer aux choses sérieuses Wink

 

Une chose intéressante que l'on remarque à la création d'un nouveau projet: la possibilité de choisir directement la version du Framework .NET avec laquelle on veut travailler (2.0, 3.0, 3.5). Bien entendu, suivant la version sélectionnée, certains types de projets disparaissent de la fenêtre de sélection:

Autre point que l'on peut apercevoir: la liste des types de projets disponibles est vraiment impressionnante (même si l'on si attend). En effet, tout ce qui existe aujourd'hui sous forme d'extensions (WPF-WCF, WF, VSTO 2005 SE) est directement intégré : plus besoin de télécharger des packages supplémentaires Smile

Si l'on prévoit de déployer son application sur Windows Vista, il peut-être intéressant d'utiliser un fichier manifest qui sera utilisé par l'application pour demander les droits nécessaires au système d'exploitation. Avec Visual Studio, il fallait faire cette manipulation à la main (rajouter un fichier, changer l'extension, etc...). Avec cette nouvelle version, le processus est automatisé. En effet, dans la boite de dialogue d'ajout d'un nouvel élément, vous avez:

Le principe est le même que celui des fichier de configuration (le nom du fichier apparait, dans l'explorateur de solutions, comme étant app.manifest) cependant, à la compilation, le fichier est inclut dans votre exécutable: le processus est donc invisible pour vous. Bien sur, pour que vous ne soyez pas perdu, lors de l'ajout de ce fichier à la solution, il est déjà pré-remplit et il ne vous reste plus qu'à mettre en commentaires/décommenter le type de permissions adéquat pour votre application:

 

 

Au niveau des projets pour Office 2007, on appréciera l'arrivée des projets permettant de créer des addins pour un document Word ou Excel uniquement:

En effet, avec les VSTO 2005 SE (Visual Studio 2005 Tools for Office Second Edition), il n'est possible de réaliser que des addins fonctionnant au niveau de l'application Office. Si l'on veut un addin actif uniquement sur un document Word ou un classeur Excel, il faut passer par les VSTO v3, disponibles avec Orcas.

Office 2007 n'étant pas inclut dans la VPC, j'ai décidé de l'installer afin de voir ce que cela pouvait donner. Et bien je dois admettre que je ne suis pas déçu !

En effet dès que la création du projet est terminée, on se retrouve, comme avec les VSTO 2005, avec l'application Office incorporée dans Visual Studio: très pratique pour le glisser/déposer ou l'utilisation des assistants de Visual Studio Wink

Bien sur, la boite à outils comprend tous les contrôles .NET utilisables au sein de notre document Word mais elle met également à disposition tout les "Content Controls", ces nouveaux contrôles apparus avec Word 2007 et qui permettent, par un simple glisser/déposer depuis le Ruban, de rajouter des ComboBox, des Calendriers, etc.. (très pratique pour faciliter la création de certains document Wink)

Si l'on regarde la fenêtre d'ajout de nouvel éléments, là encore on est agréablement surpris:

En effet, avec Orcas, il est possible d'utiliser un designer visuel pour rajouter des CustomTaskPanes et pour modifier le ruban !

Certes, pour le moment, il n'est possible de rajouter que des tab, des group et des boutons dans le ruban mais il faut admettre que cela s'avère très prometteur. De plus, pour ces éléments que l'on rajoute, on peut utiliser l'éditeur de propriétés : plus besoin de modifier le fichier XML à la main Smile

 

Au niveau de la partie WPF (Windows Presentation Foundation), on remarque là encore des nouveautés/améliorations. Tout d'abord Cider, le designer WPF intégré à Visual Studio, est beaucoup plus rapide et beaucoup plus stable que dans les extensions utilisables avec Visual Studio 2005.

Ensuite, on remarque que la fenêtre de propriétés a également subit un relooking: en effet, elle partage maintenant la même apparence que le fenêtre de propriétés que l'on peut retrouver dans Expression Blend:

L'Intellisense XAML a également été améliorée (on distingue maintenant les évènements des propriétés) et la répercution, dans Cider, des modifications apportées au code XAML est immédiate:

Toutes les opérations basiques de positionnement de contrôles peuvent donc être maintenant faîtes au travers de cet éditeur. En ce qui concerne les contrôles disponibles, il ne semble pas y en avoir de nouveau: il faudra donc attendre une possible V2 de WPF pour espérer avoir un peu de neuf Wink

 

Attardons nous maintenant sur les nouvelles fonctionnalités offertes à C# 3 et Linq par cette CTP d'Orcas.

Première constatation: l'Intellisence de C# 3 est un vrai régal ! En effet, avec la CTP de Mai 2006, on pouvait se tromper dans la syntaxe de certains mot clé, on pouvait ne pas connaitre la syntaxe à employer pour certaines opérations, ec... Là, cette aide précieuse joue très bien son rôle et évite bien des erreurs. var, select, orderby, where, ascending, descending, etc... n'auront plus de secret pour vous:

Autre constation: les méthodes d'extension sont plus facilement identifiables grâce à cette Intellisense (et l'aide contextuelle): une nouvelle icône apprait et vous permet de savoir si une méthode est une méthode d'extension ou une méthode "classique":

Enfin, les propriétés automatiques (Automatic Properties) sont une des nouveautés introduites en C# 3:

 

L'avantage de cette "technique" est qu'elle nous évite de déclarer des champs privés pour déclarer notre propriété. L'inconvénient, cependant, est que l'on est obligé de déclarer à la fois le get et le set: donc n'escomptez pas utiliser cette technique pour déclarer des propriétés en lecture ou écriture uniquement.

 

En ce qui concerne Linq To SQL, il est maintenant possible d'ajouter, via l'assitant d'ajout d'n nouvel élément, un "Linq To SQL File" (fichier portant l'extension dbml):

Si vous avez utilisé la CTP de Mai 2006 de Linq, alors sachez que ce "Linq To SQL File" n'est rien d'autre que l'équivalent du "DLinqObject" (fichier portant l'extension dlinq) que l'on pouvait ajouter avec cette précédente version.

En effet, ces 2 éléments vous servent à créer un object de type DataContext que vous allez utiliser pour interroger votre base de données:

Comment cela fonctionne-t-il ? Et bien tout simplement au moyen d'un designer sur lequel vous allez pouvoir glisser/déposer les tables de votre base de données:

Une fois que cela est fait, il ne vous reste plus qu'à utiliser votre DataContext, et le tour est joué Smile Même s'il ne s'agit pas du but de cet article, je ne peux m'empêcher de vous faire une démonstration, afin de vous faire prendre conscience de la puissance de  la chose.

Ainsi, le code suivant est utilisé pour lister (prénom, nom et titre) tous les employés masculin, nés après le 01/01/1980 (vous remarquerez au passage l'utilisation des types anonymes pour sélectionner les champs que l'on souhaite):

Il s'agit en fait d'une simple jointure entre la table Employees et la table Contacts, sur le champ ContactID. Le résultat parle de lui-même:

Plutôt pratique et efficace vous ne trouvez pas ? Smile

 

Pour pouvoir travailler avec Linq to XML (et donc avoir accès aux XDocument, XElement, etc...), vous serez obliger de rajouter une référence à la main. La référence à ajouter se trouve dans le répertoire "C:\WINDOWS\Microsoft.NET\Framework\v3.5.20209\" et se nomme "System.Xml.Linq.dll":

Hormis cela, l'utilisation de Linq To XML reste la même que dans la CTP de Mai:

Je n'ai pas étudié toutes les possibilités offertes mais l'ajout de méthodes d'extensions permettant d'utiliser XPath et XSLT sur des arbres Linq To XML semblent vraiment intéressants....

 

En ce qui concerne l'ADO.NET Entity Framework, il faut admettre que cela s'avère également pas mal. Pour situer ce qu'est ce Framework d'entités, dîtes-vous simplement qu'il s'agit d'un projet de mapping-objet relationnel "made by Microsoft". Personnellement, même si je comprend le principe de MOR, j'ai dû mal à saisir la différence entre Linq To SQL et l'ADO.NET Entity Framework: il va falloir que j'étudie un peu plus la question. En attendant, j'ai un pu joué avec ce framework et cela semble prometteur.

En effet, après avoir sélectionné l'ajout d'un nouvel élément de type "ADO .NET Entity Data Model", le wizard nous demande quelle connexion à la base de données utiliser. Une fois le choix fait, la liste des tables apparait, proposant à l'utilisateur de sélectionner la liste des tables qu'il veut voir apparaitre dans son modèle:

Une fois que cela est fait, on se retrouve avec un véritable outil de MOR: chaque table de la base de données est représentée par une classe, chaque champ d'une table correspond à une propriété, etc....:

Il est vrai que l'outil est encore jeune (je n'ai en effet pas trouvé comment ajouter nouveaux enregistrements dans la base en passant par ce framework, etc...) et certaines fonctionnalités ne sont pas encore implementées (comme le montrer cette image) mais pour le moment, on apprécie le travail Smile

 

En ce qui concerne la partie Web, l'un des points les plus intéressants de cette nouvelle CTP est sans doute l'apparition de l'Intellisense pour le Javascript:

Si vous voulez en savoir plus sur les nouveautés liées à ASP.NET dans la CTP de Mars d'Orcas, alors jettez un oeil à ce post de présentation de Scott Guthrie où il explique tout !

 

Au niveau de la partie Team Foundation Server (cela devrait faire plaisir à Azra et à Daniel Wink ), il y a là aussi des petites nouveautés. Je ne vais pas toutes les énumérer mais je vais juste vous parler des 2 nouveautés qui me semblent importantes: le "Annotate" et le "Folder Diff".

Annotate est une nouvelle fonctionnalité qui va vous permettre, depuis votre client Team Explorer et votre Visual Studio, d'annoter les modifications que vous faîtes aux fichiers, afin que cela soient plus simple de voir ce qui a été modifié/ajouté/etc...

Pour finir, le Folder Diff est tout simplement un outil qui va vous permettre de comparer le contenu de 2 répertoires: assez sympathique surtout lorsque l'on sait qu'il n'y était pas (à ma connaissance) dans la précédente version...

 

 

En conclusions, nous pouvons donc dire (mais après tout, ce n'est que mon avis) que les outils (aussi bien IDE, langage, etc..) qui seront disponibles avec Orcas (et sans doute avec les prochaines versions) ont pour objectifs d'améliorer la productivité des développeurs, de leur permettre de développer mieux et plus vite !

Ce petit tour d'horizon d'Orcas et de ses possibilités est maintenant terminé. Il est clair que nous n'avons pas eu le temps de tout voir tant les possibilités offertes sont immenses mais j'espère au moins que cela vous aura donné envie d'essayer par vous-même Smile

 

J'espère que cela vous aura plût: si vous avez des avis/commentaires/critiques, n'hésitez pas à les poster !

 

Merci !

 

Technorati tags:
 
del.icio.us tags:
Ce post vous a plu ? Ajoutez le dans vos favoris pour ne pas perdre de temps à le retrouver le jour où vous en aurez besoin :
Posted: mardi 6 mars 2007 10:48 par Thomas LEBRUN
Classé sous : , , ,

Commentaires

richardc a dit :

cool, merci pour ce tour d'horizon (pas le temps de me pencher sur Orcas pour l'instant !)

# mars 6, 2007 10:59

minsou a dit :

Comme richard je n'ai également pas trop le temps en ce moment d'étudier Orcas ... ;-) Mais cet article est un excellent résumé !

# mars 6, 2007 12:09

zogstrip a dit :

Merci tom pour ce rapide tour d'horizon !

Franchement, ça promet :)

# mars 6, 2007 15:55

azra a dit :

Merci pour le tour :)

A noter que si vous voulez le annotate et le diff dans votre Visual Studio 2005, il suffit d'installer les powertools.

# mars 6, 2007 16:29

orion a dit :

très sympa cet article !

# mars 6, 2007 21:48

daniel a dit :

Merci pour ce beau retour.

Personnellement j'attend de TFS d'Orcas ses nouvelles fonctionnalités d'intégration continue, que cette CTP nous fait découvrir :)

# mars 6, 2007 22:41

The_badger_man a dit :

Très bien tout ça

Tu nous fais un petit article pour dvp :)

# mars 6, 2007 23:55

Thomas LEBRUN a dit :

Content de voir que cela vous plais :)

@The_badger_man: Non, j'en doute (tout du moins pour le moment... ;)

# mars 7, 2007 09:04
Les commentaires anonymes sont désactivés

Les 10 derniers blogs postés

- [TFS] Supprimer un projet de Visual Studio Online par Blog de Jérémy Jeanson le il y a 23 heures et 26 minutes

- Nouveau blog en anglais / New blog in english ! par Le blog de Patrick [MVP SharePoint] le 09-18-2014, 18:42

- [ #Yammer ] From Mailbox to Yammer and back / De votre messagerie vers Yammer et retour ! par Le blog de Patrick [MVP SharePoint] le 09-15-2014, 11:31

- [ #Office 365 ] New service settings panel / Nouveau panneau de paramétrage des services par Le blog de Patrick [MVP SharePoint] le 09-11-2014, 08:50

- Problème de déploiement pour une démo SharePoint/TFS? par Blog de Jérémy Jeanson le 09-10-2014, 21:52

- [ #Office365 ] Delve first impressions / Premières impressions sur Delve par Le blog de Patrick [MVP SharePoint] le 09-09-2014, 16:57

- [ #Office365 ] How to change Administration console language ? / Comment changer la langue de la console d’administration ? par Le blog de Patrick [MVP SharePoint] le 09-09-2014, 08:25

- [ #SharePoint 2013 ] Suppression de bases de données en état “Pas de Réponse” par Le blog de Patrick [MVP SharePoint] le 09-04-2014, 14:10

- Changer l’adresse d’une ferme Office Web Apps associée à SharePoint par Blog de Jérémy Jeanson le 09-01-2014, 22:21

- Une ferme #SharePoint 2013 dans @Azure en quelques clics (1ère partie) ! par Le blog de Patrick [MVP SharePoint] le 08-28-2014, 18:52