SlideShare a Scribd company logo
1 of 31
Download to read offline
.NET とオープンソース
真髄は我流。型はありません
(w
中村良幸 ( a.k.a. なかよし)
今日の概要
• 私の自己紹介
• オープンソースソフトウェアとは?
• 最近の Microsoft 関連ソフトウェア事情
• 全てがタダの高度な開発環境 - NAgile
• Linux や Mac OS でも 動く .NET 環境 -
Mono
• Microsoft でもオープンソース -
IronPython
• 事例紹介 「実務で使い倒す .NET 2.0 」
• これからの展望、その他
私は何者か?
• …私は 「ただのサラリーマン」です。
(w
• 昔はずっと Unix (or Linux) を使ってました
。
• …以前、やっていたことを紹介すると
– 津波シミュレーション等の数値計算
– 津波アニメーション等の三次元グラフィック
ス
– お役所向けの大量の報告書作成
• …今は 「 IT 何でも屋」です。
Windows の思い出
• …昔の話で恐縮ですが
– 4GL の統合 CASE ツール開発プロジェクトで
、 IL( 中間言語 ) のデバッガーを作っていまし
た。
– カバレージ機能部分を担当していたのですが
…
– Windows95 は、一日に 10 回以上落ちました
。
– NT は安定していると聞いて、 WindowsNT4.0
(SP1?) にしましたが、それでも良く落ちまし
た。
私が .NET に興味を持ったのは
…
• arton さんの本 (Ruby を 256 倍楽しむ本邪
道編 ) で、初めて .NET というものを知り
ました。
• アンダース・ヘルスバーグ (Anders
Hejlsberg) 氏がチーフアーキテクトである
と知りました。
– Turbo Pascal, Delphi (Borland 時代 )
– Visual J++, WFC (= Windows Foundation Class)
(Microsoft に移籍後 )
• Java を研究し尽くした Microsoft が出して
きた仮想マシンに、非常に興味を持ちま
オープンソースの概念と発祥元
• オープンソースとは?
– ソフトウェアの著作者の権利を守りながらソースコ
ードを公開することを可能にするライセンスを指し
示す概念です。
• オープンソースに関する本 “ Open Sources:
Voices from the Open Source Revolution” によれば
…
– 1998 年 2 月 3 日に、エリック・レイモンド、ティム
オライリー、 VA  リナックス社の社長ラリー・オー
ガスティンらがカリフォルニアに集まったそうです
。
– その議論の中で、マーケット向けのプロモーション
オープンソースソフトウェアの
要件
• Open Source Initiative (OSI) による定義である “ The Open Source
Definition(OSD)” による「オープンソース・ライセンス」の要件
とは
1. 自由な再頒布ができること
2. ソースコードを入手できること
3. 派生物が存在でき、派生物に同じライセンスを適用できること
4. 差分情報の配布を認める場合には、同一性の保持を要求してもかまわ
ない
5. 個人やグループを差別しないこと
6. 適用領域に基づいた差別をしないこと
7. 再配布において追加ライセンスを必要としないこと
8. 特定製品に依存しないこと
9. 同じ媒体で配布される他のソフトウェアを制限しないこと
10. 技術的な中立を保っていること
– http://www.opensource.jp/osd/osd-japanese.html
オープンソースにも種類がありま
す
• 一言でオープンソースライセンスといっても、
…実は色々ありまして
– GPL - GNU General Public License
– LGPL
– BSD ライセンス
– Apache Software License
– X11(MIT) ライセンス
– 他にも、 CPL 、 MPL 、 NPL 等まだまだたくさんあ
りますが、たくさんありすぎて、混乱を招く恐れも
…ありまして
• マイクロソフトは、そこを狙っているのかも?
(w
Microsoft もオープンソース?
• マイクロソフトの Linux 研究所、活動内容を
公開へ - Port25
– 目的はフィードバックを得ること
– http://japan.zdnet.com/news/os/story/0,2000056192,20100
437,00.htm
• マイクロソフト、オープンソースのスクリプ
ティング言語をサポート - IronPython
– これは、まさしく画期的なことではないでしょう
か?
– http://japan.cnet.com/news/ent/story/0,2000056022,2009
3901,00.htm
最近の Microsoft 関連ソフトウェア
事情
• 基本的開発環境に関しては、完全無償化
へ
– Visual Studio 2005 Express Edition も無償に。
• http://www.itmedia.co.jp/enterprise/articles/0604/20/news013
– SQL Server 2005 Express with Advanced Services
という製品も無償に。
• 簡易版管理ツールである「 SQL Server Management
Studio Express 」 (SSMSE) も付いてきます!
• レポート・サービスや、フルテキスト・カタログ
…サポートも無償版で利用可能に 素晴らしい!
…では、より高級な開発環境は
?
• Visual Studio 2005 Express Edition は、無償提供だ
…けあって、それなりに機能制限が
– テストツールが全くついてこない
• 単体テスト、カバレッジ、ロードテスト、 etc.
– コード分析ツールもついてこない
– クラスデザイナのような高度なツールはない
– チーム開発をサポートするような機能はない
• それら全部を使うには、 VS 2005 Team Suite が
必要で、それにはなんと 100 万円以上の投資が
…必要に
– …そりゃ普通の個人には、無理です (w
NAgile で行こう!
• .NET Framework で動作する様々なオープ
ンソースのソフトウェアツールが存在し
ます
– それらのツールは、元々 Java 言語上で開発さ
れたものが多いです
– 名前の頭には、たいてい「 .NET の頭文字で
ある「 N 」がついています
– Agile ソフトウェア開発に不可欠なツール類を
総称して、「 NAgile 」と呼ぶらしいです
NAgile ツール一覧(他にもありま
す)
種別 Java .NET
単体テスト JUnit NUnit
カバレッジ JCover NCover
自動ビルド Ant Nant
テスト駆動開発 TestDriven .NET
継続的インテグレーショ
ン
Cruise Control Cruise Control for .NET
受け入れテスト Fit Fit
コード分析 JCSC FxCop
ドキュメント生成 JavaDoc NDoc
ログ出力 Log4J Log4net
例) API ドキュメント自動作成
• NDoc を利用した、 API ドキュメントの自
動作成
– コメントは、 XML タグで付けてますか?
– 最後に一括して付けるという手もありますけ
…ど
– .NET 2.0 …対応版は遅れていましたが
• 最近、日本語が通るパッチが出現しました。 (4/8)
– 実際に、ドキュメントを作成してみましょ
う!
• 某 ASP.NET 2.0 ウェブ・アプリケーションを例に
して
…休憩時間(1)といいつつ
(謎
• Secure By Default (ビル・ゲイツのお言
葉)
– Windows のセキュリティは、確かに以前にく
…らべれば、向上しているとは思いますが
– ですが、本当に大丈夫なんでしょうか?(w
• BGM は「 Epitaph 」 (墓碑銘)
– Including
• Death March For No Reason (理由なき死の行進)
• Tomorrow And Tomorrow ( 納期は明日また明日)
「 Epitaph 」 - King Crimson
The wall on which the prophets wrote
Is cracking at the seams.
Upon the instruments of death
The sunlight brightly gleams.
When every man is torn apart
With nightmares and with dreams,
Will no one lay the laurel Wreath
As silence drowns the screams.
Between the iron gates of fate,
The seeds of time were sown. …
開発系の次は、運用系のコスト
へ
• WindowsServer のライセンスについて
– 通常、ユーザ数に応じた CAL が必要になりま
す
– インターネットで不特定のユーザが利用する
場合
• 認証が不要なら、本体ライセンスのみで OK です
…が
• External Connector License が必要になる事もありま
す
• それらのライセンス料は、決して安くありません
• では、他の解決策はないのか!?
Mono とは?
• 「 Mono 」とは?
– オープンソース版の .NET 実装の一種です。
– クロスプラットフォームで動く ECMA CLI で
す。 (Common Language Infrastructure)
– どちらかというと .NET Framework on Linux
として注目されています
– Unix/GNOME 用アプリケーションの開発が簡
…単になると言われていますが
– スペイン語で「サル」の意味だそうです
Mono の互換性
• 本家 .NET …との互換性は ?
– 現在、 1.2β の段階であり、 Microsoft .NET 2.0
のかなりの機能を実装済みですだそうです。
– 当然、実装されていない機能やライブラリも
あるため、 100% 完全に互換という訳ではあ
りません。
– 今はまだ使えないかもしれませんが、近い将
…来のことを考えると、わかりませんから
– エンジニアなら、自分で評価して試してみよ
う!
本当に Mono で動くのでしょう
か?
• Windows アプリケーションは?
– Window Forms はある程度いけるようです。
– 実際に動かしてみましょう!
• Web アプリケーションは?
– ASP.NET も、かなりいけるそうです。
– 実際に動かしてみましょう!
• ActiveDirectory …なんかは ?
– …やってみないとわかりませんね (w
鋼鉄の蛇 ( IronPython )
• IronPython とは?
– オブジェクト指向スクリプト言語である、 Python
の .NET Framework 上の一実装です
• なぜ .NET 上の Python を作ったか?
– 「何故 .NET は動的言語として駄目なプラットホー
ムなのか?」という短い論文を書くことを決心した
が、不幸にも Python を .NET でうまく動かす方法を
…見つけてしまい
– IronPython 0.2 を 1 週間で作って、 Python Conference
2004 で発表するために pystones でベンチマークを
… …やったところ 「は、速い!」 (w
– そこで、開発の継続を決定したそうです。
IronPython を作ったのはどんな人?
• Java 版の Python 実装である JPython の作
者、 Jim Hugunin という方が作りました。
• C 言語版オリジナル Python ( CPytnon )
を作ったのは、 Guido van Rossum という
…方ですが
– 今では、あの Google で仕事をしています。
• IronPython を作った、 Jim Hugunin さんは
…
– 今では、なんと「 Microsoft 」で仕事をしてい
ます。
動的スクリプト言語の特徴
• 動的スクリプト言語って?
– .NET 上の言語なのに、コンパイルする必要が
ありません。
– スクリプト言語でありながら .NET
Framework の特徴を活かして、高速に実行可
能です。
– オブジェクトには当然のことながら型があり
ますが、変数には「型がありません」
– 場合により、有利な点も不利な点もあります
が、大きな特徴もあります。
IronPython で何ができるのか?
• IronPython で何ができるのか?
– デモビデオが公開されています。
• http://msdn.microsoft.com/msdntv/episode.aspx?
xml=episodes/en/20051110PythonJH/manifest.xml
• IronPython の作者本人( Jim Hugunin )が、 20 分
間で、実に楽しそうに説明してくれます。
– 実際に、動かしてみましょう!
• 私も、実際に動かしてデモしてみます。
• 人生出たとこ勝負、バータリー指向でやります。
• …テーマは 「 I TALK TO THE WINDOW 」
最後におまけ
• いわゆる「年度末案件」で
– 昨年暮れから3月にかけて、某政令指定都市
で使う .NET ベースのアプリケーションを作
りました。
– イントラネット向けのウェブ・アプリケーシ
ョンです。
– ○○ マネジメントシステムという名前の、一種
の文書管理システムです。
– …悲しき下請けゆえ、名前は出せません (w
「実務で使い倒す .NET 2.0 」
• …技術的なところでは
– ASP .NET 2.0 & ADO .NET 2.0 を使いました。
– Visual Studio 2005 Team Suite (評価版)で開発しまし
た。
– ソースコードは C# で書いています。
– 型付 DataSet 及び DAO は、 VS2005 の TableAdapter
作成機能を使って、瞬殺 ( つまりは D&D) で作りまし
た。
– FormView を使って、 DB への追加・変更・削除機能
に関する開発工数を下げました。
– 部分的に、 Ajax を実装しています。
– コレクションでは、 Generics も使いました。
少しだけデモします
• あまりおおっぴらには見せられないので
すが、せっかくなので、少しだけ実演し
ます。
• 組織選択画面では、 ASP.NET 2.0 から正
式に入った TreeView コントロールを使っ
ています。
• 作業チェックボックスでは、チェックを
入れた直後に DB への更新が行われます。
• まずは、一度デモ画面をご覧下さい。
まとめ
• 今日学んだこと
– オープンソースとは何か?
– 最近のマイクロソフトの方向性は?
– NAgile とは何か?
– Mono とは何か?本当に使えるのか?
– IronPython とは何か?
• 真髄は我流。型はありません(w
– 最新技術で、いきなり本番運用システムを開
発するのは、楽しいですが、やはり冒険です
。
参考情報 URL の紹介
• NAgile の本家サイト
– http://www.nagile.com/nuke/
• Mono の本家サイト
– http://www.mono-project.com/Main_Page
• IronPython の本家サイト
– http://www.gotdotnet.com/workspaces/workspace.aspx?
id=ad7acff7-ab1e-4bcb-99c0-57ac5a3a9742
• なかよし研究所 (私の BLOG サイトです)
– http://www.tech-ezo.jp/blogs/nakayoshi/default.aspx
今日の感想
• つい二日前に発表されたばかりの、 Visual
Studio 2005 Express & SQL Server 2005 Express の
無償化は、やはりディープインパクトでした。
• Mono の方も確実に進化しており、 ASP.NET に
関しても、「 Windows で開発して、 Linux で運
用」が実用になる日も近い将来必ずくることで
しょう。
• まだまだよくわかっていないことが多い
IronPython ですが、ぱっと見ただけでもこれは
スゴイと思います。
• みなさんも、自分の得意な分野の知識を活かし
つつ、未知の分野に挑戦してみませんか?
最後に
• 諸般の事情から、事前の準備がほとんど
全くと言って良いほどできず、結果的に
不十分な資料しか作れませんでした。
• CLR/H のフォーラムを見て、過度に期待
された方には、大変申し訳ありませんで
した。
• 最後までお聞きいただき、
「本当にどうもありがとうございまし
た」

More Related Content

What's hot

筋肉によるGoコードジェネレーション
筋肉によるGoコードジェネレーション筋肉によるGoコードジェネレーション
筋肉によるGoコードジェネレーションlestrrat
 
次世代言語 Python による PyPy を使った次世代の処理系開発
次世代言語 Python による PyPy を使った次世代の処理系開発次世代言語 Python による PyPy を使った次世代の処理系開発
次世代言語 Python による PyPy を使った次世代の処理系開発shoma h
 
Pythonおじさんのweb2py挑戦記
Pythonおじさんのweb2py挑戦記Pythonおじさんのweb2py挑戦記
Pythonおじさんのweb2py挑戦記Yoshiyuki Nakamura
 
Pythonの環境導入 2014年春季版
Pythonの環境導入 2014年春季版Pythonの環境導入 2014年春季版
Pythonの環境導入 2014年春季版Katsuhiro Morishita
 
High performance python computing for data science
High performance python computing for data scienceHigh performance python computing for data science
High performance python computing for data scienceTakami Sato
 
Rodから聞いたことを全部話すぜ
Rodから聞いたことを全部話すぜRodから聞いたことを全部話すぜ
Rodから聞いたことを全部話すぜHiroki Kondo
 
10分でわかるPythonの開発環境
10分でわかるPythonの開発環境10分でわかるPythonの開発環境
10分でわかるPythonの開発環境Hisao Soyama
 
Pyconjp2016 pyftplib
Pyconjp2016 pyftplibPyconjp2016 pyftplib
Pyconjp2016 pyftplibShinya Okano
 
Python & PyConJP 2014 Report
Python & PyConJP 2014 ReportPython & PyConJP 2014 Report
Python & PyConJP 2014 Reportgree_tech
 
Pythonを取り巻く開発環境 #pyconjp
Pythonを取り巻く開発環境 #pyconjpPythonを取り巻く開発環境 #pyconjp
Pythonを取り巻く開発環境 #pyconjpYoshifumi Yamaguchi
 
Python エンジニアの作り方 2011.08 #pyconjp
Python エンジニアの作り方 2011.08 #pyconjpPython エンジニアの作り方 2011.08 #pyconjp
Python エンジニアの作り方 2011.08 #pyconjpTakeshi Komiya
 
.NET Coreから概観する.NETのOSSへの取り組み
.NET Coreから概観する.NETのOSSへの取り組み.NET Coreから概観する.NETのOSSへの取り組み
.NET Coreから概観する.NETのOSSへの取り組みKouji Matsui
 
PythonによるWebスクレイピング入門
PythonによるWebスクレイピング入門PythonによるWebスクレイピング入門
PythonによるWebスクレイピング入門Hironori Sekine
 
これからの「async/await」の話をしよう
これからの「async/await」の話をしようこれからの「async/await」の話をしよう
これからの「async/await」の話をしようKouji Matsui
 
いまさら恥ずかしくてAsyncをawaitした
いまさら恥ずかしくてAsyncをawaitしたいまさら恥ずかしくてAsyncをawaitした
いまさら恥ずかしくてAsyncをawaitしたKouji Matsui
 
2014年を振り返る 今年の技術トレンドとDockerについて
2014年を振り返る 今年の技術トレンドとDockerについて2014年を振り返る 今年の技術トレンドとDockerについて
2014年を振り返る 今年の技術トレンドとDockerについてMasahito Zembutsu
 
Pythonはどうやってlen関数で長さを手にいれているの?
Pythonはどうやってlen関数で長さを手にいれているの?Pythonはどうやってlen関数で長さを手にいれているの?
Pythonはどうやってlen関数で長さを手にいれているの?Takayuki Shimizukawa
 

What's hot (20)

筋肉によるGoコードジェネレーション
筋肉によるGoコードジェネレーション筋肉によるGoコードジェネレーション
筋肉によるGoコードジェネレーション
 
次世代言語 Python による PyPy を使った次世代の処理系開発
次世代言語 Python による PyPy を使った次世代の処理系開発次世代言語 Python による PyPy を使った次世代の処理系開発
次世代言語 Python による PyPy を使った次世代の処理系開発
 
Pythonでpdfをいじってみる
PythonでpdfをいじってみるPythonでpdfをいじってみる
Pythonでpdfをいじってみる
 
Pythonおじさんのweb2py挑戦記
Pythonおじさんのweb2py挑戦記Pythonおじさんのweb2py挑戦記
Pythonおじさんのweb2py挑戦記
 
T4使ってみた
T4使ってみたT4使ってみた
T4使ってみた
 
PyCharm入門
PyCharm入門PyCharm入門
PyCharm入門
 
Pythonの環境導入 2014年春季版
Pythonの環境導入 2014年春季版Pythonの環境導入 2014年春季版
Pythonの環境導入 2014年春季版
 
High performance python computing for data science
High performance python computing for data scienceHigh performance python computing for data science
High performance python computing for data science
 
Rodから聞いたことを全部話すぜ
Rodから聞いたことを全部話すぜRodから聞いたことを全部話すぜ
Rodから聞いたことを全部話すぜ
 
10分でわかるPythonの開発環境
10分でわかるPythonの開発環境10分でわかるPythonの開発環境
10分でわかるPythonの開発環境
 
Pyconjp2016 pyftplib
Pyconjp2016 pyftplibPyconjp2016 pyftplib
Pyconjp2016 pyftplib
 
Python & PyConJP 2014 Report
Python & PyConJP 2014 ReportPython & PyConJP 2014 Report
Python & PyConJP 2014 Report
 
Pythonを取り巻く開発環境 #pyconjp
Pythonを取り巻く開発環境 #pyconjpPythonを取り巻く開発環境 #pyconjp
Pythonを取り巻く開発環境 #pyconjp
 
Python エンジニアの作り方 2011.08 #pyconjp
Python エンジニアの作り方 2011.08 #pyconjpPython エンジニアの作り方 2011.08 #pyconjp
Python エンジニアの作り方 2011.08 #pyconjp
 
.NET Coreから概観する.NETのOSSへの取り組み
.NET Coreから概観する.NETのOSSへの取り組み.NET Coreから概観する.NETのOSSへの取り組み
.NET Coreから概観する.NETのOSSへの取り組み
 
PythonによるWebスクレイピング入門
PythonによるWebスクレイピング入門PythonによるWebスクレイピング入門
PythonによるWebスクレイピング入門
 
これからの「async/await」の話をしよう
これからの「async/await」の話をしようこれからの「async/await」の話をしよう
これからの「async/await」の話をしよう
 
いまさら恥ずかしくてAsyncをawaitした
いまさら恥ずかしくてAsyncをawaitしたいまさら恥ずかしくてAsyncをawaitした
いまさら恥ずかしくてAsyncをawaitした
 
2014年を振り返る 今年の技術トレンドとDockerについて
2014年を振り返る 今年の技術トレンドとDockerについて2014年を振り返る 今年の技術トレンドとDockerについて
2014年を振り返る 今年の技術トレンドとDockerについて
 
Pythonはどうやってlen関数で長さを手にいれているの?
Pythonはどうやってlen関数で長さを手にいれているの?Pythonはどうやってlen関数で長さを手にいれているの?
Pythonはどうやってlen関数で長さを手にいれているの?
 

Similar to 2006-04-22 CLR/H #14 .NET and open source

Nodeにしましょう
NodeにしましょうNodeにしましょう
NodeにしましょうYuzo Hebishima
 
大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~
大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~
大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~infinite_loop
 
Windows 8 Developers カンファレンス
Windows 8 Developers カンファレンスWindows 8 Developers カンファレンス
Windows 8 Developers カンファレンスKaoru NAKAMURA
 
DLR言語によるSilverlightプログラミング
DLR言語によるSilverlightプログラミングDLR言語によるSilverlightプログラミング
DLR言語によるSilverlightプログラミングterurou
 
人工知能のコードをハックする会 #2
人工知能のコードをハックする会 #2人工知能のコードをハックする会 #2
人工知能のコードをハックする会 #2Ryohei Kamiya
 
密着!わたしのコンソールアプリ開発環境
密着!わたしのコンソールアプリ開発環境密着!わたしのコンソールアプリ開発環境
密着!わたしのコンソールアプリ開発環境Fumihito Yokoyama
 
Visual Studio による開発環境・プログラミングの進化
Visual Studio による開発環境・プログラミングの進化Visual Studio による開発環境・プログラミングの進化
Visual Studio による開発環境・プログラミングの進化Fujio Kojima
 
一年ツイッター
一年ツイッター一年ツイッター
一年ツイッターXMLProJ2014
 
.NET Coreとツール類の今
.NET Coreとツール類の今.NET Coreとツール類の今
.NET Coreとツール類の今Yuki Igarashi
 
たのしいNode.js
たのしいNode.jsたのしいNode.js
たのしいNode.jsishiki-takai
 
Visual Studioで始めるTypeScript開発入門
Visual Studioで始めるTypeScript開発入門Visual Studioで始めるTypeScript開発入門
Visual Studioで始めるTypeScript開発入門Narami Kiyokura
 
"Continuous Publication" with Python: Another Approach
"Continuous Publication" with Python: Another Approach"Continuous Publication" with Python: Another Approach
"Continuous Publication" with Python: Another ApproachDaisuke Miyakawa
 
Visual Studio 2008による 開発環境・プログラミングの進化
Visual Studio 2008による 開発環境・プログラミングの進化Visual Studio 2008による 開発環境・プログラミングの進化
Visual Studio 2008による 開発環境・プログラミングの進化Fujio Kojima
 
インフラエンジニアがk8sでアプリを作って見えた今後のインフラ
インフラエンジニアがk8sでアプリを作って見えた今後のインフラインフラエンジニアがk8sでアプリを作って見えた今後のインフラ
インフラエンジニアがk8sでアプリを作って見えた今後のインフラsusumu tanaka
 
Unityで使える C# 6.0~と .NET 4.6
Unityで使える C# 6.0~と .NET 4.6Unityで使える C# 6.0~と .NET 4.6
Unityで使える C# 6.0~と .NET 4.6信之 岩永
 
オレたちとVisual Studioとの関係を話そう
オレたちとVisual Studioとの関係を話そうオレたちとVisual Studioとの関係を話そう
オレたちとVisual Studioとの関係を話そうMitsuhito Ishino
 
Unity * スマートフォン開発で学んだこと
Unity * スマートフォン開発で学んだことUnity * スマートフォン開発で学んだこと
Unity * スマートフォン開発で学んだことKatsutoshi Makino
 
福井スマートフォンハッカソン Titanium Mobileの紹介
福井スマートフォンハッカソン Titanium Mobileの紹介福井スマートフォンハッカソン Titanium Mobileの紹介
福井スマートフォンハッカソン Titanium Mobileの紹介Mori Shingo
 

Similar to 2006-04-22 CLR/H #14 .NET and open source (20)

Nodeにしましょう
NodeにしましょうNodeにしましょう
Nodeにしましょう
 
大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~
大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~
大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~
 
Windows 8 Developers カンファレンス
Windows 8 Developers カンファレンスWindows 8 Developers カンファレンス
Windows 8 Developers カンファレンス
 
.NET vNext
.NET vNext.NET vNext
.NET vNext
 
DLR言語によるSilverlightプログラミング
DLR言語によるSilverlightプログラミングDLR言語によるSilverlightプログラミング
DLR言語によるSilverlightプログラミング
 
人工知能のコードをハックする会 #2
人工知能のコードをハックする会 #2人工知能のコードをハックする会 #2
人工知能のコードをハックする会 #2
 
密着!わたしのコンソールアプリ開発環境
密着!わたしのコンソールアプリ開発環境密着!わたしのコンソールアプリ開発環境
密着!わたしのコンソールアプリ開発環境
 
Visual Studio による開発環境・プログラミングの進化
Visual Studio による開発環境・プログラミングの進化Visual Studio による開発環境・プログラミングの進化
Visual Studio による開発環境・プログラミングの進化
 
一年ツイッター
一年ツイッター一年ツイッター
一年ツイッター
 
.NET Coreとツール類の今
.NET Coreとツール類の今.NET Coreとツール類の今
.NET Coreとツール類の今
 
たのしいNode.js
たのしいNode.jsたのしいNode.js
たのしいNode.js
 
Visual Studioで始めるTypeScript開発入門
Visual Studioで始めるTypeScript開発入門Visual Studioで始めるTypeScript開発入門
Visual Studioで始めるTypeScript開発入門
 
Rdkitの紹介
Rdkitの紹介Rdkitの紹介
Rdkitの紹介
 
"Continuous Publication" with Python: Another Approach
"Continuous Publication" with Python: Another Approach"Continuous Publication" with Python: Another Approach
"Continuous Publication" with Python: Another Approach
 
Visual Studio 2008による 開発環境・プログラミングの進化
Visual Studio 2008による 開発環境・プログラミングの進化Visual Studio 2008による 開発環境・プログラミングの進化
Visual Studio 2008による 開発環境・プログラミングの進化
 
インフラエンジニアがk8sでアプリを作って見えた今後のインフラ
インフラエンジニアがk8sでアプリを作って見えた今後のインフラインフラエンジニアがk8sでアプリを作って見えた今後のインフラ
インフラエンジニアがk8sでアプリを作って見えた今後のインフラ
 
Unityで使える C# 6.0~と .NET 4.6
Unityで使える C# 6.0~と .NET 4.6Unityで使える C# 6.0~と .NET 4.6
Unityで使える C# 6.0~と .NET 4.6
 
オレたちとVisual Studioとの関係を話そう
オレたちとVisual Studioとの関係を話そうオレたちとVisual Studioとの関係を話そう
オレたちとVisual Studioとの関係を話そう
 
Unity * スマートフォン開発で学んだこと
Unity * スマートフォン開発で学んだことUnity * スマートフォン開発で学んだこと
Unity * スマートフォン開発で学んだこと
 
福井スマートフォンハッカソン Titanium Mobileの紹介
福井スマートフォンハッカソン Titanium Mobileの紹介福井スマートフォンハッカソン Titanium Mobileの紹介
福井スマートフォンハッカソン Titanium Mobileの紹介
 

2006-04-22 CLR/H #14 .NET and open source

  • 2. 今日の概要 • 私の自己紹介 • オープンソースソフトウェアとは? • 最近の Microsoft 関連ソフトウェア事情 • 全てがタダの高度な開発環境 - NAgile • Linux や Mac OS でも 動く .NET 環境 - Mono • Microsoft でもオープンソース - IronPython • 事例紹介 「実務で使い倒す .NET 2.0 」 • これからの展望、その他
  • 3. 私は何者か? • …私は 「ただのサラリーマン」です。 (w • 昔はずっと Unix (or Linux) を使ってました 。 • …以前、やっていたことを紹介すると – 津波シミュレーション等の数値計算 – 津波アニメーション等の三次元グラフィック ス – お役所向けの大量の報告書作成 • …今は 「 IT 何でも屋」です。
  • 4. Windows の思い出 • …昔の話で恐縮ですが – 4GL の統合 CASE ツール開発プロジェクトで 、 IL( 中間言語 ) のデバッガーを作っていまし た。 – カバレージ機能部分を担当していたのですが … – Windows95 は、一日に 10 回以上落ちました 。 – NT は安定していると聞いて、 WindowsNT4.0 (SP1?) にしましたが、それでも良く落ちまし た。
  • 5. 私が .NET に興味を持ったのは … • arton さんの本 (Ruby を 256 倍楽しむ本邪 道編 ) で、初めて .NET というものを知り ました。 • アンダース・ヘルスバーグ (Anders Hejlsberg) 氏がチーフアーキテクトである と知りました。 – Turbo Pascal, Delphi (Borland 時代 ) – Visual J++, WFC (= Windows Foundation Class) (Microsoft に移籍後 ) • Java を研究し尽くした Microsoft が出して きた仮想マシンに、非常に興味を持ちま
  • 6. オープンソースの概念と発祥元 • オープンソースとは? – ソフトウェアの著作者の権利を守りながらソースコ ードを公開することを可能にするライセンスを指し 示す概念です。 • オープンソースに関する本 “ Open Sources: Voices from the Open Source Revolution” によれば … – 1998 年 2 月 3 日に、エリック・レイモンド、ティム オライリー、 VA  リナックス社の社長ラリー・オー ガスティンらがカリフォルニアに集まったそうです 。 – その議論の中で、マーケット向けのプロモーション
  • 7. オープンソースソフトウェアの 要件 • Open Source Initiative (OSI) による定義である “ The Open Source Definition(OSD)” による「オープンソース・ライセンス」の要件 とは 1. 自由な再頒布ができること 2. ソースコードを入手できること 3. 派生物が存在でき、派生物に同じライセンスを適用できること 4. 差分情報の配布を認める場合には、同一性の保持を要求してもかまわ ない 5. 個人やグループを差別しないこと 6. 適用領域に基づいた差別をしないこと 7. 再配布において追加ライセンスを必要としないこと 8. 特定製品に依存しないこと 9. 同じ媒体で配布される他のソフトウェアを制限しないこと 10. 技術的な中立を保っていること – http://www.opensource.jp/osd/osd-japanese.html
  • 8. オープンソースにも種類がありま す • 一言でオープンソースライセンスといっても、 …実は色々ありまして – GPL - GNU General Public License – LGPL – BSD ライセンス – Apache Software License – X11(MIT) ライセンス – 他にも、 CPL 、 MPL 、 NPL 等まだまだたくさんあ りますが、たくさんありすぎて、混乱を招く恐れも …ありまして • マイクロソフトは、そこを狙っているのかも? (w
  • 9. Microsoft もオープンソース? • マイクロソフトの Linux 研究所、活動内容を 公開へ - Port25 – 目的はフィードバックを得ること – http://japan.zdnet.com/news/os/story/0,2000056192,20100 437,00.htm • マイクロソフト、オープンソースのスクリプ ティング言語をサポート - IronPython – これは、まさしく画期的なことではないでしょう か? – http://japan.cnet.com/news/ent/story/0,2000056022,2009 3901,00.htm
  • 10. 最近の Microsoft 関連ソフトウェア 事情 • 基本的開発環境に関しては、完全無償化 へ – Visual Studio 2005 Express Edition も無償に。 • http://www.itmedia.co.jp/enterprise/articles/0604/20/news013 – SQL Server 2005 Express with Advanced Services という製品も無償に。 • 簡易版管理ツールである「 SQL Server Management Studio Express 」 (SSMSE) も付いてきます! • レポート・サービスや、フルテキスト・カタログ …サポートも無償版で利用可能に 素晴らしい!
  • 11. …では、より高級な開発環境は ? • Visual Studio 2005 Express Edition は、無償提供だ …けあって、それなりに機能制限が – テストツールが全くついてこない • 単体テスト、カバレッジ、ロードテスト、 etc. – コード分析ツールもついてこない – クラスデザイナのような高度なツールはない – チーム開発をサポートするような機能はない • それら全部を使うには、 VS 2005 Team Suite が 必要で、それにはなんと 100 万円以上の投資が …必要に – …そりゃ普通の個人には、無理です (w
  • 12. NAgile で行こう! • .NET Framework で動作する様々なオープ ンソースのソフトウェアツールが存在し ます – それらのツールは、元々 Java 言語上で開発さ れたものが多いです – 名前の頭には、たいてい「 .NET の頭文字で ある「 N 」がついています – Agile ソフトウェア開発に不可欠なツール類を 総称して、「 NAgile 」と呼ぶらしいです
  • 13. NAgile ツール一覧(他にもありま す) 種別 Java .NET 単体テスト JUnit NUnit カバレッジ JCover NCover 自動ビルド Ant Nant テスト駆動開発 TestDriven .NET 継続的インテグレーショ ン Cruise Control Cruise Control for .NET 受け入れテスト Fit Fit コード分析 JCSC FxCop ドキュメント生成 JavaDoc NDoc ログ出力 Log4J Log4net
  • 14. 例) API ドキュメント自動作成 • NDoc を利用した、 API ドキュメントの自 動作成 – コメントは、 XML タグで付けてますか? – 最後に一括して付けるという手もありますけ …ど – .NET 2.0 …対応版は遅れていましたが • 最近、日本語が通るパッチが出現しました。 (4/8) – 実際に、ドキュメントを作成してみましょ う! • 某 ASP.NET 2.0 ウェブ・アプリケーションを例に して
  • 15. …休憩時間(1)といいつつ (謎 • Secure By Default (ビル・ゲイツのお言 葉) – Windows のセキュリティは、確かに以前にく …らべれば、向上しているとは思いますが – ですが、本当に大丈夫なんでしょうか?(w • BGM は「 Epitaph 」 (墓碑銘) – Including • Death March For No Reason (理由なき死の行進) • Tomorrow And Tomorrow ( 納期は明日また明日)
  • 16. 「 Epitaph 」 - King Crimson The wall on which the prophets wrote Is cracking at the seams. Upon the instruments of death The sunlight brightly gleams. When every man is torn apart With nightmares and with dreams, Will no one lay the laurel Wreath As silence drowns the screams. Between the iron gates of fate, The seeds of time were sown. …
  • 17. 開発系の次は、運用系のコスト へ • WindowsServer のライセンスについて – 通常、ユーザ数に応じた CAL が必要になりま す – インターネットで不特定のユーザが利用する 場合 • 認証が不要なら、本体ライセンスのみで OK です …が • External Connector License が必要になる事もありま す • それらのライセンス料は、決して安くありません • では、他の解決策はないのか!?
  • 18. Mono とは? • 「 Mono 」とは? – オープンソース版の .NET 実装の一種です。 – クロスプラットフォームで動く ECMA CLI で す。 (Common Language Infrastructure) – どちらかというと .NET Framework on Linux として注目されています – Unix/GNOME 用アプリケーションの開発が簡 …単になると言われていますが – スペイン語で「サル」の意味だそうです
  • 19. Mono の互換性 • 本家 .NET …との互換性は ? – 現在、 1.2β の段階であり、 Microsoft .NET 2.0 のかなりの機能を実装済みですだそうです。 – 当然、実装されていない機能やライブラリも あるため、 100% 完全に互換という訳ではあ りません。 – 今はまだ使えないかもしれませんが、近い将 …来のことを考えると、わかりませんから – エンジニアなら、自分で評価して試してみよ う!
  • 20. 本当に Mono で動くのでしょう か? • Windows アプリケーションは? – Window Forms はある程度いけるようです。 – 実際に動かしてみましょう! • Web アプリケーションは? – ASP.NET も、かなりいけるそうです。 – 実際に動かしてみましょう! • ActiveDirectory …なんかは ? – …やってみないとわかりませんね (w
  • 21. 鋼鉄の蛇 ( IronPython ) • IronPython とは? – オブジェクト指向スクリプト言語である、 Python の .NET Framework 上の一実装です • なぜ .NET 上の Python を作ったか? – 「何故 .NET は動的言語として駄目なプラットホー ムなのか?」という短い論文を書くことを決心した が、不幸にも Python を .NET でうまく動かす方法を …見つけてしまい – IronPython 0.2 を 1 週間で作って、 Python Conference 2004 で発表するために pystones でベンチマークを … …やったところ 「は、速い!」 (w – そこで、開発の継続を決定したそうです。
  • 22. IronPython を作ったのはどんな人? • Java 版の Python 実装である JPython の作 者、 Jim Hugunin という方が作りました。 • C 言語版オリジナル Python ( CPytnon ) を作ったのは、 Guido van Rossum という …方ですが – 今では、あの Google で仕事をしています。 • IronPython を作った、 Jim Hugunin さんは … – 今では、なんと「 Microsoft 」で仕事をしてい ます。
  • 23. 動的スクリプト言語の特徴 • 動的スクリプト言語って? – .NET 上の言語なのに、コンパイルする必要が ありません。 – スクリプト言語でありながら .NET Framework の特徴を活かして、高速に実行可 能です。 – オブジェクトには当然のことながら型があり ますが、変数には「型がありません」 – 場合により、有利な点も不利な点もあります が、大きな特徴もあります。
  • 24. IronPython で何ができるのか? • IronPython で何ができるのか? – デモビデオが公開されています。 • http://msdn.microsoft.com/msdntv/episode.aspx? xml=episodes/en/20051110PythonJH/manifest.xml • IronPython の作者本人( Jim Hugunin )が、 20 分 間で、実に楽しそうに説明してくれます。 – 実際に、動かしてみましょう! • 私も、実際に動かしてデモしてみます。 • 人生出たとこ勝負、バータリー指向でやります。 • …テーマは 「 I TALK TO THE WINDOW 」
  • 25. 最後におまけ • いわゆる「年度末案件」で – 昨年暮れから3月にかけて、某政令指定都市 で使う .NET ベースのアプリケーションを作 りました。 – イントラネット向けのウェブ・アプリケーシ ョンです。 – ○○ マネジメントシステムという名前の、一種 の文書管理システムです。 – …悲しき下請けゆえ、名前は出せません (w
  • 26. 「実務で使い倒す .NET 2.0 」 • …技術的なところでは – ASP .NET 2.0 & ADO .NET 2.0 を使いました。 – Visual Studio 2005 Team Suite (評価版)で開発しまし た。 – ソースコードは C# で書いています。 – 型付 DataSet 及び DAO は、 VS2005 の TableAdapter 作成機能を使って、瞬殺 ( つまりは D&D) で作りまし た。 – FormView を使って、 DB への追加・変更・削除機能 に関する開発工数を下げました。 – 部分的に、 Ajax を実装しています。 – コレクションでは、 Generics も使いました。
  • 27. 少しだけデモします • あまりおおっぴらには見せられないので すが、せっかくなので、少しだけ実演し ます。 • 組織選択画面では、 ASP.NET 2.0 から正 式に入った TreeView コントロールを使っ ています。 • 作業チェックボックスでは、チェックを 入れた直後に DB への更新が行われます。 • まずは、一度デモ画面をご覧下さい。
  • 28. まとめ • 今日学んだこと – オープンソースとは何か? – 最近のマイクロソフトの方向性は? – NAgile とは何か? – Mono とは何か?本当に使えるのか? – IronPython とは何か? • 真髄は我流。型はありません(w – 最新技術で、いきなり本番運用システムを開 発するのは、楽しいですが、やはり冒険です 。
  • 29. 参考情報 URL の紹介 • NAgile の本家サイト – http://www.nagile.com/nuke/ • Mono の本家サイト – http://www.mono-project.com/Main_Page • IronPython の本家サイト – http://www.gotdotnet.com/workspaces/workspace.aspx? id=ad7acff7-ab1e-4bcb-99c0-57ac5a3a9742 • なかよし研究所 (私の BLOG サイトです) – http://www.tech-ezo.jp/blogs/nakayoshi/default.aspx
  • 30. 今日の感想 • つい二日前に発表されたばかりの、 Visual Studio 2005 Express & SQL Server 2005 Express の 無償化は、やはりディープインパクトでした。 • Mono の方も確実に進化しており、 ASP.NET に 関しても、「 Windows で開発して、 Linux で運 用」が実用になる日も近い将来必ずくることで しょう。 • まだまだよくわかっていないことが多い IronPython ですが、ぱっと見ただけでもこれは スゴイと思います。 • みなさんも、自分の得意な分野の知識を活かし つつ、未知の分野に挑戦してみませんか?
  • 31. 最後に • 諸般の事情から、事前の準備がほとんど 全くと言って良いほどできず、結果的に 不十分な資料しか作れませんでした。 • CLR/H のフォーラムを見て、過度に期待 された方には、大変申し訳ありませんで した。 • 最後までお聞きいただき、 「本当にどうもありがとうございまし た」