Calendrier

Novembre 2009
L M M J V S D
            1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30            
<< < > >>

Présentation

Recherche

W3C

  • Flux RSS des articles

Perso

Repository generator pour Enterprise Library 3.1 disponible sur Codeplex

repositorygenerator-.JPG

juste un mot pour dire que j'ai mis  en ligne sur Codeplex un outil permettant de générer pour Enterprise Library(3.1) les classes Repository,c'est à dire toute la couche d'accès aux données, en fait ce que l'o génére depuis Visual Studio avec Web Services Software Factory mais qui n'est pas disponible pour Enterprise Library

http://www.codeplex.com/entlibrepositorygen

et pour télécharger
http://www.codeplex.com/entlibrepositorygen/Release/ProjectReleases.aspx?ReleaseId=7221


si l'outil rencontre du succès peut être que je l'améliorerai et gérerais d'autres blocs(notamment le caching,la validation par attributs,..)

Par Romagny13
Ecrire un commentaire - Voir les 0 commentaires - Recommander

 Aperçu de mon projet

ClassDiagram2.jpg ClassDiagram3.jpg

 

  ClassDiagram6.jpg

Par Romagny13
Ecrire un commentaire - Voir les 0 commentaires - Recommander
Générateur de code – réflexion
 projet personnel
 
Il faut avouer que Microsoft frappe très fort avec C# 3.0 et Linq
Toutefois je suis toujours à la recherche de la solution « ultime » permettant de gérer ses données et avec Linq il y a encore trop de code à ajouter par soi –même
De plus il y a des inconvénients (qui peuvent aussi etre des avantages mais bon) comme :Le datacontext (pour Linq To SQL) et les classes se trouvent dans le même fichier
 
Je vais essayer de développer ma propre solution (générateur de code ) j’en avais déjà réalisé un (disponible sur CodeS-SourceS) mais beaucoup trop de contraintes n’étaient pas pris en compte, cela fait un moment que j’étudie un peu ce qui existe, je vais essayer de m’inspirer de ce qu’il y a de bon dans chaque et d’ajouter ma propre implémentation
-          La chaine de connexion et le provider seront définis dans un fichier de configuration
-          Le stockage des données dans une couche métier n’est vraiment intéressant que pour la consultation en local, évitant des appels au serveur, mais dès qu’il s’agit de faire une mise à jour (Ajout, modification, suppression) vers la base de données cette couche métier est plus un inconvénient qu’autre chose , mais il faut que je fasse attention car je m’expose à des références circulaires (surtout avec une architecture n-tiers) si on peut aussi facilement accèder à la couche métier qu’à la couche d’accès aux données
-          De plus et c’est dans la lignée du fait de ce que je viens de dire, stocker l’état des objets (avec notamment un rowstate ou EntityState par exemple) afin de pouvoir ensuite faire une mise à jour de plusieurs lignes d’un seul coup n’est pas un bien je pense, car on s’expose à beaucoup plus de chances d’avoir des erreurs et leur gestion est rendue plus complexe,mieux vaut essayer de mettre à jour dès qu’une ligne est modifiée, et en plus utiliser les transactions
-          Le mapping par l’intermédiaire de fichier Xml est mieux que le mapping par attribut . maintenant il faudrait que je gére la génération des requêtes dynamiquement, le risque d’erreur est augmenté par rapport au code en « dur »
-          L’utilisation d’une architecture n-tiers n’est pas forcément la meilleure solution car il vaut mieux pourvoir accéder à la fois à la couche métier (pour la consultation) et directement à la couche persistance pour la mise à jour de données, d’un autre côté cela signifie qu’il y aura plus de code dans la couche présentation
-          La gestion des valeurs nulles n’est pas forcément simple car même les nullables ne sont pas forcément adaptés, je devrai donc créer une structure s’en inspirant , car ils permettent d’avoir une valeur nulle mais une fois une valeur affectée il n’est plus possible de revenir à une valeur nulle
-          La gestion des clés aussi pose des problèmes , surtout les clés auto incrémentées (qui sont définis par le serveur et non l’application cliente) ce qui entraine des risques de générer des clés qui ne correspondent pas à la clé en base(même le dataset par exemple ne gère pas ce cas et il est très facile de le mettre en défaut), l’utilisation des unique identifiants pourrait être un début de solution
Bref il y a beaucoup de problèmes auxquels il faudrait que je trouve « la » solution , mais j’avance quand même et cela m’entrainera car peut etre que les outils que met en place Microsoft fera qu’ils seront la réponse à la gestion des données , il faut avouer qu’ils s’en rapprochent vraiment et qu’utiliser les requêtes Linq est un vrai plaisir
Si le projet arrive à terme, je le posterai sur Codeplex J
Par Romagny13
Ecrire un commentaire - Voir les 0 commentaires - Recommander
NET2CsGenXLinq – Générateur de code Linq To Xml
 
