C# ASP.Net oder Silverlight oder WPF-Webanwendung um mit Anwendung zu kommunizieren

Mathias09876

Ensign
Registriert
Nov. 2010
Beiträge
235
Hallo zusammen,

ich habe hier eine Anwendung, die Daten aus Faxen auswertet, anzeigt und zu statistischen Zwecken in eine Datenbank speichert. Diese Datenbank ist derzeit eine SQLite Datenbank.

Nun würde ich es gerne erreichen, dass es möglich ist von anderer Stelle im gleichen Netzwerk auf diesen Datenbestand zuzugreifen, stellenweise um neue Daten einzugeben bzw. um sie auszulesen und darzustellen. Mein erster Ansatz war die Anwendung mehrfach zu installieren und alle auf die gleiche Datenbank zugreifen zu lassen, bzw. mittels SQLDependencys die anderen Anwendungen über Änderungen zu informieren (ein Umstieg auf MS SQL ist in dieser Variante natürlich Vorraussetzung)

In meiner Recherche das Wochenende über kam mir jetzt aber noch die Idee, dass ich ja durch meine Anwendung einen Webserver erstellen könnte, um dann über ein Webinterface mit dem Hauptprogramm - und damit der Datenbank kommunizieren könnte.

Ich stelle mir jetzt also vor, dass ich eine Webanwendung entwickle, die es erlaubt über den Webserver neue Datensätze an das Programm zu schicken bzw. Daten aus der Datenbank darstellen kann. Meine Hauptanwendung weiß ja, wann neue Daten in die Datenbank geschrieben wurde und könnte dann ja ein Aktualisieren der Webanwendungen, die sich lesend mit dem Server verbunden haben, veranlassen.

Meine Frage ist jetzt, ob ich hier einem Denkfehler aufgesessen bin und das so garnicht möglich ist?
Und falls es ginge, mit was entwickle ich die Anwendung am besten? Ich würde gerne für alles das Visual Studio verwenden, weshalb ich auf ASP.Net, Silverlight oder WPF-Webanwendungen gekommen bin.

Nur welches davon ist für meine Zwecke das geeignetste? Ich würde gerne eine kleine hübsche GUI basteln um die Dateneingabe bzw. die Darstellung der Daten im Browser ansehnlich zu gestallten und einen gewissen Wiedererkennungswert zur Hauptanwendung zu erziehlen. Die Hauptanwendung ist übrigens eine WPF Anwendung, falls das von Bedeutung ist. Als Datenbank würde ich, wenn möglich dann SQLite weiter verwenden.

Die Browser, die die Webanwendung nutzen würden sind alle Firefox (oder falls es damit Probleme gibt IE) und die Installation des Silverlight-Plugins bzw. allen anderem nötigen ist natürlich gegeben.

Ich hoffe ihr habt ein paar Tipps für mich.

Viele Grüße und noch einen schönen Sonntag,
Mathias
 
Hi Mathias,

welche VS Version steht dir zur Verfügung? Ab Pro gibt es die Möglichkeit LightSwitch Applikationen zu entwickeln. LS ist ein RAD-Framework von Microsoft und kann gleichzeitig HTML5 und Silverlight-Clients bereitstellen.
LighSwitch erfüllt deine Anforderungen recht gut und führt extrem schnell zu ersten Ergebnissen. Bei den Anforderungen und dem Hinweis auf Visual Studio ist LightSwitch mein Tipp.
MS hat mittlerweile eine recht gute Sammlung an Artikeln und Hilfestellung zum Thema. Falls du hier startest solltest du dir vor allem die Artikel von Beth Massi (MVP zum Thema) ansehen.

VG
 
Du möchtest deine Softwarelösung als Webanwendung anbieten und damit deine Daten verwalten, habe ich das richtig verstanden?

Grundsätzlich natürlich kein Problem, aber wenn möglich, würde ich immer versuchen auf Web und die damit verbundenen Probleme zu verzichten. Wir haben da bisher meistens schlechte Erfahrungen gemacht und fahren mit klassischen Clients meist besser (die dann häufig sogar ohne eigenen Server auskommen und somit Lizenzen und Hardware sparen).

Ich gehe jetzt mal davon aus, dass C# kein Problem wäre, da du ja bereits WPF genannt hast. Ich würde eine solche Anwendung in C# schreiben und die Datenbank dann entweder direkt auf dem Programm befüllen (direkt SQL oder Lync) oder auf Stored Precedures deines SQL Servers zurückgreifen sofern das in deinem Anwendungsfall möglich ist (wenn SQL Lite Datenbanken das können).
 
