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
34
design and implementation of a next-gen. DAW sequencer engine for desktop, mobile and web
atsushieno
1
89
Android and Audio Plugins: State of Union
atsushieno
1
140
Can we build a DAW with Compose Multiplatform? Maybe!
atsushieno
0
48
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
860
Some Music Libraries for Kotlin (with some .NET -> Kotlin migration stories)
atsushieno
0
810
Building App Extensions equivalents on Android (maybe?)
atsushieno
1
1k
Other Decks in Programming
See All in Programming
Apple Intelligence を用いた個人情報誤送信防止、及びユーザーリクエスト体験の改善について
yukiny
0
350
Herb in Rails 8.2: Your ERB views, now HTML-aware @ Kaigi on Rails 2026, Tokyo, Japan
marcoroth
2
270
自サークルのIdPからログアウトできるようになるまで
taiseiue
1
140
ハーネス設計入門 〜 基礎知識の整理から実務へのステップアップ 〜
kinopeee
28
33k
sbt 2.0: takeoff
eed3si9n
0
160
JIS keyboard support in Omarchy
lef237
0
130
パスワード再設定メールのURLについて知っておこう
uyuki234
0
160
UPDATE をやめる — EF Core でマスタをバージョン管理する
panda728
PRO
0
1.2k
Jetpack Compose Mechanisms
skydoves
3
820
Verilogで学ぶCPU自作入門
uyuki234
8
4.1k
設計次第でAIコードの読む量は減らせる / designing-for-code-reading
minodriven
35
17k
Railsのためのパスキー実践入門 〜マルチテナントSaaSでの意思決定〜
utakaha
3
670
Featured
See All Featured
Learning to Love Humans: Emotional Interface Design
aarron
275
41k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.6k
<Decoding/> the Language of Devs - We Love SEO 2024
nikkihalliwell
1
360
The Power of CSS Pseudo Elements
geoffreycrofte
82
6.6k
Code Review Best Practice
trishagee
74
20k
Abbi's Birthday
coloredviolet
4
10k
HU Berlin: Industrial-Strength Natural Language Processing with spaCy and Prodigy
inesmontani
PRO
0
760
The agentic SEO stack - context over prompts
schlessera
0
970
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
1
930
Testing 201, or: Great Expectations
jmmastey
46
8.3k
The Limits of Empathy - UXLibs8
cassininazir
2
720
GraphQLとの向き合い方2022年版
quramy
50
15k
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