16.05.08

de Ado.Net Entities Framework Beta3 à Visual Studio 2008 SP1: comment s'en sortir

pour ceux (comme moi) qui adorent essuyer les plâtres ou qui sont tellement avides de faire tenir ses promesses à Ado.Net Entities, un petit avertissement s'impose avant de se jeter dans l'adoption du SP1 beta de VS2008 (et ce sera surement valable pour sa version définitive):

si vous avez déjà développé des classes avec les Modele d'Entités de données EDMX, vous rencontrerez quelques problème en passant de la version ADO.NET Entity Framework Beta 3 que l'on peut télécharger sur downloads.microsoft.com depuis plusieurs mois déjà, au SERVICE PACK1 BETA de VS2008 fraichement sorti.

Comme il fallait s'y attendre, d'une version Beta à une autre, le schéma XSD des fichiers EDMX a changé, et une fois passé le service pack 1 de VS2008, vos projets avec des classes Ado.Net entities ne vont plus compiler (error de validation XML sur les fichiers EDMX)

Rassurez vous, la partie n'est pas perdue pour autant.

A l'aide d'un clic droit sur le fichier EDMX dans l'explorateur de solution, vous pouvez éditer l'original XML de ce fichier. Et modifier le tout à la main:

d'abord, un élément XML a été enlevé, il se trouve dans <edmx : Designer >
et se nomme <edmx:ReverseEngineer />
il suffit tout simplement de le supprimer

ensuite, les blocs XML ont été un peu ré-ordonner et il vous faudra réordonner les 3 blocs principaux présents dans <edmx:Runtime>

1)<!-- SSDL content -->

2)<!-- CSDL content -->

3)<!-- C-S mapping content -->