Zuletzt bearbeitet:
charmin schrieb:
...aber wenn möglich, würde ich immer versuchen auf Web und die damit verbundenen Probleme zu verzichten. Wir haben da bisher meistens schlechte Erfahrungen gemacht und fahren mit klassischen Clients meist besser...

Dann läuft mit Pech die gesamte Business Logik aber auch auf dem Client, was Analysen, debugging und Fehlersuche bei Fehlverhalten extrem erschwert. Man braucht immer Zugang zum Client. Auch das Deployment wird komplizierter bei nativen Clients.
Um eine Client-Server-basierte Architektur geht ab einer bestimmten Größe nichts vorbei. Natürlich muss die aber funktionieren und dafür braucht es fähige Leute und gute Tools.
Ausnahmen bestätigen wie immer die Regel, bspw. wenn Offline-Nutzung ein Requirement ist.
 
Client Server ist gar keine Frage und ab einer gewissen Komplexität auch kaum vermeidbar, da stimme ich dir vollkommen zu. Diese würde ich aber trotzdem nur wenn es absolut nicht anders geht als Weblösung aufbauen. Auch hier meine ich nicht Webservices (die sind in vielen Fällen toll), sondern Tools die dann im Browser laufen. Damit hat man in einer größeren Umgebung einfach nur Ärger...

Bei einer entsprechenden Infrastruktur ist das Deployment gar kein so großes Problem, sei es durch den Einsatz von Softwareverteilung oder Lösugen wie Citrix.
 
Also gegen eine ASP.NET Anwendung spricht meiner Meinung nach nichts. Dann würd ich aber am besten alles in die Anwendung packen. Bissle Daten darstellen und einen neuen Datensatz anlegen ist da kein großer Akt. Per Entityframework oder z.B. Telerik Data Access direkt an die Datenbank (unterstützt auch SQLite) und gut.
 
Zuletzt bearbeitet:
Ich verwende derzeit ganz aktuell das Visual Studio 2013 in der Ultimate Version.

Das LightSwitch sagte mir bisher nichts, mir ist es nur bei der Installation aufgefallen ^^

Das Einsatzgebiet der Software liegt nicht im kommerziellen Bereich sondern ist für die örtliche Freiwillige Feuerwehr gedacht.

Die Hauptanwendung in C# geschrieben wird immer bestehen bleiben. Sie liest Alarmfaxe aus und zeigt sie auf Monitoren an. Zusätzlich erstelle ich gerade noch Funktionen, die eine statistische Auswertung ermöglichen sollen. Der Plan war jetzt zudem manuell einen Einsatz eingeben zu können (quasi ohne Fax) um diesen auch mit in der Statistik zu haben. Das wird 2-3 mal pro Jahr benötigt, wenn wieder mal eine Unwetterfront über die Gemeinde zieht und sich die Einsätze derart häufen, dass man nicht mehr für jeden ein Fax bekommt sondern sie direkt telefonisch aus der Zentrale kommen. Zuerst wollte ich eben eine zweite Instanz meiner Anwendung auf einem abgesetzten Rechner installieren, damit von hier aus die Daten eigegeben werden können. Das Problem ist dabei jedoch, dass es mit SQLite nicht möglich ist, dass beide Anwendungen auf die gleiche Datenbankdatei zugreifen und über änderungen durch die jeweils andere benachrichtigt werden.

So kam ich auf die Idee des WebInterfaces, hierüber sollen die Daten eingegeben werden und den Eintrag in die DB besorgt wieder die Hautanwendung. Im Zug des WebInterfaces kann ich dann ggf. noch einen "LeseModus" realisieren, mit dem bswp. die aktuelle Lage in einem Aufenthaltsraum dargestellt werden kann (also welche Einsätze gerade laufen)

Grundsätzlich ist eben die Frage, mit was ich am effektivsten zu diesem Ziel gelange, ASP.Net oder Silverlight?

Oder eben doch besser die Variante mit den zwei Anwendungen und dabei aber einen Umstieg auf MS SQL Server

Grüße
 
Ich schließe mich BlooDFreeZe's Meinung an:
ASP.NET als Thin-Client zu nutzen reicht für dein Anwendungsgebiet vollkommen aus.
Auf Silverlight würde ich nicht mehr setzen (wird glaube ich nur noch bis 2021 unterstützt).

WPF ist natürlich super um grafisch ansprechende GUI zu entwickeln. Allerdings musst du dich hierbei um das Deployment selbst kümmern. Brauchst du mMn wahrscheinlich nicht.
 
Zurück
Oben