| 

.NET C# Java Javascript Exception

2
Ich bin ja mehr ein C# Junkie, habe aber früher 10 Jahre lang mit VB6 entwickelt.
Nun hatte ich gerade tatsächlich eine Anfrage, wie es mit VB.NET, WPF und MVVM in der Praxis aussieht?

Wie ich neulich festgestellt habe, gibt es hier doch den einen oder anderen VB Fan.

Gibt es auf Basis von MVVM Light, Prism oder anderen MVVM Frameworks gute Ansätze mit VB.NET feine WPF Anwendungen zu entwickeln?
mvvm vb.net
News:
04.09.2013
judgy 3,0k 1 1 8
3 Beiträge
1
Prinzipiell ist unter .NET die Programmiersprache egal. Bibliotheken, die mit C# geschrieben wurden lassen sich ohne? - kleinere - Probleme in VB wiederverwenden. Das gilt auch für WPF-Anwendungen. Es macht keinen Unterschied, ob man diese mit C# oder VB entwickelt hat oder ob dieser in einer anderen Sprache entwickelt wurden.
Wir selbst machen vielen Projekte, von denen Teile in C# und andere Teile in VB.NET geschrieben sind. Manchmal kommt bei uns sogar noch eine weitere Sprache von Gupta (vom Team Developer) ins Spiel. Bislang gab es keine Probleme beim Zusammenspiel, wenn man die Schnittstellen ein wenig planen kann.
Worauf prinzipiell zu achten ist: Es sollten nur Programmkonstrukte verwendet werden, die in allen .NET-Sprachen zur Verfügung stehen, also z.B. keine Optional-Parameter etwa bei VB.NET.
Sind solche Konstrukte unumgänglich, dann müssen in aller Regel spezielle Wrapperklassen geschaffen werden, um den Unterschied oder fehlende Feature auszugleichen.
04.09.2013
edvservice 1,3k 1 6
1
Ich kann Dir das MVVM-Framework Caliburn.Micro an's Herz legen. Ich fand es immer sehr flexibel, zumal Du Buttons extrem einfach an Methoden binden kannst. Ausserdem unterstütz es "ViewModelFirst" von Haus aus. Meines Erachtens nach die natürlichere Methode um zu arbeiten.

D.h. Du erstellt eine Instanz des ViewModels, kannst dort Parameter einstellen und dann sagen "Zeig dazu mal die dazugehörige View an". Da man ja eher mit Klassen als direkt mit "Formularen" arbeitet, finde ich für mich persönlich diesen Weg besser.

Allgemein, als langjähriger VB6ler würde ich Dir jedoch zu C# raten. Einfach aus dem Grund, dass zwischen VB6 und VB.Net schon Welten liegen. Konvertieren kannst Du den Code sowieo nicht sinnvoll. Sicher mag C# eine kurze Eingangshürde wegen der Syntax und der Klammern sein, aber wenn Du täglich damit arbeitest, wirst Du dich in 2 Wochen daran gewöhnt haben.
Der Vorteil liegt aber darin, dass Du Dir sicher sehr viele Dinge aus der MSDN und aus dem Internet aneignen wirst. Und meiner Erfahrung nach sind 95% aller Webseiten auf C# aus. VB.net scheint niemanden mehr zu interessieren. Und Du tust Dir mit dem permanenten Hin- und Herkonvertieren keinen großen Gefallen. Das kostet massiv Zeit und der beste Onlinekonverter scheitert an so vielen Dingen wie Events etc.

Die Hauptarbeit wird darin liegen, alle Möglichkeiten von .NET zu erlernen und gescheit zu nutzen. Die Syntax spielt wirklich nur eine untergeordnete Rolle.

Und selbst mit über 10 Jahren VB6 muss ich sagen, dass ich Deklarationen wie

string Nachname = "Meier";

besser lesbar finde als
Dim Nachname as string = Meier";

Einfach weil man das in C# so lesen kann, wie es auch Sinn macht : Ich habe einen String, der Nachname heisst. Und nicht wie in VB. Ich habe einen Nachnamen. Und hach ja, das ist ja ein String.

