Submit Search
Upload
RubyからC#を扱う
•
0 likes
•
2,142 views
107steps
Follow
第73回Ruby関西 発表資料 Ruby から C# を扱う方法の説明 ruby-csharp_script の説明
Read less
Read more
Technology
Report
Share
Report
Share
1 of 21
Download now
Download to read offline
Recommended
キャパシティ プランニング
キャパシティ プランニング
外道 父
C++コミュニティーの中心でC++をDISる
C++コミュニティーの中心でC++をDISる
Hideyuki Tanaka
入門 シェル実装
入門 シェル実装
Yusuke Sangenya
コンテナの作り方「Dockerは裏方で何をしているのか?」
コンテナの作り方「Dockerは裏方で何をしているのか?」
Masahito Zembutsu
AvailabilityZoneとHostAggregate
AvailabilityZoneとHostAggregate
Hiroki Ishikawa
今だからこそ知りたい Docker Compose/Swarm 入門
今だからこそ知りたい Docker Compose/Swarm 入門
Masahito Zembutsu
Cgroupあれこれ-第4回コンテナ型仮想化の情報交換会資料
Cgroupあれこれ-第4回コンテナ型仮想化の情報交換会資料
KamezawaHiroyuki
Backdoor!! vmware-tools と 統合サービスに見るハイパーバイザの呼び出し方
Backdoor!! vmware-tools と 統合サービスに見るハイパーバイザの呼び出し方
tshiroyama
Recommended
キャパシティ プランニング
キャパシティ プランニング
外道 父
C++コミュニティーの中心でC++をDISる
C++コミュニティーの中心でC++をDISる
Hideyuki Tanaka
入門 シェル実装
入門 シェル実装
Yusuke Sangenya
コンテナの作り方「Dockerは裏方で何をしているのか?」
コンテナの作り方「Dockerは裏方で何をしているのか?」
Masahito Zembutsu
AvailabilityZoneとHostAggregate
AvailabilityZoneとHostAggregate
Hiroki Ishikawa
今だからこそ知りたい Docker Compose/Swarm 入門
今だからこそ知りたい Docker Compose/Swarm 入門
Masahito Zembutsu
Cgroupあれこれ-第4回コンテナ型仮想化の情報交換会資料
Cgroupあれこれ-第4回コンテナ型仮想化の情報交換会資料
KamezawaHiroyuki
Backdoor!! vmware-tools と 統合サービスに見るハイパーバイザの呼び出し方
Backdoor!! vmware-tools と 統合サービスに見るハイパーバイザの呼び出し方
tshiroyama
DockerとPodmanの比較
DockerとPodmanの比較
Akihiro Suda
ruby-ffiについてざっくり解説
ruby-ffiについてざっくり解説
ota42y
Fluentdのお勧めシステム構成パターン
Fluentdのお勧めシステム構成パターン
Kentaro Yoshida
フロー技術によるネットワーク管理
フロー技術によるネットワーク管理
Motonori Shindo
macOSの仮想化技術について ~Virtualization-rs Rust bindings for virtualization.framework ~
macOSの仮想化技術について ~Virtualization-rs Rust bindings for virtualization.framework ~
NTT Communications Technology Development
Concourseで快適な自動化の旅
Concourseで快適な自動化の旅
Kazuto Kusama
OpenStack上の環境構築自動化に向けたTerraform/Pulumiの活用
OpenStack上の環境構築自動化に向けたTerraform/Pulumiの活用
Keiichi Hikita
LLVM最適化のこつ
LLVM最適化のこつ
MITSUNARI Shigeo
コンテナで始める柔軟な AWS Lambda 生活
コンテナで始める柔軟な AWS Lambda 生活
Drecom Co., Ltd.
optimal Ate pairing
optimal Ate pairing
MITSUNARI Shigeo
Linux女子部 systemd徹底入門
Linux女子部 systemd徹底入門
Etsuji Nakai
Yahoo!ニュースにおけるBFFパフォーマンスチューニング事例
Yahoo!ニュースにおけるBFFパフォーマンスチューニング事例
Yahoo!デベロッパーネットワーク
WebSocket / WebRTCの技術紹介
WebSocket / WebRTCの技術紹介
Yasuhiro Mawarimichi
OpenStack超入門シリーズ いまさら聞けないSwiftの使い方
OpenStack超入門シリーズ いまさら聞けないSwiftの使い方
Toru Makabe
Docker volume基礎/Project Longhorn紹介
Docker volume基礎/Project Longhorn紹介
Masahito Zembutsu
initとプロセス再起動
initとプロセス再起動
Takashi Takizawa
GitLab から GitLab に移行したときの思い出
GitLab から GitLab に移行したときの思い出
富士通クラウドテクノロジーズ株式会社
ネットワークの自動化・監視の取り組みについて #netopscoding #npstudy
ネットワークの自動化・監視の取り組みについて #netopscoding #npstudy
Yahoo!デベロッパーネットワーク
BGP Unnumbered で遊んでみた
BGP Unnumbered で遊んでみた
akira6592
545人のインフラを支えたNOCチーム!
545人のインフラを支えたNOCチーム!
Masayuki Kobayashi
孤独なフリーランサー
孤独なフリーランサー
107steps
Github pagesで独自ドメインのサイトを作る
Github pagesで独自ドメインのサイトを作る
107steps
More Related Content
What's hot
DockerとPodmanの比較
DockerとPodmanの比較
Akihiro Suda
ruby-ffiについてざっくり解説
ruby-ffiについてざっくり解説
ota42y
Fluentdのお勧めシステム構成パターン
Fluentdのお勧めシステム構成パターン
Kentaro Yoshida
フロー技術によるネットワーク管理
フロー技術によるネットワーク管理
Motonori Shindo
macOSの仮想化技術について ~Virtualization-rs Rust bindings for virtualization.framework ~
macOSの仮想化技術について ~Virtualization-rs Rust bindings for virtualization.framework ~
NTT Communications Technology Development
Concourseで快適な自動化の旅
Concourseで快適な自動化の旅
Kazuto Kusama
OpenStack上の環境構築自動化に向けたTerraform/Pulumiの活用
OpenStack上の環境構築自動化に向けたTerraform/Pulumiの活用
Keiichi Hikita
LLVM最適化のこつ
LLVM最適化のこつ
MITSUNARI Shigeo
コンテナで始める柔軟な AWS Lambda 生活
コンテナで始める柔軟な AWS Lambda 生活
Drecom Co., Ltd.
optimal Ate pairing
optimal Ate pairing
MITSUNARI Shigeo
Linux女子部 systemd徹底入門
Linux女子部 systemd徹底入門
Etsuji Nakai
Yahoo!ニュースにおけるBFFパフォーマンスチューニング事例
Yahoo!ニュースにおけるBFFパフォーマンスチューニング事例
Yahoo!デベロッパーネットワーク
WebSocket / WebRTCの技術紹介
WebSocket / WebRTCの技術紹介
Yasuhiro Mawarimichi
OpenStack超入門シリーズ いまさら聞けないSwiftの使い方
OpenStack超入門シリーズ いまさら聞けないSwiftの使い方
Toru Makabe
Docker volume基礎/Project Longhorn紹介
Docker volume基礎/Project Longhorn紹介
Masahito Zembutsu
initとプロセス再起動
initとプロセス再起動
Takashi Takizawa
GitLab から GitLab に移行したときの思い出
GitLab から GitLab に移行したときの思い出
富士通クラウドテクノロジーズ株式会社
ネットワークの自動化・監視の取り組みについて #netopscoding #npstudy
ネットワークの自動化・監視の取り組みについて #netopscoding #npstudy
Yahoo!デベロッパーネットワーク
BGP Unnumbered で遊んでみた
BGP Unnumbered で遊んでみた
akira6592
545人のインフラを支えたNOCチーム!
545人のインフラを支えたNOCチーム!
Masayuki Kobayashi
What's hot
(20)
DockerとPodmanの比較
DockerとPodmanの比較
ruby-ffiについてざっくり解説
ruby-ffiについてざっくり解説
Fluentdのお勧めシステム構成パターン
Fluentdのお勧めシステム構成パターン
フロー技術によるネットワーク管理
フロー技術によるネットワーク管理
macOSの仮想化技術について ~Virtualization-rs Rust bindings for virtualization.framework ~
macOSの仮想化技術について ~Virtualization-rs Rust bindings for virtualization.framework ~
Concourseで快適な自動化の旅
Concourseで快適な自動化の旅
OpenStack上の環境構築自動化に向けたTerraform/Pulumiの活用
OpenStack上の環境構築自動化に向けたTerraform/Pulumiの活用
LLVM最適化のこつ
LLVM最適化のこつ
コンテナで始める柔軟な AWS Lambda 生活
コンテナで始める柔軟な AWS Lambda 生活
optimal Ate pairing
optimal Ate pairing
Linux女子部 systemd徹底入門
Linux女子部 systemd徹底入門
Yahoo!ニュースにおけるBFFパフォーマンスチューニング事例
Yahoo!ニュースにおけるBFFパフォーマンスチューニング事例
WebSocket / WebRTCの技術紹介
WebSocket / WebRTCの技術紹介
OpenStack超入門シリーズ いまさら聞けないSwiftの使い方
OpenStack超入門シリーズ いまさら聞けないSwiftの使い方
Docker volume基礎/Project Longhorn紹介
Docker volume基礎/Project Longhorn紹介
initとプロセス再起動
initとプロセス再起動
GitLab から GitLab に移行したときの思い出
GitLab から GitLab に移行したときの思い出
ネットワークの自動化・監視の取り組みについて #netopscoding #npstudy
ネットワークの自動化・監視の取り組みについて #netopscoding #npstudy
BGP Unnumbered で遊んでみた
BGP Unnumbered で遊んでみた
545人のインフラを支えたNOCチーム!
545人のインフラを支えたNOCチーム!
Viewers also liked
孤独なフリーランサー
孤独なフリーランサー
107steps
Github pagesで独自ドメインのサイトを作る
Github pagesで独自ドメインのサイトを作る
107steps
GitHub halp app - Minimizing platform-specific code with MVVM - Justin Spahr-...
GitHub halp app - Minimizing platform-specific code with MVVM - Justin Spahr-...
Xamarin
mruby を C# に 組み込んでみる
mruby を C# に 組み込んでみる
Ryosuke Akiyama
Ruby で高速なプログラムを書く
Ruby で高速なプログラムを書く
mametter
20160716 Gemのお話
20160716 Gemのお話
Takahiro Kawahara
Frasco: Jekyll Starter Project
Frasco: Jekyll Starter Project
Kite Koga
スタートアップとScala
スタートアップとScala
Kiyotaka Kunihira
ここが変だよRuby/RoR #rubykansai
ここが変だよRuby/RoR #rubykansai
Kiyotaka Kunihira
Libqi unityの紹介など
Libqi unityの紹介など
Fujikido
Unityでデスクトップマスコットを作ろう
Unityでデスクトップマスコットを作ろう
yodaka16
C#/WPFで作るデスクトップマスコット入門
C#/WPFで作るデスクトップマスコット入門
Fujikido
Эффективные кампании в интернете для разных задач МСБ.
Эффективные кампании в интернете для разных задач МСБ.
Serhii Stasko
Letter s presentatie
Letter s presentatie
cmagarry
صداقت حضرت مسیح موعود علیہ السلام از احادیث
صداقت حضرت مسیح موعود علیہ السلام از احادیث
muzaffertahir9
iTec innovaatilised õpistsenaariumid
iTec innovaatilised õpistsenaariumid
Martin Sillaots
Hisham Muhamed Tilbete - Mrekullia e Kur'anit në çështje të astronomisë
Hisham Muhamed Tilbete - Mrekullia e Kur'anit në çështje të astronomisë
Libra Islame
Clase+de+tarnsporte
Clase+de+tarnsporte
Fernando Blanco
Unityを使ったVRアプリ作成入門 ABCD2015金沢編
Unityを使ったVRアプリ作成入門 ABCD2015金沢編
kinneko
Hands 1229372584812390 1
Hands 1229372584812390 1
anda dumangiu
Viewers also liked
(20)
孤独なフリーランサー
孤独なフリーランサー
Github pagesで独自ドメインのサイトを作る
Github pagesで独自ドメインのサイトを作る
GitHub halp app - Minimizing platform-specific code with MVVM - Justin Spahr-...
GitHub halp app - Minimizing platform-specific code with MVVM - Justin Spahr-...
mruby を C# に 組み込んでみる
mruby を C# に 組み込んでみる
Ruby で高速なプログラムを書く
Ruby で高速なプログラムを書く
20160716 Gemのお話
20160716 Gemのお話
Frasco: Jekyll Starter Project
Frasco: Jekyll Starter Project
スタートアップとScala
スタートアップとScala
ここが変だよRuby/RoR #rubykansai
ここが変だよRuby/RoR #rubykansai
Libqi unityの紹介など
Libqi unityの紹介など
Unityでデスクトップマスコットを作ろう
Unityでデスクトップマスコットを作ろう
C#/WPFで作るデスクトップマスコット入門
C#/WPFで作るデスクトップマスコット入門
Эффективные кампании в интернете для разных задач МСБ.
Эффективные кампании в интернете для разных задач МСБ.
Letter s presentatie
Letter s presentatie
صداقت حضرت مسیح موعود علیہ السلام از احادیث
صداقت حضرت مسیح موعود علیہ السلام از احادیث
iTec innovaatilised õpistsenaariumid
iTec innovaatilised õpistsenaariumid
Hisham Muhamed Tilbete - Mrekullia e Kur'anit në çështje të astronomisë
Hisham Muhamed Tilbete - Mrekullia e Kur'anit në çështje të astronomisë
Clase+de+tarnsporte
Clase+de+tarnsporte
Unityを使ったVRアプリ作成入門 ABCD2015金沢編
Unityを使ったVRアプリ作成入門 ABCD2015金沢編
Hands 1229372584812390 1
Hands 1229372584812390 1
Similar to RubyからC#を扱う
C#とRubyをつなぐ
C#とRubyをつなぐ
107steps
Ruby と C# をつなぐ
Ruby と C# をつなぐ
107steps
emruby: ブラウザで動くRuby
emruby: ブラウザで動くRuby
mametter
RubyでGUIアプリケーションを書く
RubyでGUIアプリケーションを書く
Misao X
mrubyでC使う? Cでmruby使う?
mrubyでC使う? Cでmruby使う?
Bizan Nishimura
RubyとRのおいしい関係
RubyとRのおいしい関係
sady_nitro
増井雄一郎の「wri.pe」を事例に学ぶ、自作サービスの広め方〜PR・継続できる目標の立て方・改善編 先生:増井 雄一郎
増井雄一郎の「wri.pe」を事例に学ぶ、自作サービスの広め方〜PR・継続できる目標の立て方・改善編 先生:増井 雄一郎
schoowebcampus
oFの話題が殆ど出ない oF jp Summer Workout
oFの話題が殆ど出ない oF jp Summer Workout
Tsuubito Ishii
PHPer のための Ruby 教室
PHPer のための Ruby 教室
higaki
Ember コミュニティとわたし
Ember コミュニティとわたし
Ryunosuke SATO
DSLについて語るときに僕の語ること
DSLについて語るときに僕の語ること
Tomohiro Nishimura
What's Cooking In Ruby 2.7
What's Cooking In Ruby 2.7
Akinori Musha
20150207 何故scalaを選んだのか
20150207 何故scalaを選んだのか
Katsunori Kanda
Rubinius Under a Microscope
Rubinius Under a Microscope
高広 内山
Rubyにメソッドを追加して遊ぶ話
Rubyにメソッドを追加して遊ぶ話
Masaya Konishi
Rubyをちょっと理解しよう
Rubyをちょっと理解しよう
Shun Hikita
Ruby Sapporo Night Vol4
Ruby Sapporo Night Vol4
Koji SHIMADA
Eightにおけるエンジニア主導の取り組み
Eightにおけるエンジニア主導の取り組み
Sansan
Mrubyの始め方
Mrubyの始め方
Masaki Muranaka
名古屋Ruby会議02 LT:Ruby中級への道
名古屋Ruby会議02 LT:Ruby中級への道
Shigeru UCHIYAMA
Similar to RubyからC#を扱う
(20)
C#とRubyをつなぐ
C#とRubyをつなぐ
Ruby と C# をつなぐ
Ruby と C# をつなぐ
emruby: ブラウザで動くRuby
emruby: ブラウザで動くRuby
RubyでGUIアプリケーションを書く
RubyでGUIアプリケーションを書く
mrubyでC使う? Cでmruby使う?
mrubyでC使う? Cでmruby使う?
RubyとRのおいしい関係
RubyとRのおいしい関係
増井雄一郎の「wri.pe」を事例に学ぶ、自作サービスの広め方〜PR・継続できる目標の立て方・改善編 先生:増井 雄一郎
増井雄一郎の「wri.pe」を事例に学ぶ、自作サービスの広め方〜PR・継続できる目標の立て方・改善編 先生:増井 雄一郎
oFの話題が殆ど出ない oF jp Summer Workout
oFの話題が殆ど出ない oF jp Summer Workout
PHPer のための Ruby 教室
PHPer のための Ruby 教室
Ember コミュニティとわたし
Ember コミュニティとわたし
DSLについて語るときに僕の語ること
DSLについて語るときに僕の語ること
What's Cooking In Ruby 2.7
What's Cooking In Ruby 2.7
20150207 何故scalaを選んだのか
20150207 何故scalaを選んだのか
Rubinius Under a Microscope
Rubinius Under a Microscope
Rubyにメソッドを追加して遊ぶ話
Rubyにメソッドを追加して遊ぶ話
Rubyをちょっと理解しよう
Rubyをちょっと理解しよう
Ruby Sapporo Night Vol4
Ruby Sapporo Night Vol4
Eightにおけるエンジニア主導の取り組み
Eightにおけるエンジニア主導の取り組み
Mrubyの始め方
Mrubyの始め方
名古屋Ruby会議02 LT:Ruby中級への道
名古屋Ruby会議02 LT:Ruby中級への道
RubyからC#を扱う
1.
RubyからC#を扱う 第73回 Ruby関西 勉強会
発表資料 FUNABARA Masao ( @107steps )
2.
2 概要 ● 自己紹介 ● ruby-csharp_script ● C# → Ruby ● Ruby
→ C# ● C# からの返り値 ● 課題
3.
3 自己紹介 • @107steps (
https://twitter.com/107steps ) • 舩原 理生 ( FUNABARA Masao ) • 個人事業主 • 仕事ください ( Ruby / C / C++ / C# / Xamarin ) • ブログ ( https://www.masoo.jp/blog ) • Ruby舞鶴やってます https://ruby-maizuru.doorkeeper.jp 北近畿に住んでいらっしゃる人がいたら 一緒にしましょう。
4.
4 ruby-csharp_script • https://github.com/masoo/ruby-csharp_script • Ruby
から C# を扱いたくて作ったライブラリ • C# 製 • COM に登録して使う (Virtual Studio 2015 Communityを 管理者権限で実行してビルドすると簡単)
5.
5 RubyからC#スクリプトを動かすデモ #1 ruby-csharp_script_sample001.rb
6.
6 RubyからC#スクリプトを動かすデモ #2 ruby-csharp_script_sample002.rb
7.
7 RubyからC#スクリプトを動かすデモ #3 ruby-csharp_script_sample003.rb
8.
8 C# → Ruby •
るびま 0021 号「 C# と Ruby を連携させる」を参考にしよう http://magazine.rubyist.net/?0021-RubyWithCSharp
9.
9 Ruby → C#
その1 • IronRuby ( CRuby 1.9 compatibility ) http://ironruby.net
10.
10 Roslyn 登場 • Roslyn
( .Net Compiler Platform ) が Virtual Studio 2015 から搭載 • その機能の一つに注目
11.
11 Scripting API • Microsoft.CodeAnalysis.Csharp.Scripting •
C# のソースコードをスクリプトとして実行 (コンパイルする C# 言語とちょっと違う) • C# での使い方は、 http://github.com/dotnet/roslyn/wiki/Scripting-API-Samples に記載
12.
12 Ruby → C#
その2 • ruby-csharp_script というのを作った https://github.com/masoo/ruby-csharp_script • Microsoft.CodeAnalysis.Csharp.Scripting.CsharpScript を 薄く Wrapping • Ruby からは win32ole 経由で呼び出す
13.
13 C# で COMクラスを作る方法 •
クラスとメソッドに GUID を割り振って、COM用の属性を指定してあげるとできる • 詳しくはマイクロソフトのサイトへGo https://msdn.microsoft.com/ja-jp/library/c3fd4a20.aspx https://msdn.microsoft.com/ja-jp/library/aa288455(v=vs.71).aspx
14.
14 Rubyからアクセスしたい時の注意点 • ターゲットプラットフォームを 「x86」にしないと win32ole から見えない
15.
15 C# Script の結果を
Ruby Script に渡す int型 ruby-csharp_script_sample004.rb
16.
16 C# Script の結果を
Ruby Script に渡す浮動小数点数型 ruby-csharp_script_sample005.rb
17.
17 C# Script の結果を
Ruby Script に渡す 文字列型 ruby-csharp_script_sample006.rb
18.
18 C# Script の結果を
Ruby Script に渡す 配列型 ruby-csharp_script_sample007.rb
19.
19 C# Script の結果を
Ruby Script に渡す オブジェクト ruby-csharp_script_sample008.rb
20.
20 課題 • 32ビットファイルしか扱えていない win32ole から
登録された 64ビットファイルが見えない • 元のメソッドは非同期メソッド (async) だけど、 Rubyに来る前に同期してる。 非同期にできるかどうか不明だし、このままでもいい気もする • Gem にしたいけど、 dll ファイルとか、COM の登録どうしよう
21.
21 まとめ • IronRubyは開発止まってる • C#
→ Ruby は、るびまを見よう • Ruby → C# は COM を使おう • ビルドは 32 ビットで • ruby-csharp_script は、そのうち gem にしたい イラスト:いらすとや
Download now