Je viens de poster ma petite application
permettant de générer du code Linq To Xml (à partr d’un fichier ou du presse-papier)
Son utilité si encore à l’heure d’aujourd’hui n’apparait pas trop, l’utilitaire permettra de générer facilement une structure complexe,
On pourra ainsi remplacer les valeurs par des variables ou même extraire certaines parties du code généré
Peut-être que j’améliorerais l’outil, avec la gestion des namespaces, des commentaires notamment
 
Donc le projet est disponible désormais sur CodePlex : http://www.codeplex.com/net2csgenxlinq

 

Linqgenerate.jpg

Par Romagny13
Ecrire un commentaire - Voir les 0 commentaires - Recommander
 Méthode  de travail rapide
Pour aller plus vite,pour etre plus efficace,pour savoir ce que l'on a exactement à faire et pour avoir une qualité optimale
Les tables de bases de données elles disposent d’un identifiant unique (clé primaire)
Les classes collections se basent sur un index, cet index ne correspond pas à un et un seul objet (ex : l’objet d’une collection de contacts à l’index 1 ne sera plus le même si par exemple on supprime le contact de cet index, à la différence d’une clé qui elle permettra toujours d’accéder à un unique objet identifié)
 
 
 
Lister l’ensemble des informations (pêle-mêle)
Partie Objets métiers
Ø On va obtenir un schéma en arbre
 
1 -Isoler les entités (ce qui sera une classe)
Lui affecter l’ensemble des propriétés (qui seront membres + property)
2 - Définir si c’est une classe qui aura plusieurs objets ou un seul
>définir une classe collection de la classe unitaire avec les méthodes accès à ses objets
(Load,Add,Update,Delete)
 
3-Définir les relations entre les classes (+ objet racine , on va obtenir un schçma en arbre)
Et la cardinalité > 0,1 > relier a une classe unitaire
n> relier a une classe collection
ajouter un accesseur dans la classe unitaire (ex : un contact a une collection de livres)
 
Format classe collection
using System;
using System.Collections.Generic;
using System.Text;
 
namespace TestProfondeurObjet.BObject
{
    public class ContactCollection : System.Collections.Generic.List<BObject.Contact>
    {
        public void LoadContacts()
        {
        }
        public void AddContact(int code,string name)
        {                   
        }       
        public void UpdateContact()
        {
        }
        public void DeleteContact()
        {
        }
       
    }
 
Format de la classe unitaire
Ø Chaque contact a une collection de «  livre »
using System;
using System.Collections.Generic;
using System.Text;
 
namespace TestProfondeurObjet.BObject
{
    public class Contact
    {
        // MEMBRES
        private int m_ContactCode;
        private string m_ContactName;
        private BObject.LivreCollection m_Livre;
 
        // CONSTRUTEURS
        public Contact()
        {
            this.Livre = new LivreCollection();
        }
        public Contact(int ContactCode, string ContactName)
        {
 
            this.ContactCode = ContactCode;
            this.ContactName = ContactName;
            this.Livre = new LivreCollection();
        }
 
