05/11/09

C# supprimer les accents d'une chaine

La formule magique :
string text = "éàéö";
System.Text.Encoding.ASCII.GetString(System.Text.Encoding.GetEncoding(1251).GetBytes(text))

L'explication du code sur :
http://www.clt-services.com/blog/post/Enlever-les-accents-dans-une-chaine-(proprement).aspx

29/10/09

Serialisation/deserialsation de données XML avec WCF DataContractSerializer

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.

[DataContract]
public class Person
{
[DataMember]
public string Nom {get;set;}
[DataMember]
public string Prenom { get; set; }
[DataMember]
public int Age { get; set; }
}


Serialisation de données
FileStream writer = new FileStream(@"c:\temp\test.xml", FileMode.Create);
DataContractSerializer ser = new DataContractSerializer(typeof(List));
ser.WriteObject(writer, lstPers);
writer.Close();

Desrialisation de données 
FileStream reader = new FileStream(@"c:\temp\test.xml", FileMode.Open);
DataContractSerializer ser = new DataContractSerializer(typeof(List));
lstPers = (List)ser.ReadObject(reader);
reader.Close();

Lire des données dans Excel avec ADO.NET

L'exemple de code ci dessous permet de lire les données d'une feuille (Feuil1) dans un fichier Excel (Classeur1.xls).
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.

string connectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\\temp\\Classeur1.xls;Extended Properties=""Excel 8.0;HDR=YES;""";
            DbProviderFactory factory = DbProviderFactories.GetFactory("System.Data.OleDb");
            using (DbConnection connection = factory.CreateConnection())
            {
                connection.ConnectionString = connectionString;
                using (DbCommand command = connection.CreateCommand())
                {
                    command.CommandText = "SELECT nom,prenom,age FROM [Feuil1$]";
                    connection.Open();

                    lstPers = new List();
                    using (DbDataReader dr = command.ExecuteReader())
                    {
                        while (dr.Read())
                        {
                            double d = dr.GetDouble(dr.GetOrdinal("age"));
                            lstPers.Add(new Person(dr["nom"].ToString(), dr["prenom"].ToString(), (Int32)d ));
                        }
                    }
                }
            }

05/10/09

WCF, charger dynamiquement tout les services configurés dans system.serviceModel

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.
Ce code est inspiré par celui de Ingo Start ServiceHosts for all configured Services.
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
String sServicesAssembleName = appSettings.Settings["ServiceAssemblyName"].Value.ToString();
String sTypeName = String.Format("{0},{1}", srvElem.Name, sServicesAssembleName);
Voici le code complet :

// Get the configuration file.
System.Configuration.Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
System.Configuration.AppSettingsSection appSettings = (AppSettingsSection)config.GetSection("appSettings");
String sServicesAssembleName = appSettings.Settings["ServiceAssemblyName"].Value.ToString();
//Get the appSettings section.
ServiceModelSectionGroup SrvModel = (ServiceModelSectionGroup)config.GetSectionGroup("system.serviceModel");
foreach (ServiceElement srvElem in SrvModel.Services.Services)
{
String sTypeName = String.Format("{0},{1}", srvElem.Name, sServicesAssembleName);
Type typeService = Type.GetType(sTypeName);
if (typeService != null)
m_ListServiceHost.Add(new ServiceHost(typeService));
}

foreach (ServiceHost host in m_ListServiceHost)
{
host.Open();
}

27/09/09

Le coach PHP pour Visual Studio

Dans un post en début d'année 2009 (http://fberton.blogspot.com/2009/02/visual-studio-2008-ide-pour-php.html), je vous avez donnée le lien sur un plug'in Visual Studio pour faire du PHP.
Je viens de decouvrir, un coach pour la prise en main de ce plug 'in http://msdn.microsoft.com/fr-fr/vstudio/msdn.coach.vsphp.atelier1.aspx.
ça donne envi de faire du PHP...

16/09/09

Diagramme de classe WPF et .Net Framework 3.5

Voici deux urls pour trouver les diagrammes de classes du Microsoft .Net Framework 3.5 et de WPF.

26/06/09

J'ai décidé d'écrire mes posts avec un formalisme proche des celui des patterns

Problématique:
Le premier paragraphe a pour objectif de d'écrire la problématique de manière simple, et concise.

Pré-requis:
Les pré requis donne la liste des éléments nécessaire à la mise en place de la solution.

Solution:
La solution dans un style de rédaction le plus directe possible, pas de bla bla.

Explication détaillé:
Une explication sur la solution, le pourquoi, le comment.

Liens:
Des liens sur les informations qui m'ont servis a élaboré la solution.

Mon état d'esprit:
Je suis content de moi, ou pas. Ce paragraphe a pour objectif de d'écrire mon état esprit.

26/05/09

Wiki-OS : Un nouveau concept, l'OS Wiki

L'idée est simple développer un OS en mode Wiki.
Le projet est vraiment sympa, il permet de développer des applications en Microsoft .NET 3, avec WPF, etc...
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.
C'est géniale, pas besoins d'installer Visual Studio sur votre poste.
Le lien : WIKI-OS