Je suis développeur Web .NET pour une petite organisation. Nous avons quelques développeurs qualifiés ici, mais ce que nous n'avons pas, c'est quelqu'un qui a travaillé pour des grands magasins de logiciels plus organisés. Nous faisons bien, mais je me trouve à vouloir mieux structurer mon code avec peu de place pour obtenir des conseils.Utilisation pratique de l'architecture N-Tier
Il s'agit de cela. À un moment donné, quelqu'un de notre organisation a décidé que nous allions utiliser les services Web chaque fois que nous devions accéder à des données, peu importe le cas. Ainsi, notre architecture matérielle est organisée de manière à ce que nous puissions accéder à nos bases de données. Cela semble bien en théorie, mais le problème est la plupart de nos applications tournent comme ceci:
mess spaghetti de code dans le aspx.cs -> Service Web qui ne fait rien appeler un procédure stockée
Au-delà il n'y a pas beaucoup de séparation. Chaque fois que je commence à essayer de rechercher de meilleures pratiques structurelles, je finis par lire des choses comme des injections de dépendance, des propriétés sales et des usines de classe, ma tête commence à nager et je passe à autre chose de frustration.
Voici un exemple de base de mes interrogations. Alors disons que je dois faire une page pour sélectionner les employés d'une liste, les éditer, et mettre à jour la base de données. Est-il préférable que le service Web renvoie un objet Employee sur un get et accepte un objet Employee sur une mise à jour? Ou vaut-il mieux que l'objet Employee appelle le webservice pour se remplir lui-même?
En d'autres termes: Employé emp = svc.GetEmployee (42); vs Employé emp = nouvel employé (42);
Le deuxième exemple semble être une meilleure organisation pour les mises à jour (mettre à jour les propriétés pertinentes et appeler emp.Update()), mais le problème est que faire si j'ai besoin d'une liste des employés? Il serait incohérent de faire Employee emp = new Employee (id); pour un employé singulier, mais faites svc.GetAllEmployees() pour une liste.
Je sens que je suis un peu décousu, donc je vais cesser d'essayer d'expliquer et espère que quelqu'un comprend ma confusion. J'apprécie tous les conseils que tout le monde peut offrir. Merci!
Merci pour votre réponse très complète! Dans de nombreux cas, nous menons de petits projets secondaires qui ne se chevauchent pas beaucoup. La plupart de notre code d'application croisée (accès à Active Directory, accès au serveur d'échange) se trouve dans les services Web et bien que nous n'utilisions aucun bus de service, nous partageons au moins les informations de cette façon. Merci encore. – Landon