Mono 2.0入門 Mono meeting 2008-10-22(Wed.).

Slides:



Advertisements
Similar presentations
エンジニアから見る Mac OS X. Mac のイメージ お洒落、かっこいいマシン デザイナーさんが使うマシン DTP に強いマシン 実は、 Developer のためにある!・・・は ず.
Advertisements

2002/2/8 ASUG Conference in PAGE 2002 Mac OS X 開発環境と AppleScript MDOnline 編集長 新居雅行.
この部分こそが必 要とされている ! Runtime 自身と Expression が カバーする!
本プレゼンテーション ( 以下、本書 ) で提供されている情報は、本書が 発表された時点における Microsoft の見解を述べたものです。市場 ニーズの変化に対応する必要があるため、本書は記載された内容の実 現に関する Microsoft の確約とはみなされないものとします。また本 書に記載された情報の正確さについて、保証するものではありません。
Windows Azure ハンズオン トレーニング Windows Azure Web サイト入門.
Windows Workflow Foundation of .NET Framework 3.0
Visual Studio 2010 の新機能 Coded UI Test
IIS 4.0で開発をするコツ Webアプリケーション構築.
インターネット ショップを開設するための要件
Developer Tools – Visual C /10~
D&UNITE 株式会社 代表取締役 株式会社 T-Planning 取締役 Microsoft MVP for ASP.NET/IIS
OpenOffice.org の独自コンパイル
.
.NET Framework 4.0 世代の Expression Trees
IBM Power Systems Linux センター のご紹介
NetBSD以外でpkgsrcを使うZoularis
.NET テクノロジー を利用した SAP ソリューションの拡張 (3階層化) (評価環境構築ガイド)
オペレーティングシステムⅡ 第11回 講師 松本 章代 VirtuaWin・・・仮想デスクトップソフト.
Docker.
オレポータビリティ 日本Rubyの会 青木 峰郎.
C#でiPhoneアプリ開発 with MonoTouch
C#でiPhoneアプリ開発 with MonoTouch
Expression Blend 3で始めるSilverlight 3アプリケーション開発
WPF(.NET3.5)   vs Silverlight 2.0 Beta1 中 博俊@わんくま同盟 +Beta2?
WPF(.NET3.5)   vs Silverlight 2.0 Beta1 中 博俊@わんくま同盟.
Microsoft Office Project 2007
オープンソースのDarwin は Mac OS Xに何をもたらすのか
続 Entity Framework 入門 SQLWorld #8 サヴロウ.
Solid Edge Customization with VB   (Fundamentals)
Microsoft .NET 入門 Silverlight のための 福井コンピュータ株式会社 小島 富治雄
Silverlight とは.
Visual Studio LightSwitchの概要
MSBuild 色々出来るよ 2011/04/02 お だ.
はじめてのASP.NET 楽しいアプリ制作の会 #1 TWorks.
心理学情報処理法Ⅰ コンピュータ言語の歴史.
[コース: A1] .NET Framework の基礎
Live Framework 入門 その2 JZ5(松江) 2009/8/22.
TA 高田正法 B10 CPUを作る 2日目 SPIMのコンパイル TA 高田正法
.NET テクノロジー を利用した SAP ソリューションの拡張 (3階層化) (評価環境構築ガイド)
初めてのTSF 囚人.
Oracle XEを使ってみよう 初音玲.
Expression Blend 3で始めるSilverlight 3アプリケーション開発
MDC Special Session Report tk-engineering.com
MVP for VB が語る C# 入門 初音 玲.
MVP for VB が語る C# 入門 初音 玲.
Windows Azure (CTP) 触ってみた
Emoneαプログラミング入門 初音 玲.
「OSで儲けない」 Microsoftの新戦略
Microsoftのマルチプラットフォーム戦略
.NET Framework 3.0 概要 (旧称 : WinFX)
データベースアクセス技術 ADO.NET 2.0 開発者カテゴリ ◆NOTES◆
仕事: SystemVerilogを使いたい
Microsoft BizTalk Server & SAP PP モジュール 連携検証レポート概要
オペレーティングシステム イントロダクション
COM コンポーネント・オブジェクト・モデル.
初めてのTSF 囚人.
Windows Azure (CTP) 触ってみた
Oracle XEを使ってみよう 初音玲.
<前提条件> iSeriesSite ワークフロー 実行環境 構成イメージ
第二回 Javaの開発環境 04A2029           古賀慎也.
SQL Server 2008 および 更新プログラムの一括セットアップ
iSeries Site 人事・給与C/S版のハードウェア・ソフトウェア要件
WPF(.NET3.5)   vs Silverlight 2.0 Beta1 中 博俊@わんくま同盟.
System.AddInを利用したアプリケーション拡張 - アドインの開発 -
「拝啓、さかもとと申します」 2008年6月28日 わんくま同盟 勉強会初参戦。 ※最重要 -質問はご遠慮願います-
「拝啓、さかもとと申します」 2008年6月28日 わんくま同盟 勉強会初参戦。 ※最重要 -質問はご遠慮願います-
Microsoft Office Project Server 2007
Bash on Ubuntu on Windowsに オープンCAEのソフトを インストールする(2)
<前提条件> C/S Bridge(C/S版)
System.AddInを利用したアプリケーション拡張 - アドインの開発 -
Presentation transcript:

