Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

.NETの業務向けOSSフレームワーク鼎談

6,759 views

Published on

Developers Summit 2011
【17-D-5】.NETの業務向けOSSフレームワーク鼎談

Published in: Technology
  • Be the first to comment

.NETの業務向けOSSフレームワーク鼎談

  1. 1. .NETの業務向けOSSフレームワーク鼎談(ベータ版:発言は未記載)<br />福井厚<br />青木淳夫<br />立見博史<br />司会:猪股健太郎<br />書記:荻原裕之<br />17-D-5<br />
  2. 2. 予習:フレームワークとは<br />ソフトウェアフレームワーク(英: software framework)とは、プログラミングにおいて、一般的な機能をもつ共通コードをユーザーが選択的に上書きしたり特化させたりすることで、ある特定の機能をもたせようとする抽象概念のことである。単にフレームワークとも呼ばれる。<br />ソフトウェアフレームワークは、はっきり定義されたAPIを持ち、コードを再利用可能な形で隠蔽しているという点でライブラリとよく似ている。しかし、ライブラリでは呼び出し側がプログラム全体の制御構造を指定できないが、フレームワークでは可能である。この制御の反転がソフトウェアフレームワークの特筆すべき特徴である。<br />(Wikipedia「ソフトウェアフレームワーク」より)<br />
  3. 3. 予習:さまざまなフレームワーク<br />アプリケーション形態に沿ったフレームワーク<br />Webアプリケーション・フレームワーク<br />GUIアプリケーション・フレームワーク<br />コンソールアプリケーション・フレームワーク<br />特定レイヤのフレームワーク<br />Webサービス・フレームワーク<br />データアクセス・フレームワーク<br />レイヤに依存しない機能のフレームワーク<br />AOPフレームワーク<br />DI (依存性注入) フレームワーク<br />開発ライフサイクルを支援するフレームワーク<br />テスティング・フレームワーク<br />
  4. 4. 本セッションの狙い<br />.NET Frameworkの使い方を「現場の視点」で話し合おう<br />オープンソースソフトウェアと「中の人」を知ってもらおう<br />
  5. 5. 3つのOSSフレームワーク<br />ボラン<br />ティア<br />企業<br />.NET<br />JAVA<br />
  6. 6. Agenda<br />各フレームワークの概要紹介<br />質問1各フレームワークの思想<br />質問2「中の人」の話<br />質問3パネリスト同士の質問<br />まとめ<br />
  7. 7. Enterprise Libraryの紹介<br />
  8. 8. ACA.NETとEnterpriseLibrary<br />アバナード以前、アクセンチュア MSからIPを委譲される<br />Microsoft はACA.NETのテクノロジーをEnterpriseLibraryのベースとして適用。ACA.NETはEnterpriseLibraryを基盤として利用。<br />ACA.NET は品質、再利用性、生産性向上のためにServiceFactoryとWebFactoryを提供<br />ACA.NET<br />7.x<br />ICBAM<br />ACA DNA<br />ACA.NET<br />1.0<br />ACA.NET<br />6.x<br />ACA.NET<br />5.x<br />ACA.NET<br />2.x<br />ACA.NET<br />3.x<br />ACA.NET<br />4.x<br />Ent Lib <br />1.x<br />Ent Lib<br />4.x<br />Ent Lib<br />3.x<br />Ent Lib<br />2.x<br />Ent Lib<br />5.0<br />VSTS 2005 とDSL Tool Kit をリリース。ソフトウェア ファクトリが生産性の向上を提供<br />.NET Framework リリース ACA.NET 1.0 は多くの基本となるアーキテクチャ パターンをラップ<br />.NET FX<br />1.0<br />.NET FX<br />1.1<br />.NET FX<br />2.0<br />.NET FX<br />3.5<br />.NET FX<br />3.0<br />.NET FX<br />4.0<br />Visual Studio<br />6<br />Visual Studio .NET<br />Visual Studio 2003<br />VSTS 2005<br />VSTS 2008<br />VSTS 2010<br />Oct 2008<br />Ent Lib 4.1<br />Aug 2007<br />ACA.NET 5.0<br />Oct 2002<br />ACA.NET 2.0<br />Nov 2005, <br />.NET FX 2.0<br />VSTS 2005<br />Nov 2006, <br />.NET FX 3.0<br />Jan 2003<br />ACA.NET 2.1<br />Jun 2004 <br />ACA.NET 3.1<br />May 2008<br />Ent Lib 4.0<br />Aug 2008<br />ACA.NET 6.0<br />Feb 2010<br />ACA.NET 7.0<br />Jan 2005<br />Ent Lib1.0<br />ACA.NET 4.0<br />Jan 2006<br />Ent Lib 2.0<br />Sep 2000, Avanade Formed by Accenture and Microsoft<br />Feb 2002, <br />.NET FX 1.0 <br />VS.NET<br />ACA.NET 1.0<br />Apr 2003, <br />.NET FX 1.1<br />VSTS 2003<br />ACA.NET 2.1<br />Nov 2007, <br />.NET FX 3.5<br />VSTS 2008<br />Jan 2004<br />ACA.NET 3.0<br />Apr 2007<br />Ent Lib 3.0<br />May 2007<br />Ent Lib 3.1<br />Mar 2008<br />ACA.NET 5.1<br />Mar 2009<br />ACA.NET 6.1<br />2010<br />2009<br />2008<br />2007<br />2006<br />2005<br />2004<br />2003<br />2002<br />2001<br />2000<br />
  9. 9. Enterprise Library以前のP&P<br />オリジナルのApplication Block<br />Data Access Application Block<br />Exception ManagementApplication Block<br />Asynchronous Invocation Application Block<br />Aggregation Application Block<br />Caching Application Block<br />Configuration Management Application Block<br />Uppdater Application Block<br />User Interface Process Application Block<br />Smart Client Offline Application Block<br />
  10. 10. Enterprise Library 1.0-1.1<br />For .NET Framework 1.1 Overview<br />2005年1月 Version1.0 リリース<br />ConfigurationApplication Block<br />Data Access Application Block<br />Caching Application Block<br />Exception HandlingApplication Block<br />Logging and Instrumentation Application Block<br />Security Application Block<br />Cryptography Application Block<br />2005年6月 Version 1.1 リリース<br />.NET Framework 2.0 との互換性<br />
  11. 11. Enterprise Library 2.0-3.1<br />Enterprise Library 2.0 (2006.1)<br />.NET Framework 2.0に対応するため大幅に書き直し<br />Enterprise Library 3.0 (2007.4)<br />Validation Application Block<br />Policy Injection Application Block<br />Enterprise Library 3.1 (2007.5)<br />バグ修正<br />
  12. 12. Enterprise Library 4.0-4.1<br />Enterprise Library 4.0 (2008.5)<br />.NET Framework 3.5、Visual Studio 2008 サポート<br />UnityApplication Blockとの統合<br />Enterprise Library 4.1 (2008.10)<br />UnityInterceptionを使ったPolicy Injection ABとUnityの統合<br />Unity Application BlockのGenericsサポート<br />VS2008SP1対応<br />
  13. 13. Enterprise Library 5.0<br />Enterprise Library 5.0 (2010.4)<br />.NET Framework 4.0、Visual Studio 2010 サポート<br />メジャーリファクタリング<br />DIコンテナの抽象化<br />プログラマティックな構成サポート<br />非同期データアクセス<br />DataAnnotationsの属性バリデーション サポート<br />WPFバリデーションとの統合<br />
  14. 14. Seasar.netの紹介<br />
  15. 15. Seasar.NET とは<br />Seasar.NETとは<br />DI+AOPコンテナ「Seasar.NET」に代表されるプロダクトとコミュニティhttp://s2container.net.seasar.org<br />Seasarプロジェクトのトッププロジェクトの1つSeasarプロジェクトでは自由にOSSの開発が可能業務アプリケーション開発に役立つプロダクトが多い点が特徴<br />
  16. 16. Seasar.NET プロダクト<br />Seasar.NETの主要プロダクトの紹介<br />
  17. 17. Seasar.NET の歴史<br />登場から現在まで<br />2005年04月 S2Container.NETプロジェクト誕生<br />2005年09月 S2Dao.NETプロジェクト誕生<br />2005年11月 S2Container.NET 1.0リリース(.NET1.1対応)<br />2006年02月 S2Container.NET 1.1リリース<br />2006年06月 S2Container.NET1.2リリース(.NET2.0対応)<br />2006年09月 S2Dao.NET 1.0リリース<br />2006年10月 S2Windows.NETサンプル公開<br />2007年07月 S2Container.NET1.3リリース(Quill登場)<br />2009年01月 Koropokkur.NET登場(最新バージョンは0.2.3)<br />2009年06月 DBFlute.NET登場(最新バージョンは0.8.9 )<br />2010年08月 S2Container.NET1.3.18リリース(.NET2.0系最新)<br />2010年02月 Fisshplate.NET 登場(最新バージョンは0.1.1)<br />2011年01月 S2Container.NET1.4RC2リリース(.NET4.0対応)<br />
  18. 18. Seasar.NETの活動<br />活動内容<br />新機能追加やバグ修正<br />メーリングリストに対する調査や回答<br />ブログ等のメディアを使っての情報公開<br />Seasarカンファレンス等のイベントでの発表や懇親会<br />プロジェクトのインフラ<br />サポート:メーリングリスト(別途コミッタ用MLあり)<br />ソース管理:Subversion<br />バグ管理:JIRA<br />主なコミッタ<br />久保さん(http://d.hatena.ne.jp/jflute/)<br />小谷さん(http://d.hatena.ne.jp/koyak/)<br />宮城さん(http://d.hatena.ne.jp/rmiya/)<br />藤井さん(http://fujiih.at.webry.info/)<br />西山さん (http://d.hatena.ne.jp/hajimeni/)<br />杉本さん(http://d.hatena.ne.jp/sugimotokazuya/)<br />
  19. 19. TERASOLUNAの紹介<br />
  20. 20. TERASOLUNA for .NETとは<br />.NETを利用した業務システム開発向けのオープン<br />ソースフレームワーク<br />TERASOLUNA Client Framework for .NET<br />Windowsフォームによるリッチクライアント・アプリケーション向け<br />のフレームワーク<br />TERASOLUNA Server Framework for .NET(Rich)<br />リッチクライアント・アプリケーションの通信先となるサーバ向け<br />のフレームワーク<br />TERASOLUNA Server Framework for .NET(Web)<br />ASP.NETによるWebアプリケーション向けのフレームワーク<br />フレームワークに対応した開発手順や各種開発<br />支援ツールを提供<br />※OSSとしての公開はフレームワークのみです。<br />
  21. 21. ○○○○<br />○○○○<br />○○<br />TERASOLUNA for .NETがターゲットとするリッチクライアント・アプリケーション<br />クライアントアプリケーションでは主に業務画面処理を行う<br />要件に応じて、バーコードリーダやOCRなど、クライアントのローカルデバイスにもアクセスする<br />サーバアプリケーションでは、業務処理実行、データアクセスを行う<br />プレゼンテーションレイヤ<br />データレイヤ<br />ビジネスレイヤ<br />クライアントPC<br />APサーバ<br />業務処理呼び出し<br />データアクセス<br />業務画面<br />要求電文<br />(XML、バイナリ、<br />マルチパート)<br />データアクセスオブジェクト<br />ビジネスロジック<br />要求受付<br />DB<br />応答電文<br />(XML、バイナリ)<br />ローカルデバイス<br />DBサーバ<br />
  22. 22. ○○○○<br />○○○○<br />○○<br />TERASOLUNA for .NETがターゲットとするリッチクライアント・アプリケーション<br />サーバは.NETやJava、その他Webサービスと接続可能<br />TERASOLUNA Client Framework<br />for .NET<br />プレゼンテーションレイヤ<br />データレイヤ<br />TERASOLUNA Server <br />Framework for .NET(Rich)<br />ビジネスレイヤ<br />クライアントPC<br />APサーバ<br />業務処理呼び出し<br />データアクセス<br />業務画面<br />要求電文<br />(XML、バイナリ、<br />マルチパート)<br />TERASOLUNA Server <br />Framework for Java(Rich)<br />データアクセスオブジェクト<br />ビジネスロジック<br />要求受付<br />Webサービスなど<br />DB<br />応答電文<br />(XML、バイナリ)<br />ローカルデバイス<br />DBサーバ<br />
  23. 23. TERASOLUNA for .NETの狙い<br />.NETを利用した業務システム開発における、<br />「保守性」 「品質」 「コスト」の問題を解決する!!<br /> 業務システム全体のアーキテクチャを統一<br />クライアントからサーバ業務処理を呼び出す処理フローをテンプレートとして定型化(入力値検証->サーバ処理呼び出し->処理結果の画面への反映)<br /> 作り込みが必要となる複雑な処理を隠蔽<br />システム全体で統一したエラーハンドリング処理<br />マルチスレッドによる非同期処理<br />標準の.NET Frameworkでは足りない共通機能を強化<br />日本語の入力値検証、ログ、メッセージ管理機能等<br />
  24. 24. TERASOLUNA for .NETの<br />テクノロジーマッピング<br />.NET標準の技術を最大限活用し、サポートが薄い部分を重点的にTERASOLUNA for .NETが補完している<br />
  25. 25. TERASOLUNAの歴史<br />開発開始から現在まで<br />2003年 TERASOLUNA Server Framework for Java の開発がスタート<br />2004年 TERASOLUNA Server Framework for .NET の開発がスタート<br />2007年 TERASOLUNA Client Framework for .NET の開発がスタート<br />同時期に TERASOLUNA Batch Framework for Java の開発がスタート<br />2007年11月 TERASOLUNA Server、Batch Framework for Java をOSSとしてSourceForge.jpに公開<br />2008年7月 TERASOLUNA Server/Client Framework for .NET v2.1 をOSSとしてSourceForge.jpに公開<br />2010年4月 TERASOLUNA Server/Client Framework for .NET v3.0 をOSSとしてSourceForge.jpに公開<br />2003年から社内向けフレームワーク開発を開始<br />2007年11月にOSSとしてSourceForge.jpに公開<br />
  26. 26. 質問1 フレームワーク<br />このフレームワークを選ぶ理由は?<br />組み合わせたり取り外したりできる?<br />拡張の方法は?<br />IDEを使った支援機能はある?<br />どんな事例が?<br />.NET Frameworkの機能強化とのすみ分け<br />バリデーション<br />ロギング<br />データアクセス<br />
  27. 27. 質問2 開発・サポート<br />開発メンバーの「中の人」の話を。<br />新機能はだれが決める?<br />コミッタはどういうメンバー?<br />リリースのタイミングと方法<br />ドキュメントは充実している?<br />コミュニティからのフィードバック<br />過去バージョンのメンテナンスポリシー<br />ツールや技法など<br />
  28. 28. 質問3 お互いに<br />
  29. 29. まとめ<br />各スピーカーの思い<br />プロダクトの特徴<br />オープンソースソフトウェアの良さ<br />.NETの業務システムについてこれまでとこれから<br />
  30. 30.
  31. 31. 福井 厚 (EntLib.NET)<br />アバナード株式会社 CTOアーキテクト/ VSUG運営委員 / XPJUG企画担当<br />ソフトウェアハウス、大手SIベンダーを経て、2006年からアバナードに在籍。現在はソリューションアーキテクトとして.NETによる企業システム開発プロジェクトに多数従事。Enterprise Libraryをベースとしたフレームワーク開発も多数経験。またVSUG、XPJUG、デブサミオブザーバーなどコミュニティ活動にも積極的に参加。最近はVSUGアーキテクト アカデミーを主催し、アーキテクト育成のための活動も行っている。<br />Microsoft Certified Architect(MCA)、Microsoft Regional Director、MS MVP。<br />Twitter: @afukui<br />
  32. 32. 青木 淳夫 (Seasar.NET)<br />㈱ネクストスケープ(豆蔵OSHDグループ)にて、ECサイト、業務システムの設計・開発に従事<br />Seasar.NETコミッタ / .NET CLIPS運営<br />2001年にVBマガジンにVBUnitとXPの記事を寄稿、その後も.NETとOSSの情報を発信(log4net,NLog,S2Dao.NET,SubSonic,iBATIS.NET,NHibernate,NAnt,NVelocity,iTextSharp,xUnit.NET,Gallio,Sandcastle,SharpDevelop,DotNetZip,Moq,AutoMapper,HtmlAgilityPack,Selenium,BlogEngine.NET,LogParser…)<br />Microsoft MVP(2006年~)<br />Blog: http://d.hatena.ne.jp/aoki1210/<br />Twitter: @aoki1210<br />
  33. 33. 立見 博史 (TERASOLUNA)<br />株式会社NTTデータ  技術開発本部<br />「TERASOLUNA Server/Client Framework for .NET」(http://www.terasoluna.jp/)の整備や、社内での.NET案件の開発支援を実施<br />最近は「倍速開発」のスローガンのもと、開発自動化の研究開発に従事<br />2008年~2009年にかけてDBマガジンに「.NETコントロールまるわかり教室」を連載したり、@ITにTERASOLUNAに関する記事を寄稿<br />Microsoft Certified Professional Developer (MCPD)<br />

×