Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Xamarinの新しい話とMonoの深い話 atsushieno版
Search
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
Enabling Text Inputs on Any Remote GUI on Android (LT)
atsushieno
0
30
design and implementation of a next-gen. DAW sequencer engine for desktop, mobile and web
atsushieno
1
83
Android and Audio Plugins: State of Union
atsushieno
1
130
Can we build a DAW with Compose Multiplatform? Maybe!
atsushieno
0
45
2026年に相応しい 最先端プラグインホストの設計<del>と実装</del>
atsushieno
0
190
Android Audio: Beyond Winning On It
atsushieno
0
6.5k
Can we build better music software ecosystems for more generative era?
atsushieno
0
850
Some Music Libraries for Kotlin (with some .NET -> Kotlin migration stories)
atsushieno
0
800
Building App Extensions equivalents on Android (maybe?)
atsushieno
1
1k
Other Decks in Programming
See All in Programming
APNsからLive Activityを開始する話
yumnumm
0
150
iOSDC2026登壇資料.pdf
riofujimon
0
210
Workers Cache を知る
syumai
0
320
設計次第でAIコードの読む量は減らせる / designing-for-code-reading
minodriven
33
15k
[ハンズオン]AIへの指示だけで「五目並べ」を作ってみよう
satoshi256kbyte
1
340
プロダクトコードからライブラリの境界を見つける
elmetal
PRO
0
100
標準パッケージに uuid が追加された 背景から見る Go らしい意思決定 / go_127_uuid_decision
convto
5
9.8k
すこし踏み込む CancellationToken
htkym
2
1.6k
AI が書く Go コードの品質を劇的に向上させる Linter: “declscope”
mpyw
0
480
Embedded Swiftで作る自作USBデバイス によるiOSデバイスの自動テスト / iOSDC Japan 2026 glassfiber
glassfiber
0
280
App Storeの外へ──日本のiOSサイドローディング入門 for iOSDC Japan 2026
yuukiw00w
0
300
wkhtmltopdfの次どうするか問題2026
willnet
2
1.8k
Featured
See All Featured
How to build a perfect <img>
jonoalderson
1
6.1k
The Limits of Empathy - UXLibs8
cassininazir
1
700
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
10
1.4k
How to Talk to Developers About Accessibility
jct
2
560
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.8k
Building AI with AI
inesmontani
PRO
1
1.3k
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
1
620
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
120
120k
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
920
The browser strikes back
jonoalderson
0
1.8k
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
3
1.3k
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
68
58k
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