Bonjour,
Je travaille sur une application ASP .NET comportant plusieurs pages et une base de données SQL Server.
L'essentiel du code C# se trouvait inclus dans les pages ASP, y compris les méthodes servant à la connexion à la base de données, la récupération des données sous forme de DataSet, le traitement des données et leur affichage dans des grilles. Pour améliorer et optimiser le fonctionnement, j'ai donc mis en place l'architecture suivante :
- Des objets Gestionnaires de Données servant à effectuer les traitements des objets métier sans être perturbés par les événements et PostBacks de la page. Pour récupérer les données, ces objets appellent les méthodes de la Business Layer,
- Une couche Business Layer recevant des datasets de la Data Access Layer et transformant les datasets en objets métier.
- Une couche Data Access Layer servant aux accès à la base de données (procédures stockées) et retournant des DataSet.
Chaque page comporte une référence vers un objet Gestionnaire de Données (sauvegardé en Session pour récupération lors des PostBacks).
Toutes les manipulations de données (y compris tris et filtres) sont effectuées par le Gestionnaire de Données à la demande de la page, et les Gestionnaires de Données fournissent à la demande de la page les données traitées sous forme de listes d'objets métier servant de DataSource à la GridView de la page.
Par exemple, la suppression d'un enregistrement effectué au niveau de la page s'effectue par :
Le but est d'accélérer le traitement des données et l'affichage des pages.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 protected void buttonDelete_Click(object sender, EventArg e) { Gestionnaire gestionnaireDonnees = Session["Gestionnaire"]; // récupération du Gestionnaire de Données gestionnaireDonnees.DeleteRecord(e.RecordIndex); // le gestionnaire de données supprime l'enregistrement de sa liste d'objets métier gridView.DataSource = gestionnaireDonnees.getData(); // le gestionnaire de données retourne la liste d'objets métier mise à jour }
J'envisage même d'effectuer des traitements multi-thread dans mes objets Gestionnaires de Données pour optimiser les traitements à effectuer et pouvoir fournir plus rapidement à la page la nouvelle DataSource de la GridView.
Je souhaiterais avoir vos avis et commentaires sur cette architecture, sachant que je n'ai pas la possibilité de me lancer dans des technologies telles que WCF, MVC ou autres.
Merci.
Partager