(ca n'est pas la partie la plus importante mais le "Custom Tool" qui parse les fichiers EDMX peut raler de ne pas trouver certaines références mapées)

enfin, c'est dans la partie <!-- SSDL content --> <edmx:StorageModels>
que ca coince.
Un nouvel attribut nommé Provider est apparu dans la balise <Schema>. Mais ce n'est pas tout , le ProviderManifestToken a changé et un nouveau sous schema est entré en scène.
Bref, il vous faudra changer tout le contenu interne de la balise
<Schema Namespace="MonModelAMoi.Store" .............>
par ceci
<Schema Namespace="MonModelAMoi.Store"
Alias="Self" Provider="System.Data.SqlClient" ProviderManifestToken="2005" xmlns:store="http://schemas.microsoft.com/ado/2007/12/edm/EntityStoreSchemaGenerator" xmlns="http://schemas.microsoft.com/ado/2006/04/edm/ssdl">

Sauvez, et déjà vous pourrez constater agréablement que votre EDMX peut de nouveau etre édité en mode WYSIWYG

31.03.08

Ergonomie des Services Logiciels

Je me suis lancé dans une étude exhaustive de la qualité des services au sens SOA.

Si nous sommes tous convaincus (j'espère) du bien fondé de ces architectures, encore faut-il bien les approcher.

C'est sous un nouveau regard, celui de l'Ergonomie (Usability en Anglais) que je vous livre ma reflexion sur l'approche orienté service dans l'industrie du logiciel en 2008.

Dans cet article, je fais le tour de toutes les bonnes recettes concrètes applicables simplement en phase de design sur vos services. Si vous êtes également en panne d'inspiration, cette approche est une bonne méthodologie pour écrire des Web Services quand on ne sait pas par quel bout les prendre. Bonne lecture.

Avez vous le sens du service?

Cette phrase, certains développeurs auraient pu l'entendre au cours de leur carrière.
Qu'ils se rassurent, il ne s'agit pas d'une remontrance à leur encontre pour ceux qui travaillent dans une société de "services".
Oui, le service est sacré surtout lorsque le service demandé est celui que l'on attache à un système d'informations.

Aujourd'hui, des termes comme SaaS commencent à prendre du poids et si le logiciel peut être (doit être, même!) vu comme un service ou augmenté de services, cela ne se fait ni automatiquement (et sûrement pas en un CleanRAD aveugle), ni sans réfléchir aux acteurs impliqués dans la construction et dans l'utilisation d'un logiciel ou un SI.

Un logiciel est un système dynamique, il y a des entrées, des sorties, des changements et même des bouleversements.
C'est une entité, complexe. Une machine, une usine et même un écosystème à lui tout seul.
Il doit respecter non seulement des contraintes externes mais aussi ses propres contraintes, intrinsèques, posées par le framework qui a servi à le développer.

Avoir le sens du service logiciel, c'est penser à tout cela.
C'est avoir toujours en tête que l'on est pas seul à programmer et poursuivre nos efforts pour que, bientôt, le développement durable ait également du sens dans l'industrie du logiciel.

Qu'est qu'un bon service?

c'est la question qu'il faut se poser. Et derrière cette question s'en cache une flopée d'autres... "qu'est ce qui me rend productif si j'utilise un service ? quel surcharge de travail vais-je assumer lorsque je vais le consommer ?" pourrait-on se demander...

Il y a une dimension humaine -psychologique même- à un service puisqu'il aborde un métier. Et qui dit métier dit "savoir faire". Expression dans lequel le mot savoir est peut être plus important que le mot faire. Il y a de la cognition et de la sémantique derrière tout cela.

Il faut penser, comme les ergonomes, en terme de scénarios d'utilisation.

Tout cela peut se reprendre en une formule: est que mon service est utilisable?

La capacité à être utilisable c'est la "usablity"; le mot a plus de sens dans sa traduction depuis l'anglais: ER-GO-NO-MI-QUE.

Voila, le loup est enfin lâché: l'ergonomie doit rentrer en ligne de compte dans le design des Services et d'une Architecture Orientée Service (SOA).

Mais prenons garde, l'ergonomie est une science humaine.
C'est là que l'approche peut dérouter plus d'une personne: faire rentrer l'aspect humain dans la programmabilité des services.

La suite ici: http://docs.google.com/Doc?id=dhp3ggmx_38f58b3d

18.01.08

Bill Gates last keynote

je n'ai absolument aucun culte de la personnalité pour qui que ce soit, et surtout pour Bill Gates. Force est de reconnaitre que c'est quelqu'un qui a compté pour l'histoire de l'informatique et on lui doit de grandes avancées technologiques fondamentales (COM et .Net).

Il s'habille vraiment mal (le pantalon qui remonte au dessus de l'estomac sur une chemise blanche bouffante, c'est vraiment attroce) mais il a le sens de l'humour.

L'auto dérision pratiquée par l'ex homme le plus riche du monde, cela donne ca:
http://www.youtube.com/watch?v=v5uw07iEkjU&eurl

genre: "vous avez vu qui sont mes amis, hein?"
allez, c'est drole quand meme, surtout la scéance de méditation Zen sur une boule géante :D

11.10.07

l'art des tableaux de tous bords

panne d'inspiration?
Cela arrive à tout le monde. Encore plus quand on a en charge de mettre au point des tableaux de bords pour une application informatique.

Aujourd'hui les décideurs et les utilisateurs de tout niveaux en sont friands.
Un bel écran qui vous accueille lorsque vous ouvrez votre application, des informations synthétisées, une ergonomie irréprochable, tout savoir d'un coup d'oeil, capter les tendances, avoir des indicateurs intuitifs pour des prises de décision rapides: tout le monde en veut!

Avec l'avènement du Web 2.0, le dashboard est un incontournable de l'IHM de l'an 2000.

Mais pour vous qui devez en esquisser les contours (dans un cahier des charges), en produire une maquette (dans un POC par ex) ou qui allez l'implémenter, comment éviter les vertiges de la feuille blanche?

La réponse est sur ce site: http://www.enterprise-dashboard.com/

Des centaines de captures d'écrans de DashBoard commentés, critiqués et contextualisés. Ce site a une dimension internationale et multi-business, vous y trouverez forcément votre bonheur.
Une petite bible à consulter d'urgence.

20.06.07

du Detailsview dans un ItemTemplate

detailsview inside ItemTemplate

pour faire une interface de présentation de données, le DetailsView est un outil pratique.
Si pratique, que d'en vouloir généraliser son usage, on peut parfois se retrouver bloqué.

Par exemple, à l'intérieur de l' ItemTemplate d'un Repeater je souhaitais faire afficher presto des données dans un DetailsView, histoire d'avoir un formatage tout prêt.

Malheureusement, comment dire à celui-ci (le DetaisView) de se binder sur la même source que le ItemTemplate dans lequel il se trouve?

Voici le code solution:

<asp:Repeater runat="server" ID="liste1" OnItemDataBound="liste1_ItemDataBound">
<ItemTemplate>

<asp: DetailsView ID="Detail2" runat=" server " Height="75px" Width="100%"
AutoGenerateRows="true" ></asp: DetailsView>
</ItemTemplate>

</asp:Repeater>

il faut du code-behind pour que cela fonctionne:

protected void liste1_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
RepeaterItem item = e.Item;
if ((item.ItemType == ListItemType.Item) ||
(item.ItemType == ListItemType.AlternatingItem))
{
DetailsView dv = (DetailsView)item.FindControl("Detail2");
ArrayList fakeList = new ArrayList(1);
fakeList.Add(e.Item.DataItem);
dv.DataSource = fakeList;
dv.DataBind();
}
}

Explications:
le databinder veut une dataSource répondant au moins à System.Collections.IEnumerable interface (comme System.Data.DataView, System.Collections.ArrayList, or System.Collections.Hashtable object) ou à l'interface IListSource.
Ce qui n'est pas le cas d'un DataItem (celui ci est l'objet terminal issu de la liste sur laquelle on a déjà bindé dans le Repeater contenant.

Donc pour satisfaire à cette règle, le petit truc est de créer une liste bidon (fakeList), qui ne contient qu'un élément, cet élément sera le DataItem en cours de binding.

Une fois cette liste temporaire établie, on peut la binder à notre DetailView afin d'obtenir une affichage automatisé de son contenu.

"une UI Web, vite et....vite !" :>>

05.06.07

qques soucis de templates avec VS 2005 apres le SP1

si comme moi, vous avez quelques étrangetés avec votre Visual Studio après l'installation du SP1, voici une compil des quelques astuces qui peuvent vous permettre de retrouver les réglages d'origine (c'est tres frustrant de perdre par exemple tous les templates des projets Web):

si votre VS2005 est d'une langue différente de votre OS (VS Anglais installé sur XP francais), cela provoque la disparition des templates dans les projets Web et un mélange franglais pas très heureux dans les menus. Pour remédier à cela, allez dans le menu "Outils->Option" puis "Environement -> Parametres Internationaux". Par défaut l'option "Identique à Windows" est sélectionné. Remplacez par "Anglais". Redémarrez VS2005. Et tous les templates sont revenus!!!

Dans les autres cas, fermez VS2005, ouvrez l'invite de commande spéciale VS2005 (dans le groupe de programme VS), tapez "devenv /installvstemplates". Relancez VS2005.

Derniere astuce (toujours en ayant quitté VS), recopiez tous les répertoires présents dans "C:\Program Files\Microsoft Visual Studio 8\Common7\IDE\VCSExpress\ProjectTemplates\1033\"

vers

"C:\Documents and Settings\MonCompte\Mes documents\Visual Studio 2005\Templates\ProjectTemplates\Visual C#\"

Derniere astuce:

relancer l'install de VS2005 setup.exe , choisir "Change or Remove VS2005"
Enlever un élément que vous n'utilisez pas ( J# support dans Crystal reports )
Et relancez VS.
(avec VS2005 Team Suite sous XP Pro )

08.02.07

MS Techdays 2007: victime de son succès

comme beaucoup le diront, c'était la cohue au palais des congrès de Paris, pour ces 3 jours de séminaires "techniques".
Heureusement pour Microsoft, l'engouement grandit grace à l'effet Vista et .Net 3
Malheureusement pour les participants, car on était pas loin de la cohue.
Difficille certes pour les organisateurs d'anticiper un tel effet de masse.

Du coup, la tension et la frustration étaient palpables dans les files d'attente et les couloirs et il fallait optimiser la moindre pause pipi.

Les repas devenaient également problématiques, même s'il s'agissait d'un bonus offert par Microsoft France.

Incontestablement, le Palais des Congrès devient éxigu pour une telle manifestation, et c'est l'équivalent d'un campus qu'il faudra allouer en 2007.
Il faut reconnaitre que nos amis anglo-saxons (Anglais, Allemands, Americains) ont plus l'habitude d'organiser ce genre de "grand messe".

Par exemple, quand on ne peut répartir dans l'espace (dans le cas présent il y avait trop de monde pour pas assez de places dans les salles), on peut multiplexer dans le temps.

C'est ainsi qu'ont procédé les organisateurs du festival de Courts Métrages à Clermont Ferrand par exemple: une politique de multi-diffusion avec une répartition de salles très étudiée. La même projection est dispactchée sur 4 jours, chaque jour à un horaire décalé. Ce qui fait que tout le monde peut voir toutes les sélections en aménageant son emploi du temps comme il le souhaite. Et il y a plus de 60 projections différentes regroupées par thématiques. Du coup, l'évenement est étalé sur la semaine entière.

Il aurait fallu au moins cela, car pour les TechDays, il y avait également des sessions diffusée au même horaire qui pouvaient intéresser les mêmes personnes. Du coup, on était obligé de se couper en 2 ou de faire des choix cruciaux. Dommage.

Bien sûr, il y aura les webcasts mais c'est bien plus agréable de voir le speaker en direct et avoir le temps de lui poser des questions en fin de scéance, ce qui n'était pas possbile ici à moins de renoncer à la session suivante.

Bref, des intervenants de qualité, des sujets intéressants (voir le bémol dans mon post suivant) mais on attendra beaucoup plus de la prochaine édition.

15.01.07

installer un serveur SVN sous windows

cela est possible et facile de surcroit!
nombres d'articles sur internet traitent de cela ( google mon ami !)
http://ericreboisson.developpez.com/tutoriels/install-subversion/#LVI
(en francais, s'il vous plait)

petit hic, le fameux fichier qui wrappe l'executable du daemon svn en service NT n'est plus disponible à l'URL indiquée partout...

pour ceux qui desespéraient, on le trouve encore à cette adresse:
http://gda.utp.edu.co/pub/svn/

mais il y a encore mieux, Tigris a sorti un petit utilitaire qui fait tout: installation des executables, du services NT et création auto du 1er repository!
http://svn1clicksetup.tigris.org/

ouf, sauvés!

09.01.07

Le pattern MVC: Comparaison ASP.Net et Monorail dans l’optique d’une utilisation Web Internet et Intranet

voici une petite étude que j'ai réalisée en m'interessant aux techniques de programmation structurées autour des pages Web en .Net
lorsque j'ai du me poser la question "quel va etre le meilleur modèle de programmation pour mon projet Web"?

est-ce qu'il n'y a qu'Asp.Net? quelles sont les bonnes pratiques? quelles limites à Asp.Net? y-a-t-il des alternatives à cette égémonie?

des réponses à lire à cette adresse:
http://docs.google.com/View?docid=dhp3ggmx_24p2k9h7

12.12.06

l'origine des temps modernes pour Sql Server

pour Sql Serveur, une date ne peut être antérieure à l'an 1753 et supérieure à 9999.
Nul ne sait ce qu'il adviendra en 9999 apres JC mais pourquoi avoir donc limité les dates à 1753? (pour quiconque voudrait faire un logiciel historique par exemple)

La réponse est toute simple et je l'ai trouvé sur Wikipédia:
C'est la seule date à partir de laquelle tout le monde (ou en tout cas la civilisation dominante de l'époque, c'est à dire les Anglais) ce sont mis d'accord sur le calendrier.

Le calendrier grégorien a en effet été approuvé en 1752. Il a ensuite été décidé que le 1/1/1753 serait la date du nouvel an. Cette année là, cela tomba un lundi.

Le 1/1/1753 est donc le jour zero... calculable.

08.11.06

Bien démarrer avec web services interop

voici un petit guide rapide en francais/anglais et une foule de lien utile pour eviter de perdre des cheveux inutilement (pour moi c'est déjà trop tard ;D )
ce fabuleux outils de blog m'empeche de faire un lien vers cette URL, donc faites un copier-coller pour voir le document

http://docs.google.com/View?docid=dhp3ggmx_13hnkjk4

http://yohm31.blogspot.com/2006/11/bien-dmarrer-avec-linteroprabilit-soap.html

24.10.06

une démonstration éloquente de Windows Presentation Foundation

tout le monde ici est convaincu des bienfaits de WPF (Windows Presentation Foundation),
le nouveau framework graphique, livré avec le framework .Net v3.0 et pierre d'angle de Vista.

Il remplacera à terme les interfaces graphiques Win32 et les affreuses API MFC. Les Winforms à coté nous paraitrons de la préhistoire.

mais pour un effet démo et épater ses amis ou pour briller en société, la diffusion de cette petite vidéo fera son effet.

Egalement utile pour convaincre les clients rétissants :>

Attention, video en stream à haut débit (800k/sec) visible seulement avec Windows Media Player 10.

20.09.06

vocabulaire et eclaircissement sur les Domain Model

dans une appli bien construite, on a l'habitude de dé-coupler et séparer les éléments logiciels par domaines de fonctionnalité et de responsabilité (Separation Of Concern) sous forme de "couches" :

1- Acces aux Données
2- Modele de Domaine ( Domain Design, DSL..etc...)
3- Traitements Metiers plus transverses (donc de plus haut niveau que le Domain Design)
4- certains types de Workflow (Human ou Process)
5- Service Layer (SOA) (pour l'interopérabilité)
6- présentation et interactions utilisateurs (IHM avec un pattern MVC ou MVP ModelViewPresenter)

on peut evident réduire cette architecture à une plus simple expression qui ne contient que 1-2-6
on ne peut pas faire moins, à mon sens.

qu'appelle-t-on un modele de domaine? (anciennement on ne parlait que d'objets-metier, ici les choses ont évolué et on a laissé la place à un découpage plus méticuleux, les objets métiers devenant un peu trop "fourre-tout").

voici un eclaircissement de 2 specialistes mondiaux de la chose. Martin Fowler, parlant du Modele Anemique (http://www.martinfowler.com/bliki/AnemicDomainModel.html), citant Eric Evans :

Eric Evans's excellent book Domain Driven Design has the following to say about these layers.

Application Layer [his name for Service Layer]: Defines the jobs the software is supposed to do and directs the expressive domain objects to work out problems. The tasks this layer is responsible for are meaningful to the business or necessary for interaction with the application layers of other systems. This layer is kept thin. It does not contain business rules or knowledge, but only coordinates tasks and delegates work to collaborations of domain objects in the next layer down. It does not have state reflecting the business situation, but it can have state that reflects the progress of a task for the user or the program.
Domain Layer (or Model Layer): Responsible for representing concepts of the business, information about the business situation, and business rules. State that reflects the business situation is controlled and used here, even though the technical details of storing it are delegated to the infrastructure. This layer is the heart of business software.

et cet article qui resume tres bien la problematique de designation et identification des DOmain Model :
http://weblogs.asp.net/pgielens/archive/2006/09/03/Domain-Model-Service.aspx

dont je partage la conclusion:

So, essentially the Domain Model Service is an integral part of the application and may therefore have knowledge of the internal structure of the domain, like business exception handling, object discovery etc. A Domain Model Service encapsulates behavior of the domain that does not fit in the domain objects themselves. Typical characteristics of a Domain Model Service is that it tends to be procedural and does not carry any state.

une fois de plus, il y a des problemes de vocabulaire, il semblerait que pour cette personne le Domain Model Service soit en fait le "Service Layer" cité plus haut.

autres references:
un article en francais sur MVP (msdn france)
http://www.microsoft.com/france/msdn/architects/Model_View_Presenter.mspx

31.07.06

le savoir Microsoft pour tous

la nouvelle circule partout, mais il est interessant de la relayer.

La bible de beaucoup d'entre nous, disponible gratuitement en consultation en ligne sur http://msdn.microsoft.com/library est enfin donnée gratuitement par Microsoft sous l'équivalent de sa forme physique (à savoir CD ou DVD) que l'on peut donc utiliser localement sur sa machine ou sur un serveur de son entreprise.

C'est ce qui correspondait à ce que vous receviez quand vous preniez l'abonnement MSDN niveau "Visual Studio 2005 Library Subscription" et qui valait quand meme 213,00 €.

vous pouvez maintenant telecharger ceci gratuitement (et à jour) à cette adresse:
http://www.microsoft.com/downloads/details.aspx?FamilyId=373930CB-A3D7-4EA5-B421-DD6818DC7C41&displaylang=en

(en anglais seulement)

27.06.06

Gartner ne conseille pas de migrer à Office 2007

on connait le Gartner Group pour ses prises de position parfois pour le moins... engagées.
Et leur revirement soudain quelques mois apres.

Leur avis sur Office 2007 ne déclenche pas de surprise (trop cher mon fils!) et leurs réserves font finalement partie de la légende:
http://news.zdnet.com/2100-3513_22-6086693.html

Prudence donc selon eux, ce qui n'est pas de l'avis de tous les internautes, dont certains avis sont beaucoup plus colorés:
http://www.pcinpact.com/actu/news/29699-Le-cabinet-Gartner-met-en-garde-contre-Offic.htm?vc=1&cid=735577#c735577

Allez, un peu d'humour ne fait pas de mal en ce moment ;)

:: Page suivante >>

Guillaume Saint Etienne 's Blog

:: Page suivante >>

<  Mai 2008  >
Lun Mar Mer Jeu Ven Sam Dim
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31  

Référents récents


Référents les plus fréquents

powered by
b2evolution