More Related Content Similar to .NETの業務向けOSSフレームワーク鼎談 (20) More from Kentaro Inomata (20) .NETの業務向けOSSフレームワーク鼎談2. 予習:フレームワークとは
ソフトウェアフレームワーク(英: software framework)とは、プ
ログラミングにおいて、一般的な機能をもつ共通コードをユー
ザーが選択的に上書きしたり特化させたりすることで、ある特
定の機能をもたせようとする抽象概念のことである。単にフ
レームワークとも呼ばれる。
ソフトウェアフレームワークは、はっきり定義されたAPIを持ち、
コードを再利用可能な形で隠蔽しているという点でライブラリと
よく似ている。しかし、ライブラリでは呼び出し側がプログラム
全体の制御構造を指定できないが、フレームワークでは可能
である。この制御の反転がソフトウェアフレームワークの特筆
すべき特徴である。
(Wikipedia「ソフトウェアフレームワーク」より)
Developers Summit 2011
3. 予習:さまざまなフレームワーク
アプリケーション形態に沿ったフレームワーク
Webアプリケーション・フレームワーク
GUIアプリケーション・フレームワーク
コンソールアプリケーション・フレームワーク
特定レイヤのフレームワーク
Webサービス・フレームワーク
データアクセス・フレームワーク
レイヤに依存しない機能のフレームワーク
AOPフレームワーク
DI (依存性注入) フレームワーク
開発ライフサイクルを支援するフレームワーク
テスティング・フレームワーク
Developers Summit 2011
6. Agenda
各フレームワークの概要紹介
質問1 各フレームワークの思想
質問2 「中の人」の話
質問3 パネリスト同士の質問
まとめ
Developers Summit 2011
8. ACA.NETとEnterprise Library
Microsoft はACA.NETのテクノロジーをEnterprise
アバナード以前、アクセンチュア MSから ACA.NET は品質、再利用性、生産性向上のた
Libraryのベースとして適用。ACA.NETはEnterprise
IPを委譲される めにService FactoryとWeb Factoryを提供
Libraryを基盤として利用。
ACA.NET ACA.NET ACA.NET ACA.NET ACA.NET ACA.NET ACA.NET
ICBAM ACA DNA
1.0 2.x 3.x 4.x 5.x 6.x 7.x
Ent Lib Ent Lib Ent Lib Ent Lib Ent Lib
1.x 2.x 3.x 4.x 5.0
.NET FX .NET FX .NET FX .NET FX .NET FX .NET FX
1.0 1.1 2.0 3.0 3.5 4.0
.NET
Framework リリース
Visual Studio Visual
VSTS 2005 とDSL Tool Kit をリ VSTS
Visual Studio 2003
リース。 VSTS 2005
ソフトウェア ファクトリが VSTS 2008
ACA.NET
6 1.0 は多くの基本となるStudio .NET 2010
アーキテクチャ パターンをラップ 生産性の向上を提供
Aug 2007 Oct 2008
ACA.NET 5.0 Ent Lib 4.1
Oct 2002 Jan 2003 Nov 2005,
Jun 2004 Nov 2006, May 2008 Aug 2008
ACA.NET ACA.NET .NET FX 2.0
ACA.NET 3.1 .NET FX 3.0 Ent Lib 4.0 ACA.NET 6.0
2.0 2.1 VSTS 2005
Sep 2000,
Avanade Feb 2002, Apr 2003, Apr 2007 Feb 2010
Jan 2005 Nov 2007,
Formed by .NET FX 1.0 .NET FX 1.1 Jan 2004 Jan 2006 Ent Lib 3.0 Mar 2008 Mar 2009 ACA.NET
Ent Lib1.0 .NET FX 3.5
Accenture VS.NET VSTS 2003 ACA.NET 3.0 Ent Lib 2.0 May 2007 ACA.NET 5.1 ACA.NET 6.1 7.0
ACA.NET 4.0 VSTS 2008
and ACA.NET 1.0 ACA.NET 2.1 Ent Lib 3.1
Microsoft
2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010
Developers Summit 2011
9. Enterprise Library以前のP&P
オリジナルのApplication Block
Data Access Application Block
Exception Management Application Block
Asynchronous Invocation Application Block
Aggregation Application Block
Caching Application Block
Configuration Management Application Block
Uppdater Application Block
User Interface Process Application Block
Smart Client Offline Application Block
Developers Summit 2011
10. Enterprise Library 1.0-1.1
For .NET Framework 1.1 Overview
2005年1月 Version 1.0 リリース
Configuration Application Block
Data Access Application Block
Caching Application Block
Exception Handling Application Block
Logging and Instrumentation Application Block
Security Application Block
Cryptography Application Block
2005年6月 Version 1.1 リリース
.NET Framework 2.0 との互換性
Developers Summit 2011
11. Enterprise Library 2.0-3.1
Enterprise Library 2.0 (2006.1)
.NET Framework 2.0に対応するため大幅に書き直し
Enterprise Library 3.0 (2007.4)
Validation Application Block
Policy Injection Application Block
Enterprise Library 3.1 (2007.5)
バグ修正
Developers Summit 2011
12. Enterprise Library 4.0-4.1
Enterprise Library 4.0 (2008.5)
.NET Framework 3.5、Visual Studio 2008 サポート
Unity Application Blockとの統合
Enterprise Library 4.1 (2008.10)
Unity Interceptionを使ったPolicy Injection ABとUnityの
統合
Unity Application BlockのGenericsサポート
VS2008SP1対応
Developers Summit 2011
13. Enterprise Library 5.0
Enterprise Library 5.0 (2010.4)
.NET Framework 4.0、 Visual Studio 2010 サポート
メジャーリファクタリング
DIコンテナの抽象化
プログラマティックな構成サポート
非同期データアクセス
DataAnnotationsの属性バリデーション サポート
WPFバリデーションとの統合
Developers Summit 2011
15. Seasar.NET とは
Seasar.NETとは
DI+AOPコンテナ「Seasar.NET」に代表される
プロダクトとコミュニティ
http://s2container.net.seasar.org
Seasarプロジェクトのトッププロジェクトの1つ
Seasarプロジェクトでは 自由にOSSの開発が可能
業務アプリケーション開発に役立つプロダクトが多
い点が特徴
Developers Summit 2011
16. Seasar.NET プロダクト
Seasar.NETの主要プロダクトの紹介
S2Container.NET S2Dao.NET Quill S2Windows.NET
•DI+AOPコンテ •XMLレスの •XMLレスの簡 •WinForm開発
ナ O/Rマッパー 単DI+AOPコン の手助け
•Seasar2 •2Way-SQL テナ •画面遷移や
を.NET/C#に移 •.NET独自実装 POCOの自動バ
植 インド
S2Unit.NET S2Dxo.NET
•ユニットテスト •POCO間やコレ DBFlute.NET Koropokkur.NET Fisshplate.NET
を手助け クション間の詰 •現場指向O/R •VisualStudioで •Excelをテンプ
(MbUnit) め替えを手助け マッパー の開発をささや レートとして使っ
•2Way-SQLを活 かに支援するこ てデータを埋め
•コンテナ管理、 かしつつDB変更 とを目的とした汎 込めるライブラリ
トランザクション、 に強い仕組み 用的なアドイン集
データ管理
Developers Summit 2011
17. Seasar.NET の歴史
登場から現在まで
2005年04月 S2Container.NETプロジェクト誕生
2005年09月 S2Dao.NETプロジェクト誕生
2005年11月 S2Container.NET 1.0リリース(.NET1.1対応)
2006年02月 S2Container.NET 1.1リリース
2006年06月 S2Container.NET 1.2リリース(.NET2.0対応)
2006年09月 S2Dao.NET 1.0リリース
2006年10月 S2Windows.NETサンプル公開
2007年07月 S2Container.NET 1.3リリース(Quill登場)
2009年01月 Koropokkur.NET登場(最新バージョンは0.2.3)
2009年06月 DBFlute.NET登場(最新バージョンは0.8.9 )
2010年08月 S2Container.NET 1.3.18リリース(.NET2.0系最新)
2010年02月 Fisshplate.NET 登場(最新バージョンは0.1.1)
2011年01月 S2Container.NET 1.4RC2リリース(.NET4.0対応)
Developers Summit 2011
18. Seasar.NETの活動
活動内容
新機能追加やバグ修正
メーリングリストに対する調査や回答
ブログ等のメディアを使っての情報公開
Seasarカンファレンス等のイベントでの発表や懇親会
プロジェクトのインフラ
サポート:メーリングリスト(別途コミッタ用MLあり)
ソース管理:Subversion
バグ管理:JIRA
主なコミッタ
久保さん( http://d.hatena.ne.jp/jflute/)
小谷さん(http://d.hatena.ne.jp/koyak/)
宮城さん(http://d.hatena.ne.jp/rmiya/)
藤井さん(http://fujiih.at.webry.info/)
西山さん (http://d.hatena.ne.jp/hajimeni/)
杉本さん(http://d.hatena.ne.jp/sugimotokazuya/)
Developers Summit 2011
20. TERASOLUNA for .NETとは
.NETを利用した業務システム開発向けのオープン
ソースフレームワーク
TERASOLUNA Client Framework for .NET
Windowsフォームによるリッチクライアント・アプリケーション向け
のフレームワーク
TERASOLUNA Server Framework for .NET(Rich)
リッチクライアント・アプリケーションの通信先となるサーバ向け
のフレームワーク
TERASOLUNA Server Framework for .NET(Web)
ASP.NETによるWebアプリケーション向けのフレームワーク
フレームワークに対応した開発手順や各種開発
支援ツールを提供
※OSSとしての公開はフレームワークのみです。
Developers Summit 2011
21. TERASOLUNA for .NETがターゲットとする
リッチクライアント・アプリケーション
クライアントアプリケーションでは主に業務画面処理を行う
要件に応じて、バーコードリーダやOCRなど、クライアントのローカルデバイスにも
アクセスする
サーバアプリケーションでは、業務処理実行、データアクセスを行う
プレゼンテーションレイヤ ビジネスレイヤ データレイヤ
クライアントPC APサーバ
業務処理呼び出し データアクセス
業務画面
○○○○ 要求電文
ビジネス データアクセス
○○○○ (XML、バイナリ、 要求受付 ロジック オブジェクト
マルチパート)
○○
応答電文
ローカルデバイス (XML、バイナリ) DB
DBサーバ
Developers Summit 2011
22. TERASOLUNA for .NETがターゲットとする
リッチクライアント・アプリケーション
プレゼンテーションレイヤ ビジネスレイヤ データレイヤ
クライアントPC TERASOLUNA Server
APサーバ
Framework for .NET(Rich)
業務処理呼び出し データアクセス
TERASOLUNA
業務画面
○○○○ 要求電文
ビジネス データアクセス
Client
○○○○
○○
(XML、バイナリ、
マルチパート)
要求受付
TERASOLUNA Server
ロジック オブジェクト
Framework Framework for Java(Rich)
for .NET
応答電文
ローカルデバイス (XML、バイナリ) DB
Webサービスなど
DBサーバ
Developers Summit 2011
23. TERASOLUNA for .NETの狙い
.NETを利用した業務システム開発における、
「保守性」 「品質」 「コスト」の問題を解決する!!
1. 業務システム全体のアーキテクチャを統一
クライアントからサーバ業務処理を呼び出す処理フローをテンプレートとして定型化
(入力値検証→サーバ処理呼び出し→処理結果の画面への反映)
2. 作り込みが必要となる複雑な処理を隠蔽
システム全体で統一したエラーハンドリング処理
マルチスレッドによる非同期処理
3. 標準の.NET Frameworkでは足りない共通機能を強化
日本語の入力値検証、ログ、メッセージ管理機能等
Developers Summit 2011
25. TERASOLUNA の歴史
開発開始から現在まで
2003年 TERASOLUNA Server Framework for Java の開発がスタート
2004年 TERASOLUNA Server Framework for .NET の開発がスタート
2007年 TERASOLUNA Client Framework for .NET の開発がスタート
同時期に TERASOLUNA Batch Framework for Java の開発がスタート
2007年11月 TERASOLUNA Server、Batch Framework for Java をOSSとし
てSourceForge.jpに公開
2008年7月 TERASOLUNA Server/Client Framework for .NET v2.1 をOSSと
してSourceForge.jpに公開
2010年4月 TERASOLUNA Server/Client Framework for .NET v3.0 をOSSと
してSourceForge.jpに公開
Developers Summit 2011
26. 質問1 フレームワーク
このフレームワークを選ぶ理由は?
組み合わせたり取り外したりできる?
拡張の方法は?
IDEを使った支援機能はある?
どんな事例が?
.NET Frameworkの機能強化とのすみ分け
バリデーション
ロギング
データアクセス
Developers Summit 2011
27. 質問1 フレームワーク (Note)
このフレームワークを選ぶ理由は?
EntLib:MSDNで公開されており、MSがサポートして
いるため安心して使える。また.NETの最新のバー
ジョンに常に対応することが期待できる
Seasar.NET:.NETばかりではなく、Javaなどの技術
者も知っている技術が使える。Oracle, MySQLと
いったSQL Server以外のDBとの相性が良い。
TERASOLUNA:システム全体でフレームワーク
(アーキテクチャ)を統一したい問題を解決できる。
実績:数100k~2M Stepくらいまで,
大規模以外でも使える
Developers Summit 2011
28. 質問1 フレームワーク (Note)
このフレームワークを選ぶ理由は?
組み合わせたり取り外したりできる?
EntLib:アプリケーションブロック(AB)の集まり。データア
クセス(DAAB), ロギング(LIAB)だけ使うなど。Log4netと
も組み合わせOK. 縛りは緩い
フレームワークフレームワークしてないので、自由に
つかえる
TERASOLUNA:内部でEntLibを使っている。
Seasar.NET:Quillなど独立してるものもあるが、
S2Dao.NETやDbFlute.NETといったSeasar.NETと連携す
るキラーアプリがあるので、人気がある。
Developers Summit 2011
29. 質問1 フレームワーク (Note)
.NET Frameworkの機能強化とのすみ分け
EntLib.NET: まだEFをサポートしていない。
EntLib ContribではEFをサポートするプロジェクトも始
まっている
ニーズに合わせて利用する部分を決める
現場では?⇒いろいろ使ってます
メンバのスキル、要件の複雑さなど・・・
新技術は初物はつまづくが・・まぁ慣れればOK
TERASOLUNA: .NET Frameworkの進化が早い…どこを…
難しくて怖い⇒WCF,EFを選んだ
Seasar.NET: S2Dao.NETとかは安定稼働。Javaで慣れた人
を使える。
Developers Summit 2011
30. 質問2 開発・サポート
開発メンバーの「中の人」の話を。
新機能はだれが決める?
コミッタはどういうメンバー?
リリースのタイミングと方法
ドキュメントは充実している?
コミュニティからのフィードバック
過去バージョンのメンテナンスポリシー
ツールや技法など
Developers Summit 2011
31. 質問2 開発・サポート (Note)
開発メンバーの「中の人」の話を。
新機能はだれが決める?(チームの体制)
EntLib: MSのHQにP&Pチームがいる。人数は10数名、
TDD,ペアプロなどアジャイルで開発
TERASOLUNA: NTTデータ開発部隊の専門の開発部隊
で作成。実際の現場との乖離について、5-6人のスー
パーアーキテクトチームで実際に作成。実際の現場で
利用しながら作成。現場のFBは大事
Seasar.NET: 地理的には東京、大阪、高知など点在し
ている。Searar.NETのリーダであった杉本さんが農家
へ・・・今はそれ以外のメンバーが中心となって支え続け
ている。ボランティアで集まって機能を相談。ゆるく、細
くやっている
Developers Summit 2011
32. 質問2 開発・サポート (Note)
開発メンバーの「中の人」の話を。
フィードバック
(ここだけS2.NETのコミッタとして)
S2.NETの場合は、MLが多い。
ボランティアベースであるが意見をもらって修正
TERASOLUNA: NTTデータグループ以外でもつ
かっていただいている。社外の目からのFBもい
ただく
Seasar.NET: MLでFBがある。カンファレンスの
飲み会や、業務で使った人からのフィードバック
もある。
Developers Summit 2011
33. 質問2 開発・サポート (Note)
開発メンバーの「中の人」の話を。
リリースのタイミングと方法
EntLib: .NET Frameworkのバージョンアップに合わせ
てリリースされる場合が多い。MSDNで公開。
Seasar.NET: 基本的に誰かが現場で必要なFWを作る。
それを公開して使ってもらうことでさらに洗練させていく。
人気があるのはサンプルコードだったりする
興味ある人はコミッタとして参加してもらえると嬉しい。
久保さんブログや私に連絡ください。
TERASOLUNA: 社内でリリース判定など、OSSといえど
も弊社らしい稟議を通している。
Developers Summit 2011
34. 質問3 お互いに (Note)
TERASOLUNAの中でUnityを使っているが、なぜSeasarを
使っていないのですか?
MSなどのバックボーンに安心感が…(立見)
EntLibってどう組み合わせるの?
EntLibはABの集まり。それにもう一段薄いフレームワー
クを作ることが多い。(福井)
ニーズが合うようにちょっと薄いのを挿す
毎回つくる、顧客にもよる、Silverlightの例…このあ
たりがネック
そのうすい皮を公開してもらえない?
お決まりのパターンは?
ある程度はある。認証、Logging、集約的例外ハンド
ラなど。チームメンバーのスキルなどにもよる
Developers Summit 2011
35. 質問3 お互いに (Note)
メンバーのスキルについて。教育コストは?
新メンバは当然教育コストがかかる。
顧客へのトレーニングもある。
キャッチアップ必要(福井)
Avanadeの場合は、上にACA.NETというものが用意
されている
TERASOLUNAの場合は、できるだけ.NET開発のスタイ
ルを踏襲。ドキュメントもかなりの量を提供。(立見)
チュートリアルも提供
ドキュメントを書くのは結構大変
Seaserは、Sandboxから正式プロダクトへの卒業条件に
ドキュメント化が必須。(青木)
Developers Summit 2011
36. まとめ
各スピーカーの思い
プロダクトの特徴
オープンソースソフトウェアの良さ
.NETの業務システムについて
これまでとこれから
Developers Summit 2011
37. 個人
コミュ
企業 創発 ニティ
現場
Developers Summit 2011
38. 福井 厚 (EntLib.NET)
アバナード株式会社 CTOアーキテクト
/ VSUG運営委員 / XPJUG企画担当
ソフトウェアハウス、大手SIベンダーを経て、
2006年からアバナードに在籍。現在はソリューションアーキ
テクトとして.NETによる企業システム開発プロジェクトに多
数従事。Enterprise Libraryをベースとしたフレームワーク
開発も多数経験。またVSUG、XPJUG、デブサミオブザー
バーなどコミュニティ活動にも積極的に参加。最近はVSUG
アーキテクト アカデミーを主催し、アーキテクト育成のため
の活動も行っている。
Microsoft Certified Architect(MCA)、Microsoft Regional
Director、MS MVP。
Twitter: @afukui
Developers Summit 2011
39. 青木 淳夫 (Seasar.NET)
㈱ネクストスケープ(豆蔵OSHDグループ)
にて、ECサイト、業務システムの
設計・開発に従事
Seasar.NETコミッタ / .NET CLIPS運営
2001年にVBマガジンにVBUnitとXPの記事を寄稿、
その後も.NETとOSSの情報を発信
(log4net,NLog,S2Dao.NET,SubSonic,iBATIS.NET,NHibernate,NAnt,NVelocity,iTe
xtSharp,xUnit.NET,Gallio,Sandcastle,SharpDevelop,DotNetZip,Moq,AutoMapper
,HtmlAgilityPack,Selenium,BlogEngine.NET…)
Microsoft MVP(2006年~)
Blog: http://d.hatena.ne.jp/aoki1210/
Twitter: @aoki1210
Developers Summit 2011
40. 立見 博史 (TERASOLUNA)
株式会社NTTデータ 技術開発本部
「TERASOLUNA Server/Client Framework
for .NET」(http://www.terasoluna.jp/)
の整備や、社内での.NET案件の開発支援を実施
最近は「倍速開発」のスローガンのもと、開発自動
化の研究開発に従事
2008年~2009年にかけてDBマガジンに「.NETコン
トロールまるわかり教室」を連載したり、@ITに
TERASOLUNAに関する記事を寄稿
Microsoft Certified Professional Developer
(MCPD)
Developers Summit 2011