SlideShare a Scribd company logo
1 of 57
広がる.NET Framework 互換環境
++C++;
岩永 信之
http://ufcpp.net
2
セッションのゴール
• .NET Framework互換環境について知ってもらう
• どうして.NET (C#)?
• どういうことができるの?
• どういう環境があるの?
• どのくらいの幅カバーできるの?
• 注意点
はじめに
何を使って
何ができる
4
こんなの作ってます
ゲーム
ロジック
iPhone
ゲーム
Android
ゲーム
Linux
サーバー
Windows
デスクトップ
単体実行
ゲーム本体
• オフライン実行
• 中断・再開、通信対戦
サーバー
• チート対策
デスクトップ
• データ編集
• バランス調整
(シミュレーション)
テスト実行
5
こんなの作ってます
ゲーム
ロジック
iPhone
ゲーム
Android
ゲーム
Linux
サーバー
Windows
デスクトップ
単体実行
C#(.NET言語なら何でも)
• #ifdef すらなく
• 単一バイナリ(dll)
6
実物
ゲーム本体(iOS/Android)
データ編集ツール チート検証サーバー
※前作のスクリーンショット
7
何ができる
• 通信の少ないクライアント実行
• チートできないサーバー実行
• データの編集ツール
地下鉄の中でも低ストレス
不正クライアントを作られても平気
複雑なデータの打ちこみ可能
早い段階でバランスの確認可能
8
何を使ってできる
• もちろん普通の.NET開発環境+実行環境
• Visual Studio
• Windows
• .NET Framework
• Mono†、Xamarin‡
• Unityゲーム エンジン※
†http://mono-project.com/
‡http://xamarin.com/
*http://japan.unity3d.com/
Why and Why Not
どうしてC#
どうして他ではない
10
どうしてC#
• 最初(前作の初期)は
• 会社として単一技術に依存しないため
• Unityのプロジェクト“も”立ち上げた
• 他にもRuby on Rails、Coffee Script、Node.js、…
• Unity†なので必然的にC#
• JavaScriptで大きめのアプリ書くとかちょっと…
† Monoベースのクロス プラットフォーム
ゲーム開発エンジン(iOS/Android対応)
11
せっかくC#だから
• C#なのにUnityでしか使わないとかもったいない
• 前作からやりたかった
• 今作は初期設計からきっちり
• 様々なメリットあり
ゲーム
ロジック
iPhone
ゲーム
Android
ゲーム
Linux
サーバー
Windows
デスクトップ
単体実行
C#ならいろいろできる
12
C#ならいろいろできる
• システム開発向けの汎用言語
• 大規模化しても破綻しない
• それなりのパフォーマンス
• 動かせる環境
• GUI、コンソール、UIなし(単体テスト)
• Windows、Linux、iOS、Android
×_
OK
×_
> ls
Mode LastWriteTime Length Name
---- ------------- ------ ----
d---- 2013/05/17 18:36 ConsoleApplication1
d---- 2013/04/17 12:03 ConsoleApplication2
d---- 2013/05/07 12:27 ConsoleApplication3
d---- 2013/05/07 12:51 SamplesFromWeb
d---- 2013/05/07 12:33 TfsUfcpp
d---- 2013/04/25 16:53 WpfApplication1
13
比較: HTML5 + JavaScript
• HTMLは応答性的にきつくて
• 通信量多い(Viewまで文字ベースで送信するので)
• 画像リソースも毎回ダウンロードするのでかなりの負担
• 機種によって描画性能がまちまち
• 思ったよりもクロス プラットフォーム感出ない
• タッチ操作周りの挙動とか結構怪しい機種あり
• 性能差があるだけでも「この機種ダメだ」な機種あり
14
余談: 既存サーバー資産はPHP
• 全面C#化はやってない
• PHPからC#モジュールを呼ぶ
• MonoでHTTPリスナー立てて、ローカルHTTP通信
• C#化してからの開発はハイペース
• C#自体のパワー
• クライアントでも使う
(2重開発でない分、1つのコードに手間をかけれる)
15
比較: C++
• ポータビリティ
• ロジックだけならいいけども、UIは結局別
• UIからロジックをきれいに分離するのも、C++は結構大変
• なのでポータビリティ的にはそこまで優位はないと思う
• パフォーマンス
• CPUネイティブのパフォーマンスを必要とする作品を作ってない
• CPU構造とかGPU利用まで考慮しないと、C++とC#の差はそこま
で大きくない
16
ということで
• 割と迷うことなく
C#
17
とはいえ
いろいろ疑問はあると思います
• Mono/Xamarin/Unityって?
• どのくらいの互換性が?
• 本当に大丈夫?
• コツとか気を付けるところはある?
.NET互換環境
Mono
Xamarin
Unityゲーム エンジン
19 19
We love C# and .NET more than Microsoft does
マイクロソフトよりもC#と.NETを愛している
Miguel de Icaza†談
† GNOME、Monoプロジェクトを始めた人
XamarinのCTO
https://twitter.com/migueldeicaza/status/278901886411751424
20
余談: .NETが出た当時…
• 知らない、わからないは論外として
• いいとは思うけど…
• マイクロソフトの技術だしちょっと…
• オープンじゃないからダメ
• なら、.NETをオープンにすればいいじゃない
Mono
21
.NET互換環境
• Mono
• .NET Framework互換の実行環境
• Xamarin社
• Monoを主軸に製品を作っている会社
• Xamarin.iOS
• Xamarin.Android
• Unityゲーム エンジン
• Monoベースのクロスプラットフォームなゲーム開発エンジン
※ 他にも.NET互換環境はあるものの、最近の流行りとして
22
.NET互換環境
• Mono
• Xamarin.iOS
• Xamarin.Android
• Unityゲーム エンジン
Windows Max OS X Linux
iOS
Android
23
異なるアプローチ
• デスクトップ向けMono(Windows, Mac OS X, Linux)
• Windows FormsやASP.NETも提供
• WPFは無理
• Xamarin.iOS/Xamarin.Android
• Monoの基礎部分 + ネイティブ相互運用
• Unityゲーム エンジン
• Monoの基礎部分+ クロスプラットフォーム ゲームUI
24
異なるアプローチ
• デスクトップ向けMono(Windows, Mac OS X, Linux)
• Windows FormsやASP.NETも提供
• WPFは無理
• Xamarin.iOS/Xamarin.Android
• Monoの基礎部分 + ネイティブ相互運用
• Unityゲーム エンジン
• Monoの基礎部分+ クロスプラットフォーム ゲームUI
• デスクトップだけだからできる
• モバイルは絶望的
• それも、あまり高機能なもの
(WPFとか)は期待薄
25
異なるアプローチ
• デスクトップ向けMono(Windows, Mac OS X, Linux)
• Windows FormsやASP.NETも提供
• WPFは無理
• Xamarin.iOS/Xamarin.Android
• Monoの基礎部分 + ネイティブ相互運用
• Unityゲーム エンジン
• Monoの基礎部分+ クロスプラットフォーム ゲームUI
• UI部分はそれぞれのOSのマナーで書く
26
異なるアプローチ
• デスクトップ向けMono(Windows, Mac OS X, Linux)
• Windows FormsやASP.NETも提供
• WPFは無理
• Xamarin.iOS/Xamarin.Android
• Monoの基礎部分 + ネイティブ相互運用
• Unityゲーム エンジン
• Monoの基礎部分+ クロスプラットフォーム ゲームUI
• 用途がゲームに限られていて、
機器性能をある程度絞れるからできる
• それなりにオーバーヘッド大きい
• 幅広い機器をターゲットにすればするほど大変
27
クロスプラットフォームの注意点
• ほんとにクロスに使えるのは基礎部分だけなので注意
• System, System.Collections, System.Linq, System.Text, …
• UIは、各OSのマナーに合わせて作るべき
UIからのロジック分離が非常に大事
28
ゲーム
ロジック
iPhone
ゲーム
Android
ゲーム
Linux
サーバー
Windows
デスクトップ
単体実行
Mono(デスクトップ向け)
Unityゲーム エンジン
Xamarin.Android
Xamarin.iOS
.NET Framework
どこでも動く
基礎部分
互換性とバージョン
30
.NET Framework
• おさらい
C#
ソースコード
IL
(中間言語)
C#
コンパイラー
.NET
実行環境
標準
ライブラリ
31
.NET FrameworkとMono
C#
VB
F#
C#
CLR
Mono
ランタイム
.NET Full
プロファイル
.NET Core
プロファイル
.NET Full
(サブセット)
iOS向け
プロファイル
Android向け
プロファイル
.NET
Framework
Mono
コンパイラー 実行環境 ライブラリ
32
.NET FrameworkとMono
C#
VB
F#
C#
CLR
Mono
ランタイム
.NET Full
プロファイル
.NET Core
プロファイル
.NET Full
(サブセット)
iOS向け
プロファイル
Android向け
プロファイル
.NET
Framework
Mono
コンパイラー 実行環境 ライブラリ
ILの標準仕様に沿った結果を出力
• MS製C#コンパイラーの出力をMonoで実行可能
• 逆も可
33
.NET FrameworkとMono
C#
VB
F#
C#
CLR
Mono
ランタイム
.NET Full
プロファイル
.NET Core
プロファイル
.NET Full
(サブセット)
iOS向け
プロファイル
Android向け
プロファイル
.NET
Framework
Mono
コンパイラー 実行環境 ライブラリ
これも仕様通り
• GCの挙動が違ったりはするものの
• アプリのレベルでの挙動は変わらない
34
.NET FrameworkとMono
C#
VB
F#
C#
CLR
Mono
ランタイム
.NET Full
プロファイル
.NET Core
プロファイル
.NET Full
(サブセット)
iOS向け
プロファイル
Android向け
プロファイル
.NET
Framework
Mono
コンパイラー 実行環境 ライブラリ
差が出るのはここ
• どのクラスのどのメソッド
が使えるか
35
要点
• 参照できるライブラリが変わるだけ
• 前述の通り:
• UI部分は共通化できない
• UIとロジックの分離必須
• ビルドさえ通ればだいたい動く
• 仕様がしっかりしている
• 後方互換性保たれている
• “静的な言語”の利点
36
Monoで使えるライブラリ
• BCL†(基礎ライブラリ)に関してはかなり移植されてる
• 後方互換性もあり
† Basic Class Library
Mono .NET Framework
2.6 3.5
2.10 4
3.0 4.5
大体、以下の通りバージョンを読みかえればOK
Unity 4はMono 2.6ベース
Xamarin 2.0はMono 2.10
(iOS/Androidともに)ベースまだβ版
37
といっても
C# 1.0
.NET 1.0
C# 2.0
.NET 2.0
• ジェネリック
• イテレーター
C# 3.0
.NET 3.5
• LINQ
C# 4.0
.NET 4
• dynamic
• Task
C# 5.0
.NET 4.5
•async/await
•Caller Info
バージョンで言われてもわからないと思うので…
38
機能でいうと
Collections LINQ Task dynamic
await/
async
Caller Info
3.5
○ ○ × × × ×
4
○ ○ ○ ○ × ×
4.5
○ ○ ○ ○ ○ ○
Mono 2.6
Unity 4
Mono 2.10
Xamarin 2.0
Mono 3.0
39
注意: UnityのMono
• UnityはMono自体のコードに結構手を入れている
• 簡単にはMonoのバージョンを上げれない
• いつまでたっても2.6(= .NET 3.5相当。つらい)
オープンソースだからと言って中身に手を入れる怖さ
いろいろ本当に大丈夫?
ありそうな疑問点
その他いくつか注意
41
互換環境って信用できるの?
• 聞こえてきそうな声:
• Run anywhereって言ってるアレでもよく苦労するよ?
• バージョン違いですら問題出たりするのに
• ライセンス問題とかないの?
• パフォーマンスは大丈夫? 正直、.NETで苦労
したことない
42
苦労したことない
• マイクロソフトの下位互換性に対する努力の成果
• 90年代のDLL Hellの反省のたまもの
• .NETはアセンブリとかメタデータの仕様がしっかりしてる
• 参照順
• バージョニング
• その移植なので、Monoもしっかりしてる
43
Run anywhere度合(一般論)
• 一般論として
• 基礎部分ほどRun anywhere
• 依存するライブラリが少ないほどRun anywhere
• モジュール性が高く、依存関係の少ない書き方を
• ビューとモデルの分離を
クロスプラットフォームを売りにしたフレー
ムワーク、プログラミング言語の利用者ほど、
移植性の低いコードを平気で書くので注意
44
Run anywhere (Mono)
• 前述の通り:
• 基本クラス ライブラリは大部分問題なく動く
• バージョンにだけ気を付ける
• 後方互換性あり
• UIは期待薄
• Unityがクロスプラットフォームだからといって、Unityに依存したコードは
極力少なくすべき
45
問題1: private
• 仕様外の部分は当たり前だけど互換性ない
• クラスのprivateな部分には触れちゃダメ
• 普通困らないけども…
• BinaryFormatterとか、privateな部分に触れようとするライブラリもあるの
で注意
46
問題2: iOS上の制限
• iOS = 動的な処理を認めていない
• MonoはAOT†で実行
制約あり
• リフレクション全滅
• 値型のジェネリックに一部制限あり
• 例えば、Nullable型に対するLINQで動かないものあり
(早期に .Where(x => x.HasValue).Select(x => x.Value) 推奨)
• 抽象メソッドの引数にジェネリックを使えない
† Ahead of Time: コンパイル時に直接ネイティブ コード化
47
問題3: 利用者側のマナーの問題も
• 環境やバージョンが変わって動かない例:
• パフォーマンスに依存するバグが残ってる
• クラス パスの検索順が変わっただけで動かない
• インターフェイスの戻り値をわざわざ具象クラスにダウンキャスト
して使ってる
さすがにこれは、
こういうコード書く方が悪い
48
.NETの標準化
• 標準化
• Community Promise
• 標準仕様に沿っている限り、マイクロソフトは特許権を主張しない
ECMA ISO JIS
C# ECMA-334 ISO/IEC 23270 JIS X 3015
CLI ECMA-335 ISO/IEC 23271 JIS X 3016
49
Monoのライセンス†
• コンパイラーやランタイムはGPL/LGPL
• クラス ライブラリは MIT X11
• MEFやDLRなど、元々MS-PLなものはそれに準ずる
• 別途、商用ライセンスあり
• GPL/LGPLが適さない場合でも、Xamarin社と要相談
† http://www.mono-project.com/FAQ:_Licensing
50
パフォーマンス
• 起動後にパフォーマンスで困ることはそうないものの
起動時間がやっぱ長めという問題はある
• モバイルにはCompile in the Cloud†みたいな仕組みが必要なんだと
思うけど…
† Windows Phone 8で採用された手法
アプリ ストアのサーバー上でネイティブ化したものをクライアントに配布
依存整理
依存って?
依存を減らす方法いくつか
52
依存
• どのアセンブリがどのアセンブリを必要とするか
依存グラフ 依存度高 低
もちろん、線の本数
少ない方がいい
53
依存度が高いと
53
• 修正(継続開発)が大変
• フレームワークの寿命に引きずられるリスク高
「リリースしたら開発終了」って時代じゃない
• オンラインでサービス提供
• 継続的な機能追加
UI層は陳腐化が激しい
• UI層は基本ライブラリよりもはるかに寿命が短い
• 中核処理はUIと独立で、より長命なはず
55
依存切り: プロジェクトを分ける
55
• 参照したいもの、されるものに応じて
広く使いたいものほど、
参照するライブラリは少なく
56
依存切り: フレームワーク
• 例えばASP.NET MVC
using System.Web;
using System.Web.Mvc;
namespace MvcApplication1.Controllers
{
public class HomeController : Controller
{
public ActionResult Index()
{
}
}
}
こういうところに
中核処理を書いちゃダメ
画面側コード(この例だとコントローラー)
ASP.NET依存
60
まとめ
• .NET Framework互換環境
• Mono、Xamarin、Unityゲーム エンジン
• コード共有(バイナリで)
• Windows、Linux、Mac OS X、iOS、Android…
• GUI、コンソール、UIなし
• 注意点
• 移植性が高いのは中核処理のみ、UIまでは無理
• 常に依存関係を意識した開発を
広がる .Net

More Related Content

What's hot

.NET Core 2.x 時代の C#
.NET Core 2.x 時代の C#.NET Core 2.x 時代の C#
.NET Core 2.x 時代の C#信之 岩永
 
C# 7.2 with .NET Core 2.1
C# 7.2 with .NET Core 2.1C# 7.2 with .NET Core 2.1
C# 7.2 with .NET Core 2.1信之 岩永
 
動的なILの生成と編集
動的なILの生成と編集動的なILの生成と編集
動的なILの生成と編集terurou
 
dotnetconfJP2017_netcore2
dotnetconfJP2017_netcore2dotnetconfJP2017_netcore2
dotnetconfJP2017_netcore2Yusuke Fujiwara
 
C#とILとネイティブと
C#とILとネイティブとC#とILとネイティブと
C#とILとネイティブと信之 岩永
 
C# 8.0 非同期ストリーム
C# 8.0 非同期ストリームC# 8.0 非同期ストリーム
C# 8.0 非同期ストリーム信之 岩永
 
Orange Cube 自社フレームワーク 2015/3
Orange Cube 自社フレームワーク 2015/3Orange Cube 自社フレームワーク 2015/3
Orange Cube 自社フレームワーク 2015/3信之 岩永
 
Hello, C++ + JavaScript World! - Boost.勉強会 #11 東京
Hello, C++ + JavaScript World! - Boost.勉強会 #11 東京Hello, C++ + JavaScript World! - Boost.勉強会 #11 東京
Hello, C++ + JavaScript World! - Boost.勉強会 #11 東京hecomi
 
モダン PHP テクニック 12 選 ―PsalmとPHP 8.1で今はこんなこともできる!―
モダン PHP テクニック 12 選 ―PsalmとPHP 8.1で今はこんなこともできる!―モダン PHP テクニック 12 選 ―PsalmとPHP 8.1で今はこんなこともできる!―
モダン PHP テクニック 12 選 ―PsalmとPHP 8.1で今はこんなこともできる!―shinjiigarashi
 
今からでも遅くないC#開発
今からでも遅くないC#開発今からでも遅くないC#開発
今からでも遅くないC#開発Kazunori Hamamoto
 
今日からできる!簡単 .NET 高速化 Tips
今日からできる!簡単 .NET 高速化 Tips今日からできる!簡単 .NET 高速化 Tips
今日からできる!簡単 .NET 高速化 TipsTakaaki Suzuki
 
.NET Core とマルチプラットフォーム
.NET Core とマルチプラットフォーム.NET Core とマルチプラットフォーム
.NET Core とマルチプラットフォームshozon
 
クリーンな WordPress サイトのための PHP コーディングのお作法 ― 計画的に WordPress を拡張していくためのフレームワーク思考 |...
クリーンな WordPress サイトのための PHP コーディングのお作法 ― 計画的に WordPress を拡張していくためのフレームワーク思考 |...クリーンな WordPress サイトのための PHP コーディングのお作法 ― 計画的に WordPress を拡張していくためのフレームワーク思考 |...
クリーンな WordPress サイトのための PHP コーディングのお作法 ― 計画的に WordPress を拡張していくためのフレームワーク思考 |...Kazuhiro Hara
 
C# コーディングガイドライン 2013/02/26
C# コーディングガイドライン 2013/02/26C# コーディングガイドライン 2013/02/26
C# コーディングガイドライン 2013/02/26Yoshihisa Ozaki
 
3分でサーバオペレーションコマンドを作る技術
3分でサーバオペレーションコマンドを作る技術3分でサーバオペレーションコマンドを作る技術
3分でサーバオペレーションコマンドを作る技術Kei IWASAKI
 

What's hot (20)

.NET Core 2.x 時代の C#
.NET Core 2.x 時代の C#.NET Core 2.x 時代の C#
.NET Core 2.x 時代の C#
 
C# 7.2 with .NET Core 2.1
C# 7.2 with .NET Core 2.1C# 7.2 with .NET Core 2.1
C# 7.2 with .NET Core 2.1
 
動的なILの生成と編集
動的なILの生成と編集動的なILの生成と編集
動的なILの生成と編集
 
Modern .NET
Modern .NETModern .NET
Modern .NET
 
dotnetconfJP2017_netcore2
dotnetconfJP2017_netcore2dotnetconfJP2017_netcore2
dotnetconfJP2017_netcore2
 
C# 9.0 / .NET 5.0
C# 9.0 / .NET 5.0C# 9.0 / .NET 5.0
C# 9.0 / .NET 5.0
 
C#とILとネイティブと
C#とILとネイティブとC#とILとネイティブと
C#とILとネイティブと
 
C# 8.0 非同期ストリーム
C# 8.0 非同期ストリームC# 8.0 非同期ストリーム
C# 8.0 非同期ストリーム
 
Deep Dive C# 6.0
Deep Dive C# 6.0Deep Dive C# 6.0
Deep Dive C# 6.0
 
Orange Cube 自社フレームワーク 2015/3
Orange Cube 自社フレームワーク 2015/3Orange Cube 自社フレームワーク 2015/3
Orange Cube 自社フレームワーク 2015/3
 
Hello, C++ + JavaScript World! - Boost.勉強会 #11 東京
Hello, C++ + JavaScript World! - Boost.勉強会 #11 東京Hello, C++ + JavaScript World! - Boost.勉強会 #11 東京
Hello, C++ + JavaScript World! - Boost.勉強会 #11 東京
 
C# 3.0 以降
C# 3.0 以降C# 3.0 以降
C# 3.0 以降
 
モダン PHP テクニック 12 選 ―PsalmとPHP 8.1で今はこんなこともできる!―
モダン PHP テクニック 12 選 ―PsalmとPHP 8.1で今はこんなこともできる!―モダン PHP テクニック 12 選 ―PsalmとPHP 8.1で今はこんなこともできる!―
モダン PHP テクニック 12 選 ―PsalmとPHP 8.1で今はこんなこともできる!―
 
今からでも遅くないC#開発
今からでも遅くないC#開発今からでも遅くないC#開発
今からでも遅くないC#開発
 
今日からできる!簡単 .NET 高速化 Tips
今日からできる!簡単 .NET 高速化 Tips今日からできる!簡単 .NET 高速化 Tips
今日からできる!簡単 .NET 高速化 Tips
 
.NET Core とマルチプラットフォーム
.NET Core とマルチプラットフォーム.NET Core とマルチプラットフォーム
.NET Core とマルチプラットフォーム
 
C#の書き方
C#の書き方C#の書き方
C#の書き方
 
クリーンな WordPress サイトのための PHP コーディングのお作法 ― 計画的に WordPress を拡張していくためのフレームワーク思考 |...
クリーンな WordPress サイトのための PHP コーディングのお作法 ― 計画的に WordPress を拡張していくためのフレームワーク思考 |...クリーンな WordPress サイトのための PHP コーディングのお作法 ― 計画的に WordPress を拡張していくためのフレームワーク思考 |...
クリーンな WordPress サイトのための PHP コーディングのお作法 ― 計画的に WordPress を拡張していくためのフレームワーク思考 |...
 
C# コーディングガイドライン 2013/02/26
C# コーディングガイドライン 2013/02/26C# コーディングガイドライン 2013/02/26
C# コーディングガイドライン 2013/02/26
 
3分でサーバオペレーションコマンドを作る技術
3分でサーバオペレーションコマンドを作る技術3分でサーバオペレーションコマンドを作る技術
3分でサーバオペレーションコマンドを作る技術
 

Viewers also liked

Keep yourself up to date
Keep yourself up to dateKeep yourself up to date
Keep yourself up to date信之 岩永
 
An other world awaits you
An other world awaits youAn other world awaits you
An other world awaits you信之 岩永
 
C#の強み、或いは何故PHPから乗り換えるのか
C#の強み、或いは何故PHPから乗り換えるのかC#の強み、或いは何故PHPから乗り換えるのか
C#の強み、或いは何故PHPから乗り換えるのかYoshifumi Kawai
 
5分でわかるvim講座 入門編
5分でわかるvim講座   入門編5分でわかるvim講座   入門編
5分でわかるvim講座 入門編har hogefoo
 
PHP, JavaScriptプログラマのためのC#入門
PHP, JavaScriptプログラマのためのC#入門PHP, JavaScriptプログラマのためのC#入門
PHP, JavaScriptプログラマのためのC#入門Tomo Mizoe
 
Anders Hejlsberg Q & A
Anders Hejlsberg Q & AAnders Hejlsberg Q & A
Anders Hejlsberg Q & A信之 岩永
 
GitHub halp app - Minimizing platform-specific code with MVVM - Justin Spahr-...
GitHub halp app - Minimizing platform-specific code with MVVM - Justin Spahr-...GitHub halp app - Minimizing platform-specific code with MVVM - Justin Spahr-...
GitHub halp app - Minimizing platform-specific code with MVVM - Justin Spahr-...Xamarin
 
.NET最先端技術によるハイパフォーマンスウェブアプリケーション
.NET最先端技術によるハイパフォーマンスウェブアプリケーション.NET最先端技術によるハイパフォーマンスウェブアプリケーション
.NET最先端技術によるハイパフォーマンスウェブアプリケーションYoshifumi Kawai
 
IL2CPPに関する軽い話
IL2CPPに関する軽い話IL2CPPに関する軽い話
IL2CPPに関する軽い話Wooram Yang
 
非同期処理の基礎
非同期処理の基礎非同期処理の基礎
非同期処理の基礎信之 岩永
 
MessagePack-CSharpってシャープなの?@激突! Aiming x CloverLab [クライアント対決]部門
MessagePack-CSharpってシャープなの?@激突! Aiming x CloverLab [クライアント対決]部門MessagePack-CSharpってシャープなの?@激突! Aiming x CloverLab [クライアント対決]部門
MessagePack-CSharpってシャープなの?@激突! Aiming x CloverLab [クライアント対決]部門yuki maeta
 
ちゃんとした C# プログラムを書けるようになる実践的な方法~ Visual Studio を使った 高品質・低コスト・保守性の高い開発
ちゃんとした C# プログラムを書けるようになる実践的な方法~ Visual Studio を使った 高品質・低コスト・保守性の高い開発ちゃんとした C# プログラムを書けるようになる実践的な方法~ Visual Studio を使った 高品質・低コスト・保守性の高い開発
ちゃんとした C# プログラムを書けるようになる実践的な方法~ Visual Studio を使った 高品質・低コスト・保守性の高い開発慎一 古賀
 
第二世代MDD(萌え駆動開発)によるプログラミングWin32 #CLRH89
第二世代MDD(萌え駆動開発)によるプログラミングWin32 #CLRH89第二世代MDD(萌え駆動開発)によるプログラミングWin32 #CLRH89
第二世代MDD(萌え駆動開発)によるプログラミングWin32 #CLRH89hiyohiyo
 

Viewers also liked (14)

Interaction channel
Interaction channelInteraction channel
Interaction channel
 
Keep yourself up to date
Keep yourself up to dateKeep yourself up to date
Keep yourself up to date
 
An other world awaits you
An other world awaits youAn other world awaits you
An other world awaits you
 
C#の強み、或いは何故PHPから乗り換えるのか
C#の強み、或いは何故PHPから乗り換えるのかC#の強み、或いは何故PHPから乗り換えるのか
C#の強み、或いは何故PHPから乗り換えるのか
 
5分でわかるvim講座 入門編
5分でわかるvim講座   入門編5分でわかるvim講座   入門編
5分でわかるvim講座 入門編
 
PHP, JavaScriptプログラマのためのC#入門
PHP, JavaScriptプログラマのためのC#入門PHP, JavaScriptプログラマのためのC#入門
PHP, JavaScriptプログラマのためのC#入門
 
Anders Hejlsberg Q & A
Anders Hejlsberg Q & AAnders Hejlsberg Q & A
Anders Hejlsberg Q & A
 
GitHub halp app - Minimizing platform-specific code with MVVM - Justin Spahr-...
GitHub halp app - Minimizing platform-specific code with MVVM - Justin Spahr-...GitHub halp app - Minimizing platform-specific code with MVVM - Justin Spahr-...
GitHub halp app - Minimizing platform-specific code with MVVM - Justin Spahr-...
 
.NET最先端技術によるハイパフォーマンスウェブアプリケーション
.NET最先端技術によるハイパフォーマンスウェブアプリケーション.NET最先端技術によるハイパフォーマンスウェブアプリケーション
.NET最先端技術によるハイパフォーマンスウェブアプリケーション
 
IL2CPPに関する軽い話
IL2CPPに関する軽い話IL2CPPに関する軽い話
IL2CPPに関する軽い話
 
非同期処理の基礎
非同期処理の基礎非同期処理の基礎
非同期処理の基礎
 
MessagePack-CSharpってシャープなの?@激突! Aiming x CloverLab [クライアント対決]部門
MessagePack-CSharpってシャープなの?@激突! Aiming x CloverLab [クライアント対決]部門MessagePack-CSharpってシャープなの?@激突! Aiming x CloverLab [クライアント対決]部門
MessagePack-CSharpってシャープなの?@激突! Aiming x CloverLab [クライアント対決]部門
 
ちゃんとした C# プログラムを書けるようになる実践的な方法~ Visual Studio を使った 高品質・低コスト・保守性の高い開発
ちゃんとした C# プログラムを書けるようになる実践的な方法~ Visual Studio を使った 高品質・低コスト・保守性の高い開発ちゃんとした C# プログラムを書けるようになる実践的な方法~ Visual Studio を使った 高品質・低コスト・保守性の高い開発
ちゃんとした C# プログラムを書けるようになる実践的な方法~ Visual Studio を使った 高品質・低コスト・保守性の高い開発
 
第二世代MDD(萌え駆動開発)によるプログラミングWin32 #CLRH89
第二世代MDD(萌え駆動開発)によるプログラミングWin32 #CLRH89第二世代MDD(萌え駆動開発)によるプログラミングWin32 #CLRH89
第二世代MDD(萌え駆動開発)によるプログラミングWin32 #CLRH89
 

Similar to 広がる .Net

Cloud から IoT まで、なんでもおまかせ ~ .NET 5 正式リリース!
Cloud から IoT まで、なんでもおまかせ ~ .NET 5 正式リリース!Cloud から IoT まで、なんでもおまかせ ~ .NET 5 正式リリース!
Cloud から IoT まで、なんでもおまかせ ~ .NET 5 正式リリース!Akira Inoue
 
Windows Phoneで始める拡張現実の世界
Windows Phoneで始める拡張現実の世界Windows Phoneで始める拡張現実の世界
Windows Phoneで始める拡張現実の世界Akira Hatsune
 
CLRの基礎 - プログラミング .NET Framework 第3版 読書会
CLRの基礎 - プログラミング .NET Framework 第3版 読書会CLRの基礎 - プログラミング .NET Framework 第3版 読書会
CLRの基礎 - プログラミング .NET Framework 第3版 読書会Yoshihisa Ozaki
 
改めて C# でできることを振り返る
改めて C# でできることを振り返る改めて C# でできることを振り返る
改めて C# でできることを振り返るYuta Matsumura
 
Linux & Mac OS でも動く! ~ オープンソース & クロスプラットフォーム .NET の歩き方 ~
Linux & Mac OS でも動く! ~ オープンソース & クロスプラットフォーム .NET の歩き方 ~Linux & Mac OS でも動く! ~ オープンソース & クロスプラットフォーム .NET の歩き方 ~
Linux & Mac OS でも動く! ~ オープンソース & クロスプラットフォーム .NET の歩き方 ~Akira Inoue
 
.NETラボ2021年10月 .NETの過去と現在
.NETラボ2021年10月 .NETの過去と現在.NETラボ2021年10月 .NETの過去と現在
.NETラボ2021年10月 .NETの過去と現在TomomitsuKusaba
 
Hello ".NET" World
Hello ".NET" WorldHello ".NET" World
Hello ".NET" World将 高野
 
Windows 8時代のアプリ開発
Windows 8時代のアプリ開発Windows 8時代のアプリ開発
Windows 8時代のアプリ開発信之 岩永
 
密着!わたしのコンソールアプリ開発環境
密着!わたしのコンソールアプリ開発環境密着!わたしのコンソールアプリ開発環境
密着!わたしのコンソールアプリ開発環境Fumihito Yokoyama
 
Dev camp2012jpn day2special
Dev camp2012jpn day2specialDev camp2012jpn day2special
Dev camp2012jpn day2specialKatsuhito Katoh
 
Developr Camp 2012 Japan Fall Day2 Special Session - Visual Studio 2012 で始める ...
Developr Camp 2012 Japan Fall Day2 Special Session - Visual Studio 2012 で始める ...Developr Camp 2012 Japan Fall Day2 Special Session - Visual Studio 2012 で始める ...
Developr Camp 2012 Japan Fall Day2 Special Session - Visual Studio 2012 で始める ...Developer Camp 2012 Japan Fall
 
.NETクロスプラットフォーム
.NETクロスプラットフォーム.NETクロスプラットフォーム
.NETクロスプラットフォームYasushi Kato
 
DEV-002_.NET Core/ASP.NET Core が実現するクロスプラットフォーム .NET の今と未来
DEV-002_.NET Core/ASP.NET Core が実現するクロスプラットフォーム .NET の今と未来DEV-002_.NET Core/ASP.NET Core が実現するクロスプラットフォーム .NET の今と未来
DEV-002_.NET Core/ASP.NET Core が実現するクロスプラットフォーム .NET の今と未来decode2016
 
Monomeeting 20081022
Monomeeting 20081022Monomeeting 20081022
Monomeeting 20081022Atsushi Eno
 
本格化するクラウド ネイティブに向けて進化する開発プラットフォームと .NET
本格化するクラウド ネイティブに向けて進化する開発プラットフォームと .NET本格化するクラウド ネイティブに向けて進化する開発プラットフォームと .NET
本格化するクラウド ネイティブに向けて進化する開発プラットフォームと .NETAkira Inoue
 
Introduction to VSCode
Introduction to VSCodeIntroduction to VSCode
Introduction to VSCodeYuki Igarashi
 

Similar to 広がる .Net (20)

Cloud から IoT まで、なんでもおまかせ ~ .NET 5 正式リリース!
Cloud から IoT まで、なんでもおまかせ ~ .NET 5 正式リリース!Cloud から IoT まで、なんでもおまかせ ~ .NET 5 正式リリース!
Cloud から IoT まで、なんでもおまかせ ~ .NET 5 正式リリース!
 
Windows Phoneで始める拡張現実の世界
Windows Phoneで始める拡張現実の世界Windows Phoneで始める拡張現実の世界
Windows Phoneで始める拡張現実の世界
 
CLRの基礎 - プログラミング .NET Framework 第3版 読書会
CLRの基礎 - プログラミング .NET Framework 第3版 読書会CLRの基礎 - プログラミング .NET Framework 第3版 読書会
CLRの基礎 - プログラミング .NET Framework 第3版 読書会
 
改めて C# でできることを振り返る
改めて C# でできることを振り返る改めて C# でできることを振り返る
改めて C# でできることを振り返る
 
Linux & Mac OS でも動く! ~ オープンソース & クロスプラットフォーム .NET の歩き方 ~
Linux & Mac OS でも動く! ~ オープンソース & クロスプラットフォーム .NET の歩き方 ~Linux & Mac OS でも動く! ~ オープンソース & クロスプラットフォーム .NET の歩き方 ~
Linux & Mac OS でも動く! ~ オープンソース & クロスプラットフォーム .NET の歩き方 ~
 
.NETラボ2021年10月 .NETの過去と現在
.NETラボ2021年10月 .NETの過去と現在.NETラボ2021年10月 .NETの過去と現在
.NETラボ2021年10月 .NETの過去と現在
 
Hello ".NET" World
Hello ".NET" WorldHello ".NET" World
Hello ".NET" World
 
Windows 8時代のアプリ開発
Windows 8時代のアプリ開発Windows 8時代のアプリ開発
Windows 8時代のアプリ開発
 
密着!わたしのコンソールアプリ開発環境
密着!わたしのコンソールアプリ開発環境密着!わたしのコンソールアプリ開発環境
密着!わたしのコンソールアプリ開発環境
 
Dev camp2012jpn day2special
Dev camp2012jpn day2specialDev camp2012jpn day2special
Dev camp2012jpn day2special
 
Developr Camp 2012 Japan Fall Day2 Special Session - Visual Studio 2012 で始める ...
Developr Camp 2012 Japan Fall Day2 Special Session - Visual Studio 2012 で始める ...Developr Camp 2012 Japan Fall Day2 Special Session - Visual Studio 2012 で始める ...
Developr Camp 2012 Japan Fall Day2 Special Session - Visual Studio 2012 で始める ...
 
.NETクロスプラットフォーム
.NETクロスプラットフォーム.NETクロスプラットフォーム
.NETクロスプラットフォーム
 
DEV-002_.NET Core/ASP.NET Core が実現するクロスプラットフォーム .NET の今と未来
DEV-002_.NET Core/ASP.NET Core が実現するクロスプラットフォーム .NET の今と未来DEV-002_.NET Core/ASP.NET Core が実現するクロスプラットフォーム .NET の今と未来
DEV-002_.NET Core/ASP.NET Core が実現するクロスプラットフォーム .NET の今と未来
 
20201127 .NET 5
20201127 .NET 520201127 .NET 5
20201127 .NET 5
 
Silverlightの今
Silverlightの今Silverlightの今
Silverlightの今
 
Monomeeting 20081022
Monomeeting 20081022Monomeeting 20081022
Monomeeting 20081022
 
20021007
2002100720021007
20021007
 
本格化するクラウド ネイティブに向けて進化する開発プラットフォームと .NET
本格化するクラウド ネイティブに向けて進化する開発プラットフォームと .NET本格化するクラウド ネイティブに向けて進化する開発プラットフォームと .NET
本格化するクラウド ネイティブに向けて進化する開発プラットフォームと .NET
 
Introduction to VSCode
Introduction to VSCodeIntroduction to VSCode
Introduction to VSCode
 
Bar Vsug04 Masami Suzuki Windows7 UI
Bar Vsug04 Masami Suzuki Windows7 UIBar Vsug04 Masami Suzuki Windows7 UI
Bar Vsug04 Masami Suzuki Windows7 UI
 

More from 信之 岩永

YouTube ライブ配信するようになった話
YouTube ライブ配信するようになった話YouTube ライブ配信するようになった話
YouTube ライブ配信するようになった話信之 岩永
 
C# コンパイラーの書き換え作業の話
C# コンパイラーの書き換え作業の話C# コンパイラーの書き換え作業の話
C# コンパイラーの書き換え作業の話信之 岩永
 
Unicode文字列処理
Unicode文字列処理Unicode文字列処理
Unicode文字列処理信之 岩永
 
C# 8.0 null許容参照型
C# 8.0 null許容参照型C# 8.0 null許容参照型
C# 8.0 null許容参照型信之 岩永
 
C# 8.0 Preview in Visual Studio 2019 (16.0)
C# 8.0 Preview in Visual Studio 2019 (16.0)C# 8.0 Preview in Visual Studio 2019 (16.0)
C# 8.0 Preview in Visual Studio 2019 (16.0)信之 岩永
 
async/await のしくみ
async/await のしくみasync/await のしくみ
async/await のしくみ信之 岩永
 
Unityで使える C# 6.0~と .NET 4.6
Unityで使える C# 6.0~と .NET 4.6Unityで使える C# 6.0~と .NET 4.6
Unityで使える C# 6.0~と .NET 4.6信之 岩永
 
それっぽく、適当に
それっぽく、適当にそれっぽく、適当に
それっぽく、適当に信之 岩永
 
.NET Compiler Platform
.NET Compiler Platform.NET Compiler Platform
.NET Compiler Platform信之 岩永
 
Code Contracts in .NET 4
Code Contracts in .NET 4Code Contracts in .NET 4
Code Contracts in .NET 4信之 岩永
 
今から始める、Windows 10&新.NETへの移行戦略
今から始める、Windows 10&新.NETへの移行戦略今から始める、Windows 10&新.NETへの移行戦略
今から始める、Windows 10&新.NETへの移行戦略信之 岩永
 
C#マスコット(公開用)
C#マスコット(公開用)C#マスコット(公開用)
C#マスコット(公開用)信之 岩永
 

More from 信之 岩永 (13)

YouTube ライブ配信するようになった話
YouTube ライブ配信するようになった話YouTube ライブ配信するようになった話
YouTube ライブ配信するようになった話
 
C# コンパイラーの書き換え作業の話
C# コンパイラーの書き換え作業の話C# コンパイラーの書き換え作業の話
C# コンパイラーの書き換え作業の話
 
Unicode文字列処理
Unicode文字列処理Unicode文字列処理
Unicode文字列処理
 
C# 8.0 null許容参照型
C# 8.0 null許容参照型C# 8.0 null許容参照型
C# 8.0 null許容参照型
 
C# 8.0 Preview in Visual Studio 2019 (16.0)
C# 8.0 Preview in Visual Studio 2019 (16.0)C# 8.0 Preview in Visual Studio 2019 (16.0)
C# 8.0 Preview in Visual Studio 2019 (16.0)
 
async/await のしくみ
async/await のしくみasync/await のしくみ
async/await のしくみ
 
Unityで使える C# 6.0~と .NET 4.6
Unityで使える C# 6.0~と .NET 4.6Unityで使える C# 6.0~と .NET 4.6
Unityで使える C# 6.0~と .NET 4.6
 
それっぽく、適当に
それっぽく、適当にそれっぽく、適当に
それっぽく、適当に
 
.NET Compiler Platform
.NET Compiler Platform.NET Compiler Platform
.NET Compiler Platform
 
Code Contracts in .NET 4
Code Contracts in .NET 4Code Contracts in .NET 4
Code Contracts in .NET 4
 
今から始める、Windows 10&新.NETへの移行戦略
今から始める、Windows 10&新.NETへの移行戦略今から始める、Windows 10&新.NETへの移行戦略
今から始める、Windows 10&新.NETへの移行戦略
 
Coding Interview
Coding InterviewCoding Interview
Coding Interview
 
C#マスコット(公開用)
C#マスコット(公開用)C#マスコット(公開用)
C#マスコット(公開用)
 

Recently uploaded

クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfFumieNakayama
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineerYuki Kikuchi
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...博三 太田
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfFumieNakayama
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?akihisamiyanaga1
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)UEHARA, Tetsutaro
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)Hiroshi Tomioka
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NTT DATA Technology & Innovation
 

Recently uploaded (8)

クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 

広がる .Net