Forum: ASP.NET |
Thema:
Architekturfrage |
Von:
Stephan (
01.03.2005 21:51) |
Hallo,
ich habe eine Architekturfrage die sowohl ASP.NET und VB.NET betrifft. Meine Applikation besteht aus zwei Teilen, einer Webapplikation und einer Windowsapplikation.
In dieser Applikation gibt es einen DataAccessLayer, eine Bussineslogic und eben die zwei Anzeigeschichten, die sich die BLL und DAL teilen.
Und nun zu dem Problem dass ich in dieser Architektur habe:
In der Webapp verhält sich die Applikation so, dass die BLL und der DAL nur einmal in den Hauptspeicher des Webservers geladen werden und alle Benutzer teilen sich die gleichen BLL und DAL Objekte. Damit teilen sich die Benutzer auch die gleiche Verbindung zur Datenbank.
Das resultiert daraus, dass die Windowsapp eine konstante Verbindung zur Datenbank benötigt.
Leider kommt es dadurch in der Webapplikation ab und zu, zu kleinen Problemen mit der Datenbankverbindung.
Als ich noch mit ASP gearbeitet habe, war es eine der Grundregeln die Datenbank nach jedem Seiteaufruf zu schließen um zu viele Verbindungen und Probleme zu vermeiden. Leider ist mir das in diesem Zusammenhang nicht möglich, da ich, sobald ich die Verbindung trenne einem anderen Benutzer der Datenbank die Verbindung "vor der Nase" zumache.
Da ich davon ausgehe, dass ich nicht der erste bin, der eine verteilte Anwendung in einer n-tier Umgebung programmiert hat, würde ich gerne wissen wie man dieses Problem lösen kann.
Danke für jede konstruktive Antwort.
LG
Stephan
Betreff |
Von |
Datum |
|
|
Re: Architekturfrage
als dor regel connection sofort wieder zu schliessen gilt natürlich. In deinem Fall sollte der Client egal ob web oder win von der Connection nichts sehen.<br>Ein klarer Fall für den BL <br>ASP.NEt... |
|
|
|
|
|
Hannes
Preishuber
|
02.03.2005 13:30 |
|
|
Re: Architekturfrage
In diesem Fall übernimmt die BLL das Caching der gesamten benötigten Objektwelt. Diese Caches sind shared und somit wird die BLL nur einmal geladen und alle Teilen sich die Objekte.<br>Darum hab ich... |
|
|
|
|
|
Stephan
|
02.03.2005 13:41 |
|
|
Re: Architekturfrage
OK, sind gute gründe<br>aber offen bleibt wieso die Funktion die die Daten liest nennen wir sie loadDS nicht einfach das öffnen und schliessen macht. Als Rpckgabe erhälts du ein Dataset |
|
|
|
|
|
Hannes
Preishuber
|
02.03.2005 21:33 |
|
|
Re: Architekturfrage
S.G. Preishuber,<br>würde das meine Applikation nicht bremsen wenn ich vor jeder Datenbankabfrage die Datenbankverbinung öffne und danach gleich wieder schließe?<br><br>Ich habe nun an meiner Applikation... |
|
|
|
|
|
Stephan
|
15.03.2005 09:45 |
|
|
Re: Architekturfrage
Hallo Stephan,<br><br>zu 1<br>Nein es würde die Anwendungen nicht herunterbremsen, da in ADO .NET automatisch ein sogenanntes Connection Pooling läuft.... |
|
|
|
|
|
Tobi
Ulm
|
15.03.2005 11:45 |
|
|
Re: Architekturfrage
Hallo Tobi,<br><br>Da ich den Code meiner Applikation nur ungerne poste wollte ich fragen ob es möglich wäre, dass wir uns per Mail weiterunterhalten.<br>Könntest du mir deine Mailadresse... |
|
|
|
|
|
Stephan
|
15.03.2005 12:51 |
|
|
Re: Architekturfrage
Hallo Tobi,<br>ich hab mir nun Mal als Beispiel die Tracker Applikation von Windows Forms heruntergeladen und angesehen, wie dort die Datenbankverbindungen verwaltet werden.<br>Dort werden die... |
|
|
|
|
|
Stephan
|
15.03.2005 18:47 |
|
|
Re: Architekturfrage
Hi Stephan,<br><br>also generell ist die WinForms Tracker Anwendung ein gutes Beispiel für Windows Anwendungen. In Deinem Fall würde ich Dir eher empfehlen mal die Microsoft Applications Block for .NET... |
|
|
|
|
|
Tobi
Ulm
|
16.03.2005 09:38 |
|
|
Re: Architekturfrage
Danke schon Mal für die gute und schnelle Hilfe.<br>Wie du schon gesagt hast, habe ich nun in meinem DAL die ADO Klasse so umgeschrieben dass die Datenbankabfragen zwar über Shared Functionen ausgeführt... |
|
|
|
|
|
Stephan
|
16.03.2005 10:37 |
|
|
Re: Architekturfrage
Hi,<br><br>ich nochmal. Ich habe Dir ein paar links rausgesucht die Dir weiterhelfen... |
|
|
|
|
|
Tobi
Ulm
|
16.03.2005 10:14 |
|
|
Re: Architekturfrage
Danke ich werde mir das Mal ausführlich durchlesen.<br>Sollten dann immer noch Fragen meinerseits auftauchen werde ich mich vertrauensvoll an dich wenden, wenn das OK ist.<br><br>LG<br><br>Stephan |
|
|
|
|
|
Stephan
|
16.03.2005 10:40 |
|
|
Antworten
Vorsicht bei der Eingabe: Die Zeichen ' oder -- sind nicht erlaubt!