Forum: PC-Programmierung Frage zu Systemdesign


von Prog R. (daniel_v)


Lesenswert?

Hallo zusammen,

für ein anstehendes Projekt hätte ich ein paar grundsätzliche Fragen zu 
euren Erfahrungen im Systemdesign.

Ich möchte gerne eine Art Dokumentationstool entwickeln.
Prinzipiell sieht das so aus, dass es eine zentrale Datenbank (mySQL) 
gibt, sowie Clients, die darauf zugreifen und die Pflege der Daten sowie 
diverse Visualisierungen und Auswertungen ermöglichen.
Die Clients (von denen es beliebig viele geben wird) laufen in einem 
internen Netzwerk auf verschiedenen Rechnern.
Grundsätzlich würde ich gerne C# verwenden - Forms oder eigentlich 
vorzugsweise WPF (mit WPF habe ich allerdings erst ein wenig begonnen - 
bei den Forms habe ich schon einiges an Erfahrung; allerdings wäre 
ersteres wohl zeitgemäßer)


Nun bin ich mir bezüglich der Architektur nicht ganz sicher.

1) Clients als *.exe mit implementierter Logik wäre eine Option.
   Allerdings wird das Projekt stetig wachsen und somit muss sich jeder
   immer  die neue Version drüberziehen - das ist doch etwas mühsam.
   Solche Applikationen habe ich schon entwickelt und das zieht einfach
   Wartungsintensität mit sich.


2) Clients webbasiert. (Das würde ich irgendwie als sinnvoller erachten)
   D.h. also, dass z.B. ein "Serverprogramm" läuft und ein Webinterface 
für
   alle Rechner im Netz bereitstellt.
   Hätte die Vorteile, dass das mit den Updates wegfällt und auch eine
   Lauffähigkeit auf mobilen Geräten (Tablets) wohl keine allzu große
   Erweiterung bedeuten würde.

Nur bin ich, was das webbasierte angeht, Neuling.
Habt ihr hier Erfahrungen mit Asp.Net bzw. WPF?

Ist es da so, dass es eine zentrale Applikation gibt, auf die jeder 
mittels Browser zugreifen kann?
Wie aufwendig ist es da, die UserInterfaces wie zb. in Forms zu 
erstellen?

Ich weiß, das sind viele Fragen - ich hoffe, ich habe mich halbwegs klar 
ausgedrückt.

Danke im Voraus für konstruktive Vorschläge.

PS: würde mich auch über Literaturtipps freuen.

: Bearbeitet durch User
von Paul B. (Gast)


Lesenswert?

so ganz blicke ich nicht, was es genau werden soll bzw. neues bringen 
soll, denn solche APPs gibt es ja bereits. Allerdings haben die alle 
ihre Schwächen auf die einzugehen, jetzt aber  etwas zeitraubend wäre.

Was mir aber immer wieder auffällt, ist die mangelnde Übersicht in den 
Systemen. Gfs bekommst Du es hin, z.B. solche Dinge wie 
Verzweigungsbäume / branches übersichtlicher darzustellen. Was ich auch 
vermisse ist eine tabellarische Listung der Code Module, die in SW 
verwendet wird. Wan z.B. ein Modul in die Entwicklungslinie eintritt und 
wann es wieder ausgetreten ist. Dann lässt sich einfacher tracken, wann 
man wo was updaten muss.

Wenn ich mehr Zeit habe, schreibe ich nochetwas dazu.

Das Thema ist aber abboniert!

von Robert L. (lrlr)


Lesenswert?

@ Frank Petelka

wer sagt dass er Software dokumentieren will?

@Daniel V

Bist du dir sicher dass dir nicht die "Grundlagen" fehlen, ..?

: Bearbeitet durch User
von Prog R. (daniel_v)


Lesenswert?

Es soll als Dokumentation von Tätigkeiten in einem Betrieb dienen und 
den Benutzern eine einfache Möglichkeit bieten, bereits erledigte 
Tätigkeiten abzurufen bzw. Abläufe so zu dokumentieren, dass sie für den 
nächsten abrufbar sind.

