| 

.NET C# Java Javascript Exception

7
Hallo,

ich werde in naher Zukunft eine Software schreiben müssen welche in einem Unternehmen intern eingesetzt werden wird. Dabei werden viele Clients ( 200+ ) auf diese Software zugreifen.

Als Entwicklungsumgebung wird ein .NET VB oder C# zum Einsatz kommen zusammen mit einer MySQL Datenbank, so wie es moment aussieht.

Da ich noch nicht ganz so viel Erfahrung im aufbereiten von Daten in umfangreichen Benutzeroberflächen habe, möchte ich hier einmal ein paar Einschätzungen abfragen:

Ich versuche mit gerade zwischen Windows.Forms und WPF zu entscheiden. Ich weiß sehr wohl, daß Windows.Forms ausläuft und irgendwie nicht mehr verwendet wird. (?) ... Ist WPF anzuraten?

Abhängig davon fehlt mir dann der konkrete Einstieg in MVVM. Gibt es da Tipps?

Oder doch Windows.Forms und dann MVC oder MVP ... .gibt es da gute Dokumentationen? Best Practices?

Danke schonmal.
26.01.2012
TiMeBaNDiT76 294 2 7
8 Antworten
5
Hallo,

also du hast wohl recht, Windows Forms ist nicht mehr state of the art, sondern eher WPF / Xaml. Aber das ist auch wirklich nur die Oberfläche.

MVVM ist ein Pattern was von Microsoft vorgeschlagen wird für die Struktur der Anwendung. Du kannst WPF / Xaml auch ohne MVVM machen, würde ich aber von abraten... Ein Einstieg zu dem MVVM Pattern kannst du hier nachlesen.

Ansonsten ist eine gute Seite für eine layered architecture bei codeplex das WPF Application Framework . Es stellt ein Framework für eine mehrschichtige Architektur zu Verfügung und vereint in sich das MVVM.

Vll reicht für dein Anwendungsfall auch einfach eine "klassische" 3-Tier Architektur zusammen mit Winforms. Das Tolle ist: Du brauchst dich am Anfang eigentlich gar nicht so sehr damit beschäftigen was für eine Oberfläche du machen willst - Die kommt erst ganz zum Schluss. Und wenn es richtig gemacht wird kann man jede Oberfläche oben drüber kleben :-)

Grüße
26.01.2012
Nicolai Schönberg 2,4k 1 9
2
Um es noch einmal klar zu sagen: WinForms ist seit über 5 Jahren tot, mausetot.
Warum sollte man 2012 auf eine tote Technolgie setzen?

Andererseits weiss auch niemand so genau, ob WPF lebt oder tot ist. Noch unsicherer ist die Situation bei Silverlight. HTML5 erschlägt ja bald wohl alles.

Aber bei WPF oder auch Silverlight handelt es sich stets nur um die View/GUI. Heute XAML morgen wieder HTML?
Wenn man hier mit SoC vorgeht, also konsequent auf MVC/MVVM setzt, so kann man die View auch später (gegen HTML5, wenn es sein muss) austauschen.

Wenn es sich um eine klassische Unternehmensanwendung handelt, so würde ich auch auf das klassiche Grundmuster eine LOB Anwendung setzen. Im Unternehmensbereich würde ich nicht auf die Ein-Mann-Frameworks wie MVVM Toolkit, Chinch - und wie sie alle heissen - setzen, sondern auf PRISM.

Dafür gibt es auch VS Vorlagen um modulare, entkoppelte Anwendungen zu entwickeln.
Telerik Controls bieten sich dann zusätzlich an, die PRISM (Regions) und MVVM sehr gut unterstützen.

Theoretisch kannst Du WPF/Silverlight parallel entwickeln, weil Telerik jeweils die selben Controls für beide Ziele anbietet.
Bei 200 Arbeitsplätzen wäre das Deployment und Silverlight natürlich am einfachsten.
Automatische Anmeldung per Kerberos ist unter Silverlight 4 aber noch ein wenig friemelig.

Dazu einen WCF Service inkl Anbindung per EF an die Datenbank. Der MySql Connector sollte auch unter EF funktionieren.

Grüße
Dirk
26.01.2012
judgy 2,9k 8
Für ein SSO Szenario SL-WCF in einer AD-Domäne habe ich heute morgen schon etwas geschrieben. Wir haben neben Impersonation auch auf Delegation gesetzt, weil die Benutzeranmeldung bis zur DB weitergereicht werden musste (Vorgabe im Projekt).
Link: http://codekicker.de/fragen/Single-Sign-On-ASP-realisieren#a24736
mplogas 26.01.2012
2
Den Ausführungen meiner Vorredner gibt es nichts mehr hinzuzufügen.
Lediglich ein Hinweis zum Lernen von MVVM geben: der MSDN-Artikel war damals für mich als MVVM-Laien wenig hilfreich. Geholfen hat mir folgendes, als VS2010-Plug-In erhältliches Tutorial:
"In the Box - MVVM Training" von Karl Shifflett.
26.01.2012
mplogas 170 4
2
Hallo,

