Fabrice's weblog

Tools and Source

News


Read sample chapters or buy LINQ in Action now!
Our LINQ book is also available on AMAZON

.NET jobs

Emplois .NET

The views expressed on this weblog are mine alone and do not necessarily reflect the views of my employer. The content of this weblog is independent from Microsoft or any other company. transatlantys hot news

Contact

Me

Others

Selected content

May 2004 - Posts

The role of the Software Architect

My latest article is now available in English on DotNetGuru: "The role of the Software Architect"

The Software Architect function is not well defined, and we have to admit that it is difficult to give a precise definition of the term. This short article tries to determine the identity of these strange characters by presenting the tasks they are assigned and the required qualities to fulfill them.

A short read about software architects in small teams.

Update: You can find software architect profiles and jobs on proagora.com


Version originale en français

MAJ: Vous pouvez trouver des emplois et des profils d'architectes logiciels sur proagora.com

Visual Studio 2005 Team System

In the next few days, we should probably look for this word: Burton.
What are we to expect?  Hints have been around on the web...

Apparently with Teched started, the topic is official.
You can already learn more on the web. Brian Malcom was the first. He is developer on the Burton Testing Tools team.

Last minute update: Kent Sharkey was second and links to the Visual Studio 2005 Team System page.

.NET 2.0 (beta) release schedule

We know that .NET 2.0 and Visual Studio 2005 (Whidbey) Beta 1 is announced for June, but which day precisely? It will probably be released at Teched Europe, which is held between June 29 and July 2.

What about Beta 2 and consequentely the "Go Live" license? What event is there at the end of the year that could match the release date? Apparently it isn't the PDC as it seems there won't be a PDC this year. It seems the PDC will be held in 2005 and then could match the final release, which is due for the first half of 2005.
But then, when is Beta 2 to arrive? Has someone around here some insight?

I'm not even interested to know the release date for the final version. To me the most important is the Beta 2 and the ability to deploy applications.

Posted: May 21 2004, 04:41 PM by Fabrice Marguerie | with 1 comment(s)
Filed under:
Avoiding problems with relative and absolute URLs in ASP.NET

I'm back to ASP.NET development, and the first thing that hits me in the face is the limitations with URL handling in ASP.NET.

I have an ASP.NET application which pages contain images. The images are represented using HTML's IMG tags. This is a common situation, I guess :-) The problem is simple: how should I express the URLs of my images?

I can think of five options:

  • use relative paths.
    Problems: If you move your files around, you'll need to change every path. If you use this in a User Control, the path will be relative to the page using the control, not to where the control file is.
  • use absolute paths.
    Exemple: <img src="http://weblogs.asp.net/Images/imgxx.png" />
    Problem: This requires a specific web site for each application. Apart from being an additional difficulty for deployment and administration, this isn't possible on Windows XP, which allows only one IIS web site.
  • use a specific alias for the images.
    Exemple: one alias named MyApp for the application, one alias named MyAppImages for the images, and images referring to /MyAppImages/imgxx.png.
    Problem: multiplicating aliases can be a problem and add to the complexity of the application.
  • use ~ and runat="server" everywhere.
    The tilde (~) character represents the root directory of the application in ASP.NET.
    Exemple: <img runat="server" src="~/Images/imgxx.png" />.
    Problem: Performance is hurt because your image tags are converted to server controls when the page needs to be generated, while there isn't really a need for this.
  • switch to Image web controls and use ~.
    Problem: same as above, plus the fact that it makes converting from HTML pages to ASPX pages more difficult.

The solution I will probably choose is a sixth option: use <%=Request.ApplicationPath%> to prefix the URLs. Exemple: <img src="<%=Request.ApplicationPath%>/Images/imgxx.png" />

Which way do you go? Do you have a better solution?

Microsoft Research Academic Days 2004 in France

A post in French for a change. This is about Microsoft Research Academic Days 2004 in France.
You can check whether such an event is organized close to you (past or present).


J'ai assisté le 20 avril 2004 à une journée proposée dans le cadre des Forums Architectes par Microsoft France. L'intitulé était "Systèmes et
applications distribués: Challenges, Perspectives".
Cette journée était intégrée aux Journées Académiques Microsoft Research 2004. Les journées académiques s'adressent en priorité aux enseignants, doctorants, chercheurs et ingénieurs de l'enseignement supérieur et de la recherche, en France et dans les pays francophones. Ces journées se sont déroulées au sympathique Domaine des Fontaines à Chantilly.

