begin process at 2010 02 10 03:05:25
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Applications

 > GESTION BASE DE CONNAISSANCE / CONCEPTION 3 TIERS

GESTION BASE DE CONNAISSANCE / CONCEPTION 3 TIERS


 Information sur la source

Note :
Aucune note
Catégorie :Applications Source .NET ( DotNet ) Classé sous :conception, 3 tiers, base connaissance, service Niveau :Initié Date de création :10/12/2007 Date de mise à jour :13/12/2007 13:57:39 Vu / téléchargé :7 030 / 699

Auteur : thiosyiasar

Ecrire un message privé
Ce membre participe au partage de revenus publicitaires
Commentaire sur cette source (2)
Ajouter un commentaire et/ou une note


 Description

Cliquez pour voir la capture en taille normale
Bon comme le commentaire est un peu loin, j’ai fait un petit sommaire

L’APPLICATION
Description de l’application

INSTALLATION
Comment l’installer et la tester

DESCRIPTION DE LA CONCEPTION
Le titre parle de lui même

CONCLUSION
Idem

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


L’APPLICATION

Voici une petite application permettant de gérer des fiches de connaissance

Ces fiches on un titre et un contenu au format RTF et peuvent être relié à différents critères.

Les critères sont organisés hiérarchiquement :

Par exemple :

Technologie
+--Web
   +--Asp
   +--Ajax
Langages
+--C#
+--Javascript
Framework
+--Net 1.1
+--Net 2.0

Pour exemple, je veux ajouter une petite source qui concerne une page web asp.net 2.0 en c#. Ma fiche sera donc reliée aux critères suivants :

* Technologie\Web\Asp
* Langages#
* Framework\Net 2.0

Et donc aux critères parents : Technologie, Web, Langage, Framework.

Il est possible ensuite de faire une recherche avec comme critère :
- Le titre
- Le contenu
- Un ou plusieurs critères


INSTALLATION

Le projet devrait normalement fonctionner sans pb mais il vous faut :
- Créer une base SQLServer et y exécuter le script fournit.
- Définir la chaine de connexion dans le ficher app.config
- S’assurer que vous avez les droits sur les procédures stockées. (Les tables ne sont jamais accédées directement)

Ensuite il vous faudra créer des critères :
Menu Outil / Gérer les critères
Pour ajouter un critère (sélection le critère parent ou non puis Fichier | Ajouter (Ctrl+N) )
Une fois que la liste de critère vous convient, fermer le formulaire de gestion des critères.

Menu Fichier -> Nouveau (ou CTRL+N) permet d’ajouter une fiche
Ensuite vous pouvez tester la recherche : Menu Outils | Rechercher | Contenu

(Il est normal que certaines options de menu soient toujours désactivées étant donné que la fonction n’est pas encore développée).

Si vous modifiez la structure des critères alors qu’il existe déjà des fiches, vous pouvez lancer une procédure qui réorganisera les liens Contenu -> Critère en tenant compte que chaque critère liés, doit lier également ses parents.

En définissant TRY_CATCH comme symbole de compilation conditionnelle, vous activerez la gestion des exceptions, mais il peut être utile de le supprimer pour le débogage. (Propriétés du projet / Onglet Générer)

Pour info, tous les try catch sont dans les formulaires (ou rarement, dans le gestionnaire de formulaire). Si vous en trouvez d’autre dans la couche de donnés, les exceptions sont traités puis  retransmises à la couche supérieur via un ‘trow’.


DESCRIPTION DE LA CONCEPTION

L’application ne gère que 2 entités (Contenu et Critères) et la conception peut sembler un poil lourde pour gérer aussi peu, donc j’explique pourquoi :

J’ai voulu faire un essai d’architecture avant de me lancer dans une application qui gèrera plus de 50 entités. J’ai voulu me faire ce petit outil (que j’utilise) et en même temps tester cette conception.

Il y a quelques diagrammes de classe dans le projet et le document GIF qui donne une vision globale.

Dans le diagrame GIF les entités n’apparaissent pas sinon le schéma aurait comporté des liaisons dans tous les sens. Il faut savoir que les entités sont utilisées partout car elle transporte l’information de la couche de persistance à la couche de présentation.