Just my 2 cents :)
Viel Erfolg.
04.09.2013
Jens Duczmal 2,6k 1 3 9
Hallo Jens,
es geht nicht danach, was ich will, sondern was der Kunde will ;-)
Ich wurde als Freelancer für ein VB.NET Projekt angefragt, bei dem VB klar gesetzt ist. Ich nehme an, weil die bestehenden Projekte auf VB aufsetzen und die Mitarbeiter dort nur VB kennen.
Meine letzten VB Projekte liegen schon ein paar Jahre zurück, daher wollte ich mal wissen, wie der aktuelle Stand bei VB.Net ist. Ich habe WPF bisher nur unter C# (MVVM etc.) entwickelt, nicht mit VB.
judgy 04.09.2013
Achso, okay. Das ist an mir vorbeigegangen. Die "Anfrage" hatte ich überlesen. Kleines, aber feines Detail. Dann ist das natürlich klar. Also Mit VB.Net müssten die bekannten MVVM-Frameworks ja auch problemlos laufen. Beispiele könnten rarer werden, aber dafür gibts ja Online-Converter :)
Jens Duczmal 04.09.2013
1
Hallo Judgy,

ich kann dir sagen, dass wir mit VB.NET und MVVM bis jetzt sehr gute Erfahrungen gemacht haben. Zur Zeit sind wir an einem großem Projekt dran und nutzen erstmalig durchgehend die Architektur.

Mit den Beispielen im Internet muss Jens zustimmen: VB.NET Beispiele sind da nicht so häufig wie die C# Beispiele. Aber dadurch, dass wir im Team auch C#-Entwickler haben, ist es kein Problem zu verstehen, was der Code soll. Und durch die Hilfe von Online-Convertern ist das oft schnell erledigt.

Zum Thema MVVM-Frameworks möchte ich noch was sagen. Wir hatten anfangs auch die Frage: Welches nehmen wir. Es folgte eine Zeit der "Prüfung" und dabei kam heraus: alle fertigen Frameworks haben ihre Vor- und auch Nachteile. Manche sind auch schlichtweg überdimensioniert für unser Projekt gewesen. Daher haben wir dann, das Beste und nur dass was wir auch brauchen aus allen getesteten herausgenommen und bei uns wieder zusammen gesetzt.

Ausgehende war die Verwendung des WAF (WPF Application Framework)

Das WAF ist ein einfaches Framework für die Erstellung von strukturierten WPF-Anwendungen. Es benutzt eine Schicht-Architektur und das MVVM. Daher haben wir überprüft, ob es in unserer Entwicklung verwendet werden kann.

Folgende Gedanken haben uns aber dazu geführt, dieses nicht 1:1 zu verwenden:

* Die Verwendung des WAF ist nicht soweit dokumentiert, dass wir uns in kurzer Zeit einarbeiten könnten.
* Als Sample-Applikationen wurden keine Beispiele für eine Client-Server Anwendung beigegeben. Die Verwendung in diesem Umfeld würde daher sehr viel Zeit brauchen, weil wir zuerst die verschiedenen einzelnen Klassen und ihre Verwendung genauer betrachten müssten.
* Das WAF verwendet eine abweichende und erweiterte Form des MVVM. Würden wir daher diese "Einzellösung" implementieren, hätten wir Schwierigkeiten, wenn wir Support durch allgemeine Foren, die MVVM thematisieren, erhalten wollen
* Bei einer testweisen Implementierung war das tatsächliche Verhalten und die öffentlichen Dokumentationsbeschreibungen nicht übereinstimmend. Dies warf sofort Fragen auf, die durch die Dokumentation nicht behandelt wurden.
* Durch die geplante Verwendung von weiteren Frameworks/Steuerelemente für weiter Aufgaben im Projekt, käme es in diesem "kleinen" Bereich (WPF-MVVM) zu einer "doppelt Implementierung". Hinzu kommt, dass wir nur einen Teil des WAF letztlich in der gesamten Anwendung nutzen würden.
* Die empfohlene Verwendung von einer IView-Schnittstelle wurde in dem Beitrag stackoverflow.com/questions/6049948/mvvm-iview-vs-databinding mit der Empfehlung diskutiert, dass diese Möglichkeit bei WPF/Silverlight funktioniert, aber nicht für ASP.NET. Damit würde also die zukünftigen Weiterentwicklung der Anwendung auf gewisse UI beschränkt sein.

Folgende Punkte haben wir aber berücksichtigt und übernommen:

* Die allgemeine Vorgehensweise und Beschreibung einer sinnvollen Anwendungs Architektur sind gut dargelegt und finden unsere Zustimmung.
* Die Beispiele des WAF zeigen eine Struktur, deren wir unsere Anwendungsstrukt zu einem gewissen Grad anlehnen können.

Wir werden das WAF zukünftig als Anreguung für unsere eigenen Implementationsansätze betrachten können.
07.09.2013
MyKey0815 1,6k 2 9

Stelle deine Mvvm-Frage jetzt!
TOP TECHNOLOGIES CONSULTING GmbH