Cette journée fut l'occasion de découvrir le futur de l'offre Microsoft en terme de développement et de système d'exploitation. Au programme, des sujets tels que Indigo, C# 2, Whidbey, SQLXML, ObjectSpaces, WinFS, WhiteHorse, Domain Specific Modelling.

Indigo
Indigo est la brique Communication de Windows Longhorn. Elle introduira une orientation SOA directement intégrée à Windows et au framework .NET.
L'objectif est d'offrir un modèle de programmation unifié autour des services webs, du remoting .NET et du message queuing. Avec Indigo, les applications communiquent à travers un bus de messages.
A noter qu'une version pour Windows Server 2003 sera disponible avant la sortie de Windows Longhorn. Cependant, Microsoft ne s'engageant pas à sortir une version pour un client Windows (éventualité envisagée), l'intérêt reste réduit avec seulement le support pour les serveur 2003. Indigo reste du futur lointain puisque Longhorn n'est pas prévu avant 2006...

C# 2
En plus d'être un expert en langages de programmations, Erik Meijer est un bon présentateur : il doit bien être le seul à mimer un débugueur et des coroutines ! Il a repris la présentation d'Anders Heljsberg (le papa de C#) pour nous introduire les classes et méthodes génériques, les méthodes anonymes, et les itérateurs.
Des nouveautés alléchantes, mais là encore il faut être patient puisque .NET 2 n'est pas prévu avant le premier semestre 2005. Une beta est toutefois prévue pour juin 2004, et une alpha est disponible.

SQLXML et ObjectSpaces
La troisième session avait pour objectif de présenter SQLXML et ObjectSpaces.
SQLXML est une extension de SQL Server qui permet d'insérer ou d'extraire au format XML des données d'une base de données relationnelle SQL Server. SQLXML est disponible en version 3.0 SP2. Nous avons eu droit à un aperçu des évolutions de la future version livrée avec SQL Server 2005 (Yukon).
ObjectSpaces est la solution de mapping objet-relationnel de Microsoft pour SQL Server. Un tel outil permet présenter un modèle de programmation objet sur une base de donnée relationnelle. La sortie d'ObjectSpaces est prévue pour 2005.

Domain Specific Languages
Stuart Kent travaille dans l'équipe de Keith Short sur les développements basés sur les modèles. Les premiers outils issus de leur travail seront intégrés à Visual Studio 2005. Leur nom de code est Whitehorse. Ces outils permettront de modéliser les applications à l'aide de diagrammes. Un diagramme sera proche du diagramme de classes d'UML et sera synchronisé avec le code C# ou VB.NET. Les autres diagrammes représenteront l'intégration d'une application au sein d'un système d'information, ainsi que les contraintes de déploiement.
La présentation avait pour sujet les langages spécifiques à un domaine. Un langage spécifique à un domaine permet de représenter plus simplement et plus efficacement des besoins fonctionnels ou un métier qu'un langage généraliste comme C# ou Java. Ces langages sont à inventer pour chaque domaine fonctionnel, et ils peuvent prendre des formes picturales aussi bien que textuelles. De tels langages ont été créés par Nokia pour représenter la facturation téléphonique, ou dans le domaine médical, par exemple.
Un des objectif à long terme de Microsoft est de simplifier la création de tels langages.

Le pouvoir unificateur des modèles
Jean Bézivin, professeur à l'université de Nantes, nous a livré un cours magistral, dense, mais néanmoins intéressant sur la modélisation, la MDA (architecture dirigée par la modélisation), et les concepts de modèle et meta-modèle.

WinFS
Cette présentation nous a permis d'avoir un aperçu des évolutions à prévoir pour Longhorn concernant l'archivage et l'accès aux documents. Nous avons ainsi pu voir la nouvelle interface homme-machine destinée à remplacer le gestionnaire de fichiers de Windows et la notion de dossiers. Pour faire simple, il ne faudra plus considérer un fichier comme étant classé dans un dossier, mais comme possédant un ensemble de "propriétés" ou "attributs" qui permettront de le retrouver par filtrage, tri, ou regroupements.
WinFS sera disponible pour toutes les applications au travers d'une API intégrée à WinFX, le framework de développement livré avec Longhorn.


Au final, ce fut une journée riche en informations et passionante grâce à l'enthousiasme des présentateurs.

Vous pouvez également lire le compte rendu de l'ensemble de ces journées rédigé par Patrice Lamarche.

Update: les présentations Powerpoint sont disponibles.

Posted: May 04 2004, 06:41 PM by Fabrice Marguerie | with 1 comment(s)
Filed under:
More Posts