Archives mensuelles : août 2009

image

Mot-clé sizeof et mode unsafe

En C# si l’on souhaite utiliser le mot clé sizeof, la documentation précise qu’il
est nécessaire d’utiliser le mode unsafe
grâce au mot-clé du même nom.

En effet, si l’on souhaite par exemple récupérer la taille d’une struct à l’aide de
ce mot-clé et non via l’utilisation de la classe Marshal il vous faudra écrire :

public struct MyStruct
{
    public int A;
    public int B;
}

class Program
{
    unsafe static void Main(string[] args)
    {
        int s = sizeof (MyStruct);
        Console.WriteLine(s.ToString());
    }
}

Mais bizarrement, si vous souhaitez faire un sizeof du type int, vous n’aurez pas
besoin d’utiliser de code unsafe et R# indique
même que le mot-clé unsafe devrait être supprimé car redondant :

image

Mais comment ce contexte peut-il être redondant puisque nous n’avons utilisé le mot
clé unsafe qu’une seule fois, et qu’il ne l’était pas dans l’exemple précédent ? La
réponse est simple mais si elle n’est pas évidente au premier abord : il n’est plus
nécessaire depuis C# 2 de spécifier un contexte unsafe lors de l’utilisation de l’opérateur
sizeof sur les types .net prédéfinis.

On peut d’ailleurs voir la différence de comportement du compilateur dans les deux
cas évoqués puisque lors de l’utilisation de l’opérateur sizeof sur le type int, le
compilo inline directement le résultat :

private static void Main(string[] args)
{
    Console.WriteLine(4.ToString());
}

Tandis que lors de l’utilisation avec un type personnalisé, la valeur ne sera pas
inlinée, et le code généré fera appel à l’instruction sizeof présente dans l’Intermediate
Language :

private static void Main(string[] args)
{
    Console.WriteLine(sizeof(MyStruct).ToString());
}

Pour plus d’infos :

http://blogs.msdn.com/abhinaba/archive/2006/02/24/538525.aspx

image

Améliorer la gamme Microsoft Office

Deux employés de Microsoft viennent de lancer
un site
proposant aux utilisateurs des outils bureautiques de la gamme Office
de donner leurs idées sur les fonctionnalités manquantes ou corrections nécessaires
pour améliorer ces logiciels.

L’idée est intéressante, mais n’est pas nouvelle. En effet, les testeurs des différentes
versions d’Office (versions pré-beta) disposent déjà d’un outil donnant la possibilité
de remonter ses feedbacks grâce à l’outil Send a Smile (ou Frown) :

image

Cet outil permet d’indiquer les + et les – des différents outils de la gamme Office.
Microsoft utilise ces informations au travers d’un portail qui leur donne accès
tous les feedbacks envoyés par les différents testeurs. Vous pouvez en savoir plus
sur le process utilisé ici : http://blogs.technet.com/office2010/archive/2009/07/15/tell-us-what-you-think-about-office-2010-technical-preview.aspx

En ce qui concerne cette nouvelle initiative, il est à noter qu’elle permet donc d’ouvrir
la possibilité à tout un chacun de donner ses propres retours afin d’aider Microsoft
à prioriser les différentes fonctionnalités à implémenter. Cette priorisation est
essentielle car elle permet à l’éditeur de sélectionner les tâches à réaliser en fonction
du budget et délais alloués au projet.

L’arrivée de ce nouveau site web est donc un plus mais il lui manque à mon sens une
donnée essentielle : il n’est pas possible d’indiquer l’importance, la criticité de
l’idée soumise. Il est ainsi possible de voter pour n’importe quelle idée (apparemment
aucune limitation au niveau du nombre de votes par utilisateur), mais pas de donner
un poids pour chaque idée. Il serait préférable de disposer d’un certain nombre de
votes (par exemple 10) et de laisser libre choix à l’utilisateur d’allouer le nombre
de votes qu’il souhaite à chaque idée. Ainsi sur l’idée “Detach
Outlook UI from the network thread(s)
” j’aurais pu positionner 8 votes sur les
10 alloués. Le système proposé par le service UserVoice repose d’ailleurs sur ce principe.
Vous pouvez le tester via le mécanisme de feedback mis en place pour bDule : http://feedback.sobees.com/pages/17279

Quoiqu’il en soit, ce site permet d’avoir des informations sur l’utilisation des différents
outils de la gamme Office. Ainsi Outlook est le logiciel qui a suscité le plus de
réaction et quand à Access, il s’agit de celui qui en a suscité le moins avec une
seule et unique idée proposée… pour le moment.

