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
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
design and implementation of a next-gen. DAW sequencer engine for desktop, mobile and web
atsushieno
1
61
Android and Audio Plugins: State of Union
atsushieno
1
120
Can we build a DAW with Compose Multiplatform? Maybe!
atsushieno
0
36
2026年に相応しい 最先端プラグインホストの設計<del>と実装</del>
atsushieno
0
180
Android Audio: Beyond Winning On It
atsushieno
0
6.5k
Can we build better music software ecosystems for more generative era?
atsushieno
0
830
Some Music Libraries for Kotlin (with some .NET -> Kotlin migration stories)
atsushieno
0
780
Building App Extensions equivalents on Android (maybe?)
atsushieno
1
1k
Taking trends in music app development into the future mobile ecosystem
atsushieno
0
950
Other Decks in Programming
See All in Programming
tsc.rip を支える技術 / Kyoto.なんか #8
susisu
0
4.1k
Pythonの実行はどこまで賢くなったのか? CPythonとPyPyから見る最適化のしくみ
curekoshimizu
4
2.4k
レビュー履歴をAIに食わせて、 Compose移行を加速するs
shihochan
0
260
Swift愛好会と私(ウホーイ) / Swift Fan Club and Uhooi
uhooi
0
100
承認済みなのに差戻しできてしまうバグ、型で潰せます
shinchit
0
130
Deep dive into the select statement (GopherCon UK)
jespino
0
160
思考垂れ流し開発 ~音声入力 × AIエージェント × 開発ハーネスによる試行錯誤~
npostring
0
600
Cloudflare is Agents
chimame
0
190
【DroidKaigi 2026】「アクセシビリティを利用するとき、 アクセシビリティもまたこちらを利用している」 〜マルウェアによる攻撃と防衛について〜
halunoyo
0
130
Claude CodeとAgentCore Gatewayを繋ぐ際の認証認可 / Authentication and authorization when connecting Claude Code with AgentCore Gateway
har1101
2
420
AIに既存システムを理解させる技術 ~レガシーを見捨てないハーネスエンジニアリング入門~
ochtum
0
180
AWS Transform Customによる Spring Boot 2.xから4.xへのVerUp
satoshi256kbyte
2
120
Featured
See All Featured
From π to Pie charts
rasagy
0
340
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
56
3.5k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.8k
The Illustrated Children's Guide to Kubernetes
chrisshort
51
53k
Amusing Abliteration
ianozsvald
1
280
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
2.1k
The #1 spot is gone: here's how to win anyway
tamaranovitovic
3
1.1k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
Between Models and Reality
mayunak
4
430
The AI Revolution Will Not Be Monopolized: How open-source beats economies of scale, even for LLMs
inesmontani
PRO
3
3.7k
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
480
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