Mono 2.0入門 Mono meeting 2008-10-22(Wed.)

What is .NET? what is Mono? .NET: Windowsのプログラムを簡単に開発できるように Microsoftが作った環境 ECMA, ISOで標準化 Microsoftのコード、Windows依存コードが多い Mono: .NETをGNU/Linuxその他の環境でも実現 GNU/Linuxのプログラムを.NETで簡単に作れる .NETアプリケーションをGNU/Linuxでも動作させる = Windowsのロックインから解放 .NETで出来ることの多くが、Monoでもできる

.NET outside Windows *nix: GNU/Linux, Solaris, BSD (6以前) GNOME/Gtk+ - Monoはこの系譜 ※Ximian KDE/Qt – 伝統的にGNOMEとライバル ※qyoto Mac OS X Cocoa, Objective-C arch: i386,x86-64,PPC, SPARC,ARM,S390,MIPS Unity3D: Wii, PS3?, XBOX 360?, iPhone

paint-mono / MonoForum .NET apps on Mono 動作するアプリケーション ASP.NET: MS starter kitsなど WinForms: paint-mono (paint.net) など Novellがテストしてみた 約2000件動作 / 全4600件 約1000件が6箇所以下の変更で動作 OpenSUSE build serviceのMono:Community MoMA (mono migration analyzer)でチェック paint-mono / MonoForum

Mono apps Gtk# : GNOMEのGUIツールキットGtk+をP/Invokeする .NETバインディング Banshee music player F-Spot photo management tool Beagle desktop search GNOME Do その他多数 Moonlight : silverlight on GNU/Linux 2.0でmonoを利用 something

Mono behind ... SourceGear Vault Mainsoft Grasshopper Unity3D SecondLife POP辞書 その他多数

Use Mono 2.0

install Mono 2.0 packages - “mono-complete” SUSE - OpenSUSE10.2~, SLES-9~ MAC OS X, Windows - あり 10/21時点でまだ無し - Solaris, 他distro Ubuntu 8.10には含まれない方向 野良package OpenSUSEのinstalled images VMWare LiveCD

build Mono 2.0 sources: configure; make; make install mono (deps: glib-devel, zlib-devel, bison, xorg-x11) mono-basic (VBサポート) winforms support libgdiplus (System.Drawing) gluezilla (WebBrowser. deps: {mozilla}-devel) ASP.NET support xsp (ASP.NET server) mod_mono (Apache module for xsp) mono-tools (各種外部ツール) debugger

build MonoDevelop 2.0 alpha deps gtk-sharp, gnome-sharp, gtkmozembed-sharp, gtksourceview2-sharp, mono-addins けっこう面倒 -develライブラリが必要 configure - ここでビルドする機能を選択 make; make install

use Mono 2.0 gmcs MyApp.cs -pkg:dotnet csc MyApp.cs mdtool build (未完成) MonoDevelop tool MSBuild代替機能 mono MyApp.exe java MyApp.class mdb MyApp.exe gdb MyApp xsp2 (web server) ilasm2, xsd, wsdl2, … gacutil2 monodevelop MonoDevelop

debugging with Mono 2.0 Console.WriteLine() ! mono (runtime): --debug, --trace, --profile mdb: Mono debugger gdbライクなコマンドラインツール MonoDevelop 2.0でIDE統合 gendarme FxCopライクなアセンブリコード検査 heap-shot : ヒープ プロファイリング

port Apps to Mono

porting blockers 未実装ライブラリ/メンバの使用 (MoMA it!) P/Invoke Windows専用のdll ANSI文字列のマーシャリングの相違 SQL Server依存 private実装の非互換: serialization/remoting Windowsと*nixのファイルシステムの相違 環境変数MONO_IOMAP={drive|case|all} で解決 bugs! MoMA

not supported Windows依存の機能 COM (System.EnterpriseServices) XPCOM, ICE等類似の技術はあるが、その結果呼び出 されるコンポーネントがWin32依存 MSMQ (System.Messaging) experimental binding to RabbitMQ WMI (System.Management) ACL (System.Security.AccessControl) POSIX ACLなどもあるが、不完全にしかマッチせず、実 質的に意味がない

not supported 一部のランタイム機能 generational GC GC自体はもちろんある sgen-gc : 開発者がmono全般の面倒を見る役なのでな かなか進まない CAS (コードアクセスセキュリティ) CASの仕組みは存在するが、膨大なクラスライブラリの監 査がまだなので、デフォルトで無効 有効にするとNRobotが試せる ClickOnce (System.Deployment)も動作しない

not supported .NET 3.0 WPF : 対応予定なし ※WPF/E WF : 対応予定なし(一部古い実装あり) WCF : 一部実装済 BasicHttpBinding, WebHttpBindingなどは動作 Moonlight 2.0で必要になったので、現在ではmonoに含 まれている

.NET and Mono internals