z.B. für Mechaniker, die Fehlerbilder bei Autos haben, die Abarbeitung 
und Behebung dieser dokumentieren.
Anderer Kollegen können dann auf diese Dokumentation zugreifen und 
bekommen schnell die Information, welche Schritte sie tätigen müssen.
Wichtig ist mir dabei, ein ergonomisches Userinterface zu schaffen, das 
es dem Benutzer schnell & einfach ermöglicht, die benötige Information 
zu erhalten bzw. einzupflegen.
Also keine Softwaredokumentation.

Weshalb sollen "Grundlagen" fehlen?

: Bearbeitet durch User
von Robert L. (lrlr)


Lesenswert?

Daniel V. schrieb:
> Weshalb sollen "Grundlagen" fehlen?


Du willst ein Web-Basiertes DMS (ähnliches) System schreiben, und 
stellst solche Fragen:

>Ist es da so, dass es eine zentrale Applikation gibt, auf die jeder
>mittels Browser zugreifen kann?

von Prog R. (daniel_v)


Lesenswert?

Robert L. schrieb:

> Du willst ein Web-Basiertes DMS (ähnliches) System schreiben, und
> stellst solche Fragen:
>
>>Ist es da so, dass es eine zentrale Applikation gibt, auf die jeder
>>mittels Browser zugreifen kann?

Naja, wie ich in einigen Beispielen beim Googeln gesehen habe, bieten ja 
Asp.net und WPF einige Möglichkeiten, sowas als halbwegs erfahrener .Net 
Entwickler "recht einfach" zu realisieren.
Bzw. bin ich mir nicht sicher, ob das so ist und darum wollte ich hier 
fragen, was Leute dazu meinen, die schon Erfahrung damit haben.

Weiteres bieten ja solche Umsetzungsprojekte meiner Meinung nach eine 
tolle Möglichkeit, sich 1) mit den Grundlagen zu beschäftigen und 2) 
dieses Wissen gleich in einer Applikation umzusetzen.

Das habe ich auch in anderen Bereichen (z.B. Objective C lernen und eine 
iPhone App entwickeln) schon so gemacht und war mit dem Ergebnis wie 
Lernerfolg sehr zufrieden.

: Bearbeitet durch User
von Jee (Gast)


Lesenswert?

Klopp den MS Schrott wie ASP.Net und dergleichen in die Tonne. Sowas 
macht man mit php, Javascript & HTML. Ja, eine gewisse Lernkurve muss 
durchlaufen werden. Ist aber machbar.

von SvenW (Gast)


Lesenswert?

