Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Xamarinの新しい話とMonoの深い話 atsushieno版
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Atsushi Eno
July 09, 2016
Programming
2k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Xamarinの新しい話とMonoの深い話 atsushieno版
https://csugjp.doorkeeper.jp/events/46856
(excerpt)
Atsushi Eno
July 09, 2016
More Decks by Atsushi Eno
See All by Atsushi Eno
Android and Audio Plugins: State of Union
atsushieno
1
78
Can we build a DAW with Compose Multiplatform? Maybe!
atsushieno
0
11
2026年に相応しい 最先端プラグインホストの設計<del>と実装</del>
atsushieno
0
150
Android Audio: Beyond Winning On It
atsushieno
0
6.4k
Can we build better music software ecosystems for more generative era?
atsushieno
0
790
Some Music Libraries for Kotlin (with some .NET -> Kotlin migration stories)
atsushieno
0
750
Building App Extensions equivalents on Android (maybe?)
atsushieno
1
940
Taking trends in music app development into the future mobile ecosystem
atsushieno
0
900
DTM entry level hands-on
atsushieno
0
780
Other Decks in Programming
See All in Programming
AI時代のUIはどこへ行く?その2!
yusukebe
22
7.4k
AIだと陥りがちなJakarta EE最新技術への移行時の落とし穴と解決策
tnagao7
0
110
スマートグラスで並列バイブコーディング
hyshu
0
160
Agentic UI
manfredsteyer
PRO
0
180
軽量Java基盤の設計 DIコンテナに頼らない、長期保守と1秒起動の実現 JJUG CCC 2026 Spring
macha64
0
540
Snowflake Summitでの新機能 CoCo / CoWork / snowflake-summit-2026-overall-what-new-coco
tatsuhiro
1
150
PHPで使える日時の表現と、その知り方 #frontend_phpcon_do
o0h
PRO
0
250
技術的負債解消で開発者の未来を開く- AIの力でコード刷新
kmd2kmd
0
110
JavaDoc 再入門
nagise
1
370
net-httpのHTTP/2対応について
naruse
0
500
メソッドのジェネリクスでGoの夢は広がるか? / Kyoto.go #65
utgwkk
3
840
Webフレームワークの ベンチマークについて
yusukebe
0
170
Featured
See All Featured
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
610
Fashionably flexible responsive web design (full day workshop)
malarkey
408
66k
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
340
brightonSEO & MeasureFest 2025 - Christian Goodrich - Winning strategies for Black Friday CRO & PPC
cargoodrich
3
730
Beyond borders and beyond the search box: How to win the global "messy middle" with AI-driven SEO
davidcarrasco
3
160
Conquering PDFs: document understanding beyond plain text
inesmontani
PRO
4
2.8k
Navigating Team Friction
lara
192
16k
From π to Pie charts
rasagy
0
210
AI: The stuff that nobody shows you
jnunemaker
PRO
8
720
Being A Developer After 40
akosma
91
590k
How People are Using Generative and Agentic AI to Supercharge Their Products, Projects, Services and Value Streams Today
helenjbeal
1
220
Six Lessons from altMBA
skipperchong
29
4.3k
Transcript
You shouldn't see this page...!! you'll be cursed つなぎこみだからねー
Mono <= 1.0 ECMA 標準の利用 : Miguel de Icaza インタビュー
Ximian: Gnome Desktopの会社 GNOME: Gtk+でGUIアプリケーションを開発 ↓ Gtk+ (Cライブラリ)のアプリケーションをCで開発するのはしんどい ↓ C#だ! → Gtk# (Win32->WinFormsみたいなもの)
Roslyn "Language Service" - IDEの機能を実現 • コード補完 • 文法エラーのレポートと修正 •
定義に移動 • 利用箇所の検索 • 名前の変更 • コードの自動フォーマット C#コンパイラ • ついでに、C#ソースコードがコンパイルでき る どう使われているの ? • VS2015 - Roslynがソース解析その他の機 能と、実際のコンパイルの両方を担当できる ◦ 従来はコンパイルだけ.NET Framework (csc) • MonoDevelop - NRefactoryから移行 ◦ VSと一貫性のある機能 ◦ XS(MD)チームの開発コストが下がる • OmniSharp (used by VSCode) ◦ これをサポートするエディタ拡張を作るだけで エディタがC# IDEになる http://atsushieno.hatenablog.com/entry/2012/12/19/162038 (MonoDevelop C#バインディングについて (ついでにtypescriptバインディングの話)
Debug Engine Debugger = debugger client + debugger service 開発者がブレークポイントをセットする
↓ IDEがdebugger clientに「xxx.csのx行目にブレーク ポイントを設定しろ」と伝える ↓ debugger clientがdebugger serverにブレークポイ ントの追加命令を送る debugger server: ランタイムの一部 コードを1命令ずつ実行する前に、そこにブレーク ポイントが設定されていないかチェック ↓ ブレークポイントがあったら、 debugger clientに コールバック呼び出しをかける ↓ debugger clientは、コールバックに応じて、 IDEに コールバック呼び出しをかける https://github.com/mono/debugger-libs/ https://github.com/mono/mono/blob/master/mono/mini/debugger-agent.c https://github.com/mono/monodevelop/tree/master/main/src/addins/MonoDevelop.Debugger.Soft
Debug Engine VSCode: デバッガー クライアントとデバッガー サーバーの通信プロトコルを決めた • 同じプロトコルをサポートしていれば、クライアントとサーバーは別のデバッガー実 装でも通信できる •
同じプロトコルで別の言語のデバッガーも実現できる 同じプロトコルをXSがサポートすれば、VSCode用のデバッガーを使いまわせる Debugger Protocol
Language Service IDEとコンパイラ(パーサー、セマンティッ ク アナライザー、リファクター)間の APIは、 ある程度は言語を問わず共通している 共通化してしまえば、 IDEがそのプロトコル を実装するだけで、複数言語をサポートで
きる https://github.com/Microsoft/language-server-protocol
Nugetizer 3000 Xamarin Plugins - 参照はコンパイル時のおとり、実装はplat.別 NuGetパッケージを作るのが面倒 参照アセンブリ、各実装アセンブリを全部構築 ↓ 自動化すれば楽なのでは?
新規Nugetizer 3000プロジェクトに実装アセンブリのプロジェクトを参照として追加 → 参照アセンブリを自動生成 → nupkgも自動生成
Linker 基本 - GCライク 設定ファイル(XML)で調整可能 Linker = marking steps +
sweep カスタマイズ可能 iOS、Androidは大量のカスタマイズステップで構成
Linker