<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/" xmlns:georss="http://www.georss.org/georss"><id>tag:blogger.com,1999:blog-11712011</id><updated>2009-11-05T12:01:03.953+01:00</updated><title type="text">Microsoft Office Sharepoint Server 2007 (MOSS), ASP.NET, .Net, C#</title><subtitle type="html">Une experience de developpement avec Microsoft Office Sharepoint Portal Server (MOSS) 2007, Windows Sharepoint Services (WSS) 3.0.
Puis aussi en .Net Framework, ASP.NET, C#</subtitle><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://fberton.blogspot.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://fberton.blogspot.com/" /><link rel="hub" href="http://pubsubhubbub.appspot.com/" /><link rel="next" type="application/atom+xml" href="http://www.blogger.com/feeds/11712011/posts/default?start-index=26&amp;max-results=25" /><author><name>Fred Berton</name><uri>http://www.blogger.com/profile/10034269858958675445</uri><email>noreply@blogger.com</email></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>85</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><link rel="self" href="http://feeds.feedburner.com/MOSS_berton" type="application/atom+xml" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><entry><id>tag:blogger.com,1999:blog-11712011.post-8504973905511549894</id><published>2009-11-05T11:57:00.002+01:00</published><updated>2009-11-05T12:01:03.971+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="C#" /><category scheme="http://www.blogger.com/atom/ns#" term="DOTNET" /><title type="text">C# supprimer les accents d'une chaine</title><content type="html">La formule magique :&lt;br /&gt;&lt;span style="font-family:arial;font-size:78%;"&gt;string text = "éàéö";&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;font-size:78%;"&gt;System.Text.Encoding.ASCII.GetString(System.Text.Encoding.GetEncoding(1251).GetBytes(text))&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;L'explication du code sur :&lt;br /&gt;&lt;a href="http://www.clt-services.com/blog/post/Enlever-les-accents-dans-une-chaine-(proprement).aspx"&gt;http://www.clt-services.com/blog/post/Enlever-les-accents-dans-une-chaine-(proprement).aspx&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11712011-8504973905511549894?l=fberton.blogspot.com'/&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://fberton.blogspot.com/feeds/8504973905511549894/comments/default" title="Publier les commentaires" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=11712011&amp;postID=8504973905511549894" title="0 commentaires" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/11712011/posts/default/8504973905511549894" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/11712011/posts/default/8504973905511549894" /><link rel="alternate" type="text/html" href="http://fberton.blogspot.com/2009/11/c-supprimer-les-accents-dune-chaine.html" title="C# supprimer les accents d'une chaine" /><author><name>Fred Berton</name><uri>http://www.blogger.com/profile/10034269858958675445</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd="http://schemas.google.com/g/2005" name="OpenSocialUserId" value="11092747229722354861" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11712011.post-6894354144267201260</id><published>2009-10-29T23:29:00.008+01:00</published><updated>2009-10-29T23:48:02.767+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="C#" /><category scheme="http://www.blogger.com/atom/ns#" term="WCF" /><title type="text">Serialisation/deserialsation de données XML avec WCF DataContractSerializer</title><content type="html">&lt;div&gt;Dans cette exemple, j'ai une liste générique de personne définit comme un DataContract WCF, que je serialise dans un fichier puis l'inverse.&lt;strong&gt;&lt;br /&gt;&lt;/strong&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size:78%;"&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;    &lt;span style="font-size:78%;"&gt;&lt;span style="font-family:arial;"&gt;[DataContract]&lt;br /&gt; public class Person&lt;br /&gt; {&lt;br /&gt;     [DataMember]&lt;br /&gt;     public string Nom {get;set;}&lt;br /&gt;     [DataMember]&lt;br /&gt;     public string Prenom { get; set; }&lt;br /&gt;     [DataMember]&lt;br /&gt;     public int Age { get; set; }&lt;br /&gt; }&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;strong&gt;Serialisation de données&lt;/strong&gt;&lt;/div&gt;&lt;span class="Apple-style-span"   style="border-collapse: separate; color: rgb(0, 0, 0);   font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; font-family:'Times New Roman';font-size:medium;"&gt;&lt;span class="Apple-style-span"   style="border-collapse: collapse;   font-family:arial, sans-serif;font-size:13px;"&gt;&lt;div&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-size:78%;"&gt;FileStream writer = new FileStream(@"c:\temp\test.xml", FileMode.Create);&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/span&gt;&lt;/span&gt;&lt;div&gt;&lt;div&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-size:78%;"&gt;DataContractSerializer ser = new DataContractSerializer(typeof(List&lt;person&gt;));&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-size:78%;"&gt;ser.WriteObject(writer, lstPers);&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-size:78%;"&gt;writer.Close();&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;span class="Apple-style-span"   style="border-collapse: separate; color: rgb(0, 0, 0);   font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; font-family:'Times New Roman';font-size:medium;"&gt;&lt;span class="Apple-style-span"   style="border-collapse: collapse;   font-family:arial, sans-serif;font-size:13px;"&gt;&lt;div&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-size:78%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;strong&gt;Desrialisation de données &lt;/strong&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="border-collapse: separate; color: rgb(0, 0, 0);   font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; font-family:'Times New Roman';font-size:medium;"&gt;&lt;span class="Apple-style-span"   style="border-collapse: collapse;   font-family:arial, sans-serif;font-size:13px;"&gt;&lt;div&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-size:78%;"&gt;FileStream reader = new FileStream(@"c:\temp\test.xml", FileMode.Open);&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-size:78%;"&gt;DataContractSerializer ser = new DataContractSerializer(typeof(List&lt;person&gt;));&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-size:78%;"&gt;lstPers = (List&lt;person&gt;)ser.ReadObject(reader);&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-size:78%;"&gt;reader.Close();&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/span&gt;&lt;/span&gt;&lt;div&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-size:78%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11712011-6894354144267201260?l=fberton.blogspot.com'/&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://fberton.blogspot.com/feeds/6894354144267201260/comments/default" title="Publier les commentaires" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=11712011&amp;postID=6894354144267201260" title="0 commentaires" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/11712011/posts/default/6894354144267201260" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/11712011/posts/default/6894354144267201260" /><link rel="alternate" type="text/html" href="http://fberton.blogspot.com/2009/10/serialisationdeserialsaition-de-donnees.html" title="Serialisation/deserialsation de données XML avec WCF DataContractSerializer" /><author><name>Fred Berton</name><uri>http://www.blogger.com/profile/10034269858958675445</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd="http://schemas.google.com/g/2005" name="OpenSocialUserId" value="11092747229722354861" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11712011.post-51973440053371805</id><published>2009-10-29T23:20:00.003+01:00</published><updated>2009-10-29T23:25:22.124+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="C#" /><category scheme="http://www.blogger.com/atom/ns#" term="DOTNET" /><title type="text">Lire des données dans Excel avec ADO.NET</title><content type="html">&lt;div&gt;  &lt;p class="MsoNormal"&gt;L'exemple de code ci dessous permet de lire les données d'une feuille (Feuil1) dans un fichier Excel (Classeur1.xls).&lt;br /&gt;La feuille contient une première ligne avec nom, prenom,et age qui forme le titre des colonnes, Les lignes suivantes contiennent des données.&lt;/p&gt;  &lt;span style="font-family:arial;"&gt;&lt;span style="font-size:78%;"&gt;string connectionString = @"Provider=Microsoft.Jet.&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-size:78%;"&gt;OLEDB.4.0;Data Source=c:\\temp\\Classeur1.&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-size:78%;"&gt;xls;Extended Properties=""Excel 8.0;HDR=YES;""";&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; "&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; font-family: arial, sans-serif; font-size: 13px; "&gt;&lt;div&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-size:78%;"&gt;            DbProviderFactory factory = DbProviderFactories.&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-size:78%;"&gt;GetFactory("System.Data.OleDb"&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-size:78%;"&gt;);&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-size:78%;"&gt;            using (DbConnection connection = factory.CreateConnection())&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-size:78%;"&gt;            {&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-size:78%;"&gt;                connection.ConnectionString = connectionString;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-size:78%;"&gt;                using (DbCommand command = connection.CreateCommand())&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-size:78%;"&gt;                {&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-size:78%;"&gt;                    command.CommandText = "SELECT nom,prenom,age FROM [Feuil1$]";&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-size:78%;"&gt;                    connection.Open();&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-size:78%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-size:78%;"&gt;                    lstPers = new List&lt;person&gt;();&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-size:78%;"&gt;                    using (DbDataReader dr = command.ExecuteReader())&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-size:78%;"&gt;                    {&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-size:78%;"&gt;                        while (dr.Read())&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-size:78%;"&gt;                        {&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-size:78%;"&gt;                            double d = dr.GetDouble(dr.GetOrdinal("&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-size:78%;"&gt;age"));&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-size:78%;"&gt;                            lstPers.Add(new Person(dr["nom"].ToString(), dr["prenom"].ToString(), (Int32)d ));&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-size:78%;"&gt;                        }&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-size:78%;"&gt;                    }&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-size:78%;"&gt;                }&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-size:78%;"&gt;            }&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-size:78%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11712011-51973440053371805?l=fberton.blogspot.com'/&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://fberton.blogspot.com/feeds/51973440053371805/comments/default" title="Publier les commentaires" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=11712011&amp;postID=51973440053371805" title="0 commentaires" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/11712011/posts/default/51973440053371805" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/11712011/posts/default/51973440053371805" /><link rel="alternate" type="text/html" href="http://fberton.blogspot.com/2009/10/lire-des-donnees-dans-excel-avec-adonet.html" title="Lire des données dans Excel avec ADO.NET" /><author><name>Fred Berton</name><uri>http://www.blogger.com/profile/10034269858958675445</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd="http://schemas.google.com/g/2005" name="OpenSocialUserId" value="11092747229722354861" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11712011.post-1240930829854492968</id><published>2009-10-05T17:50:00.004+02:00</published><updated>2009-10-05T18:05:49.947+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="WCF" /><title type="text">WCF, charger dynamiquement tout les services configurés dans system.serviceModel</title><content type="html">Voici un exemple de code qui vous permet de charger dynamiquement tout les services définit dans la section system.serviceModel de votre fichier app.config.&lt;br /&gt;Ce code est inspiré par celui de Ingo &lt;a href="http://blogs.thinktecture.com/ingo/archive/2006/09/05/414686.aspx"&gt;Start ServiceHosts for all configured Services&lt;/a&gt;.&lt;br /&gt;Dans l'exemple présent, on considère que les services sont contenus dans une assembly externe. Pour récupérer le type du service il faut donc construire son nom de type avec la forme "completeTypeName,assemblyName", ce qui est fait par le code&lt;br /&gt;&lt;span style="font-size:78%;"&gt;String sServicesAssembleName = appSettings.Settings["ServiceAssemblyName"].Value.ToString();&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;String sTypeName = String.Format("{0},{1}", srvElem.Name, sServicesAssembleName);&lt;/span&gt;&lt;br /&gt;Voici le code complet :&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;font-size:78%;"&gt;&lt;span style="color:#33ff33;"&gt;&lt;span style="color:#33cc00;"&gt;// Get the configuration file.&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;System.Configuration.Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);&lt;br /&gt;System.Configuration.AppSettingsSection appSettings = (AppSettingsSection)config.GetSection("appSettings");&lt;br /&gt;String sServicesAssembleName = appSettings.Settings["ServiceAssemblyName"].Value.ToString();&lt;br /&gt;&lt;span style="color:#33cc00;"&gt;//Get the appSettings section.&lt;/span&gt;&lt;br /&gt;ServiceModelSectionGroup SrvModel = (ServiceModelSectionGroup)config.GetSectionGroup("system.serviceModel");&lt;br /&gt;foreach (ServiceElement srvElem in SrvModel.Services.Services)&lt;br /&gt;{&lt;br /&gt;String sTypeName = String.Format("{0},{1}", srvElem.Name, sServicesAssembleName);&lt;br /&gt;Type typeService = Type.GetType(sTypeName);&lt;br /&gt;if (typeService != null)&lt;br /&gt;m_ListServiceHost.Add(new ServiceHost(typeService));&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;font-size:78%;"&gt;&lt;/span&gt;&lt;span style="font-family:arial;font-size:78%;"&gt;foreach (ServiceHost host in m_ListServiceHost)&lt;br /&gt;{&lt;br /&gt;host.Open();&lt;br /&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Arial;font-size:78%;"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11712011-1240930829854492968?l=fberton.blogspot.com'/&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://fberton.blogspot.com/feeds/1240930829854492968/comments/default" title="Publier les commentaires" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=11712011&amp;postID=1240930829854492968" title="0 commentaires" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/11712011/posts/default/1240930829854492968" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/11712011/posts/default/1240930829854492968" /><link rel="alternate" type="text/html" href="http://fberton.blogspot.com/2009/10/wcf-charger-dynamiquement-tout-les.html" title="WCF, charger dynamiquement tout les services configurés dans system.serviceModel" /><author><name>Fred Berton</name><uri>http://www.blogger.com/profile/10034269858958675445</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd="http://schemas.google.com/g/2005" name="OpenSocialUserId" value="11092747229722354861" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11712011.post-8936928112885494242</id><published>2009-09-27T16:32:00.003+02:00</published><updated>2009-09-27T16:40:17.716+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="PHP" /><category scheme="http://www.blogger.com/atom/ns#" term="Visual Studio" /><title type="text">Le coach PHP pour Visual Studio</title><content type="html">Dans un post en début d'année 2009 (&lt;a href="http://fberton.blogspot.com/2009/02/visual-studio-2008-ide-pour-php.html"&gt;http://fberton.blogspot.com/2009/02/visual-studio-2008-ide-pour-php.html&lt;/a&gt;), je vous avez donnée le lien sur un plug'in Visual Studio pour faire du PHP.&lt;br /&gt;Je viens de decouvrir, un coach pour la prise en main de ce plug 'in &lt;a href="http://msdn.microsoft.com/fr-fr/vstudio/msdn.coach.vsphp.atelier1.aspx"&gt;http://msdn.microsoft.com/fr-fr/vstudio/msdn.coach.vsphp.atelier1.aspx&lt;/a&gt;.&lt;br /&gt;ça donne envi de faire du PHP...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11712011-8936928112885494242?l=fberton.blogspot.com'/&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://fberton.blogspot.com/feeds/8936928112885494242/comments/default" title="Publier les commentaires" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=11712011&amp;postID=8936928112885494242" title="0 commentaires" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/11712011/posts/default/8936928112885494242" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/11712011/posts/default/8936928112885494242" /><link rel="alternate" type="text/html" href="http://fberton.blogspot.com/2009/09/le-coach-php-pour-visual-studio.html" title="Le coach PHP pour Visual Studio" /><author><name>Fred Berton</name><uri>http://www.blogger.com/profile/10034269858958675445</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd="http://schemas.google.com/g/2005" name="OpenSocialUserId" value="11092747229722354861" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11712011.post-4385576537727228935</id><published>2009-09-16T13:57:00.003+02:00</published><updated>2009-09-16T14:01:11.900+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="WPF" /><category scheme="http://www.blogger.com/atom/ns#" term="DOTNET" /><title type="text">Diagramme de classe WPF et .Net Framework 3.5</title><content type="html">&lt;p&gt;Voici deux urls pour trouver les diagrammes de classes du Microsoft .Net Framework 3.5 et de WPF. &lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://download.microsoft.com/download/4/a/3/4a3c7c55-84ab-4588-84a4-f96424a7d82d/NET_35_Namespaces_Poster_JAN08.pdf"&gt;fichier PDF du MS .NET Framework 3.5 Namespace&lt;/a&gt; &lt;/li&gt;&lt;li&gt;&lt;a href="http://blogs.interknowlogy.com/johnbowen/archive/2007/05/02/13107.aspx"&gt;WPF class library reference par interknowlogy&lt;/a&gt; &lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11712011-4385576537727228935?l=fberton.blogspot.com'/&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://fberton.blogspot.com/feeds/4385576537727228935/comments/default" title="Publier les commentaires" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=11712011&amp;postID=4385576537727228935" title="0 commentaires" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/11712011/posts/default/4385576537727228935" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/11712011/posts/default/4385576537727228935" /><link rel="alternate" type="text/html" href="http://fberton.blogspot.com/2009/09/diagramme-de-classe-wpf-et-net.html" title="Diagramme de classe WPF et .Net Framework 3.5" /><author><name>Fred Berton</name><uri>http://www.blogger.com/profile/10034269858958675445</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd="http://schemas.google.com/g/2005" name="OpenSocialUserId" value="11092747229722354861" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11712011.post-1458603239166389462</id><published>2009-06-26T00:17:00.007+02:00</published><updated>2009-07-01T00:03:15.411+02:00</updated><title type="text">J'ai décidé d'écrire mes posts avec un formalisme proche des celui des patterns</title><content type="html">&lt;strong&gt;Problématique:&lt;/strong&gt;&lt;br /&gt;Le premier paragraphe a pour objectif de d'écrire la problématique de manière simple, et concise.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Pré-requis: &lt;/strong&gt;&lt;br /&gt;Les pré requis donne la liste des éléments nécessaire à la mise en place de la solution.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Solution:&lt;/strong&gt;&lt;br /&gt;La solution dans un style de rédaction le plus directe possible, pas de bla bla.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Explication détaillé:&lt;/strong&gt;&lt;br /&gt;Une explication sur la solution, le pourquoi, le comment.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Liens:&lt;/strong&gt;&lt;br /&gt;Des liens sur les informations qui m'ont servis a élaboré la solution.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Mon état d'esprit:&lt;/strong&gt;&lt;br /&gt;Je suis content de moi, ou pas. Ce paragraphe a pour objectif de d'écrire mon état esprit.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11712011-1458603239166389462?l=fberton.blogspot.com'/&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://fberton.blogspot.com/feeds/1458603239166389462/comments/default" title="Publier les commentaires" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=11712011&amp;postID=1458603239166389462" title="0 commentaires" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/11712011/posts/default/1458603239166389462" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/11712011/posts/default/1458603239166389462" /><link rel="alternate" type="text/html" href="http://fberton.blogspot.com/2009/06/jai-decide-decrire-mes-posts-avec-un.html" title="J'ai décidé d'écrire mes posts avec un formalisme proche des celui des patterns" /><author><name>Fred Berton</name><uri>http://www.blogger.com/profile/10034269858958675445</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd="http://schemas.google.com/g/2005" name="OpenSocialUserId" value="11092747229722354861" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11712011.post-5996378353656149157</id><published>2009-05-26T11:24:00.004+02:00</published><updated>2009-05-26T12:01:31.743+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Visual Studio" /><category scheme="http://www.blogger.com/atom/ns#" term="DOTNET" /><title type="text">Wiki-OS : Un nouveau concept, l'OS Wiki</title><content type="html">L'idée est simple développer un OS en mode Wiki.&lt;br /&gt;Le projet est vraiment sympa, il permet de développer des applications en Microsoft .NET 3, avec WPF, etc...&lt;br /&gt;L'environnement de Wiki-OS vous permet donc de développer depuis un simple navigateur, bien sûr vous devez avoir un Microsoft .Net 3 sur votre poste.&lt;br /&gt;C'est géniale, pas besoins d'installer Visual Studio sur votre poste.&lt;br /&gt;Le lien : &lt;a href="http://wiki-os.org"&gt;WIKI-OS&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11712011-5996378353656149157?l=fberton.blogspot.com'/&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://fberton.blogspot.com/feeds/5996378353656149157/comments/default" title="Publier les commentaires" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=11712011&amp;postID=5996378353656149157" title="0 commentaires" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/11712011/posts/default/5996378353656149157" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/11712011/posts/default/5996378353656149157" /><link rel="alternate" type="text/html" href="http://fberton.blogspot.com/2009/05/wiki-os-un-nouveau-concept-los-wiki.html" title="Wiki-OS : Un nouveau concept, l'OS Wiki" /><author><name>Fred Berton</name><uri>http://www.blogger.com/profile/10034269858958675445</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd="http://schemas.google.com/g/2005" name="OpenSocialUserId" value="11092747229722354861" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11712011.post-5826722091293463533</id><published>2009-03-23T13:43:00.010+01:00</published><updated>2009-03-23T14:05:34.356+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="ASP.NET" /><category scheme="http://www.blogger.com/atom/ns#" term="C#" /><category scheme="http://www.blogger.com/atom/ns#" term="DOTNET" /><title type="text">Faire des histogrammes chart sous ASP.NET</title><content type="html">&lt;div&gt;Si vous avez besoins de faire des graphiques de type histogrammes, courbes, camberts, etc.&lt;br /&gt;Vous avez la solution d'utiliser les services de base du &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=130f7986-bf49-4fe5-9ca8-910ae6ea442c&amp;amp;displaylang=en"&gt;charting control for ASP.NET 3.5 SP1&lt;/a&gt;. Mais cela implique que vous utilisez le framework 3.5 sur votre serveur.&lt;br /&gt;&lt;a href="http://code.msdn.microsoft.com/Project/Download/FileDownload.aspx?ProjectName=mschart&amp;amp;DownloadId=3633"&gt;&lt;img style="WIDTH: 644px; CURSOR: hand; HEIGHT: 128px" alt="" src="http://code.msdn.microsoft.com/Project/Download/FileDownload.aspx?ProjectName=mschart&amp;amp;DownloadId=3633" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;Si comme moi vous n'avez pas le droit d'utiliser le framework 3.5, mais uniquement le 2.0 alors voici une solution plutôt sympa (bien documentée, avec des exemples) et en opensource. Il s'agit de &lt;a href="http://zedgraph.org/wiki/index.php?title=Main_Page"&gt;&lt;strong&gt;zedGraph&lt;/strong&gt;&lt;/a&gt; et couvre tout les graphiques 2D de base et reste trés simple à mettre en oeuvre. Voici un exemple.&lt;br /&gt;&lt;a href="http://zedgraph.org/wiki/images/1/1a/Combo.png"&gt;&lt;img style="WIDTH: 500px; CURSOR: hand; HEIGHT: 375px" alt="" src="http://zedgraph.org/wiki/images/1/1a/Combo.png" border="0" /&gt;&lt;/a&gt; &lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11712011-5826722091293463533?l=fberton.blogspot.com'/&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://fberton.blogspot.com/feeds/5826722091293463533/comments/default" title="Publier les commentaires" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=11712011&amp;postID=5826722091293463533" title="0 commentaires" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/11712011/posts/default/5826722091293463533" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/11712011/posts/default/5826722091293463533" /><link rel="alternate" type="text/html" href="http://fberton.blogspot.com/2009/03/faire-des-histogrammes-chart-sous.html" title="Faire des histogrammes chart sous ASP.NET" /><author><name>Fred Berton</name><uri>http://www.blogger.com/profile/10034269858958675445</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd="http://schemas.google.com/g/2005" name="OpenSocialUserId" value="11092747229722354861" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11712011.post-3240438853104663713</id><published>2009-03-19T14:11:00.007+01:00</published><updated>2009-03-19T14:38:07.598+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="ASP.NET" /><title type="text">Développeur ASP.NET, 3 articles must read !!!</title><content type="html">Voici trois articles qui sont pour moi des must read. du développeur ASP.NET.&lt;br /&gt;Ces articles sont signés par Amethyste (Frédéric De Lène Mirouze) qui est architecte .NET chez &lt;a href="http://www.expertime.com/fr/Accueil/Accueil.htm"&gt;Expertime&lt;/a&gt;.&lt;br /&gt;Merci à lui pour ce travail extraordinaire en qualité comme en pédagogie !!!&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.dotnetguru.org/articles/dossiers/viewstate/viewstate.htm"&gt;Le ViewState sous toutes ses coutures&lt;/a&gt; &lt;/li&gt;&lt;li&gt;&lt;a href="http://www.dotnetguru.org/articles/aspnet/events/EventASPNET1.htm"&gt;Maîtriser les évènements ASP.NET&lt;/a&gt; &lt;/li&gt;&lt;li&gt;&lt;a href="http://www.dotnetguru.org/articles/dossiers/composantBindes/article.htm"&gt;Ecrire des composants liés aux données&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11712011-3240438853104663713?l=fberton.blogspot.com'/&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://fberton.blogspot.com/feeds/3240438853104663713/comments/default" title="Publier les commentaires" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=11712011&amp;postID=3240438853104663713" title="0 commentaires" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/11712011/posts/default/3240438853104663713" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/11712011/posts/default/3240438853104663713" /><link rel="alternate" type="text/html" href="http://fberton.blogspot.com/2009/03/developpeur-aspnet-3-articles-must-read.html" title="Développeur ASP.NET, 3 articles must read !!!" /><author><name>Fred Berton</name><uri>http://www.blogger.com/profile/10034269858958675445</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd="http://schemas.google.com/g/2005" name="OpenSocialUserId" value="11092747229722354861" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11712011.post-7463414810472697731</id><published>2009-03-10T22:59:00.002+01:00</published><updated>2009-03-10T23:14:16.259+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="DOTNET" /><title type="text">Sculture un générateur de code pour .Net OpenSource. MDA biensûr</title><content type="html">Sculture est un générateur de code pour .Net OpenSource. Il est particulièrement bien adapté pour les applications basées sur les données. Il s'agit d'une extension de Visual Studio 2008 donc le GAX est nécessaire.&lt;br /&gt;Il permet de générer du code pour DAAB, NHibernate, LINQ, CSLA, WCF, ASMX, Windows Forms, WPF, Silverlight, ASP.NET, ASP.NET MVC .&lt;br /&gt;Voici le site : &lt;a href="http://www.codeplex.com/Sculpture"&gt;http://www.codeplex.com/Sculpture&lt;/a&gt;&lt;br /&gt;Ici une petite vidéo de démo : &lt;a href="http://www.dawliasoft.com/Sculpture/Beta2/Intro%2DPart1/"&gt;http://www.dawliasoft.com/Sculpture/Beta2/Intro%2DPart1/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11712011-7463414810472697731?l=fberton.blogspot.com'/&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://fberton.blogspot.com/feeds/7463414810472697731/comments/default" title="Publier les commentaires" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=11712011&amp;postID=7463414810472697731" title="0 commentaires" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/11712011/posts/default/7463414810472697731" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/11712011/posts/default/7463414810472697731" /><link rel="alternate" type="text/html" href="http://fberton.blogspot.com/2009/03/sculture-un-generateur-de-code-pour-net.html" title="Sculture un générateur de code pour .Net OpenSource. MDA biensûr" /><author><name>Fred Berton</name><uri>http://www.blogger.com/profile/10034269858958675445</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd="http://schemas.google.com/g/2005" name="OpenSocialUserId" value="11092747229722354861" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11712011.post-699727566049942743</id><published>2009-03-09T12:44:00.000+01:00</published><updated>2009-03-09T12:47:08.025+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Visual Studio" /><title type="text">Outils de développement Microsoft Product Support Lifecycle</title><content type="html">Voici l'url pour connaitre le Product Support Lifecycle des produits de développement Microsoft.&lt;br /&gt;&lt;a href="http://support.microsoft.com/select/default.aspx?target=lifecycle&amp;amp;c1=501&amp;amp;"&gt;http://support.microsoft.com/select/default.aspx?target=lifecycle&amp;amp;c1=501&amp;amp;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;La stratégie est disponible à :&lt;br /&gt;&lt;a href="http://support.microsoft.com/default.aspx?scid=fh;en-us;lifecycle&amp;amp;ln=en-us&amp;amp;x=11&amp;amp;y=5#Mainstream%20Support"&gt;http://support.microsoft.com/default.aspx?scid=fh;en-us;lifecycle&amp;amp;ln=en-us&amp;amp;x=11&amp;amp;y=5#Mainstream%20Support&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11712011-699727566049942743?l=fberton.blogspot.com'/&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://fberton.blogspot.com/feeds/699727566049942743/comments/default" title="Publier les commentaires" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=11712011&amp;postID=699727566049942743" title="0 commentaires" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/11712011/posts/default/699727566049942743" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/11712011/posts/default/699727566049942743" /><link rel="alternate" type="text/html" href="http://fberton.blogspot.com/2009/03/outils-de-developpement-microsoft.html" title="Outils de développement Microsoft Product Support Lifecycle" /><author><name>Fred Berton</name><uri>http://www.blogger.com/profile/10034269858958675445</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd="http://schemas.google.com/g/2005" name="OpenSocialUserId" value="11092747229722354861" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11712011.post-3331009437022433698</id><published>2009-02-18T10:42:00.004+01:00</published><updated>2009-02-18T10:56:08.816+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="PHP" /><category scheme="http://www.blogger.com/atom/ns#" term="Visual Studio" /><title type="text">Visual Studio 2008, IDE pour PHP !!!!</title><content type="html">&lt;p&gt;La société jcxSoftware vend un plug in pour Visual studio 2008 qui permet de faire du développement avec Visual Studio 2008 et PHP.&lt;br /&gt;Au menu:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Support PHP4 et PHP5 ;&lt;/li&gt;&lt;li&gt;Coloration syntaxique ;&lt;/li&gt;&lt;li&gt;Intellisense (php, html, css, xml, xslt, javascript, smarty)&lt;/li&gt;&lt;li&gt;Debug (php, javascript, et .Net) dans la même session. &lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Le produit n'est pas gratuit : 100$&lt;br /&gt;&lt;a href="http://www.jcxsoftware.com/vs.php"&gt;http://www.jcxsoftware.com/vs.php&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;PHP dans Visual Studio, Si on me l'avait dit, je ne l’aurais pas cru. &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11712011-3331009437022433698?l=fberton.blogspot.com'/&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://fberton.blogspot.com/feeds/3331009437022433698/comments/default" title="Publier les commentaires" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=11712011&amp;postID=3331009437022433698" title="0 commentaires" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/11712011/posts/default/3331009437022433698" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/11712011/posts/default/3331009437022433698" /><link rel="alternate" type="text/html" href="http://fberton.blogspot.com/2009/02/visual-studio-2008-ide-pour-php.html" title="Visual Studio 2008, IDE pour PHP !!!!" /><author><name>Fred Berton</name><uri>http://www.blogger.com/profile/10034269858958675445</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd="http://schemas.google.com/g/2005" name="OpenSocialUserId" value="11092747229722354861" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11712011.post-5175352789635832392</id><published>2009-01-10T11:31:00.002+01:00</published><updated>2009-01-10T11:34:38.420+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Architecture" /><title type="text">Un peu de lecture sur l'architecture logiciel (2)</title><content type="html">Suite à mon post : &lt;a href="http://fberton.blogspot.com/2008/11/un-peu-de-lecture-sur-larchitecture.html"&gt;Un peu de lecture sur l'architecture logiciel&lt;/a&gt;&lt;br /&gt;La version finale est disponible :&lt;br /&gt;&lt;a href="http://www.codeplex.com/AppArchGuide/Release/ProjectReleases.aspx?ReleaseId=20586"&gt;http://www.codeplex.com/AppArchGuide/Release/ProjectReleases.aspx?ReleaseId=20586&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Bonne lecture ;-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11712011-5175352789635832392?l=fberton.blogspot.com'/&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://fberton.blogspot.com/feeds/5175352789635832392/comments/default" title="Publier les commentaires" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=11712011&amp;postID=5175352789635832392" title="0 commentaires" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/11712011/posts/default/5175352789635832392" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/11712011/posts/default/5175352789635832392" /><link rel="alternate" type="text/html" href="http://fberton.blogspot.com/2009/01/un-peu-de-lecture-sur-larchitecture.html" title="Un peu de lecture sur l'architecture logiciel (2)" /><author><name>Fred Berton</name><uri>http://www.blogger.com/profile/10034269858958675445</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd="http://schemas.google.com/g/2005" name="OpenSocialUserId" value="11092747229722354861" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11712011.post-3533871418760027181</id><published>2009-01-08T12:39:00.003+01:00</published><updated>2009-01-08T12:49:17.221+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="DOTNET" /><title type="text">Identification des versions du .Net Framework de 1.0 à  2.0</title><content type="html">Voici un lien pour connaitre les versions existantes du Microsoft .Net Framework.&lt;br /&gt;&lt;a href="http://support.microsoft.com/kb/318785"&gt;http://support.microsoft.com/kb/318785&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;En résumé :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;.Net Framework 1.0&lt;br /&gt;&lt;/strong&gt;1.0.3705.0 Version finale d'origine&lt;br /&gt;1.0.3705.209 .NET Framework Service Pack 1&lt;br /&gt;1.0.3705.288 .NET Framework Service Pack 2&lt;br /&gt;1.0.3705.6018 .NET Framework Service Pack 3&lt;/li&gt;&lt;li&gt;&lt;strong&gt;.Net Framework 1.1&lt;br /&gt;&lt;/strong&gt;1.1.4322.573 Version finale d'origine&lt;br /&gt;1.1.4322.2032 .NET Framework Service Pack 1&lt;br /&gt;1.1.4322.2300 .NET Framework inclus avec Windows Server 2003 32 bits Service Pack 1&lt;/li&gt;&lt;li&gt;&lt;strong&gt;.Net Framework 2.0&lt;br /&gt;&lt;/strong&gt;2.0.50727.42 Version finale d'origine&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11712011-3533871418760027181?l=fberton.blogspot.com'/&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://fberton.blogspot.com/feeds/3533871418760027181/comments/default" title="Publier les commentaires" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=11712011&amp;postID=3533871418760027181" title="1 commentaires" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/11712011/posts/default/3533871418760027181" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/11712011/posts/default/3533871418760027181" /><link rel="alternate" type="text/html" href="http://fberton.blogspot.com/2009/01/identification-des-versions-du-net.html" title="Identification des versions du .Net Framework de 1.0 à  2.0" /><author><name>Fred Berton</name><uri>http://www.blogger.com/profile/10034269858958675445</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd="http://schemas.google.com/g/2005" name="OpenSocialUserId" value="11092747229722354861" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11712011.post-1675065847888542012</id><published>2009-01-06T18:09:00.002+01:00</published><updated>2009-01-06T18:15:48.367+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="C#" /><category scheme="http://www.blogger.com/atom/ns#" term="DOTNET" /><title type="text">Lucene.net framework indexation full text</title><content type="html">Lucene.net est framework indexation full text qui correspond au portage 'brut' de Lucene en Java. C'est un framework donc pas d'application, mais des APIs pour faire de l'indexation et de la recherche full text.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Les liens tutorial :&lt;br /&gt;&lt;a href="http://www.codeproject.com/KB/library/IntroducingLucene.aspx"&gt;http://www.codeproject.com/KB/library/IntroducingLucene.aspx&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.codeproject.com/KB/cs/lucene_analysis.aspx"&gt;http://www.codeproject.com/KB/cs/lucene_analysis.aspx&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Le site web de reference:&lt;br /&gt;&lt;a href="http://incubator.apache.org/lucene.net/"&gt;http://incubator.apache.org/lucene.net/&lt;/a&gt;&lt;br /&gt;&lt;a href="http://incubator.apache.org/lucene.net/download/"&gt;http://incubator.apache.org/lucene.net/download/&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;La vesion actuelle est la 2.0.004.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11712011-1675065847888542012?l=fberton.blogspot.com'/&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://fberton.blogspot.com/feeds/1675065847888542012/comments/default" title="Publier les commentaires" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=11712011&amp;postID=1675065847888542012" title="0 commentaires" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/11712011/posts/default/1675065847888542012" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/11712011/posts/default/1675065847888542012" /><link rel="alternate" type="text/html" href="http://fberton.blogspot.com/2009/01/lucenenet-framework-indexation-full.html" title="Lucene.net framework indexation full text" /><author><name>Fred Berton</name><uri>http://www.blogger.com/profile/10034269858958675445</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd="http://schemas.google.com/g/2005" name="OpenSocialUserId" value="11092747229722354861" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11712011.post-9140468582989318488</id><published>2009-01-05T22:57:00.002+01:00</published><updated>2009-01-05T23:01:40.958+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="C#" /><category scheme="http://www.blogger.com/atom/ns#" term="Visual Studio" /><category scheme="http://www.blogger.com/atom/ns#" term="DOTNET" /><title type="text">ESENT (Extensible Storage Engine) API in the Windows SDK</title><content type="html">Base de données ISAMdb en standard avec Windows.&lt;br /&gt;Merci le SDK.&lt;br /&gt;&lt;a href="http://blogs.msdn.com/windowssdk/archive/2008/10/23/esent-extensible-storage-engine-api-in-the-windows-sdk.aspx"&gt;http://blogs.msdn.com/windowssdk/archive/2008/10/23/esent-extensible-storage-engine-api-in-the-windows-sdk.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;API .NET&lt;br /&gt;&lt;a href="http://www.codeplex.com/ManagedEsent"&gt;http://www.codeplex.com/ManagedEsent&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;J'ai trouvé l'info sur : &lt;a href="http://www.ergotinfo.fr/architecture/2008/12/esent-le-moteur-de-base-de-donn%C3%A9es-livr%C3%A9-avec-windows-.html"&gt;http://www.ergotinfo.fr/architecture/2008/12/esent-le-moteur-de-base-de-donn%C3%A9es-livr%C3%A9-avec-windows-.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11712011-9140468582989318488?l=fberton.blogspot.com'/&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://fberton.blogspot.com/feeds/9140468582989318488/comments/default" title="Publier les commentaires" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=11712011&amp;postID=9140468582989318488" title="0 commentaires" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/11712011/posts/default/9140468582989318488" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/11712011/posts/default/9140468582989318488" /><link rel="alternate" type="text/html" href="http://fberton.blogspot.com/2009/01/esent-extensible-storage-engine-api-in.html" title="ESENT (Extensible Storage Engine) API in the Windows SDK" /><author><name>Fred Berton</name><uri>http://www.blogger.com/profile/10034269858958675445</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd="http://schemas.google.com/g/2005" name="OpenSocialUserId" value="11092747229722354861" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11712011.post-67420490598616641</id><published>2008-11-18T22:37:00.002+01:00</published><updated>2008-11-18T22:42:40.176+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="MOSS" /><title type="text">MOSS pour le développeur .Net</title><content type="html">Un site sympa avec tout les liens nécessaire pour ce mettre au développement sous MOSS.&lt;br /&gt;&lt;a href="http://www.microsoft.com/click/sharepointdeveloper/html/"&gt;http://www.microsoft.com/click/sharepointdeveloper/html/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11712011-67420490598616641?l=fberton.blogspot.com'/&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://fberton.blogspot.com/feeds/67420490598616641/comments/default" title="Publier les commentaires" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=11712011&amp;postID=67420490598616641" title="0 commentaires" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/11712011/posts/default/67420490598616641" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/11712011/posts/default/67420490598616641" /><link rel="alternate" type="text/html" href="http://fberton.blogspot.com/2008/11/moss-pour-le-dveloppeur-net.html" title="MOSS pour le développeur .Net" /><author><name>Fred Berton</name><uri>http://www.blogger.com/profile/10034269858958675445</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd="http://schemas.google.com/g/2005" name="OpenSocialUserId" value="11092747229722354861" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11712011.post-1824840133232552496</id><published>2008-11-17T17:23:00.010+01:00</published><updated>2008-11-17T18:00:21.474+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Web Services" /><category scheme="http://www.blogger.com/atom/ns#" term="Visual Studio" /><title type="text">Web services en .Net et erreur HTTP 403, arggg...</title><content type="html">Vous utilisez un web service depuis une application cliente en .Net 2.0, et lorsque vous faite l'appel à votre web services préféré. Boum !!!&lt;br /&gt;Exception, erreur : HTTP 403 Forbiden.&lt;br /&gt;Gloups...&lt;br /&gt;&lt;br /&gt;Un petit test rapide avec Internet explorer vous montre que votre web service est bien accessible avec IE.&lt;br /&gt;Regloups...&lt;br /&gt;&lt;br /&gt;Si depuis IE, dans la boite de dialogue Outils/options Internets/Connexions/Paramètres du réseau... vous désactivez l'option "utilisez un serveur proxy ..."&lt;br /&gt;&lt;br /&gt;Hop, ça marche.&lt;br /&gt;&lt;br /&gt;He bien il a de fortes chances pour que votre problème soit lié à l'utilisation des règles d'exception qui ne sont pas prise en compte par le .Net Framework 2 alors que les autres paramètres de IE sont utilisés par défaut pour établir votre connexion.&lt;br /&gt;Il faut donc écrire explicitement dans votre fichier .config les règles d'exclusion des url qui ne doit pas utilisées le serveur proxy.&lt;br /&gt;&lt;br /&gt;Dans mon cas par exemple j'avais une url de la forme : &lt;a href="http://tagada.mef:82/wsTest.asmx"&gt;http://tagada.mef:82/wsTest.asmx&lt;/a&gt;&lt;br /&gt;Dans IE une règle d'exception : *.mef&lt;br /&gt;Donc normalement mon serveur tagada.mef ne devrait pas utilisée le proxy, hé bien pour IE c'est vrai, mais pour mon appli c'est faux.&lt;br /&gt;Donc petite modification dans le fichier .config de mon appli:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:Georgia;"&gt;&amp;lt;system.net&amp;gt;&lt;br /&gt;&lt;span style="mso-tab-count: 1"&gt;            &lt;/span&gt;&amp;lt;&lt;span class="SpellE"&gt;defaultproxy&lt;/span&gt;&amp;gt;&lt;br /&gt;&lt;span style="mso-tab-count: 1"&gt;            &lt;/span&gt;&lt;span style="mso-tab-count: 1"&gt;            &lt;/span&gt;&amp;lt;&lt;span class="SpellE"&gt;bypasslist&lt;/span&gt;&amp;gt;&lt;br /&gt;&lt;span style="mso-tab-count: 1"&gt;            &lt;/span&gt;&lt;span style="mso-tab-count: 1"&gt;            &lt;/span&gt;&lt;span style="mso-tab-count: 1"&gt;            &lt;/span&gt;&amp;lt;&lt;span class="SpellE"&gt;add&lt;/span&gt; &lt;span class="SpellE"&gt;address&lt;/span&gt;="\.&lt;span class="SpellE"&gt;mef&lt;/span&gt;$" /&amp;gt;&lt;br /&gt;&lt;span style="mso-tab-count: 1"&gt;            &lt;/span&gt;&lt;span style="mso-tab-count: 1"&gt;            &lt;/span&gt;&amp;lt;/&lt;span class="SpellE"&gt;bypasslist&lt;/span&gt;&amp;gt;&lt;br /&gt;&lt;span style="mso-tab-count: 1"&gt;            &lt;/span&gt;&amp;lt;/&lt;span class="SpellE"&gt;defaultproxy&lt;/span&gt;&amp;gt;&lt;br /&gt;&amp;lt;/system.net &amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;p class="MsoNormal" style="MARGIN-BOTTOM: 12pt"&gt;Et voilà ça marche.&lt;br /&gt;Ps) vous pouvez être plus « brutale » et modifier directement le fichier machine.config de votre PC client. &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11712011-1824840133232552496?l=fberton.blogspot.com'/&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://fberton.blogspot.com/feeds/1824840133232552496/comments/default" title="Publier les commentaires" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=11712011&amp;postID=1824840133232552496" title="0 commentaires" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/11712011/posts/default/1824840133232552496" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/11712011/posts/default/1824840133232552496" /><link rel="alternate" type="text/html" href="http://fberton.blogspot.com/2008/11/web-services-en-net-et-erreur-http-403.html" title="Web services en .Net et erreur HTTP 403, arggg..." /><author><name>Fred Berton</name><uri>http://www.blogger.com/profile/10034269858958675445</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd="http://schemas.google.com/g/2005" name="OpenSocialUserId" value="11092747229722354861" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11712011.post-3842746638054032671</id><published>2008-11-07T16:19:00.006+01:00</published><updated>2008-11-07T16:23:29.979+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="SHAREPOINT" /><category scheme="http://www.blogger.com/atom/ns#" term="Architecture" /><category scheme="http://www.blogger.com/atom/ns#" term="MSDN" /><category scheme="http://www.blogger.com/atom/ns#" term="MOSS" /><title type="text">Un peu de lecture sur l'architecture logiciel</title><content type="html">&lt;p&gt;&lt;span style="font-size:85%;"&gt;Je ne sais pas pour vous, mais j’ai passé de nombreuse journée et soirée à lire et relire la bible des architectures logicielles à base de techno Microsoft. Je veux parler du guide d’architecture « Application Architecture for .NET:Designing Applications and Services » de l’équipe Patterns &amp;amp; Practices.&lt;br /&gt;Eh bien la version 2 de ce doc vient de sortir en Beta 1. Mise au gout du jour avec les applications RIA, OBA, SharePoint, etc. Pour SharePoint je vous conseil particulièrement le chapitre 23.&lt;br /&gt;&lt;br /&gt;Le document est disponible sur codeplex à l’adresse suivante :&lt;br /&gt;&lt;/span&gt;&lt;a href="http://www.codeplex.com/AppArchGuide/Release/ProjectReleases.aspx?ReleaseId=18834"&gt;&lt;span style="font-size:85%;"&gt;http://www.codeplex.com/AppArchGuide/Release/ProjectReleases.aspx?ReleaseId=18834&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;Il existe également des slides à l’adresse suivante :&lt;br /&gt;&lt;/span&gt;&lt;a href="http://www.codeplex.com/AppArch/Release/ProjectReleases.aspx?ReleaseId=17700"&gt;&lt;span style="font-size:85%;"&gt;http://www.codeplex.com/AppArch/Release/ProjectReleases.aspx?ReleaseId=17700&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;Concernant Sharepoint, il existe également depuis ce mois de Novembre un guide sur développement en MOSS. Je n’ai pas eu le temps de le lire, mais la tables des matières est plutôt sympa.&lt;/span&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/dd206939.aspx"&gt;&lt;span style="font-size:85%;"&gt;Creating a Development Environment and Installing the Training Management Application&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size:85%;"&gt;. This topic discusses how to create a SharePoint development environment and install the Training Management application. &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;a id="ctl00_rs1_mainContentContainer_ctl14" href="http://msdn.microsoft.com/en-us/library/dd206921.aspx"&gt;&lt;span style="font-size:85%;"&gt;Design of the Training Management Application&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size:85%;"&gt;. This topic explains how the Training Management application is designed and the reasons for those design decisions. &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;a id="ctl00_rs1_mainContentContainer_ctl15" href="http://msdn.microsoft.com/en-us/library/dd206905.aspx"&gt;&lt;span style="font-size:85%;"&gt;Training Management Application Walkthrough&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size:85%;"&gt;. This topic discusses how the Training Management application is implemented. &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;a id="ctl00_rs1_mainContentContainer_ctl16" href="http://msdn.microsoft.com/en-us/library/dd206931.aspx"&gt;&lt;span style="font-size:85%;"&gt;Deploying and Upgrading SharePoint Applications&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size:85%;"&gt;. This topic discusses the issues involved in deploying and upgrading SharePoint applications. &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;a id="ctl00_rs1_mainContentContainer_ctl17" href="http://msdn.microsoft.com/en-us/library/dd206920.aspx"&gt;&lt;span style="font-size:85%;"&gt;Upgrading the Training Management Application&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size:85%;"&gt;. This topic discusses how to apply upgrades to the Training Management application. &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;a id="ctl00_rs1_mainContentContainer_ctl18" href="http://msdn.microsoft.com/en-us/library/dd206918.aspx"&gt;&lt;span style="font-size:85%;"&gt;Development Activities&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size:85%;"&gt;. This topic contains procedures for performing various tasks such as how to debug SharePoint applications. &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;a id="ctl00_rs1_mainContentContainer_ctl19" href="http://msdn.microsoft.com/en-us/library/dd206948.aspx"&gt;&lt;span style="font-size:85%;"&gt;Technical Guidance&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size:85%;"&gt;. This topic discusses various technical issues that SharePoint developers frequently encounter such as how to organize features in a solution. &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;a id="ctl00_rs1_mainContentContainer_ctl20" href="http://msdn.microsoft.com/en-us/library/dd206909.aspx"&gt;&lt;span style="font-size:85%;"&gt;QuickStarts&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size:85%;"&gt;. The QuickStarts are small applications that help you understand aspects of SharePoint development. &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;a id="ctl00_rs1_mainContentContainer_ctl21" href="http://msdn.microsoft.com/en-us/library/dd206941.aspx"&gt;&lt;span style="font-size:85%;"&gt;Glossary&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size:85%;"&gt;. The glossary includes definitions of SharePoint-related terms.&lt;br /&gt;&lt;br /&gt;Disponible à l’adresse : &lt;/span&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/dd203468.aspx"&gt;&lt;span style="font-size:85%;"&gt;http://msdn.microsoft.com/en-us/library/dd203468.aspx&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11712011-3842746638054032671?l=fberton.blogspot.com'/&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://fberton.blogspot.com/feeds/3842746638054032671/comments/default" title="Publier les commentaires" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=11712011&amp;postID=3842746638054032671" title="0 commentaires" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/11712011/posts/default/3842746638054032671" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/11712011/posts/default/3842746638054032671" /><link rel="alternate" type="text/html" href="http://fberton.blogspot.com/2008/11/un-peu-de-lecture-sur-larchitecture.html" title="Un peu de lecture sur l'architecture logiciel" /><author><name>Fred Berton</name><uri>http://www.blogger.com/profile/10034269858958675445</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd="http://schemas.google.com/g/2005" name="OpenSocialUserId" value="11092747229722354861" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11712011.post-888118147858711876</id><published>2008-10-20T21:47:00.010+02:00</published><updated>2008-10-21T22:08:26.249+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="ROR" /><title type="text">Envis de changement : Ruby on Rails</title><content type="html">Envi de changer, de voir autre chose que du .Net, bref je regarde un peu Ruby on Rails.&lt;br /&gt;&lt;br /&gt;Dans le cadre d'un projet que je termine, j'ai utilisé le pattern ActiveRecord très bien implémenté dans Ruby on Rails. &lt;div&gt;Comme j'ai un peu de temps, j'ai décidé de jeter un coup d'œil sur ce langage (Ruby) et sur sont Framework web (Rails).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;Voici déjà quelques liens de base pour commencer.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Un tutorial sur le langage Ruby, très agréable à lire :  &lt;a href="http://www.projectomega.org/contents/fr/php/tuts/ruby/MacOSX_Ruby_Reference.pdf"&gt;MacOSX_Ruby_Reference.pdf&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Un tutorial sur le framework Rails : &lt;a href="http://mordeletj.free.fr/RoR/synthese_RoR.pdf"&gt;synthese_RoR.pdf&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Le lien pour télécharger Ruby on rails pour Windows avec installation de Ruby et de Rails.&lt;/li&gt;&lt;/ul&gt;&lt;a href="http://rubyforge.org/frs/?group_id=167"&gt;RubyForge Final Release&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Dans un prochaine post, mon avis sur ce langage (si brillant.... facile).&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11712011-888118147858711876?l=fberton.blogspot.com'/&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://fberton.blogspot.com/feeds/888118147858711876/comments/default" title="Publier les commentaires" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=11712011&amp;postID=888118147858711876" title="0 commentaires" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/11712011/posts/default/888118147858711876" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/11712011/posts/default/888118147858711876" /><link rel="alternate" type="text/html" href="http://fberton.blogspot.com/2008/10/envis-de-changement-ruby-on-rails.html" title="Envis de changement : Ruby on Rails" /><author><name>Fred Berton</name><uri>http://www.blogger.com/profile/10034269858958675445</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd="http://schemas.google.com/g/2005" name="OpenSocialUserId" value="11092747229722354861" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11712011.post-3056244842829789260</id><published>2008-10-13T09:12:00.003+02:00</published><updated>2008-10-13T10:05:50.649+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="C#" /><category scheme="http://www.blogger.com/atom/ns#" term="Visual Studio" /><category scheme="http://www.blogger.com/atom/ns#" term="DOTNET" /><title type="text">Pourquoi je n'utilise plus Acrobat Reader</title><content type="html">&lt;div&gt;Pour moi depuis longtemps maintenant, lorsque je pense PDF, je pense également Acrobat Reader. &lt;/div&gt;&lt;br /&gt;&lt;div&gt;Ah, Acrobat Reader, depuis longtemps aussi je peste devant la lenteur du chargement de l’application. Je ne parle pas du comportement étonnant de l’ActiveX dont les capacités de programmation sont aussi bonnes que les performances de chargement d’Acrobat Reader.&lt;br /&gt;Eh, bien entre Acrobat et moi c’est fini. Si, si, il existe bien des solutions alternatives à ce produit.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;En l’occurrence je suis passé à PDF-XChange Viewer &lt;a href="http://www.docu-track.com/home/prod_user/PDF-XChange_Tools/pdfx_viewer"&gt;http://www.docu-track.com/home/prod_user/PDF-XChange_Tools/pdfx_viewer&lt;/a&gt; ce produit est diffusé gratuitement par la société Tracker Software products &lt;a href="http://www.docu-track.com/"&gt;http://www.docu-track.com/&lt;/a&gt;&lt;br /&gt;Bien évidement, il est plus rapide au chargement de l’application. En termes de fonctionnalités il est également beaucoup plus riche. Comme par exemple la possibilité de faire des commentaires, ou d’écrire dans le fichier PDF, puis de sauvegarder vos modifications. Bien sur elles seront lisibles par un reader PDF autres.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;Du côté de l’ActiveX c’est encore mieux. Toutes les fonctionnalités du produit sont disponibles, paramétrables, activables ou non. Bref il s’agit d’un vrai composant ActiveX (en revanche, il est payant : 1300 euro pour 25000 licences). Si vous avez besoins d’embarquer dans une application client riche un viewer de PDF dont vous maitrisés les fonctionnalités. Alors « The PDF-XChange Viewer SDK » est l’outil dont vous rêvez. &lt;a href="http://www.docu-track.com/home/dev_tools/pdf/PDF-XChange_Viewer_SDK/"&gt;http://www.docu-track.com/home/dev_tools/pdf/PDF-XChange_Viewer_SDK/&lt;/a&gt; &lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;a href="http://www.docu-track.com/PdfVwrSample.PNG"&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;p align="center"&gt;&lt;a href="http://www.docu-track.com/PdfVwrSample.PNG"&gt;&lt;img style="WIDTH: 400px; CURSOR: hand" alt="" src="http://www.docu-track.com/PdfVwrSample.PNG" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11712011-3056244842829789260?l=fberton.blogspot.com'/&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://fberton.blogspot.com/feeds/3056244842829789260/comments/default" title="Publier les commentaires" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=11712011&amp;postID=3056244842829789260" title="1 commentaires" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/11712011/posts/default/3056244842829789260" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/11712011/posts/default/3056244842829789260" /><link rel="alternate" type="text/html" href="http://fberton.blogspot.com/2008/10/pourquoi-je-nutilise-plus-acrobat.html" title="Pourquoi je n'utilise plus Acrobat Reader" /><author><name>Fred Berton</name><uri>http://www.blogger.com/profile/10034269858958675445</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd="http://schemas.google.com/g/2005" name="OpenSocialUserId" value="11092747229722354861" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11712011.post-4267339727600200177</id><published>2008-10-08T11:07:00.009+02:00</published><updated>2008-10-12T00:47:26.057+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Web Services" /><title type="text">Stratégie de gestion de version des web services (part 1)</title><content type="html">&lt;a name="_Toc210636282"&gt;&lt;strong&gt;1 - Stratégie de gestion de version des web services&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;Dans ce post nous essayons de définir une stratégie de gestion de version des web services.&lt;br /&gt;&lt;br /&gt;Cette analyse ce base sur :&lt;br /&gt;* Le point de vue de l’utilisateur de web service (ou consommateur), et ses attentes en terme de gestion de version.&lt;br /&gt;* Le point de vue du fournisseur de web service, concernant sa capacité à maintenir opérationnelle une version, et plus particulièrement les événements possibles dans le cycle de vie d’une application (ici ) et les conséquences de ces événements sur les web services en terme de version.&lt;br /&gt;&lt;br /&gt;&lt;a name="_Toc211139170"&gt;&lt;strong&gt;1.1 - Le point de vue de l’utilisateur (consommateur) des web services&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;&lt;br /&gt;&lt;/strong&gt;&lt;br /&gt;Tout d’abord le lecteur doit comprendre le point de vue de l’utilisateur d’un web service en termes de gestion de version.&lt;br /&gt;&lt;br /&gt;Pour celui-ci la version d’un web service lui indique s’il existe des changements qui impactent son application et plus particulièrement le code de son application. Dans ce cas il devra réaliser des changements dans son application pour utiliser cette version de web service.&lt;br /&gt;&lt;br /&gt;En revanche l’utilisateur d’un web service dans une version particulière s’attend ce que celui-ci soit immuable dans le temps, il s’agit de la notion de contrat de service.&lt;br /&gt;&lt;br /&gt;Le contrat de service d’un web service s’engage à ne pas réaliser de changement sur :&lt;br /&gt;* Les messages de requête&lt;br /&gt;* Les messages de réponse&lt;br /&gt;* Le nom des opérations disponibles sur un service&lt;br /&gt;* Le nom du service lui-même&lt;br /&gt;* La localisation du service&lt;br /&gt;* La définition fonctionnelle d’une opération d’un web service&lt;br /&gt;* La définition fonctionnelle du web service&lt;br /&gt;&lt;br /&gt;Du point de vue de l’utilisateur d’un web service, si un changement dans le contrat de service se produit, il doit donner lieu à une nouvelle version du web service.&lt;br /&gt;&lt;br /&gt;Lors du déploiement d’une nouvelle version (n+1) d’un web service, celle-ci ne doit en aucun cas impacter la version courante (n) du web service. Ceci pour garantir tous simplement que les applications développées sur la base de la version n du web service continuent de fonctionner normalement.&lt;br /&gt;&lt;br /&gt;Les responsables des applications en interface avec un web service doivent être informés de l’existence d’une nouvelle version. Il sera alors de leur responsabilité de décider des actions à entreprendre du point de vue de leur application. Les actions possibles sont a priori :&lt;br /&gt;* Continuer à utiliser la version n du web service. Dans ce cas le responsable de l’application doit valider la durée de vie de celle-ci auprès du fournisseur de service.&lt;br /&gt;* Planifier une migration vers la nouvelle version n+1&lt;br /&gt;* Dans certains cas le responsable d’application peut décider de continuer à utiliser la version n du web service pour une partie de son application, et la version n+1 pour une autre partie. Ce cas peut se produire sur une application de taille importante composée de plusieurs modules dont les plannings de livraison sont très étalés dans le temps.&lt;br /&gt;&lt;br /&gt;Du point de vue de l’utilisateur d’un web service exposé par une application, le changement de version de l’application n’est pas une cause de changement de version des web services. Ce qui peut amener a des subtilités de gestion de version avec par exemple une application en version 10 qui exposerait un web service en version 1, ou même l’inverse…&lt;br /&gt;&lt;br /&gt;Une autre subtilité de l’approche par contrat de service est la correction d’un bug. Imaginons un web service qui expose une opération dont le résultat est faux. Le responsable de l’application qui fournit le web service réalise la correction de l’anomalie, et la met en service. Du point de vue de l’utilisateur du web service, celui-ci n’a pas changé de version (le contrat n’étant pas modifié) aucune modification ne sera nécessaire dans son application, mais les résultats seront justes. Ceci fait apparaitre la différence entre la gestion de version d’un web service (caractérisé par le WSDL et le contrat de service) et la gestion de version de l’implémentation d’un web service qui est caractérisée par la version des composants logiciel utilisés pour exposer un service dans une version donnée. La gestion de version de l’implémentation d’un web service ne doit pas être visible du consommateur, contrairement à la gestion de version du web service.&lt;br /&gt;&lt;br /&gt;&lt;a name="_Toc211139171"&gt;&lt;strong&gt;1.2 - Le point de vue du fournisseur des web service&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Du point de vue du fournisseur de web service la gestion de version d’un web service consiste principalement à assurer :&lt;br /&gt;&lt;br /&gt;* La gestion de version du contrat de service du web service, c'est-à-dire de mettre à disposition des consommateurs les moyens nécessaires pour identifier de manière unique :&lt;br /&gt;- la documentation technique et/ou fonctionnelle,&lt;br /&gt;- la localisation du service,&lt;br /&gt;- la version du service&lt;br /&gt;- la politique de gestion de l’obsolescence, qui doit identifier la manière dont les services mis à disposition dans une version donnée deviennent obsolètes, et ne seront plus maintenus. La conséquence directe pour le consommateur étant l’indisponibilité du service.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;* La gestion de version de l’implémentation d’un web service, consiste à identifier tous les éléments et moyens nécessaires au fonctionnement et à la maintenance d’un service dans une version donnée. Il s’agit principalement des éléments suivants :&lt;br /&gt;- Les composants matériels (serveur, infrastructure, etc.)&lt;br /&gt;- Les composants logiciels de type COTS comme par exemple le système d’exploitation, le compilateur, le serveur web, et la base de données.&lt;br /&gt;- Les composants logiciels développés sur mesure comme les codes sources, les librairies, et les fichiers de configuration&lt;br /&gt;&lt;br /&gt;La notion de maintenance dans le temps d’un service ne doit pas être prise à la légère. Il est effectivement très difficile d’intervenir en TMA sur un service développé il y a 3 ou 4 ans si la gestion de l’obsolescence n’a pas était prise en compte dans la gestion de version de celui-ci. Par exemple comment retrouver la version X d’un compilateur, ou comment installer de nos jours un poste de développement avec Windows NT 4.&lt;br /&gt;&lt;br /&gt;&lt;a name="_Toc211139172"&gt;&lt;strong&gt;1.3 - Les événements du cycle de vie logiciel et leurs conséquences sur la gestion de version d’un web service&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Durant le cycle de vie d’un logiciel un certain nombre d’événements peuvent ce produire. Certains de ces événements peuvent avoir des effets directs ou indirects sur la gestion de version d’un web service. Nous avons identifié ici un certain nombre d’événements classiques, puis pour chacun d’eux nous essayons d’identifier les conséquences en terme de gestion de version.&lt;br /&gt;&lt;br /&gt;Voici la liste des événements (probablement non exhaustive) que nous avons identifiés :&lt;br /&gt;* Correction de bug dans le fonctionnement de l’application&lt;br /&gt;* Correction de bug dans le fonctionnement interne d’un web service&lt;br /&gt;* Ajout d’une nouvelle opération&lt;br /&gt;* Ajout d’un nouveau type&lt;br /&gt;* Ajout d’un nouveau web service&lt;br /&gt;* Changement de version de l’application sans impact sur les contrats de service&lt;br /&gt;* Changement de version de l’application avec impact sur les contrats de service&lt;br /&gt;* Evolution de la définition fonctionnelle d’un web service&lt;br /&gt;* Evolution de la définition fonctionnelle d’une opération d’un web service&lt;br /&gt;* Changement d’un type de retour d’une opération&lt;br /&gt;* Changement d’un type utilisé en paramètre d’une opération&lt;br /&gt;* Evolution du modèle de données de l’application&lt;br /&gt;* Suppression d’une opération&lt;br /&gt;* Suppression d’un type&lt;br /&gt;* Suppression d’un web service&lt;br /&gt;&lt;br /&gt;&lt;a name="_Toc211139173"&gt;&lt;strong&gt;1.3.1 - Correction de bug dans le fonctionnement de l’application&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;&lt;br /&gt;&lt;/strong&gt;&lt;br /&gt;La correction d’un bug dans l’application ne doit pas être visible d’un point de vue du consommateur du service. Il n’y a donc pas de changement de version (voir également le cas 1.3.6).&lt;br /&gt;&lt;br /&gt;Il faut toutefois prendre les mesures nécessaires pour s’assurer que la correction effectuée n’aura pas d’effet indirect sur le fonctionnement du service.&lt;br /&gt;&lt;br /&gt;Changement de version : NON&lt;br /&gt;&lt;br /&gt;&lt;a name="_Toc211139174"&gt;&lt;strong&gt;1.3.2 - Correction de bug dans le fonctionnement interne d’un web service&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;La correction d’un bug dans le fonctionnement interne d’un web service correspond typiquement à la correction d’un résultat rendu par une opération.&lt;br /&gt;Ce type de correction ne doit pas donner lieu à une nouvelle version du service car du point de vue du consommateur le contrat de service n’a pas changé. En l’occurrence il est plutôt devenu juste, en se sens que l’opération répond après correction aux objectifs fonctionnels attendus de celle-ci.&lt;br /&gt;&lt;br /&gt;Le fait que la version du service ne change pas, n’implique pas que les consommateurs ne soient pas au courant de la correction de l’anomalie. Il est donc important que l’équipe projet communique sur le changement apporté, et sur les conséquences possibles.&lt;br /&gt;&lt;br /&gt;Changement de version : NON&lt;br /&gt;&lt;br /&gt;&lt;a name="_Toc211139175"&gt;&lt;/a&gt;&lt;a name="_Ref210650861"&gt;&lt;strong&gt;1.3.3 - Ajout d’une nouvelle opération&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;L’ajout d’une nouvelle opération sur un web service n’implique pas d’un point de vue technique de changement dans le code client existant. Effectivement le code client continue de fonctionner sans avoir connaissance de la nouvelle opération. Comme il n’a pas connaissance de cette nouvelle opération il ne peut pas l’utiliser. S’il désire utiliser cette nouvelle opération alors le code client devra être modifié.&lt;br /&gt;Il est donc techniquement possible de déployer une nouvelle opération sans donner lieu à une nouvelle version.&lt;br /&gt;&lt;br /&gt;Pour être puriste, l’ajout d’une nouvelle opération sur un web service constitue une évolution de la définition fonctionnelle d’un web service (voir cas 1.3.8), et donc doit être considéré comme une nouvelle version.&lt;br /&gt;&lt;br /&gt;Changement de version : OUI/NON&lt;br /&gt;&lt;br /&gt;&lt;a name="_Toc211139176"&gt;&lt;strong&gt;1.3.4 - Ajout d’un nouveau type&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;L’ajout d’un nouveau type est lié à l’ajout d’une nouvelle opération. Il reprend donc les éléments cités pour le cas 1.3.3.&lt;br /&gt;&lt;br /&gt;Ce nouveau type ne doit pas être utilisé dans des opérations existantes sinon il provoque le cas 1.3.10 ou le cas 1.3.11&lt;br /&gt;&lt;br /&gt;Changement de version : OUI/NON&lt;br /&gt;&lt;br /&gt;&lt;a name="_Toc211139177"&gt;&lt;strong&gt;1.3.5 - Ajout d’un nouveau web service&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;L’ajout d’un nouveau web service n’implique pas d’un point de vue technique de changement dans le code client existant. Effectivement le code client continue de fonctionner sans avoir connaissance de ce nouveau web service. Comme il n’a pas connaissance de ce nouveau web service il ne peut pas l’utiliser. S’il désire utiliser ce nouveau web service alors le code client devra être modifié.&lt;br /&gt;Il est donc techniquement possible de déployer un nouveau web service sans donner lieu à une nouvelle version.&lt;br /&gt;&lt;br /&gt;Pour être puriste, l’ajout d’un nouveau web service constitue une évolution de la définition fonctionnelle des web services d’un système (voir cas 1.3.8), et donc doit être considéré comme une nouvelle version.&lt;br /&gt;&lt;br /&gt;Changement de version : NON&lt;br /&gt;&lt;br /&gt;&lt;a name="_Toc211139178"&gt;&lt;/a&gt;&lt;a name="_Ref210719367"&gt;&lt;strong&gt;1.3.6 - Changement de version de l’application sans impact sur les contrats de service&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Dans le cas d’un déploiement d’une nouvelle version de l’application et si les modifications n’ont pas d’impact sur les web services, il ne doit pas y avoir changement de version des web services.&lt;br /&gt;&lt;br /&gt;Ce qui provoquera une différence de version entre la version de l’application en cours d’exploitation et la version des web services.&lt;br /&gt;&lt;br /&gt;L’équipe projet doit prendre les mesures nécessaires pour s’assurer que les changements apportés aux composants logiciels n’ont pas d’impact sur le fonctionnement des web service qui utilisent ces mêmes composants. Effectivement la modification des composants logiciels de l’application peut entrainer la nécessité de modifier le code d’implémentation des web services, mais de doit pas changer le comportement fonctionnel du web service.&lt;br /&gt;&lt;br /&gt;Changement de version : NON&lt;br /&gt;&lt;br /&gt;&lt;a name="_Toc211139179"&gt;&lt;strong&gt;1.3.7 - Changement de version de l’application avec impact sur les contrats de service&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Lorsque les changements survenus dans l’application sont nombreux ou fondateurs, il est certain que leurs conséquences seront la création d’une nouvelle version de web services.&lt;br /&gt;&lt;br /&gt;Dans ce cas il est important de prendre des mesures pour être capable de maintenir en exploitation la version n-1 des web services.&lt;br /&gt;&lt;br /&gt;Ces mesures peuvent être très couteuses en temps, voir même impossible. Par exemple comment maintenir la disponibilité d’une donnée exposée par le web service si celle-ci n’existe plus dans le modèle de données de l’application ?&lt;br /&gt;&lt;br /&gt;Changement de version : OUI&lt;br /&gt;&lt;br /&gt;&lt;a name="_Toc211139180"&gt;&lt;/a&gt;&lt;a name="_Ref210650924"&gt;&lt;strong&gt;1.3.8 - Evolution de la définition fonctionnelle d’un web service&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Une évolution fonctionnelle d’un web service implique nécessairement un changement de version car il y a changement dans le contrat de service.&lt;br /&gt;&lt;br /&gt;Changement de version : OUI&lt;br /&gt;&lt;br /&gt;&lt;a name="_Toc211139181"&gt;&lt;strong&gt;1.3.9 - Evolution de la définition fonctionnelle d’une opération d’un web service&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Une évolution fonctionnelle d’une opération d’un web service implique nécessairement un changement de version car il y a changement dans le contrat de service.&lt;br /&gt;&lt;br /&gt;Changement de version : OUI&lt;br /&gt;&lt;br /&gt;&lt;a name="_Toc211139182"&gt;&lt;/a&gt;&lt;a name="_Ref210650709"&gt;&lt;strong&gt;1.3.10 - Changement d’un type de retour d’une opération&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Un changement dans un type de retour d’une opération implique nécessairement un changement de version car il y a changement dans le contrat de service.&lt;br /&gt;&lt;br /&gt;Changement de version : OUI&lt;br /&gt;&lt;br /&gt;&lt;a name="_Toc211139183"&gt;&lt;/a&gt;&lt;a name="_Ref210650711"&gt;&lt;strong&gt;1.3.11 - Changement d’un type utilisé en paramètre d’une opération&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Un changement dans un type utilisé comme paramètre d’une opération implique nécessairement un changement de version car il y a changement dans le contrat de service.&lt;br /&gt;&lt;br /&gt;Changement de version : OUI&lt;br /&gt;&lt;br /&gt;&lt;a name="_Toc211139184"&gt;&lt;strong&gt;1.3.12 - Evolution du modèle de données de l’application&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Si une évolution du modèle de données se produit, et si ce changement est visible dans les types utilisés par un web service alors il doit y avoir un changement de version.&lt;br /&gt;&lt;br /&gt;Si l’évolution du modèle de données n’est pas visible alors, il n’est pas nécessaire de faire un changement de version.&lt;br /&gt;&lt;br /&gt;Changement de version : OUI/NON&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a name="_Toc211139185"&gt;&lt;strong&gt;1.3.13 - Suppression d’une opération&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;La suppression d’une opération sur un web service est équivalente au 1.3.8.&lt;br /&gt;&lt;br /&gt;Changement de version : cf. 1.3.8&lt;br /&gt;&lt;br /&gt;&lt;a name="_Toc211139186"&gt;&lt;strong&gt;1.3.14 - Suppression d’un type&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;La suppression d’un type sur un web service est équivalente au 1.3.8.&lt;br /&gt;&lt;br /&gt;Changement de version : cf 1.3.8&lt;br /&gt;&lt;strong&gt;&lt;br /&gt;&lt;/strong&gt;&lt;a name="_Toc211139187"&gt;&lt;strong&gt;1.3.15 - Suppression d’un web service&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;La suppression d’un type sur un web service est équivalente au 1.3.8.&lt;br /&gt;&lt;br /&gt;Changement de version : cf 1.3.8&lt;br /&gt;&lt;br /&gt;&lt;a name="_Toc211139188"&gt;&lt;/a&gt;&lt;a name="_Toc210636279"&gt;&lt;/a&gt;&lt;a name="_Ref210560017"&gt;&lt;strong&gt;2 - Implémentation par le projet de la gestion de version des web services&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;&lt;br /&gt;&lt;/strong&gt;&lt;br /&gt;La gestion de version des web services de est basée sur des mécanismes simples. En résumé la version d’un web service est identifiée par l’élément targetNamespace du contrat du web service [AGARWAL] [SUBBU1] [SUBBU2].&lt;br /&gt;Chaque version des web services est déployée sur un site web.&lt;br /&gt;Il existera donc à terme plusieurs sites web hébergeant les web services de dans différentes versions. Ce Mécanisme permet de garantir aux applications clientes consommatrices leur fonctionnement, indépendamment des évolutions des web service de .&lt;br /&gt;&lt;br /&gt;A aujourd’hui, il n’a pas été défini combien de versions seront maintenues dans le temps, ou quel sera l’événement déclencheur de l’abandon d’une version, ni même s’il un tel événement existera un jour.&lt;br /&gt;&lt;br /&gt;Il est certain que le nombre de versions maintenues devra être limité. En conséquence les applications clientes consommatrices devront évoluer d’une version x.x supprimée à la dernière version disponible.&lt;br /&gt;&lt;br /&gt;&lt;a name="_Toc211139189"&gt;&lt;/a&gt;&lt;a name="_Toc210636280"&gt;&lt;strong&gt;2.1 - Identification d’une version de web services&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;L’identification de la version d’un web service est disponible dans l’élément targetNamespace du WSDL.&lt;br /&gt;&lt;br /&gt;La codification retenue est la suivante : http://ws.lde:82/WebService/vX.m&lt;br /&gt;avec :&lt;br /&gt;v : une constante caractère pour identifier la version ici ‘v’ pour version&lt;br /&gt;X : est le numéro de version majeur&lt;br /&gt;m : est le numéro de version mineur.&lt;br /&gt;&lt;br /&gt;Voici un exemple de WSDL où la version des web services est identifiée comme étant la version 3.2.&lt;br /&gt;&lt;br /&gt;&lt;?xml:namespace prefix = wsdl /&gt;&lt;wsdl:definitions wsdl="http://schemas.xmlsoap.org/wsdl/" targetnamespace="http://ws.lde:82/WebService/v3.2" http="http://schemas.xmlsoap.org/wsdl/http/" soap12="http://schemas.xmlsoap.org/wsdl/soap12/" tns="http://ws.lde:82/WebService/v3.2" mime="http://schemas.xmlsoap.org/wsdl/mime/" soapenc="http://schemas.xmlsoap.org/soap/encoding/" tm="http://microsoft.com/wsdl/mime/textMatching/" soap="http://schemas.xmlsoap.org/wsdl/soap/" s="http://www.w3.org/2001/XMLSchema"&gt;&lt;br /&gt;&lt;br /&gt;…&lt;br /&gt;&lt;br /&gt;&lt;/wsdl:definitions&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a name="_Toc211139190"&gt;&lt;/a&gt;&lt;a name="_Toc210636281"&gt;&lt;strong&gt;2.2 - Localisation d’une version des web services&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Le targetNameSpace est également utilisé pour définir l’URL de déploiement d’une version donnée des web services de .&lt;br /&gt;&lt;br /&gt;Dans l’exemple ci-dessus le targetNameSpace est défini ainsi :&lt;br /&gt;targetNamespace="http://ws.lde:82/WebService/v3.2"&lt;br /&gt;&lt;br /&gt;En conséquence, le fichier WSDL qui contient cette définition indique :&lt;br /&gt;1. qu’il s’agit de la version V3.2 des web service&lt;br /&gt;2. que l’URL racine des web services de cette version est : http://ws.lde:82/WebService/v3.2&lt;br /&gt;&lt;br /&gt;Les URLs des web services sont donc : &lt;a href="http://ws.lde:82/WebService/v3.2/Test.asmx"&gt;http://ws.lde:82/WebService/v3.2/Test.asmx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a name="_Toc211139191"&gt;&lt;strong&gt;2.3 - Règles de gestion de version des web services&lt;/strong&gt; &lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Les règles de gestion de version des web services de ont été définies à partir de l’analyse menée précédemment. Celles-ci sont présentées dans le tableau présenté ci-après :&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;R1&lt;br /&gt;&lt;/strong&gt;Un changement du contrat de service d’un web service implique un changement de version du web service, et R0 doit être appliquée.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;R2&lt;/strong&gt;&lt;br /&gt;Un changement de version du web service implique la création d’un site web dédié au support de ce web service dans cette version, et R0 doit être appliqué.&lt;br /&gt;Les versions précédentes du web service restent disponibles sur leur propre site web.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;R3&lt;/strong&gt;&lt;br /&gt;Une correction d’anomalie dans l’application n’implique pas de changement de version du web service. Sauf si la correction a un impact direct sur le fonctionnement du web service.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;R4&lt;/strong&gt;&lt;br /&gt;Une correction d’anomalie dans un web service n’implique pas de changement de version du web service, sauf si la correction implique R1.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;R5&lt;br /&gt;&lt;/strong&gt;Une nouvelle version de l’application n’implique pas un changement de version du web service, sauf si la nouvelle version implique R1.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;R6&lt;br /&gt;&lt;/strong&gt;Le changement du modèle de données n’implique pas un changement de version du web service, sauf si le changement du modèle de données est visible dans les messages de données, ce qui revient à l’application de la règle R1.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a name="_Toc211139192"&gt;&lt;strong&gt;3 – Document de référence&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;AGARWAL&lt;br /&gt;&lt;/strong&gt;Versioning of web service interface, Anamika Agarwal, 06/04&lt;br /&gt;Cette thèse présente de manière exhaustive la problématique de la gestion de web services.&lt;br /&gt;&lt;a href="http://dspace.mit.edu/bitstream/handle/1721.1/28630/58917752.pdf;jsessionid=97E53C5C1D2CC9381C2F724FDF6B874C?sequence=1"&gt;http://dspace.mit.edu/bitstream/handle/1721.1/28630/58917752.pdf;jsessionid=97E53C5C1D2CC9381C2F724FDF6B874C?sequence=1&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;SUBBU1&lt;/strong&gt;&lt;br /&gt;Web services versionning part 1&lt;br /&gt;Web services versionning part1&lt;br /&gt;&lt;a href="http://www.subbu.org/blog/2004/12/web-services-versioning-part-1"&gt;http://www.subbu.org/blog/2004/12/web-services-versioning-part-1&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;SUBBU2&lt;/strong&gt;&lt;br /&gt;Web services versionning part 2&lt;br /&gt;Web services versionning part2&lt;br /&gt;&lt;a href="http://www.subbu.org/blog/2005/08/web-services-versioning-part-2"&gt;http://www.subbu.org/blog/2005/08/web-services-versioning-part-2&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11712011-4267339727600200177?l=fberton.blogspot.com'/&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://fberton.blogspot.com/feeds/4267339727600200177/comments/default" title="Publier les commentaires" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=11712011&amp;postID=4267339727600200177" title="0 commentaires" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/11712011/posts/default/4267339727600200177" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/11712011/posts/default/4267339727600200177" /><link rel="alternate" type="text/html" href="http://fberton.blogspot.com/2008/10/stratgie-de-gestion-de-version-des-web.html" title="Stratégie de gestion de version des web services (part 1)" /><author><name>Fred Berton</name><uri>http://www.blogger.com/profile/10034269858958675445</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd="http://schemas.google.com/g/2005" name="OpenSocialUserId" value="11092747229722354861" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11712011.post-4743220131494692281</id><published>2008-06-18T22:35:00.004+02:00</published><updated>2008-06-22T22:47:47.663+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="MOSS" /><title type="text">VSeWSS 1.2 et le support de Visual Studio 2008</title><content type="html">La version 1.2 de SeWSS est sortie, elle apporte enfin le support de Visual Studio 2008.&lt;br /&gt;Le lien de telechargement :&lt;br /&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=7bf65b28-06e2-4e87-9bad-086e32185e68&amp;amp;displaylang=en"&gt;http://www.microsoft.com/downloads/details.aspx?FamilyID=7bf65b28-06e2-4e87-9bad-086e32185e68&amp;amp;displaylang=en&lt;/a&gt;&lt;br /&gt;La version FR n'est pas encore disponible.&lt;br /&gt;Sinon il n'y a pas de nouveautés hormis le support de VS 2008.&lt;br /&gt;&lt;br /&gt;Pour mémoire VSeWSS = Visual Studio Extension pour Windows Sharepoint Services.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11712011-4743220131494692281?l=fberton.blogspot.com'/&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://fberton.blogspot.com/feeds/4743220131494692281/comments/default" title="Publier les commentaires" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=11712011&amp;postID=4743220131494692281" title="0 commentaires" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/11712011/posts/default/4743220131494692281" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/11712011/posts/default/4743220131494692281" /><link rel="alternate" type="text/html" href="http://fberton.blogspot.com/2008/06/vsewss-12-et-le-support-de-visual.html" title="VSeWSS 1.2 et le support de Visual Studio 2008" /><author><name>Fred Berton</name><uri>http://www.blogger.com/profile/10034269858958675445</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd="http://schemas.google.com/g/2005" name="OpenSocialUserId" value="11092747229722354861" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11712011.post-824545665137199629</id><published>2008-06-17T17:23:00.004+02:00</published><updated>2008-06-17T17:51:59.192+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="C#" /><category scheme="http://www.blogger.com/atom/ns#" term="DOTNET" /><title type="text">Création d'un fichier PDF par API, grace à iTextSharp</title><content type="html">iText# (iTextSharp) est le portage de la librairie open source iText écrite en Java en C#.&lt;br /&gt;Cette librairie permet de générer des fichiers PDF par API.&lt;br /&gt;&lt;br /&gt;Le site d’iTextSharp : &lt;a href="http://sourceforge.net/projects/itextsharp/"&gt;http://sourceforge.net/projects/itextsharp/&lt;/a&gt;&lt;br /&gt;Un tutorial en français : &lt;a href="http://itext.ugent.be/articles/iTextSharp.doc"&gt;http://itext.ugent.be/articles/iTextSharp.doc&lt;/a&gt;&lt;br /&gt;Le très bon site de tutorial et astuces (anglais) :  &lt;a href="http://itextdocs.lowagie.com/tutorial/"&gt;http://itextdocs.lowagie.com/tutorial/&lt;/a&gt;&lt;br /&gt;Il existe un livre, qui de faite est la bible :&lt;br /&gt;&lt;a href="http://www.amazon.com/dp/1932394796?tag=itisacatalofwebp&amp;amp;camp=14573&amp;amp;creative=327641&amp;amp;linkCode=as1&amp;amp;creativeASIN=1932394796&amp;amp;adid=1GSTB23N4QZGGGNKY5MD&amp;amp;"&gt;http://www.amazon.com/dp/1932394796?tag=itisacatalofwebp&amp;amp;camp=14573&amp;amp;creative=327641&amp;amp;linkCode=as1&amp;amp;creativeASIN=1932394796&amp;amp;adid=1GSTB23N4QZGGGNKY5MD&amp;amp;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Un exemple simple de mise en œuvre.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;using System;&lt;br /&gt;using System.IO;&lt;br /&gt;using iTextSharp ;&lt;br /&gt;using iTextSharp.text ;&lt;br /&gt;using iTextSharp.text.pdf ;&lt;br /&gt;&lt;br /&gt;namespace TestiText&lt;br /&gt;{&lt;br /&gt;    class Program&lt;br /&gt;    {&lt;br /&gt;        static void Main(string[] args)&lt;br /&gt;        {&lt;br /&gt;            Document pdfDoc = new Document();&lt;br /&gt;&lt;br /&gt;            try&lt;br /&gt;            {&lt;br /&gt;                PdfWriter.GetInstance (pdfDoc, new FileStream("fichier.pdf", FileMode.Create));&lt;br /&gt;                pdfDoc.Open();&lt;br /&gt;&lt;br /&gt;                int inblig=100;&lt;br /&gt;                int inbcol=5;&lt;br /&gt;                PdfPTable tableau = new PdfPTable(inbcol);&lt;br /&gt;                tableau.HeaderRows = 1; // La premiere ligne du tableau est egalement le titre&lt;br /&gt;&lt;br /&gt;                // Creation du titre&lt;br /&gt;                for (int icol = 0; icol &lt; inbcol; icol++)&lt;br /&gt;                    tableau.AddCell(String.Format("COL {0}", icol));&lt;br /&gt;&lt;br /&gt;                // Creation d'un tableau de 5 colonnes avec 100 lignes&lt;br /&gt;                // pour faire un test sur le titre lors d'un changement de page&lt;br /&gt;                for (int ilig = 0; ilig &lt; inblig; ilig++)&lt;br /&gt;                    for (int icol = 0; icol &lt; inbcol; icol++)&lt;br /&gt;                        tableau.AddCell(String.Format("CELL {0}.{1}",ilig,icol));&lt;br /&gt;&lt;br /&gt;                // Ajout du tableau dans le document&lt;br /&gt;                pdfDoc.Add(tableau);&lt;br /&gt;&lt;br /&gt;                // Ajout de paragraphe dans le document&lt;br /&gt;                for (int i = 0; i &lt; 200; i++)&lt;br /&gt;                    pdfDoc.Add(new Paragraph("Paragraphe N° "+i.ToString()));&lt;br /&gt;            }&lt;br /&gt;            catch (DocumentException de)&lt;br /&gt;            {&lt;br /&gt;                Console.WriteLine("error " + de.Message);&lt;br /&gt;            }&lt;br /&gt;            catch (System.IO.IOException ioe)&lt;br /&gt;            {&lt;br /&gt;                Console.WriteLine("error " + ioe.Message);&lt;br /&gt;            }&lt;br /&gt;           &lt;br /&gt;            pdfDoc.Close();&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt; &lt;/span&gt;&lt;a href="http://itextsharp.sourceforge.net/"&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11712011-824545665137199629?l=fberton.blogspot.com'/&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://fberton.blogspot.com/feeds/824545665137199629/comments/default" title="Publier les commentaires" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=11712011&amp;postID=824545665137199629" title="0 commentaires" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/11712011/posts/default/824545665137199629" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/11712011/posts/default/824545665137199629" /><link rel="alternate" type="text/html" href="http://fberton.blogspot.com/2008/06/cration-dun-fichier-pdf-par-api-grace.html" title="Création d'un fichier PDF par API, grace à iTextSharp" /><author><name>Fred Berton</name><uri>http://www.blogger.com/profile/10034269858958675445</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd="http://schemas.google.com/g/2005" name="OpenSocialUserId" value="11092747229722354861" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></entry></feed>