Ich könnte mir vorstellen, dass man für diesen Anwendungsfall ein 
CRM-System einsetzen (oder missbrauchen) könnte. Hier gibt es einige 
brauchbare und kostenfreie Lösungen am Markt. Als Beispiel würde mir 
„XRMS“ (http://de.wikipedia.org/wiki/Xrms) einfallen.

Eine eigene Lösung könntest du natürlich auch entwickeln. Aus deiner 
Beschreibung wird aber recht schnell klar, dass du noch nicht recht 
weist, was du eigentlich willst (brauchst). Definiere erst einmal dein 
Problem (Pflichtenheft) und mache dir danach Gedanken über die Umsetzung 
(C#, ASP.Net, ...).

Für ASP.net/PHP brauchst zu einen WebServer. Auf dem WebServer würdest 
du dann deine Anwendung Hosten. Die Benutzer der Anwendung würden dann 
auf den WebServer zugreifen.

Das Problem, das du unter Punkt 1 beschreibst, könntest du mit einer 
ClickOnce-Anwendung (http://de.wikipedia.org/wiki/ClickOnce) umgehen. 
Hier wird bei jedem Aufruf der Anwendung die neueste (veröffentlichte) 
Version gestartet. Du brauchst dafür aber auch einen WebServer.

MfG Sven

von olibert (Gast)


Lesenswert?

Daniel V. schrieb:
> Prinzipiell sieht das so aus, dass es eine zentrale Datenbank (mySQL)

Du planst eh schon MySQL als Backend-DB ein, warum willst du dich dann 
mit ASP.NET herumschlagen und das ganze nur fuer Windows-Clients 
zugaenglich machen ?

Wie schon gesagt, JavaScript oder Java waeren eine Moeglichkeit. Das 
letztere liesse sich dann noch in einen Application-Server 
(jBoss,Tomcat,..) in ein Linux/Unix-Environment packen.

von Markus (Gast)


Lesenswert?

SvenW schrieb:
> Das Problem, das du unter Punkt 1 beschreibst, könntest du mit einer
> ClickOnce-Anwendung (http://de.wikipedia.org/wiki/ClickOnce) umgehen.
> Hier wird bei jedem Aufruf der Anwendung die neueste (veröffentlichte)
> Version gestartet. Du brauchst dafür aber auch einen WebServer.

Bei einer Web-Applikation à la ASP.NET wird keine SW an Clients 
verteilt. Die wird einzig und alleine auf dem Server aktualisiert, also 
auf genau einem Rechner.

olibert schrieb:
> Du planst eh schon MySQL als Backend-DB ein, warum willst du dich dann
> mit ASP.NET herumschlagen und das ganze nur fuer Windows-Clients
> zugaenglich machen ?

Tut mir leid, aber das ist Unsinn. Unter welchem BS der Web-Server läuft 
ist für die Clients ziemlich irrelevant. Die greifen nämlich 
ausschließlich über den Browser auf den (WEB-)Server zu. Und unter 
welchem BS der Browser läuft, ist dem Server erstmal einigermaßen egal.

@TO:
Wenn Du mit C# klar kommst, dann schaue Dir durchaus mal ASP.NET und 
ADO.NET für den DB-Zugriff an. Du solltest Dir allerdings im klaren 
darüber sein, das das Problem nicht die Oberfläche und das Speichern der 
Daten ist. Das Hauptproblem bei DMS ist nämlich, die passende 
(vorhandene), weitestgehed unstrukturierte Information wieder zu finden.

Grüße
Markus

von Peter II (Gast)


Lesenswert?

olibert schrieb:
> Du planst eh schon MySQL als Backend-DB ein, warum willst du dich dann
> mit ASP.NET herumschlagen und das ganze nur fuer Windows-Clients
> zugaenglich machen ?

warum sollte ein asp.net nur für Windows-Client funktionieren? Sogar auf 
dem Server kann man Linux mit mono einsetzen.

> Wie schon gesagt, JavaScript oder Java waeren eine Moeglichkeit. Das
> letztere liesse sich dann noch in einen Application-Server
> (jBoss,Tomcat,..) in ein Linux/Unix-Environment packen.

es gibt halt Leute die wollen kein Java. Und wo soll jetzt der Vorteil 
von Java sein?

von Sven W. (svenw)


Lesenswert?

@Markus
Punkt 1 bezieht sich auf eine Rich Client-Anwendung (*.exe). Deswegen 
ist das Deployment mit ClickOnce ganz richtig an dieser Stelle.

MfG Sven

von Prog R. (daniel_v)


Lesenswert?

Erstmal danke an alle für die Kommentare und Tipps.

Nun, die Frage, weshalb ich gerne .Net verwenden möchte:
Ich arbeite eben schon lange auf .net, bin sehr zufrieden damit und 
natürlich ist es eine gewisse Trägheit, die mich dort verweilen lassen 
will.
Gleichfalls möchte ich mir aber gerne Alternativen anschauen und bin 
nicht abgeneigt, was anderes zu probieren.

Markus schrieb:
> Wenn Du mit C# klar kommst, dann schaue Dir durchaus mal ASP.NET und
> ADO.NET für den DB-Zugriff an. Du solltest Dir allerdings im klaren
> darüber sein, das das Problem nicht die Oberfläche und das Speichern der
> Daten ist. Das Hauptproblem bei DMS ist nämlich, die passende
> (vorhandene), weitestgehed unstrukturierte Information wieder zu finden.

Das habe ich mir jetzt mal angesehen - also ich muss sagen, dass Asp.net 
mir grundsätzlich gefällt; werde mal ein par Beispiele programmieren.

ADO.net ist, wie ich das verstehe, gleich wie eine OLEDB Connection bzw. 
eine SQL-Connection, soweit also recht einfach zu verwenden.

Wie ist es mit den Browsern, die diese Asp.net Applikation verwenden 
bzw. muss der Zielrechner da auch z.B. über .Net FW verfügen oder ist 
das egal, da das nur am Rechner relevant ist, auf dem die Applikation 
läuft?

von Peter II (Gast)


Lesenswert?

Daniel V. schrieb:
> Wie ist es mit den Browsern, die diese Asp.net Applikation verwenden
> bzw. muss der Zielrechner da auch z.B. über .Net FW verfügen oder ist
> das egal, da das nur am Rechner relevant ist, auf dem die Applikation
> läuft?

es wird eine normale Webseite erzeugt. Der Browser weiß nicht das dort 
.net am werkt ist. Mann braucht auch kein PHP auf dem PC wenn man eine 
Webseite aufruft die mit PHP erzeugt wurden ist.

von Paul B. (Gast)


Lesenswert?

Robert L. schrieb:
> @ Frank Petelka
>
> wer sagt dass er Software dokumentieren will?
Wie würdest du das Beschreiben eines komplexen Systems sonst nennen, 
wenn nicht Dokumentieren?  Und ist es nicht automatisch "Software" eine 
solche Systemmodellierung zu verwenden?

von Robert L. (lrlr)


Lesenswert?

man kann auch das Melken einer Kuh dokumentieren. und nein, auch wenn 
die Zitzen angenehm weich sind,  ich würde das dann nicht als Software 
bezeichnen...

von Paul B. (Gast)


Lesenswert?

wobei hier die Methode , also der Melkvorgang (dessen Beschreibung) die 
Software wäre, die Kuh und ihre Extremitäten sind und bleiben HW :-)

von Oliver S. (oliverso)


Lesenswert?

Daniel V. schrieb:
> z.B. für Mechaniker, die Fehlerbilder bei Autos haben, die Abarbeitung
> und Behebung dieser dokumentieren.
> Anderer Kollegen können dann auf diese Dokumentation zugreifen und
> bekommen schnell die Information, welche Schritte sie tätigen müssen.

Dieser Traum ist einer der bisher unerfüllten, und er wird es ewig 
bleiben. Das scheitert nicht an der Software, das scheitert an den 
Anwendern.

Oliver

von Prog R. (daniel_v)


Lesenswert?

Oliver S. schrieb:

> Dieser Traum ist einer der bisher unerfüllten, und er wird es ewig
> bleiben. Das scheitert nicht an der Software, das scheitert an den
> Anwendern.

Ja, gerade darum ist mir ein ergonomisches und ansprechendes Design vom 
UserInterface i.d.R. sehr wichtig - sonst scheitert das sowieso von vorn 
herein.
Nichts desto trotz hat sich, trotz einiger hilfreicher Inputs hier, das 
Projekt in Luft aufgelöst. Aber wer weiß, vielleicht ist es bald mal 
wieder von Interesse :)

von Paul B. (Gast)


Lesenswert?

Daniel V. schrieb:
> Ja, gerade darum ist mir ein ergonomisches und ansprechendes Design vom
> UserInterface i.d.R. sehr wichtig - sonst scheitert das sowieso von vorn
> herein.
absolut, aber das würde ich nicht zum "Systemdesign" rechnen. Jedenfalls 
nicht zu dem Part den man "Modellieren" müsste.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.