En savoir plus :

http://makeofficebetter.com/

http://blogs.technet.com/office2010/archive/2009/07/15/tell-us-what-you-think-about-office-2010-technical-preview.aspx

News de la semaine #1

Sortie de la RTM de Windows 7 pour les abonnés MSDN et Technet. Coté développeurs, le
training kit a été mis à jour
et le
Windows API Code Pack for .net
a été finalisé en version 1.0. Scott
Hanselman
a d’ailleurs fait un
excellent post sur les 10 éléments à savoir sur Windows 7
.

Novell a ouvert une beta privée de MonoTouch. MonoTouch est
une API managée qui permet de développer des applications iPhone. Oui, développer
pour iPhone en C# sera bientôt possible et disponible pour tous. Vous pouvez d’ailleurs
visionner comment l’ensemble fonctionne grâce
à cette vidéo
.

Coté évènements, les inscriptions à la PDC09 ont
été ouvertes
. Cet évènement majeur traitera majoritairement de Windows Azure,
Windows 7, Visual Studio 10 et le framework .net 4.0, etc. De nombreuses nouveautés
devraient donc être présentées à l’occasion de cette conférence qui aura lieu mi-novembre
à Los Angeles.

Du coté de  la presse, Microsoft Press a
annoncé
que Jeffrey Richter allait sortir une version mise à jour de son ouvrage
CLR via C# afin d’étudier les nouveautés proposées par .net 4.0. A noter qu’il
devrait être disponible
lors de la sortie du framework .net 4.0 et de Visual Studio
2010.

Du coté des posts techniques, je vous recommande l’excellent
compte rendu
de Romain Verdier (@romainverdier)
à propos de la session
ALT.net #16
. Cette rencontre traitait de l’utilisation du debuggeur windbg afin
de résoudre des problèmes de fuite mémoire, de deadlocks et autre freezes. A noter
l’annonce d’un projet fort intéressant : LinqToWindbg.

Autre lecture technique intéressante Tout
ne dérive pas d’Object
d’Eric Lippert.

A la semaine prochaine !

Process msiexec.exe qui tourne en permanence depuis l’installation de Visual Studio 2010 sur Windows 7 RC

Si vous avez installé la beta 1 de Visual Studio 2010 sur un Windows 7 RC, il est
possible que vous ayez deux process msiexec.exe qui tourne en permanence. Le problème
est que ces deux process peuvent prendre aléatoirement pas mal de CPU sur votre machine,
et surtout empêchent l’exécution de MSI qui vérifient si un autre programme d’installation
est en cours d’exécution.

Bien sûr il est inutile d’essayer de killer ces process via le gestionnaire des tâches
car ceux-ci ressusciteront très rapidement en causant toujours les mêmes désagréments.

Le problème est que le setup essaie de trouver une ressource dans le dossier C:Program
Files (x86)Microsoft Visual Studio 9.0Common7IDEPublicAssembliesen. Dossier
qu’il ne trouve pas.

Afin de résoudre le problème il vous faut donc :

  • Créer un dossier nommé “en” dans le dossier C:Program FilesMicrosoft
    Visual Studio 9.0Common7IDEPublicAssemblies
  • Copier le contenu du dossier PublicAssemblies dans ce dossier
    en
  • A présent quand vous killerer msiexec.exe, il ne reviendra plus
    dans tâches !

En savoir plus :

Explication
du bug et Workaround sur Connect

image

PostItCast #1 : Hosting de CLR Side by Side dans un même process (In Proc SxS)

Comme annoncé hier, je
vous propose un webcast décrivant l’hébergement de différentes versions de CLR au
sein d’un même process grâce au framework .net 4 et la CLR 4. Le programme est simple
: Aucun slide, 1 PostIt édité tout au long de la vidéo, et des démos.

Synthèse de la vidéo :

image

Vidéo :

 

Vous pouvez également le télécharger ici  :

N’hésitez pas à me faire vos retours sur ce webcast via les commentaires !

En savoir plus :

http://channel9.msdn.com/shows/Going+Deep/CLR-4-Side-by-Side-In-Process-What-How-Why/

http://blogs.msdn.com/clrteam/archive/2009/06/03/in-process-side-by-side-part1.aspx

http://blogs.msdn.com/clrteam/archive/2009/06/07/in-process-side-by-side-part-2-common-in-proc-sxs-scenarios.aspx

image

Faire en sorte que le site MSDN ressemble à quelque chose

