| 

.NET C# Java Javascript Exception

0
Hallo,
ich habe eine Anwendung zu entwickeln, die sowohl offline als auch online funktionieren soll.
Welche Möglichkeiten der Umsetzung kommen in Frage?
Welche Informationen sind wichtig, um die beste Möglichkeit herauszufinden?
News:
21.02.2011
rawe 1 2
5 Antworten
1
Die Antwort hängt natürlich stark davon ab, was sich hinter "eine Anwendung" verbirgt und welche Voraussetzungen an die Client-Plattformen gestellt werden können. Für eine einfache Implementierung von Tic-Tac-Toe für Windows-User könnte "nimm Silverlight" als Empfehlung reichen, das ganze kann aber auch schnell Stoff für eine mehrtägige Studie abgeben...

Auf jeden Fall zu stellende Fragen:
- Was genau bedeuten hier "online" und "offline"?
- Welche Client-Plattformen sind zu unterstützen - PCs und mobile Endgeräte, Betriebssysteme, Browser...?
- Soll die Anwendung online und offline genau gleich aussehen, oder sind unterschiedliche UIs akzeptabel oder sogar erwünscht (auch von Word gibt es ja online- und offline-Versionen..)?
- Sind zumindest teilweise unterschiedliche Code-Basen für die online- und offline-Version akzeptabel, oder muss es 100% der gleiche Code sein, der online und offline läuft?

Mögliche Umsetzungsvarianten mit .NET (ganz grob und garantiert nicht vollständig): Silverlight-Anwendung, XBAP-Anwendung, div. Mixe aus .NET-UI-Technologien bis hin zu einer reinen ASP.NET-Lösung, die offline in einem lokal installierten IIS läuft (nicht dass ich das empfehlen würde, aber so was ähnliches habe ich schon in Produktion gesehen...)

---

Ergänzung nach rawes Konkretisierung der Situation, mit Beschränkung auf .NET-Technologien:

Eine Option könnte ein Silverlight-UI sein, das per WCF mit Services kommuniziert, die im Online-Szenario auf dem zentralen Server liegen oder im Offline-Szenario lokal gehostet werden und auf die jeweilige DB zugreifen. Beim Self-Hosting von WCF-Diensten, die aus Silverlight heraus genutzt werden sollen, ist dieser Tipp zum Umgang mit cross-domain calls wichtig.

Eher der Vollständigkeit halber: wenn Euer Online-Szenario auch heißen könnte "Anwendung ist irgendwie über den Internet Explorer und evtl. Firefox erreichbar" dann käme auch eine WPF-XBAP-Anwendung in Frage. Ist aber eher ein "wird über den Browser deployed" als ein "läuft im Browser" und kommt deshalb für Euch vermutlich nicht in Frage. Auch hier würde man den "Server" im Offline-Fall lokal hosten.

Ansonsten bleibt aus meiner Sicht nur, ASP.NET im Offline-Fall lokal zu hosten oder zwei unterschiedliche UIs zu pflegen, wobei ein Framework wie das von Willi Pasternak vorgeschlagene XAF helfen könnte.
21.02.2011
Matthias Hlawatsch 13,2k 4 9
0
Vielen Dank für die Antwort!

Online bedeutet: Die Anwendung wird z. B. mit ASP.NET entwickelt und läuft auf dem Server.
Offline bedeutet: Für Installation und Betrieb ist keine Internetverbindung erforderlich (Verteilung über CD-ROM).

Client-Plattform sind Windows-PCs, alles andere wäre "nice to have".
Es sollen alle gängigen Browser unterstützt werden, z.B. ab IE8 und Firefox 3.

Die Anwendung sollte online und offline möglichst gleich aussehen, eine Abweichung ist aber zulässig. Das UI enthält ca. 100 - 150 Controls (u. a. zahlreiche Textfelder), so dass eine gemeinsame Oberfläche für beide Welten den Erstellungs- und Wartungsaufwand deutlich reduzieren würde.

Die Geschäftslogik muss für beide Plattformen grundsätzlich die gleiche sein, wie weit Anpassungen an die Zielplattform erforderlich sind, ist noch zu klären.

Die Anwendung soll mit einer SQL-Server-Datenbank zusammenarbeiten. Eine Synchronisierung der offline-Version mit einer Server-Datenbank ist nicht notwendig.
Die Anwendung soll international einsetzbar sein, also z.B. verschiedene Datums- und Zahlenformate unterstützen sowie unicodefähig sein.

Ich hoffe, diese Informationen helfen weiter!
---------------------------------------------
Die Offline-Version benötigt eine Datenbank, auf die lesend und schreibend zugegriffen wird. SQL-Express wäre OK.
Die Datenbank wäre Teil der Installation. Sie enthält Produktdaten, auf die nur lesend zugegriffen wird. Bei der Benutzung der Anwendung entstehen Projektdaten, die in der Datenbank gespeichert werden sollen. Anwenderseitig werden keine Daten vorausgesetzt.
21.02.2011
rawe 1 2
Gut, das ist schon deutlich konkreter. Bitte nutze in zukunft die Edit-Funktion, um Deine Fragen bei Bedarf zu ergänzen. "Antworten" sind hier "Antworten auf die Frage", nicht "Antworten auf Antworten".

Hat die offline-Version auch eine Datenhaltung? (Z.B. lokales SQL Express?)
Matthias Hlawatsch 21.02.2011
Ganz wichtig, zu wissen: Wo liegen die Daten, wenn die Anwendung international eingesetzt werden? Beim Kunden, beim Anbieter der Software?
Falls ein Einsatz mittels Silverlight über WCF möglich wäre, spielt das eine große Rolle.
Andy Stumpp 21.02.2011
0
Wenn du deine Applikation mit JavaScript programmierst, kannst du mit sie in einem Container wie Adobe-AIR laufen lassen. Dort hast du Möglichkeiten Daten offline zu halten. Es gibt frameworks wie ExtJS die schon auf AIR angepasst sind.
21.02.2011
blackdog9 113 1 5
0
Ich hab mich noch nicht so tief damit beschäftigt aber vielleicht wäre auch ein Framework wie Titanium was für dich.
21.02.2011
blackdog9 113 1 5
0
Mit dem XAF (Xpress Application Framework) von devExpress kannst du mit relativ geringem aufwand eine Anwendung erstellen die Online und offline Funktioniert. Offline ist WinForms und Online ASP.Net.

XAF findest Du hier.
22.02.2011
Das sieht sehr interessant aus, danke für den Tip!!
rawe 22.02.2011

Stelle deine .net-Frage jetzt!
TOP TECHNOLOGIES CONSULTING GmbH