Desktop-Anwendungen: Architectural Frameworks?
-
02-07-2019 - |
Frage
Ich frage mich, ob es irgendwelche architektonischen Rahmenbedingungen ist da draußen Desktop oder Standalone-Anwendungen zu erstellen, in Java oder C # zum Beispiel. Es scheint, dass es gibt Tonnen von ihnen zur Verfügung für Web-Anwendungen, aber ich kann nicht viele gute Ressourcen auf Gerüste oder architektonisches Best Practices für Desktop-Entwicklung.
Im Idealfall würde Ich mag wissen, ob es ein Quellcode-Anwendungen verfügbar von Desktop ist, die berücksichtigt werden würden eine gute Architektur haben oder mit einem bestimmten Rahmen gebaut.
Lösung
Während nicht direkt an Desktop-Anwendungen verbunden, wenn Sie sich für anständigen Quellcode für gut geschrieben Projekte, die ich eine ähnliche Frage gestellt:
Open-Source-C # Projekte, die extrem hohe Qualität des Codes müssen zu lernen, aus.
Menschen gab einige sehr gute Vorschläge gibt:
- Scott Hanselman Die Weekly Source Code Serie (in der Regel Managed C #)
- -Code geschrieben von Microsoft Patterns & Practices Team.
- SharpDevelop (in C # geschrieben)
- Mono (die meisten Rahmen in C #)
- Paint.Net (in C # geschrieben)
- NHibernate (in C # geschrieben)
- Das Castle Projekt (in C # geschrieben)
- xUnit (in C # geschrieben)
- .Net Framework Quellcode
Andere Tipps
In der leichten App-Kategorie, JSR 296 für Java (bis 7 möglicherweise in Zukunft Java sein) ist ein Framework, um die Grundlagen wie Ressourcenmanagement und Aktionen Handhabung. Viele Links hier:
ein wenig Scaling-up, Sie bei verschiedenen RCP-Frameworks aussehen könnte:
- Eclipse RCP: http://wiki.eclipse.org/index.php/Rich_Client_Platform
- NetBeans Plattform: http://www.netbeans.org/products/platform/
- Frühling RCP: http: // Feder-rich-c. sourceforge.net/1.0.0/index.html
- Vergleich Artikel: http://www.infoq.com/news/ eclipse-RCP-netBeans-Plattform
UPDATE:. Es hat sich (von Mark Reinhold bei Devoxx '08) erwähnt worden, dass JSR 296 wird in Java 7 enthalten sein
Weitere Update: JSR 296 ist tot. JavaFX ist die Stromrichtung für die clientseitige Java.
Es gibt eine neue .NET Architektur Beratung Paket von Microsoft patterns & Praktiken für WPF, die den Codenamen „Prism“ ist - es ist im Grunde eine "nächste Generation" Composite-UI Application Block (ohne SCSF Tooling). Es verwendet Dependency Injection, Composite-Muster im gesamten, etc.
Es ist eine ziemlich gute DNRTV Screencasts Demonstrieren es.
Überprüfen Sie Microsofts Smart Client Software Factory . Es enthält Codebeispiele und Dokumentation.
Übersicht
Diese Software Factory bietet bewährte Lösungen für gemeinsame Herausforderungen gefunden beim Aufbau und Betrieb von Verbund Smart-Client-Anwendungen. Es hilft Architekten und Bauherren bauen modulare Systeme, die gebaut werden kann und von unabhängigen Teams eingesetzt. Anwendungen, die mit der Software Fabrik Einsatz bewährte Praktiken für Operationen, wie zentralisierte Ausnahme Protokollierung.
Die Software Factory enthält ein Sammlung von wieder verwendbaren Komponenten und Bibliotheken, Visual Studio 2008-Lösung Vorlagen, Assistenten und Erweiterungen, Wie zu Themen, automatisierte Tests, umfangreiche Architekturdokumentation, Muster, und eine Referenz Implementierung. Die Software Factory verwendet Windows Forms, Windows- Presentation Foundation, Windows- Communication Foundation und die Enterprise Library 3.1 - Mai 2007 Freisetzung. Mit dieser Version des Composite UI Application Block ist in der Software-Fabrik enthalten.
In Java, Nackt Objekte - http://nakedobjects.org/home/index.shtml
JMatter - Implementierung von nackten Objekte - http://jmatter.org/ . ziemlich gut.
beide sind Open Source.
Auf der Java-Seite gibt es mehrere Projekte zur Rich-Client-Plattformen (RCP ist das neue Schlagwort für ‚Desktop‘ Apps):
- Eclipse RCP (wenn Sie in Ordnung sind mit SWT statt Swing)
- Feder RCP (die ist in dem Prozess des Seins überholt in den Frühling-Desktop)
- NetBeans RCP (was ich bin nicht Besonders beeindruckt, aber das ist schon daran gedacht eine Traktion)
- JSR 296 (Application Framework) - I eigentlich wirklich wie diese
Google eine der oben und Sie werden jede Menge Informationen erhalten.
Sie können einige der gleichen Ansätze in Client-Entwicklung, die Sie im Web-Entwicklung zu verwenden, wie zum Beispiel Model-View-Presenter. Der Namespace System.Windows.Forms hat alles, was Sie benötigen, eine Client-Anwendung in C #, mit dem Rest des .NET Framework bauen Verfügung, um die Dienstleistungen, die Sie (wie IO und Remoting) benötigen.
Was Quellcode für feste Architekturen in Desktop-Anwendungen, auf den Code sucht Paint.NET und SharpDevelop . Beide haben sehr unterschiedliche Ansätze, die interessant für Sie sein wird.
Sorry für die .NET-Neigung dieser Antwort. Es ist, was ich am besten kenne. :)
würde ich CSLA .NET-Framework von Rockford Lhotka empfehlen: http: //www.lhotka. net / cslanet / Default.aspx
Es kommt Wille vollständige Quellcode sowie Beispiel Client-Anwendungen in ASP.NET gebaut, WinForms und WPF.
Ich habe gerade die Composite Application Guidance für WPF und Silverlight das sieht sehr interessant. Es wurde im Februar 2009 veröffentlicht.
Wir entwickeln in .NET-Technologien hier.
Unsere Freunde hier arbeiten an Client-Anwendungen entwickeln, um ihre Software auf das Model-View-Presenter-Entwurfsmuster, die häufig mit Web-Entwicklung verbunden ist. Für sie sie es funktioniert sehr gut finden, ich glaube, es kann sich lohnen, Check-out.
Die Smart Client Factory (von Panos erwähnt) kann auch nützlich für Sie sein, wenn es nicht ein Rahmen ist aber eher eine Bibliothek von Best-Practice-Lösungen für gemeinsame Probleme.
Speziell auf organisierte Präsentation Rahmen ui Funktionen wir InfoNode Docking-Fenster verwendet haben , das ist ein Framework Windowing eine Sonnenfinsternis wie Aussehen (ziehen Ansichten überall, schließen sie, trennen sie usw., im Design anpassbares natürlich) verwendet wird. dort für Open-Source-Produkte aus, altough afaik der Entwickler-Lizenz GPL Version ist ist nicht so teuer ($ 299 pro Stück).
Überprüfen Sie Ideablade Cabana für DotNet C #. http://www.ideablade.com/CAB.html
Cabana Beispiel App
Die Cabana-Anwendung ist ein einfaches Smart-Client-Referenz-App mit einem knackigen, feature-rich User Experience, die einfach zu implementieren und zu dem Web-Betrieb über. Cabana zeigt:
Ein einfacher Ansatz für den Composite-UI Application Block von Microsoft ‚s Patterns & Practices Group. Wartbar, wiederverwendbarer Code durch UI Zusammensetzung. Die Trennung von Model (Geschäftslogik und Datenzugriff) von Präsentation. Das Model-View-Presenter-Muster. Performance-Tuning. Und mehr.
I DesktopBootstrap vor kurzem veröffentlicht. Es ist mein Versuch, viele der gemeinsamen Elemente Faktor von mittleren bis großen Desktop-Anwendungen zu schaffen.
Sie können finden sie hier .