danke für die Ratschläge ... ich hatte ich tatsächlich schon mit Telerik OpenAccess ausprobiert und den Rest dann per Hand gemacht. Also die Anbindung an eine Windows.Forms Anwendung.

Ich hatte mich auch schon an WPF probiert, bin aber aufgrund der schlechten Unterstützung von Visual Studio (Editor zeigt Fehler, wo keine sind) erstmal zurückgeschreckt.

EF habe ich auch schon probiert, muss aber sagen, daß es etwas starr gewirkt hat und ich an irgendeiner Stelle ins Stocken geraten bin ... ich glaube beim Einbau von INotify ...

PRISM werde ich mir mal ansehen ... ist denn WAF auch so eine Ein-Mann-Lösung?

Grüße,

Sven
26.01.2012
TiMeBaNDiT76 294 2 7
2
Hallo Sven,

was heisst *Overhead*?
Eine Line-of-Business (LOB) Anwendung hat zwei wesentliche Ziele: Eine Anwendung wartbar (maintainable) und weiterentwickelbar (evolvable) zu halten.

Im wesentlichen bedeutet dies, dass man auf Standards aufsetzt, damit zum einen ein anderer Entwickler sich nicht gross in das Framework einarbeiten muss und zum anderen auch die Tools die eingesetzt werden, auch weitergepflegt werden.

Für Entwicklungen eines einzigen Entwickler sind das MVVM Light Toolkit oder auch Caliburn Micro super. Aber ich befürworte bei Geschäftsanwendungen stets Frameworks, die von einem größeren Team supported wird.

Wenn Du eine WPF/Silverlight Anwendung entwickeln willst, musst Du Dich mit MVVM auseinander setzen, so wie jeder verantwortungsbewusste Entwickler.
Ansonsten läuft es auf eine Quick-und-Dirty Anwendung hinaus: Schnell per Doppelt-Click auf die Buttons entwickwelt, erfüllt ihren Zweck, aber läuft dann schnell in den toten Legency Bereich hinein.

Installiere Dir einmal PRISM, da sind auch feine Vorlagen, die Dir das Design abnehmen. Den Rest macht Telerik.
Statt EF kannst Du natürlich auch den Telerik OR Mapper nehmen, ist selbst im selben Premium Paket.
Den visuellen Designer von VS ist natürlich grottig, aber damit arbeitet aber auch niemand. Entweder Expression Blend oder direkt im XAML Code. Das hat man recht schnell drauf (im groben)

Dirk
26.01.2012
judgy 2,9k 8
Dem ersten Absatz kann ich nichts weiter hinzufügen. Nutze aus dem Prism/Unity Framework das, was du für nötig erachtest und für MVVM und deine Anwendung notwendig ist.

Und lass dich bloss nicht von anfänglichen Rückschlägen verunsichern. Das Pattern funktioniert super, man muss nur erst einmal seinen Gehirn neu aufwickeln ;)
mplogas 26.01.2012
1
Laut Codeplex schon. Deswegen rate ich im Unternehmenseinsatz ebenso wie judgy zum Einsatz von PRISM. Da steckt das Microsoft Patterns & Practices Team dahinter.

Damit will ich auf keinen Fall das WAF, MVVMLight oder Caliburn schlechtmachen. Aber für Unternehmenssoftware gelten gewöhnlicherweise andere Regeln was die Wahl der Libraries & Frameworks betrifft.

//edit: mist, das sollte eigentlich als Antwort auf deinen Kommentar raus.
26.01.2012
mplogas 170 4
1
Hallo mplogas,

das ist schon war ... ich will auch nicht an der falschen Stelle "sparen" ... aber auch nicht unnötig Overhead erzeugen, der vielleicht nicht notwendig ist.
26.01.2012
TiMeBaNDiT76 294 2 7
0
OK ... erschlagen ;-) ... ich werde es mal ausprobieren ... die Version vom November 2010 ist die Richtige?
26.01.2012
TiMeBaNDiT76 294 2 7
1
Hey, das ist hier nicht der Lounge-Bereich, der nach Art eines Diskussionsforums aufgebaut ist, sondern die Frage&Antwort-Ecke, wo es EINE Frage gibt, jeder folgende Beitrag eine Antwort auf die eine Frage sein soll und diese Antworten zuerst nach Bewertung und erst dann nach Chronologie sortiert werden.
Kurz: Nutze bitte für sowas die Kommentarfunktion.
Matthias Hlawatsch 27.01.2012
Ok, ich bin noch neu. Habe es aber verstanden und werde mich daran halten.

LG
TiMeBaNDiT76 27.01.2012

Stelle deine Mvvm-Frage jetzt!