        // PROPERTYS
        public int ContactCode
        {
            get
            {
                return m_ContactCode;
            }
            set
            {
                m_ContactCode = value;
            }
        }
        public string ContactName
        {
            get
            {
                return m_ContactName;
            }
            set
            {
                m_ContactName = value;
            }
        }
        public BObject.LivreCollection Livre
        {
            get
            {
                return m_Livre;
            }
            set
            {
                m_Livre = value;
            }
        }
     
    }
}
 
 
Partie Contrôleur
 
Le contrôleur ne doit avoir accès qu’aux objets racines par l’intermédiaire d’accesseurs
(ex : le contrôleur n’aura accès qu’a la collection de contacts et pas à la collection de livres du contact)
Mais aura toutes les méthodes d’accès pour tous les objets et sous-objets(ex : méthodes pour accès à la collection racine de contacts, mais également méthodes accès pour ajouter/supprimer/etc. des livres … à chaque contact)
 
Par Romagny13
Ecrire un commentaire - Voir les 0 commentaires - Recommander
Les meilleurs outils pour travailler
par “époque”
Époque VB6
VB6
> Visual basic 6
Office
VBA
Framework .NET 1.0/1.1
  -  C#1.0
> Visual studio.NET 2002/2003
> Sharp Develop 1.0/1.1
 
ASP.NET 1.0/1.1
> Visual studio.NET 2002/2003 + IIS ou serveur Cassiny
> Web Matrix
 
Office 2000/2003/XP
VBA
SGBD
Access 2003
SQL Server 2000
Framework .NET 2.0
VB8 - C#2.0
> Visual studio 2005 / VB Express / VC# Express
 
ASP.NET 2.0
> Visual Studio 2005 / VW Express
 
Office 2003/2007
VBA
VSTO
 SGBD
Access 2007
SQL Server 2005 (ou  2005 Express) + sql server management studio express
 
Framework 3.0 (winFx)
IU / présentation
> Suite Expression : Blend,Graphic Designer
WPF,WCF,WWF - VB8/9 , C#2.0/3.0
> Visual studio 2005 + extensions(SDK Windows, Framework 3.0,Orcas,Templates WPF WCF)
ASP.NET/ATLAS
> visual Studio 2005 + Atlas
+ Expression Web Designer
 
Par Romagny13
Ecrire un commentaire - Voir les 0 commentaires - Recommander

le tout Microsoft

Desktop :

VB6

-------------------------------------------------------------------

VB.NET 7

VB.NET 8

C# 2.0

C++/CLI

(J#.NET)

+ ironpython

 

XML , DTD/XML SCHEMA,DOM/SAX,XSL/XSLT

-------------------------------------------------------------------

 

WEB

ASP.NET 1.x (VB 7,C#)

ASP.NET 2.0(VB 8,C#2.0) >> http://www.asp.net/

ATLAS >> http://atlas.asp.net/

 

+ DHTML (HTML 4.0,JAVASCRIPT,CSS) ,XHTML, suite adobe(Flash 8, Fireworks,Photoshop,...)

XML

-------------------------------------------------------------------

SGBD

SQL SERVER 2000

SQL SERVER 2005 (+ express)

ACCESS 2007

MySQL (bientot mieux integré)

SQL >> Transact - SQL

------------------------------------

Outils de developpement :

Visual studio .NET 2003, 2005(express,professionnel,team suite,...)

> Express >> http://www.microsoft.com/france/msdn/vstudio/express/default.mspx

> Visual studio >> http://www.microsoft.com/france/msdn/vstudio

-------------------------------------

divers

EXPRESSION (web designer,interactive designer,graphic designer) >> http://www.microsoft.com/products/expression/en/default.mspx

VSTO >> http://msdn.microsoft.com/office/tool/vsto/

OFFICE >> http://openxmldeveloper.org/

SHAREPOINT >>

> http://www.microsoft.com/france/office/sharepoint/prodinfo/

> http://www.clubsps.org/default.aspx

blog (the mit's) >  http://blogs.developpeur.org/themit/

workflow + .NET 3.0 >> http://www.netfx3.com/

XNA - developpement jeux XBOX 360 et pc >> http://msdn.microsoft.com/directx/XNA/default.aspx

---------------------------------------

OS

windows 2000

Windows XP (familial,pro)

windows 2003 server

Windows Vista >> http://www.microsoft.com/france/windowsvista/default.aspx

 

-----------------------------------------------

MSDN

Accueil >> http://msdn2.microsoft.com/fr-fr/default.aspx

Library (français) >> http://msdn.microsoft.com/library/fre/

webcasts >> http://www.microsoft.com/france/msdn/webcasts/themes.mspx

Webcasts anglais >> http://www.microsoft.com/events/series/msdncodingbasics.mspx

E-Learning (SQL SERVER 2005, VISUAL STUDIO 2005, SECURITE) >> https://www.microsoftelearning.com/france/#visualStudio2005

DEVDAYS >> https://www.microsoft.com/france/msdn/devdays2006/default.mspx

MSDN Download et code center >> http://msdn.microsoft.com/downloads/

developper centers >> http://msdn.microsoft.com/developercenters/

articles VB >> http://www.microsoft.com/france/msdn/vbasic/ressources/articles.mspx

Exemples applications >> http://msdn2.microsoft.com/fr-fr/library/5ekc8at3.aspx

codes pour controls >> http://msdn.microsoft.com/library/fre/default.asp?url=/library/FRE/vbcon/html/vboricodeexamplesforwindowsformscontrols.asp

EXPRESSION >> http://www.microsoft.com/products/expression/en/default.mspx

XNA >> http://msdn.microsoft.com/directx/XNA/default.aspx

Microsoft Press >> http://www.microsoft.com/france/mspress/default.asp?url=/france/mspress/audience/dev/default.asp?

 

Sources

CodePlex >> http://www.codeplex.com/

SupInfo >> http://supinfo-projects.com/fr/

Windows forms >> http://www.windowsforms.net/Default.aspx?tabindex=4&tabid=49

codes sources >> http://www.codes-sources.com/

 http://www.java2s.com/Code/CSharp/CatalogCSharp.htm

 

Convertisseur VB - C#

http://www.dotnet-developpez.com/Convertisseur/

Chaines de connexions

http://www.connectionstrings.com/

Cerif Dotnet

http://www.certifdotnet.com/General/Layout.aspx

http://www.certifexpress.com/

 architecture pc >>

http://systeme.developpez.com/cours/#C1

 cours -tutos....

http://www.labo-dotnet.com/

 

 

 

Par Romagny13
Ecrire un commentaire - Voir les 0 commentaires - Recommander

Bonjour,

bienvenue sur mon blog

celui-ci sera consacré à l'actualité du développement .NET et Microsoft

 

Vous pouvez visité mon site perso >

http://membres.lycos.fr/romagny13/

 

A++

Par Romagny13
Ecrire un commentaire - Voir les 0 commentaires - Recommander
Créer un blog sur over-blog.com - Contact - C.G.U. - Rémunération en droits d'auteur - Signaler un abus