Avant qu’on me dise, ‘pourquoi utiliser des entités et non les datasets’, je réponds que je suis contre, car trop lourd, trop liés à l’aspect base de données. Ha si… j’utilise les dataview pour retourner les résultats de la recherche  (dans ce cas, la collection d’entité est trop lourde)

Les entités utilisent le late binding. Cela signifie qu’on ne charge que l’entité et pas les entités dépendantes. .Si vous chargez une fiche (un contenu), les critères qui lui sont liés seront chargés uniquement si vous tenter d’y accéder.


L’application est une MDI avec un menu général.
Le menu concerne toujours la fenêtre qui a le focus. (SI aucune fenêtre n’est ouverte, le menu est grisé (sauf l’option ‘quitter’…)

Les options du menu sont activées suivant la fenêtre active et les interfaces qu’elle implémente (IFrmMenuFile, IFrmMenuEdit ou IFrmMenuTools).

Lors d’un clic sur un élément de menu, mainMdiForm  appel le manager pour afficher un éditeur d’instance, un éditeur en arbre, ou un formulaire de recherche. (IFrmEditorInstance, IFrmEditorTree, IFrmSearch)

Le FormManager gère l’affichage et fait en sorte de dialoguer avec le formulaire. Il est la passerelle entre les formulaires et les services d’accès aux données.

Le ProcessManager est un peu particulier, il utilise un backgroundworker lancer le traitement de réorganisation des liens Contenu / Critère (vu précédement pour ceux qui lisent tout…)

Les services sont des classes statiques (sans état). Elles fournissent à la couche de présentation l’accès aux données via des entités, ou des Dataview pour les résultats de recherche.
Les services se charge de vérifier que l’appel est viable et appel les méthodes appropriés pour obtenir ou gérer les données. (C’est ici que l’on place les règles métier, mais le métier pour cette application est assez.. inexistant….)

Les services interrogent le DataProvider qui fournit l’implémentation de l’accès aux données via des interfaces IDBContent, IDBCriteria

Ici ces interfaces sont implémentées pour SqlServer. (c’est paramétrable dans le fichier de config mais seul l’implémentation SqlServer exite). Si vous avez d’attaquer une autre base, il suffira d’implementater les interfaces (IDBContent, IDBCriteria, IDBContentCriteria)



 Conclusion

L’application est en winform, mais je pense travailler sur une autre couche de présentation en asp.net, enfin ca dépendra du temps…., peut etre un web service…  Si il y a de la demande….


N’hésitez pas à m’envoyer des remarques sur le fonctionnement de l’appli, mais j’attends plutôt des commentaires sur la conception.

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Historique

13 décembre 2007 13:53:50 :
Correction du bug lors de la suppression d'un critères ayant des critères enfants. Pb de rafraichissement de l'afficahge en cas d'erreur.
13 décembre 2007 13:57:39 :
Correction du bug dans le controle utilisateur EntityTreeView, lors de la suppression d'un critère ayant des critères enfant.

 Sources du même auteur

Source .NET (Dotnet) COMPILATION ET RÉFLECTION
Source avec Zip Source .NET (Dotnet) GÉNÉRATEUR DE DOCUMENTATION (LIB POUR RÉFLECTION ET XMLDOC)
Source avec Zip Source avec une capture Source .NET (Dotnet) PARSER HTML
Source avec Zip Source avec une capture Source .NET (Dotnet) GÉNÉRATEUR DE SCRIPT SQL DE DONNÉES
Source avec Zip Source avec une capture Source .NET (Dotnet) EXPLORATEUR D'ASSEMBLY DANS UN TREEVIEW

 Sources de la même categorie

Source avec Zip Source avec une capture Source .NET (Dotnet) RECHERCHE ET GESTION DE FICHIERS PERSONNALISÉES par JeremyLecouvert
Source avec une capture DEFORMÉE D'UNE POUTRE par keiz
Source avec Zip Source avec une capture OUTLOOK RESILIENCY CLEANER par Safti
Source avec Zip Source avec une capture Source .NET (Dotnet) COLORCOMBOBOX, COMBO BOX PERMETTANT DE SÉLECTIONNER DES COUL... par manshivas
Source avec Zip Source avec une capture Source .NET (Dotnet) YREGEXTER - THE REGEX TESTER par pysco68

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture Source .NET (Dotnet) GESTION DES SERVICES WINDOWS par boutemine
Source avec Zip Source avec une capture Source .NET (Dotnet) QUICK DEPLOY SERVICE par bernie666
Source avec Zip Source avec une capture Source .NET (Dotnet) [.NET 3.0] WF: EXEMPLE DE COMMUNICATION HÔTE INSTANCE par azra
Source avec Zip Source .NET (Dotnet) EXTINCTION D'UN PC EN FONCTION DU RÉSEAU par Bidou
Source avec Zip Source avec une capture Source .NET (Dotnet) SERVICE EN LIGNE DE COMMANDE (ET EXEMPLE SMTP) par Warny

Commentaires et avis

Commentaire de TheSaib le 13/12/2007 01:54:47 administrateur CS

C'est propre, plutôt bien foutu, et commenté.

C'est agréable à lire.

Merci.

Commentaire de thiosyiasar le 13/12/2007 12:15:49

Salut TheSaib,

Merci pour ton commentaire :)
Bon je suis sure que tu peux etre un peu plus critique?

