Wann sollten Sie eine Bibliothek oder ein Framework gegen Ihre eigene Implementierung verwenden? Zum Beispiel. MVVM, sollte ich das Cinch/MVVM Framework verwenden oder meinen eigenen Code rollen?Bibliothek oder eigenes Framework?
Antwort
Mit MVVM und WPF, persönlich, würde ich empfehlen, ohne ein Framework zu starten.
Sobald Sie die "klebenden" Punkte sehen, beginnen die verschiedenen Frameworks viel mehr Sinn zu machen. Denken Sie daran, dass die verschiedenen Frameworks für MVVM als "Helfer" gedacht sind, um einige der Schwachpunkte im Umgang mit MVVM (wie Dialog/Service-Handling, Messaging, etc.) zu mildern.
Das heißt, viele der Frameworks (zB: Cinch) steuern Sie wirklich auf eine bestimmte Art und Weise - die unter Ihren Umständen ideal sein kann oder nicht.
Ich persönlich benutze kein einziges Framework. Ich werde mir bei Bedarf Ideen und Inspirationen aus einem Framework ausleihen, habe aber festgestellt, dass die meisten Frameworks zu viel tun.
Nachdem Sie die verschiedenen Frameworks verstanden haben, sind sie sehr nützlich, vorausgesetzt, dass das von Ihnen gewählte Programm Ihren Entwicklungszielen entspricht. Zum Beispiel bietet MVVM Light ein fantastisches, gut durchdachtes und getestetes Messaging-Framework, das viele schwierige Aufgaben in MVVM drastisch vereinfacht. Es ist also eine großartige Möglichkeit, einige Funktionen zu erhalten, die ziemlich robust sind.
Wenn Sie ein Framework für das Projekt verwenden können und die Assemblygröße wirklich nicht so wichtig ist, würde ich fast immer empfehlen, mit dem Framework zu gehen (akademische Projekte nicht inbegriffen).
Sie erhalten etwas, das (normalerweise) gründlich getestet und dokumentiert wurde, anstatt zu experimentieren und Fehler in Ihrer eigenen Version zu beheben.
Verwenden Sie ein Framework. Es ist in den meisten Fällen keine gute Idee, ein eigenes Framework für ein Projekt zu schreiben, das eine Deadline hat. Für ein Hobby-Projekt, ja, warum nicht einen Rahmen bilden. In Ihrem Fall können Sie hier sehen:
https://stackoverflow.com/questions/1280462/what-mvvm-framework-are-you-using