Le site MSDN de Microsoft indispensable à tous les développeurs est par défaut avec
une mise en page qui donne beaucoup trop d’importance à des éléments annexes aux articles
proposés (arborescence de navigation très large, bandeau rouge trop important, etc.)
Du coup la zone de lecture s’en trouve très diminuée :

image

Sachez qu’il est possible d’avoir une mise en page beaucoup plus lisible et “propre”
en sélectionnant l’option “Switch on low bandwith view” présente en haut de chaque
page. On se retrouve avec cette mise en page qui est beaucoup plus agréable à la lecture
:

image

Les outils pour développer pour Windows Azure

Les équipes de Microsoft ont mis à jour début Juillet les outils disponibles afin
de développer pour Windows Azure. A noter que ceux-ci sont à présent compatible avec
Windows 7, et s’intègrent correctement avec Visual Studio 2010 Beta 1. Voici la liste
des éléments indispensables pour se lancer dans le développement d’applications dans
le cloud :

A noter que suite à la suspension
de Microsoft .net Workflow Service
jusqu’à la finalisation de Worflow Foundation
4.0, les Azure Services Managements Tools auparavant disponible sur Code
Gallery
, sont pour le moment “dépréciés” et donc non disponibles.

En savoir plus :

http://www.microsoft.com/azure/windowsazurefordevelopers/default.aspx

image

[Pub] La famille Bewise s’agrandit !

Bewise s’agrandit puisque après le site de Toulouse
dédié à l’expertise sur les technologies de développement Microsoft, après le site Bewise
Sud-Est
situé à Aix en Provence et Vertice société
éditrice du logiciel 3D temps réél NovaVertice
Design
voit le jour !

image

Vertice Design est un studio de création graphique
spécialisé dans le design d’applications web (HTML, Flash et bien sûr Silverlight)
et dans l’ergonomie. En plus de la réalisation d’interfaces, Vertice
Design
propose tout un
ensemble de formations
afin de vous accompagner dans votre montée en compétence
sur les outils de la gamme Microsoft Expression, Dreamweaver CS4, Flash, Photoshop,
Illustrator, etc.

N’hésitez pas à vous rendre sur le site web dédié afin d’avoir plus d’informations
: http://verticedesign.com

Le RSS devient “temps-réel”

La news est quasiment passé inaperçue et pourtant elle est d’importance. Les flux
RSS ont à présent la possibilité d’être temps réel grâce à PubSubHubbub. PubSubHubbub
permet de changer le mode de consommation des feeds RSS d’un mode Pull (le client
consomme à intervalles réguliers le feed afin de savoir si de nouveaux éléments ont
été publiés) à un mode Push (les clients sont notifiés dès qu’un nouvel élément est
publié). Certains moteurs de blog permettent déjà de pinger différents services tels
que FeedBurner afin d’indiquer la modification d’un feed. Dans le cas de FeedBurner
ce mécanisme de Ping permet de re-générer le feed hébergé par le service instantanément
sans attendre la fin du cache de 30 minutes habituellement utilisé. Ce système est
déjà très bien mais il permet uniquement d’avertir certains services et non des clients
RSS.

image

Des développeurs de Google sont allés un peu plus loin et proposent un nouveau protocole
nommé PubSubHubbub. Ce protocole permet de notifier des clients RSS dès qu’un feed
a été modifié. Il est alors possible de rafraichir automatiquement l’interface afin
de proposer à l’utilisateur les billets qui viennent d’être publiés.

Les readers web vont d’ici peu implémenter PubSubHubbub afin de fournir cette expérience
temps-réel. Un prototype de Google Reader a déjà été développé, et FriendFeed implémente
déjà cette fonctionnalité. Je vous invite à regarder cette vidéo afin de bien comprendre
le potentiel de ce protocole.

>>>

Pour les détails techniques d’implémentation, les slides suivants expliquent de manière
détaillée comment fonctionne le protocole ainsi que les différents éléments à mettre
en œuvre afin de faire fonctionner l’ensemble.

La bonne nouvelle est que FeedBurner permet d’ores et déjà de rendre vos feeds compatibles
avec cette nouvelle technologie. Il vous suffit d’aller dans les paramètres de votre
feed et d’activer le service PingShot afin de bénéficier du protocole.

image

A noter que cette technologie n’est pas propriétaire à Google, elle est proposée en
open source sur Google Code.

Voilà une excellente nouvelle qui va permettre aux flux RSS d’avoir le même
niveau de réactivité que les tweets publiés via le service Twitter.

En savoir plus :

http://code.google.com/p/pubsubhubbub/

http://adsenseforfeeds.blogspot.com/2009/07/whats-all-hubbub-about-pubsubhubbub.html