Il n'y a rien qui te gène dans la conception ? Il y a forcément quelques trucs qui aurait pu etre mieux fait.
Par exemple j'ai encore un doute sur le late bingind des entités...
L'entité est juste un conteneur, donc pas de méthodes (bon a part la surcharge de ToString() ), pas d'appel de méthodes vers d'autres classe. Ce qui me pose un pb pour la gestion du latebinding. On est obligé d'appelé un service pour s'assuer que les référence sont bien chargées (ContentService.EnsureReferencesLoaded()). Je ne trouve pas cela trés 'open'.

T'en penses quoi?

A+

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Web Service C# et *.asmx [ par kbumbazz ] Salut g fé un nvo projet C# Web Serice et g vu ke ca fé un HelloWorld donc il disent de faire F5 et ca lance en fait IE ki va chercher mon http://loca stockage de session [ par t1Kiet ] Bonjour.J'utilise 1 web form qui appelle un web service. Dans la session de ce web service je stocke des objets. Mon pb est qu'à chaque appel d'1 méth ecrire un service sous w2k serveur [ par albubu ] Bonjour,j'utilise les fichiers de la MSDN afin de faire un service à partir d'un programme en C. Il s'agit de deux fichiers qui comprennent toutes les Requete XML sur service PDS pour project server [ par elrick23 ] Voilà je suis confronté au manque de doc de Micsoroft pour les requetes sur le service PDS du Project Server.Il s'agit des ajouts de tâches dans un pr Web Service - Compression XML [ par zerpoi ] Le XML c'est bien. Mais un peu lourd pour le réseau ...Je sais qu'il existe un moyen de placer un filtre de compression sur le web service, du style g Pb Web Service type de donné... [ par DJCODEKILLER ] Bonjour à tousJe suis en train de développer un service web sous Visual Studio en C#.J'utilise le protocole HTTP GETla methode de mon web service me Service Web : Serveur en C# - Client en PHP. Possible?? [ par pete87150 ] Bonjour a tous,Je voudrais savoir s'il est possible de créer un service web avec un serveur en C# et un client en PHP.Je pense à l'utilisation de NuSO Web Service+rs232 [ par fryounet ] Bonjour ,Voici mon problèm : j'aimerais accéder à périphérique qui est connecté par port rs232 ,par un Web service.tout d'abord j'aimerais savoir si c Pb web service en c# [ par judepom ] Bonour, cela fait un mois que je m'intéresse aux technologies des web services principalement sous dotnet en c#.Je dois en ce moment récupérer un wsd Comment creer un service en C# [ par crack_xp ] Bonjour,je voudrai savoir est ce que j ai besoin d'un composant pour creer des services sous windows XP ou pas?et comment faire, merci d'avanceFINAL F


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,952 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales