Applications de bureau: cadres architecturaux?
-
02-07-2019 - |
Question
Je me demande s’il existe des cadres architecturaux permettant de créer des applications de bureau ou autonomes, en Java ou en C #, par exemple. Il semble qu’il en existe des tonnes pour les applications Web, mais je ne trouve pas beaucoup de bonnes ressources sur les frameworks ou les meilleures pratiques architecturales pour le développement de postes de travail.
Idéalement, j'aimerais savoir s'il existe un code source disponible pour les applications bureautiques pouvant être considérées comme ayant une bonne architecture ou ayant été construit avec un certain framework.
La solution
Bien que n'étant pas directement lié aux applications de bureau si vous recherchez un code source décent pour des projets bien écrits, j'ai posé une question similaire:
Les gens y ont fait de très bonnes suggestions:
- La série hebdomadaire du code source de Scott Hanselman (généralement C # géré)
- Code écrit par Microsoft Patterns & amp; Équipe Pratiques .
- SharpDevelop (écrit en C #)
- Mono (la majeure partie du cadre est en C #)
- Paint.Net (écrit en C #)
- NHibernate (écrit en C #)
- Le projet du château (écrit en C #)
- xUnit (écrit en C #)
- code source .Net Framework
Autres conseils
Dans la catégorie des applications légères, JSR 296 pour Java (éventuellement dans le futur, Java 7) est un cadre gérant les bases, telles que la gestion des ressources et les actions. Beaucoup de liens ici:
Pour passer à la vitesse supérieure, vous pouvez vous pencher sur différents frameworks RCP tels que:
- Eclipse RCP: http://wiki.eclipse.org/index.php/Rich_Client_Platform
- Plate-forme NetBeans: http://www.netbeans.org/products/platform/
- Spring RCP: http: // spring-rich-c. sourceforge.net/1.0.0/index.html
- Article de comparaison: http://www.infoq.com/news/ eclipse-rcp-netbeans-platform
MISE À JOUR: Il a été mentionné (par Mark Reinhold sur Devoxx '08) que JSR 296 serait inclus dans Java 7.
Nouvelle mise à jour: JSR 296 est morte. JavaFX est la direction actuelle pour Java côté client.
Un nouveau paquet de conseils d'architecture .NET de Microsoft patterns & amp; pratiques pour WPF portant le nom de code "Prism" - il s’agit en gros d’une "nouvelle génération" Bloc d'application d'interface utilisateur composite (sans l'outillage SCSF). Il utilise l’injection de dépendances, un motif composite complet, etc.
.Il y a un assez bon DNRTV qui effectue une démonstration vidéo.
Vérifiez la fabrique de logiciels Smart Client de Microsoft . Il contient des exemples de code et de la documentation.
Présentation
Cette usine de logiciels fournit des solutions éprouvées solutions aux défis communs trouvés tout en construisant et en utilisant composite applications client intelligentes. Ça aide architectes et développeurs construisent systèmes modulaires qui peuvent être construits et déployés par des équipes indépendantes. Applications construites avec le logiciel utilisation en usine des pratiques éprouvées pour opérations telles que la gestion centralisée enregistrement des exceptions.
La fabrique de logiciels contient un collection de composants réutilisables et bibliothèques, solution Visual Studio 2008 modèles, assistants et extensions, Sujets de procédures, tests automatisés, une documentation complète sur l'architecture, modèles, et une référence la mise en oeuvre. La fabrique de logiciels utilise Windows Forms, Windows Présentation Foundation, Windows Communication Foundation, et le Bibliothèque Enterprise 3.1 & # 8211; Mai 2007 Libération. Avec cette version, le Le bloc d’application de l’UI composite est inclus dans la fabrique de logiciels.
En Java, objets nus - http://nakedobjects.org/home/index.shtml
JMatter - implémentation d'objets nus - http://jmatter.org/ . plutôt bien.
les deux sont open source.
Du côté de Java, plusieurs projets sont destinés aux plateformes client enrichi (RCP est le nouveau mot à la mode pour les applications "de bureau"):
- Eclipse RCP (si vous êtes d'accord avec SWT au lieu de Swing)
- Spring RCP (qui est en train d'être révisé dans Spring Desktop)
- NetBeans RCP (que je ne suis pas particulièrement impressionné par, mais cela devient une traction)
- JSR 296 (Cadre d'application) - I en fait vraiment comme celui-ci
Google sur ce qui précède et vous obtiendrez des tonnes d'informations.
Vous pouvez utiliser certaines des mêmes approches de développement client que celles utilisées pour le développement Web, telles que Model View Presenter. L'espace de noms System.Windows.Forms contient tout ce dont vous avez besoin pour créer une application cliente en C #, le reste du .NET Framework étant disponible pour fournir les services dont vous avez besoin (tels que l'IO et la communication à distance).
En ce qui concerne le code source des architectures solides dans les applications de bureau, consultez le code de Paint.NET . et SharpDevelop . Les deux approches ont des approches très différentes qui vous intéresseront.
Désolé pour l'inclinaison .NET de cette réponse. C'est ce que je connais le mieux. :)
Je recommanderais le framework CSLA .NET de Rockford Lhotka: http: //www.lhotka. net / cslanet / Default.aspx
Il contient le code source complet ainsi que des exemples d’applications client construites dans ASP.NET, WinForms et WPF.
Je viens de trouver le Conseils relatifs aux applications composites pour WPF et Silverlight . qui a l'air très intéressant. Il a été publié en février 2009.
Nous développons ici les technologies .NET.
Nos amis qui travaillent ici sur des applications client développent leur logiciel selon le modèle de conception de Model View Presenter, souvent associé au développement Web. Pour eux, ils trouvent que cela fonctionne très bien, je pense que cela vaut la peine d’y jeter un coup d’œil.
Smart Client Factory (mentionné par Panos) peut également vous être utile, même s’il ne s’agit pas d’un cadre mais d’une bibliothèque de solutions de meilleures pratiques aux problèmes courants.
Vérifiez la cabane d’IdeaBlade pour DotNet C #. http://www.ideablade.com/CAB.html
Exemple d'application Cabana
L’application Cabana est une application de référence pour client intelligent simple offrant une expérience utilisateur riche, riche en fonctionnalités, facile à déployer et à utiliser sur le Web. Cabana démontre:
Une approche simple du bloc d’application de l’UI composite à partir de Patterns & amp; de Microsoft; Groupe de pratiques. Code maintenable et réutilisable via la composition de l'interface utilisateur. Séparation du modèle (logique métier et accès aux données) de la présentation. Le modèle Model-View-Presenter. L'optimisation des performances. Et plus.
J'ai récemment publié DesktopBootstrap. C’est ce que j’essaie de prendre en compte de nombreux éléments communs de la création d’applications de bureau de moyenne à grande échelle.
Vous pouvez le trouver ici .