CLI 仮想マシンに基づくプログラム実行環境 実行環境中立なIL(Intermediate Language) JITがILをCPU命令に変換して実行する 複数のプログラミング言語で共通の型システム 豊富なランタイム機能 ガベージコレクション AppDomain ジェネリック型 セキュリティ バージョン管理

CLR / Mono runtime .NET: CLR .exeを直接実行→mscoree.dllの呼び出し→ランタイムの 選択→Main()実行 mono (runtime) - Cで実装 written in C. 標準Unix, glibにのみ依存 mono Foo.exeで実行 ※binfmt 実装: io-layer (Win32 I/O API), GC, メタデータAPI (icall, ア センブリローダ, side by side), ”mini” JITエンジン, セキュリティ (CAS, coreclr)

コンパイラ/開発言語 .NET Framework C#, VB.NET, C++/CLI, JScript.NET, ilasm 標準ライブラリ(Reflection.Emit / CodeDom)で簡 単に独自の言語設計が可能 Mono gmcs (C# 3), vbnc (VB 8), mjs (JS.NET), ilasm2 C++/CLIは未実装 ※GCC-CIL その他の言語 : 多くがMonoでも利用可能 IronPython, Nemerle, Boo, F# …

クラスライブラリ .NET コアライブラリ (mscorlib/System/System.Xml) 一部はECMA/ISO標準 DB接続 (ADO.NET) , Webアプリ (ASP.NET), GUI (Windows.Forms, WPF), Workflow … 多杉 Monoの実装 : ほぼC# たまにP/Invoke たまに MethodImplOptions.InternalCall

クラスライブラリ ADO.NETの実装 SqlClient Mono.Data.Tds (TDSのマネージド実装) Odbc : unixodbc OleDb : libgda サードパーティ プロバイダ ほとんどが.NETと同様にMonoでも動作 ODP.NETは無理(OCI以外のdllをP/Invoke)

クラスライブラリ ASP.NETの実装 System.Web.dllは通常のC#実装 xsp2 : HttpWorkerRequestの実装(C#) Mono.WebServer (xsp) Mono.WebServer.ModMono mod_mono (Cのモジュール) Mono.WebServer.FastCgi

クラスライブラリ Windows Formsの実装 System.Drawing.dll - [DllImport (“gdiplus”)] libgdiplus : 非Windows用にC/cairoで実装 System.Windows.Forms.dll - ”XplatUI” XplatUIWin32 : Win32 APIで実装 XplatUIX11 : X11 APIで実装 かつてXplatUIGtkという試みもあった Mono 1.2は日本語入力不可 → Mono 2.0で解消 XplatUICarbon : OS X Carbon APIで実装

統合開発環境 Visual Studio .NET MonoDevelop 1.0 MonoDevelop 2.0a コードエディタ デバッガ winforms GUIデザイナ ASP.NETプロジェクト GUIデザイナ データベースサポート アドインAPI MonoDevelop 1.0 コードエディタ ASP.NETプロジェクト Gtk# GUIデザイナ アドインAPI (Mono.Addins) MonoDevelop 2.0a デバッガ ASP.NETコードエディタ

Mono History

timeline 2000/09: .NET 1.0 beta1 2001/04 最初のmcsデモ 2001/06: 1.0 beta2 2002/01: 1.0 / VS.NET 2003/04: 1.1 / VS.NET 2003 2003/11: 1.2 (2.0の前身) 2005/11: 2.0 / VS 2005 2006/11: 3.0 ”WinFX” 2007/04: Silverlight 1.0 beta 2007/11: 3.5 / VS 2008 2008/08: 3.5 SP1 2001/04 最初のmcsデモ 2001/07 Mono project launched 2002/12 first Tokyo meeting [en] 2003/08 NovellがXimianを買収 2004/06 Mono 1.0 2006/04 first Tokyo meeting [jp] 2006/11 Mono 1.2 2007/06 Moonlight launched 2008/03 MonoDevelop 1.0 2008/10 Mono 2.0 ←いまここ!

2.0 updates since 1.2 C# 2.0 → 3.0 VB 7 → 8 Windows Forms 1.1 → 2.0 ADO.NET, ASP.NET: 1.1 → 2.0 ASP.NET AJAX Linq to Objects | XML | DataSet パフォーマンス ASP.NETで3倍高速化 他は不明

Future versions Mono 2.2: 11月にブランチ、年内リリース JIT: Linear IR, ジェネリック コード共有 full AOT MoMA Web tool ADO.NET: TDS8 C#シェルとC# evaluator API ASP.NET Abstractions/Routing (多分)

Future versions Mono 2.4: 2009/Q1 IL verifier ASP.NET 3.5 updates Winforms OS X updates MonoDevelop 2.0 Linq to SQL MSBuild 改良版alpha Mono 2.6: 2009/Q2 moonlight 2.0 preview Visual Studio plugin Mono 2.8: 2009/Q3 moonlight 2.0 beta MonoDevelop 2.4 compacting GC

おしまい おつかれさまでした contact: atsushi@ximian.com http://d.hatena.ne.jp/atsushieno http://twitter.com/atsushieno