MagicBuzz qui se remet au .NET, ça va être bô tiens ! [C#] - C#/.NET managed - Programmation
Marsh Posté le 06-01-2005 à 21:36:06
Moi je fais pareil, un projet par Layer. Et chaque Layer doit offrir un bon niveau d'abstraction, comme ça si un Layer devait changer, pas besoin de changer les autres.
Marsh Posté le 08-01-2005 à 19:03:37
Pareil pour moi : Data Layer / Business Layer / Presentation Layer (avec parfois un Business Facade en plus, mais c'est rare)
Marsh Posté le 08-01-2005 à 23:24:51
OK, merci. C'est pour le moment ce que j'ai donc choisi, et ça m'a l'air de ne pas poser de problème (sauf de compilation, je comprends pas : une fois sur deux il perd les références entre les projets et c'est très lourd )
PS: merci au modérateur qui s'est chargé du nettoyage
Sinon, pour entrer dans l'idée de FlorentG, qu'est-ce qu'on peut faire d'autre comme architecture ?
Marsh Posté le 08-01-2005 à 23:27:38
ben tu pourrais rajouter encore un tier de plus, pour la deconne
Marsh Posté le 09-01-2005 à 21:45:59
Arjuna a écrit : OK, merci. C'est pour le moment ce que j'ai donc choisi, et ça m'a l'air de ne pas poser de problème (sauf de compilation, je comprends pas : une fois sur deux il perd les références entre les projets et c'est très lourd ) |
Je te recommande l'achat d'un bouquin sur les design pattern / achitectural pattern, tu y verras certainement plus clair qu'avec 3 explications données à la va vite sur un forum anti ms
Marsh Posté le 10-01-2005 à 00:31:49
par exemple le tres bon Patterns of Enterprise Application Architecture de Martin Fowler
(et bah ouais, les 3 layers, persistence/business/presentation, classique quoi )
Marsh Posté le 10-01-2005 à 14:01:54
Bon, tout à l'heure je vais aller voir la direction de ma boîte pour acheter des bouquins C#.
Je vais donc demander l'achat de celui-ci.
Mais d'un point de vue purement développement (orienté ASP.NET) vous me conseillez quoi ?
Si possible un bouquin "référence", c'est à dire que je ne suis pas plus emballé que ça par un bouquin qui propose le développement d'une appli pas à pas, mais plutôt un qui reprend chaque élément du SDK point par point, avec une explication et des exemples conrets de leur utilisation (pas seulement "ça fait ça et voici la syntaxe" ).
J'aimerais en fait, dans la démarche quelquechose qui ressemble à l'aide de SQL Server. Voici un article pour exemple :
Code :
|
=> On a le détail de la syntaxe, dont chaque élément est convenablement détaillé.
=> On a ensuite une explication technique et théorique de l'instruction avec des Tips d'utilisation (limitation, etc.)
=> Des explication sur des fonctionnalités dérivées (ici, les "transactions marquées" )
=> Des exemples de l'instruction, permettant de se rendre compte du fonctionnement, et prévoir les erreurs possibles.
Personnellement, je trouve très clair ce genre d'explications, et j'y suis très habitué. Si on n'a pas toujours une vision globale de l'implémentation des éléments, au moins on les comprends correctement de façon unitaire, ce qui me semble le plus intéressant. Je n'aime pas les exemples de 3 pages auxquels on ne comprend pas un traître mot.
Marsh Posté le 10-01-2005 à 14:04:16
y'a bien un genre de javadoc pour c# non ?
Marsh Posté le 10-01-2005 à 14:10:21
Chais pas, moi ça n'a jamais marché.
Et de toute façon, en plus de l'aide MSDN (que je ne désepère pas de réussir à installer un jour ) je préfèrerais un bouquin, on peut le potasser sans être derrière son écran.
Marsh Posté le 10-01-2005 à 14:13:18
conseil pour le bouquin : n'achete pas celui de Leblanc, il a juste traduit msdn
Marsh Posté le 10-01-2005 à 14:15:04
euh, d'accord, je le note mais sinon, j'achète quoi du coup
Marsh Posté le 10-01-2005 à 14:17:55
Dans le temps, leblanc a fait de bon bouquins sur les produits borland et puis d'un coup il est devenu pro-microsoft !! mais son bouquin sur c# est a proscrire, il y a mieux... mais je saurait pas te dire quoi
Marsh Posté le 30-01-2005 à 01:19:01
en bouquin moi j'aime bien tout les bouquins des collection msPress, j'ai tout ceux sur asp.net en francais et celui que je prefere et de loin et celui de Richard Clark : formation à asp.net il est basique mais m'a permis d'apprendre ... sinon asp.net pas à pas et pas mal par contre il doit etre cher mais je m'en fous je l'ai pas payé (fallait aller au student club summit )
sinon pour de l'aide détaille du SDK, le MSDN c'est vraiment le pied si tu as VS.net il est installé d'office si tu l'as pas : vas sur http://hoshimi.codes-sources.fr/ dans une news j'explique comment l'avoir gratuitement et légalement ainsi qu'office.
Sinon un bon site pour apprendre : www.aspfr.com je réponds à quasi toutes les questions sur le forum, et généralement je réponds où il faut
Marsh Posté le 30-01-2005 à 01:52:21
Bon, j'ai pas tout lu, mais je tiens quand même à faire une remarque :
L'abstraction, les couches, tout ça c'est super pour la réutilisation et la maintenabilité, mais ça a un gros défaut.
Les développeurs ne réfléchissent plus à ce qu'il font et dans beaucoup de cas on se rend compte qu'ont fait de milliers de requêtes unitaires pour afficher 3 enregistrements !
Et qui c'est qu'on appelle après pour pondre la requête qui va rendre le truc utilisable ? C'est bibi, parce que plus personne ne sait écrire une requête un peu compliquée et surtout bien optimisée.
L'optimisation, ça ne se fait pas après, c'est au moment du design de la base et du Projet "database" qu'il faut y penser ! Sinon, on fini par être obligé de faire des trucs bien crado pour tenir la charge et les temps de réponses.
Mettre toute l'intelligence dans le Projet "business" est super beau d'un point de vue esthétique, mais à mon sens, choisir Oracle ou Postgres (ou un autre SGBD un peu évolué) et ne pas lui demander ce qu'il sait TRES bien faire est une vate connerie.
A+
Marsh Posté le 30-01-2005 à 12:40:30
Euh... Ben nous, toutes les requêtes on les mets dans la base hein !
Quand je parle de "l'inteligence" dans l'objet business, ce que je veux dire, c'est que c'est lui qui va s'occuper de savoir quels procédures stockées lancer en fonction des données qu'on est en train de traîter par exemple. Mais les traîtements sur les données en tant que tels sont exclusivement dans la base de données !
Marsh Posté le 30-01-2005 à 13:31:15
Ok, tout à fait d'accord avec ça.
Ca va mieux en le disant non ?
Marsh Posté le 30-01-2005 à 14:39:53
ben pour moi ça va tellement de soit que je pensais pas avoir besoin de l'indiquer
Marsh Posté le 30-01-2005 à 16:07:22
En fait, c'est ça qui ma fait un peur peur
Citation : Dans "business", je vais créer un objet "searchFilter" qui va permettre de faire des filtres et des tris sur les données du DataSet. |
Marsh Posté le 30-01-2005 à 16:10:47
Ben ça, c'est dans le cas d'un écran de recherche multi-critère. Au lieu d'écrire 25 proc stock pour traîter tous les cas, ou alors générer à la voler la requête dans la proc stock, je fais une unique recherche, qui prends par exemple le critère le plus restrictif, puis je fais les filtres subsidiaires dans l'objet.
Marsh Posté le 30-01-2005 à 16:36:31
C'est justement là que ça fini toujours par coincer.
Tout ça pour afficher les enregs par page de 5 avec une requête qui t'en ramène 10 000 ou 100 000... ( ben oui, des fois ça va très vite )
Il est souvent assez facile de réduire le nombre de requêtes paramétrables pour ne pas en écrire 25 ou 50 et surtout ne pas générer dynamiquement la requête, du moins dans une proc-stockée.
M'enfin je te dis ça, t'as l'air d'avoir compris ma "préocupation", c'est le principal
Marsh Posté le 06-01-2005 à 21:20:09
Un certain nombre d'entre vous connais déjà mon jeu en ligne "BuzzLand" (http://buzz.manga-torii.com).
Après 9 mois d'inactivité, j'ai envie de le faire un peu évoluer.
Il est en ASP.
J'ai deux choix :
- Soit je continue en ASP, et ça va me lourder, mais au moins je saurai faire.
- Soit je profite de ma motivation exceptionnelle de 5 minutes pour passer à une version en .NET, mais ça va guère plus me motiver, et vu que je saurai pas faire, je vais venir vous emmerder toutes les 5 minutes pour répondre à des questions cons.
Allez, on va tenter le .NET (de toute façon, j'en ai besoin pour le boulot).
Alors...
Au taff, on a déjà fait quelques sites et .NET, et les personnes qui ont bossé dessus ont opté pour une architecture multi-projet.
Ca m'a l'air assez usine à gaz comme truc pour lancer le projet, mais pour la suite, ça semble en effet une très bonne solution.
En gros, ça donne ça :
- Projet "principal" (projet Web). Il contient les pages ASPX, les controles ASCX ainsi que quelques classes templates.
- Projet "common". C'est un projet de class contenant des classes fourre-tout, style des constantes, des fonctions de transformation de chaîne, de date, etc.
- Projet "facade". C'est un projet de class contenant des classes générant des objets "tous faits".
- Projet "business". C'est un projet de class contenant tous les objets métier, c'est à dire ceux qui vont contenir "l'intelligence" du site.
- Projet "database". C'est un projet de class contenant des objets permettant d'accéder à la base de données.
"principal" est lié à "common" et "facade".
"facade" est lié à "common" et "business".
"business" est lié à "common" et "database".
"database" est lié à "common".
"common" n'est lié à aucun autre projet.
En gros, de ce quej'ai compris, mettons que je veuille faire une page de recherche sur le site.
Dans "database", je vais créer un objet "searchTable" avec des méthodes permettant de charger des données des tables voulues, et qui renverrons un DataSet.
Dans "business", je vais créer un objet "searchFilter" qui va permettre de faire des filtres et des tris sur les données du DataSet.
Dans "facade", je vais créer un objet "searchDisplay" qui va me générer des éléments HTML listant les données du DataSet filtré, avec les évènements nécessaires pour relancer des filtres ou une recherche.
Dans "principal", je ne fais qu'instancier un objet "searchDiplay" et l'afficher.
Est-ce que ça vous semble viable ?
Est-ce que vous avez des conseils "basic" pour faire un site facile à développer et maintenir ? (oui, je sais, j'achèterai un bouquin sur le C# un jour, j'ai déjà récupéré la MSDN en Français, on va voir ce qu'on peut trouver dedans)