デスクトップアプリケーション:アーキテクチャフレームワーク?
-
02-07-2019 - |
質問
デスクトップアプリケーションまたはスタンドアロンアプリケーション(JavaやC#など)を作成するためのアーキテクチャフレームワークがあるかどうか疑問に思っています。 Webアプリケーションで利用できるものはたくさんあるようですが、デスクトップ開発のフレームワークやアーキテクチャのベストプラクティスに関する多くの優れたリソースは見つかりません。
理想的には、優れたアーキテクチャを備えていると考えられる、または特定のフレームワークで構築されたデスクトップアプリケーションのソースコードがあるかどうかを知りたいです。
解決
よく書かれたプロジェクトのまともなソースコードを探している場合、デスクトップアプリケーションに直接関連していませんが、同様の質問をしました:
オープンソースC#学習するコード品質が非常に高いプロジェクト。
人々はそこにかなり良い提案をしました:
- Scott Hanselmanの The Weekly Source Code シリーズ(通常は マネージC#)
- Microsoft Patterns&によって記述されたコードプラクティスチーム。
- SharpDevelop (C#で記述)
- Mono (C#のフレームワークのほとんど)
- Paint.Net (C#で記述)
- NHibernate (C#で記述)
- Castleプロジェクト(C#で記述)
- xUnit (C#で記述)
- .Net Frameworkソースコード
他のヒント
軽量アプリのカテゴリでは、JSR 296 for Java(将来のJava 7になる可能性がある)は、リソース管理やアクションなどの基本を処理するフレームワークです。多くのリンクがここにあります:
少し拡大すると、次のようなさまざまなRCPフレームワークを見ることができます。
- Eclipse RCP: http://wiki.eclipse.org/index.php/Rich_Client_Platform
- NetBeansプラットフォーム: http://www.netbeans.org/products/platform/
- Spring RCP: http:// spring-rich-c。 sourceforge.net/1.0.0/index.html
- 比較記事: http://www.infoq.com/news/ eclipse-rcp-netbeans-platform
更新:JSR 296がJava 7に含まれることが(Devoxx '08のMark Reinholdによって)言及されました。
さらなる更新:JSR 296は死んでいます。 JavaFXは、クライアント側Javaの現在の方向です。
新しい Microsoftパターン&からの.NETアーキテクチャガイダンスパッケージがあります。 「Prism」という名前のコードであるWPFのプラクティス-基本的には「次世代」です。コンポジットUIアプリケーションブロック(SCFSツールなし)。依存性注入、複合パターン全体などを使用します。
かなり良い DNRTV でデモを行います。
>Microsoftのスマートクライアントソフトウェアファクトリを確認します。コードサンプルとドキュメントが含まれています。
概要
このソフトウェアファクトリーは、 共通の課題に対する解決策が見つかりました コンポジットの構築および運用中 スマートクライアントアプリケーション。助けになる 建築家と開発者が構築する 構築可能なモジュール式システム 独立したチームによって展開されます。 ソフトウェアで構築されたアプリケーション 工場は、 集中管理などの操作 例外ログ。
ソフトウェアファクトリには、 再利用可能なコンポーネントのコレクションと ライブラリ、Visual Studio 2008ソリューション テンプレート、ウィザード、拡張機能、 ハウツートピック、自動テスト、 広範なアーキテクチャのドキュメント、 パターン、およびリファレンス 実装。ソフトウェア工場 Windowsフォーム、Windowsを使用 Presentation Foundation、Windows コミュニケーション財団 エンタープライズライブラリ3.1– 2007年5月 リリース。このリリースでは、 コンポジットUIアプリケーションブロックは ソフトウェアファクトリに含まれています。
Javaでは、裸のオブジェクト- http://nakedobjects.org/home/index.shtml
JMatter-裸のオブジェクトの実装- http://jmatter.org/ 。かなり良い。
どちらもオープンソースです。
Java側では、リッチクライアントプラットフォームを対象としたいくつかのプロジェクトがあります(RCPは「デスクトップ」アプリの新しい流行語です):
- Eclipse RCP(SWTを使用して問題ない場合 Swingの代わりに)
- Spring RCP(これは ある過程にある Spring Desktopへのオーバーホール)
- NetBeans RCP(私はそうではありません 特に感銘を受けましたが、 それは牽引力を得ています)
- JSR 296(アプリケーションフレームワーク)-I 実際にこれが本当に好きです
上記のいずれかをグーグルで検索すると、大量の情報が得られます。
Model View Presenterなど、Web開発で使用するのと同じクライアント開発のアプローチを使用できます。 System.Windows.Forms名前空間には、C#でクライアントアプリケーションを構築するために必要なものがすべて含まれています。残りの.NET Frameworkは、必要なサービス(IOやリモート処理など)を提供するために使用できます。
デスクトップアプリの堅牢なアーキテクチャのソースコードについては、 Paint.NET のコードをご覧ください。および SharpDevelop 。どちらも、あなたにとって興味深い非常に異なるアプローチを持っています。
この返信の.NETの傾きについては申し訳ありません。それは私が最もよく知っていることです。 :)
Rockford LhotkaのCSLA .NET frameworkをお勧めします: http://www.lhotka。 net / cslanet / Default.aspx
ASP.NET、WinForms、WPFで構築されたサンプルクライアントアプリケーションだけでなく、完全なソースコードが付属します。
WPFおよびSilverlightの複合アプリケーションガイダンスとても面白そうです。 2009年2月に公開されました。
ここでは.NETテクノロジで開発しています。
ここでクライアントアプリケーションに取り組んでいる友人は、Web開発に関連することが多いModel View Presenterデザインパターンに合わせてソフトウェアを開発しています。彼らにとって、それは非常にうまく機能していると思うので、チェックする価値があると思います。
フレームワークではなく、一般的な問題に対するベストプラクティスソリューションのライブラリーではありますが、スマートクライアントファクトリー(Panosによる言及)も役立ちます。
具体的には、 infonodeドッキングウィンドウを使用しているUI関数の組織化されたプレゼンテーションフレームワーク、これは外観のような日食を使用したウィンドウフレームワークです(ビューを任意の場所にドラッグ、閉じる、ドッキング解除など、もちろんスキン可能)。開発者ライセンスはそれほど高価ではありませんが(各299ドル)、オープンソース製品用のgplバージョンがあります。
IdeaBladeのCabana for DotNet C#を確認してください。 http://www.ideablade.com/CAB.html
Cabanaサンプルアプリ
Cabanaアプリケーションは、Web上で簡単に展開および操作できる、鮮明で機能豊富なユーザーエクスペリエンスを備えたシンプルなスマートクライアントリファレンスアプリです。 Cabanaのデモ:
Microsoft’ s Patterns&のComposite UI Application Blockへの簡単なアプローチ実践グループ。 UI構成による保守可能で再利用可能なコード。 プレゼンテーションからのモデル(ビジネスロジックとデータアクセス)の分離。 Model-View-Presenterパターン。 性能調整。 もっと。
最近、DesktopBootstrapを公開しました。中規模から大規模のデスクトップアプリを作成するための一般的な要素の多くを除外しようとしています。
こちらで見つけることができます。