2009-04-23 9 views
1

Wir erwägen eine zweistufige Anwendung. Später möchten wir das vielleicht in eine dreistufige Anwendung umwandeln. Gibt es ein Designmuster/Framework/Technologie, das hilfreich ist? Die Hauptgründe für die Berücksichtigung von zwei Ebenen sind:Zweistufige Anwendung später modifizierbar auf dreistufige Anwendung

1) Single-Low-End-Desktop-Maschine ist verfügbar, um die Anwendung auszuführen.

2) Derzeit nur Einzelbenutzer.

3) Die Anwendung muss an Remotestandorten ausgeführt werden, an denen keine Netzwerkverbindung besteht.

Unsere Idee besteht darin, die Anwendung als zwei Ebenen bereitzustellen, wo keine Konnektivität vorhanden ist, und sie als drei Ebenen zu verwenden, wo Konnektivität besteht.

+0

Eine Option, die mir in den Sinn kommt, ist die Verwendung von Silverlight/WPF + .NET (ADO.NET). Führen Sie dies als eigenständige Anwendung oder auf dem Server bereitgestellt aus. Gibt es Herausforderungen bei diesen Ansätzen? (Ich bin im Grunde eine Java - Person; nicht viel vertraut mit. NET - Technologien) –

Antwort

1

Sie haben nicht gesagt, was Ihre Entwicklungsplattform, so dass ich nehme an, .NET, die ich das mit meiner eigenen Erfahrung :-)

ich die gleiche Erfahrung beantworten kann, die ich dank gelöst auf die Flexibilität von .NET Remoting.

Beim Erstellen der Anwendung sollten Sie die Teile der Anwendung berücksichtigen, die Sie auf dem Server installieren würden, wenn sie theoretisch als Client-Serveranwendung implementiert wäre. Fügen Sie alle diese Klassen in eine separate Bibliothek ein und verknüpfen Sie Ihre Clientanwendung einfach direkt mit dieser Bibliothek.

Wenn Sie zum Client-Server wechseln möchten, können Sie dafür sorgen, dass diese Bibliothek von einem Windows-Server gehostet wird, und den Client und die Server entsprechend konfigurieren.

Natürlich lasse ich hier große Mengen an Details weg (MarshalByRef Objekte, serialisierbare Objekte, die große Anzahl von Möglichkeiten, wie Sie die Kommunikation konfigurieren können), und ich könnte über Funktionalität sprechen, die bereits überflüssig gemacht wurde von WCF.

Aber der Punkt ist, ist es durchaus machbar, die Geschäftslogik/Datenzugriffsebene in eine separate DLL zu isolieren, die von der Client-Anwendung gehostet wird, und dann später mit dem Wechsel zum Client-Server beschäftigen.

+0

Ich bin offen für jede Entwicklungsplattform (Microsoft Softstack - Silverlight/WPF/.NET, Flex/AIR, Swing/J2EE) –

+0

Eine andere Präferenz ist die Ausführung der Three-Tier-Anwendung als Web-basierte statt als Thick-Client. –

Verwandte Themen