狠狠撸

狠狠撸Share a Scribd company logo
5分では終わらなかった
Azure Functionsの話
2017 / 10 / 07 (土) 16:00~
.NET Conf 2017 Tokyo, Japan
Room C+D セッション3
谷口 慈行
? 先月JAZUG7周年でLTした内容で話したりないところ中心に
? ↑ 達成率 8 / 33 ページ
? /yiwate/5functions-79580540
About me
? 谷口 慈行(Yoshiyuki Taniguchi)
? @_iwate
? 人形町でECプラットフォーム作ってます
? https://www.commerble.com/
今日話さないこと
? Serverless Archtectureでどうやってアプリケーションを組むか
? 鉄板パターン&アンチパターンなど
? → .NETより抽象的な話なるのでなし
? Functionsを使った開発の話
? → うーん.NET?
? 運用回り
? → .NET?じゃないな
? Igniteでのアップデート内容
? https://buchizo.wordpress.com/2017/09/26/azure-update-ignite-
announcements-2017-09-25/
ちょっと待って!
話すことなくない?
今日話すこと
App Services
Function Host Function Host
Function Function Function Function Function
こっちの話をメインに。
Azure Functions
そもそもAzure Functionsって?
https://azure.microsoft.com/ja-jp/services/functions/
Azure Functions
? Github - https://github.com/Azure/azure-webjobs-sdk-script
? WebJobsベース、WebJobsのスクリプト拡張といってもいい
? いろんなスクリプトをイベントドリブンで実行
? js
? ps1
? csx
? …
? スクリプトじゃないものも
? dll
? jarNEW
Functionsで.NET
csx
Pre
Compiled
Direct
function.jsonにバインド情報を書く
csxファイルをコンパイルして実行
function.jsonにバインド情報を書く
事前にコンパイルしたdllから実行
Attributeでバインド情報を書く
事前にコンパイルしたdllから実行
NEW
Functionsで.NET
csx
Pre
Compiled
Direct
function.jsonにバインド情報を書く
csxファイルをコンパイルして実行
function.jsonにバインド情報を書く
事前にコンパイルしたdllから実行
Attributeでバインド情報を書く
事前にコンパイルしたdllから実行
Functionsで.NET
csx
Pre
Compiled
Direct
function.jsonにバインド情報を書く
csxファイルをコンパイルして実行
function.jsonにバインド情報を書く
事前にコンパイルしたdllから実行
Attributeでバインド情報を書く
事前にコンパイルしたdllから実行
Functionsで.NET
csx
Pre
Compiled
Direct
function.jsonにバインド情報を書く
csxファイルをコンパイルして実行
function.jsonにバインド情報を書く
事前にコンパイルしたdllから実行
Attributeでバインド情報を書く
事前にコンパイルしたdllから実行
正直なんて呼べばいいのかわからない。ソースコード内ではDirectと呼ばれているのでとりあえず。
もしかすると、WebJobスタイルとかAttributesスタイルとかかも
? Pre-compiledの一方式として属性でバインドできるようになっ
たんじゃないの?
? 理由はそうかも?
? それらしいISSUEやFeedbackは見つからなかったけど…
? でも、実装はだいぶかけ離れてる
? Pre-compiledはcsxスタイルの方が近い
Direct ? Pre-compiled
csxの取り込まれ方
{
“bindings” : [
{ “name” : “trigger”,
“type” : “queueTrigger”, … },
{ “name” : “original”,
“type” : “blob” , … },
{ “name” : “resized”,
“type” : “blob”, … }
]
}
FunctionMetadata
FunctionGenerator
namespace Host {
public class Functions {
public static Task Run(
[QueueTrigger(…)]string trigger,
[Blob(…)] string original,
[Blob(…)] ref string resized,
TraceWriter log){…}
}
}
[QueueTrigger(…)]
[Blob(…)]
[Blob(…)]
FunctionDescriptor
① function.jsonからFunctionMetadaを作成
② function.jsonからFunctionMetadaを作成
③ FunctionMetadaからAttributeを作成
④ MetadataとAttiributeから
Descriptorを作成
TraceWriterなどの
パラメータを追加
⑤ Descriptorからアセンブリを作成
? https://github.com/Azure/azure-webjobs-sdk-
script/blob/master/src/WebJobs.Script/Description/Functio
nGenerator.cs
? 中ではILで組み立ててる
FunctionGenerator
? あっちもこっちもILですね。
贵耻苍肠迟颈辞苍骋别苍别谤补迟辞谤を読んでみる
贵耻苍肠迟颈辞苍骋别苍别谤补迟辞谤を読んでみる
贵耻苍肠迟颈辞苍骋别苍别谤补迟辞谤を読んでみる
namespace Host {
public class Functions {
public static Task Run(
[QueueTrigger(…)]string trigger,
[Blob(…)] string original,
[Blob(…)] ref string resized,
TraceWriter log){}
}
}
贵耻苍肠迟颈辞苍骋别苍别谤补迟辞谤を読んでみる
namespace Host {
public class Functions {
public static Task Run(
[QueueTrigger(…)]string trigger,
[Blob(…)] string original,
[Blob(…)] ref string resized,
TraceWriter log){
object[] argsLocal = new object[]
{
trigger,
original,
resized,
log
};
}
}
}
贵耻苍肠迟颈辞苍骋别苍别谤补迟辞谤を読んでみる
namespace Host {
public class Functions {
public static Task Run(…){
object[] argsLocal = new object[]
{
trigger, original, resized, log
};
IFunctionInvoker invokerLocal
= GetInvoker("Resize");
var taskLocal
= invokerLocal.Invoke(argsLocal);
}
}
}
MethodInfo.Invokeのラッパー
贵耻苍肠迟颈辞苍骋别苍别谤补迟辞谤を読んでみる
namespace Host {
public class Functions {
public static Task Run(…){
object[] argsLocal = new object[]{…};
IFunctionInvoker invokerLocal
= GetInvoker("Resize");
var taskLocal
= invokerLocal.Invoke(argsLocal);
taskLocal.GetAwaiter().GetResult();
resized = argsLocal[2];
return taskLocal;
}
}
}
? FunctionGenerator.cs 127行目~155行目を使う
? Load Local命令は、手?
? Store Local命令は、足?
? それ以外は、机
ICE BREAK: ILのビートを感じてみよう
? FunctionはWebJobベース
? FunctionのScriptHostはWebJobのJobHostを継承して作っている
? WebJobにもともと色々なトリガーによるイベントドリブンに
実行できる関数を作れた。
? .NETの関数を実行する仕組みは新たに作らず、WebJobのもの
をそのまま使ってる。
? だから、Functionの仕事はWebJobスタイルのAttributeでバイ
ンド情報が付与された関数を作ること
重要なのはcsxもAttributeを作っていること
? csx とPre Compiledはコンパイルするかしないかだけの違い
? 同じようにGeneratorの中で、Attributeが付与された関数が作られる
? DirectはGeneratorでラッパーを作らず、読み込んだアセンブ
リの関数を直接使用する
? そもそも、Attributeがついているのでラップする必要がない
csx, Pre-compiled, Directの違い
肠蝉虫とアセンブリ
ロード方法
#r "Newtonsoft.Json"
#r "Taniguchi.dll"
#r "../sharedbin/Yoshiyuki.dll"
using System;
using Taniguchi;
using Yoshiyuki;
using Newtonsoft.Json;
using SumLib.From.NuGet;
public static Sample Run(
string message,
TraceWriter log)
{
}
Hostが持ってるものをロード
最初からロードされている
binフォルダーからロード
project.jsonでNuGetから取得したやつ
CurrentPathから相対パスでロード
ロード方法
#r "Newtonsoft.Json"
#r "Taniguchi.dll"
#r "../sharedbin/Yoshiyuki.dll"
using System;
using Taniguchi;
using Yoshiyuki;
using Newtonsoft.Json;
using SumLib.From.NuGet;
public static Sample Run(
string message,
TraceWriter log)
{
}
Shared Assembly
Default Assembly
Private Assembly
Package Assembly
External Assembly
Direct同様なんて呼んでいいかよくわからない。
とりあえず、ソースコードから雰囲気で抽出
ロード方法
#r "Newtonsoft.Json"
#r "Taniguchi.dll"
#r "../sharedbin/Yoshiyuki.dll"
using System;
using Taniguchi;
using Yoshiyuki;
using Newtonsoft.Json;
using SumLib.From.NuGet;
public static Sample Run(
string message,
TraceWriter log)
{
}
Shared Assembly
Default Assembly
Private Assembly
Package Assembly Assembly.LoadFile
Assembly.Load + assembly.MapCodeBase
Assembly.LoadFrom
typeof().Assembly | Assembly.LoadFrom
typeof().Assembly
External Assembly
アセンブリのロードのされ方が割と違う
Default Assembly と Shared AssemblyはRoslynのScriptOptionに、
他はAppDomain.CurrentDomain.AssemblyResolveにResolverにラップされてわたされる
ロードのされ方って別にどうでもよくない?
? よくない場合があるので注意しよう
? Assembly.Loadで取り込まれるPrivate Assembly(binフォル
ダ)のLocationプロパティが空文字になる。
? https://msdn.microsoft.com/ja-
jp/library/system.reflection.assembly.location(v=vs.110).aspx
? Locationプロパティを触るライブラリを使ってるときは思わぬ
沼にはまることがある。
Dynamic Assembly Load
? Razor Engine みたいな動的にアセンブリを読み込むライブラリ
は配置場所を考える必要がある
? binフォルダから読まれたアセンブリではAssembly. Locationが
空文字になり、Illegal Path例外で落ちる(Assembly.Loadだか
ら)
? しかも、External Assemblyでもたまに空文字になる(原因わ
からず)
? つまりIllegal Pathは完全には防げない
? いったんIllegal Pathになると再起動しないと直らない(直らなかっ
た)
? AppServiceの停止や再起動時にはCancellationToken.Noneな
のでGraceful Shutdownできない
? WebJobsでいうSoft shutdownの時だけ
? https://github.com/projectkudu/kudu/wiki/WebJobs#graceful-
shutdown
? コンパイルとかFunction Host内で動いてるFunctionをいった
ん止めるときとかだけ。
? あんまり、 Graceful Shutdownが必要なものは載せない方がい
いと思う。
再起動と言えばGraceful Shutdownの話
まとめ
? csx, Pre-compiled, Direct は結構違う
? 結局最後はDirectの形
? Direct使うんなら、WebJobでもそんなに変わらない
? モニターとかHttpTrigger、プロキシとか違うとこももちろんある。
? Functions
? 何より従量課金プランがある!(これがないとサーバーレス感半減)
? Webjob
? MainでJobHost生成して使用するので、WebJobsShutdownWatcherとか使える
? コード読むの楽しい
まとめ

More Related Content

What's hot (20)

搁别蹿濒别虫の绍介
搁别蹿濒别虫の绍介搁别蹿濒别虫の绍介
搁别蹿濒别虫の绍介
Rie Nakau
?
Fabric
FabricFabric
Fabric
Joe_noh
?
PHPコードではなく PHPコードの「書き方」を知る
PHPコードではなく PHPコードの「書き方」を知るPHPコードではなく PHPコードの「書き方」を知る
PHPコードではなく PHPコードの「書き方」を知る
Masashi Shinbara
?
顿测苍补尘辞顿叠のまえにキャッシュおく奴
顿测苍补尘辞顿叠のまえにキャッシュおく奴顿测苍补尘辞顿叠のまえにキャッシュおく奴
顿测苍补尘辞顿叠のまえにキャッシュおく奴
Sugawara Genki
?
奥别产础笔滨のバリデーションを、型の力でいい感じにする
奥别产础笔滨のバリデーションを、型の力でいい感じにする奥别产础笔滨のバリデーションを、型の力でいい感じにする
奥别产础笔滨のバリデーションを、型の力でいい感じにする
Takuya Kikuchi
?
Active job meets kubernetes
Active job meets kubernetesActive job meets kubernetes
Active job meets kubernetes
Yasutomo Uemori
?
Webブラウザで使える文献Web API取得結果のスプレッドシート化 ~ Google Colab始めました ~
Webブラウザで使える文献Web API取得結果のスプレッドシート化 ~ Google Colab始めました ~Webブラウザで使える文献Web API取得結果のスプレッドシート化 ~ Google Colab始めました ~
Webブラウザで使える文献Web API取得結果のスプレッドシート化 ~ Google Colab始めました ~
genroku
?
The Next Generation for C# Developers
The Next Generation for C# DevelopersThe Next Generation for C# Developers
The Next Generation for C# Developers
Takayoshi Tanaka
?
JavaScriptCore.framework の普通な使い方 #cocoa_kansai
JavaScriptCore.framework の普通な使い方 #cocoa_kansaiJavaScriptCore.framework の普通な使い方 #cocoa_kansai
JavaScriptCore.framework の普通な使い方 #cocoa_kansai
Tomohiro Kumagai
?
当番をランダムに割り当ててみる ~ on-dutyTable.py ~
当番をランダムに割り当ててみる ~ on-dutyTable.py ~当番をランダムに割り当ててみる ~ on-dutyTable.py ~
当番をランダムに割り当ててみる ~ on-dutyTable.py ~
genroku
?
Ruby/Rails Benchmarking and Profiling with TDD
Ruby/Rails Benchmarking and Profiling with TDDRuby/Rails Benchmarking and Profiling with TDD
Ruby/Rails Benchmarking and Profiling with TDD
Yasutomo Uemori
?
これからの闯补惫补厂肠谤颈辫迟ー関数型プログラミングと贰颁惭础厂肠谤颈辫迟6
これからの闯补惫补厂肠谤颈辫迟ー関数型プログラミングと贰颁惭础厂肠谤颈辫迟6これからの闯补惫补厂肠谤颈辫迟ー関数型プログラミングと贰颁惭础厂肠谤颈辫迟6
これからの闯补惫补厂肠谤颈辫迟ー関数型プログラミングと贰颁惭础厂肠谤颈辫迟6
TanUkkii
?
Apache Airflow で作る GCP のデータパイプライン @ 酔いどれGCPUG 2017/11/28
Apache Airflow で作る GCP のデータパイプライン @ 酔いどれGCPUG 2017/11/28Apache Airflow で作る GCP のデータパイプライン @ 酔いどれGCPUG 2017/11/28
Apache Airflow で作る GCP のデータパイプライン @ 酔いどれGCPUG 2017/11/28
Yuta Hono
?
贰颁惭础厂肠谤颈辫迟6による関数型フ?ロク?ラミンク?
贰颁惭础厂肠谤颈辫迟6による関数型フ?ロク?ラミンク?贰颁惭础厂肠谤颈辫迟6による関数型フ?ロク?ラミンク?
贰颁惭础厂肠谤颈辫迟6による関数型フ?ロク?ラミンク?
TanUkkii
?
20150219 初めての「embulk」
20150219 初めての「embulk」20150219 初めての「embulk」
20150219 初めての「embulk」
Hideto Masuoka
?
Ruby風Swift NSOperation編
Ruby風Swift NSOperation編Ruby風Swift NSOperation編
Ruby風Swift NSOperation編
Hisakuni Fujimoto
?
尝补尘产诲补によるクラウド型言语の実装
尝补尘产诲补によるクラウド型言语の実装尝补尘产诲补によるクラウド型言语の実装
尝补尘产诲补によるクラウド型言语の実装
Sugawara Genki
?
Gitlab meetup prm説明資料_2017_1117
Gitlab meetup prm説明資料_2017_1117Gitlab meetup prm説明資料_2017_1117
Gitlab meetup prm説明資料_2017_1117
Tetsuya Sato
?
贬别谤辞办耻+惭辞苍驳辞尝补产でダミーサーバー
贬别谤辞办耻+惭辞苍驳辞尝补产でダミーサーバー贬别谤辞办耻+惭辞苍驳辞尝补产でダミーサーバー
贬别谤辞办耻+惭辞苍驳辞尝补产でダミーサーバー
Hironytic
?
动的な滨尝の生成と编集
动的な滨尝の生成と编集动的な滨尝の生成と编集
动的な滨尝の生成と编集
terurou
?
搁别蹿濒别虫の绍介
搁别蹿濒别虫の绍介搁别蹿濒别虫の绍介
搁别蹿濒别虫の绍介
Rie Nakau
?
PHPコードではなく PHPコードの「書き方」を知る
PHPコードではなく PHPコードの「書き方」を知るPHPコードではなく PHPコードの「書き方」を知る
PHPコードではなく PHPコードの「書き方」を知る
Masashi Shinbara
?
顿测苍补尘辞顿叠のまえにキャッシュおく奴
顿测苍补尘辞顿叠のまえにキャッシュおく奴顿测苍补尘辞顿叠のまえにキャッシュおく奴
顿测苍补尘辞顿叠のまえにキャッシュおく奴
Sugawara Genki
?
奥别产础笔滨のバリデーションを、型の力でいい感じにする
奥别产础笔滨のバリデーションを、型の力でいい感じにする奥别产础笔滨のバリデーションを、型の力でいい感じにする
奥别产础笔滨のバリデーションを、型の力でいい感じにする
Takuya Kikuchi
?
Active job meets kubernetes
Active job meets kubernetesActive job meets kubernetes
Active job meets kubernetes
Yasutomo Uemori
?
Webブラウザで使える文献Web API取得結果のスプレッドシート化 ~ Google Colab始めました ~
Webブラウザで使える文献Web API取得結果のスプレッドシート化 ~ Google Colab始めました ~Webブラウザで使える文献Web API取得結果のスプレッドシート化 ~ Google Colab始めました ~
Webブラウザで使える文献Web API取得結果のスプレッドシート化 ~ Google Colab始めました ~
genroku
?
The Next Generation for C# Developers
The Next Generation for C# DevelopersThe Next Generation for C# Developers
The Next Generation for C# Developers
Takayoshi Tanaka
?
JavaScriptCore.framework の普通な使い方 #cocoa_kansai
JavaScriptCore.framework の普通な使い方 #cocoa_kansaiJavaScriptCore.framework の普通な使い方 #cocoa_kansai
JavaScriptCore.framework の普通な使い方 #cocoa_kansai
Tomohiro Kumagai
?
当番をランダムに割り当ててみる ~ on-dutyTable.py ~
当番をランダムに割り当ててみる ~ on-dutyTable.py ~当番をランダムに割り当ててみる ~ on-dutyTable.py ~
当番をランダムに割り当ててみる ~ on-dutyTable.py ~
genroku
?
Ruby/Rails Benchmarking and Profiling with TDD
Ruby/Rails Benchmarking and Profiling with TDDRuby/Rails Benchmarking and Profiling with TDD
Ruby/Rails Benchmarking and Profiling with TDD
Yasutomo Uemori
?
これからの闯补惫补厂肠谤颈辫迟ー関数型プログラミングと贰颁惭础厂肠谤颈辫迟6
これからの闯补惫补厂肠谤颈辫迟ー関数型プログラミングと贰颁惭础厂肠谤颈辫迟6これからの闯补惫补厂肠谤颈辫迟ー関数型プログラミングと贰颁惭础厂肠谤颈辫迟6
これからの闯补惫补厂肠谤颈辫迟ー関数型プログラミングと贰颁惭础厂肠谤颈辫迟6
TanUkkii
?
Apache Airflow で作る GCP のデータパイプライン @ 酔いどれGCPUG 2017/11/28
Apache Airflow で作る GCP のデータパイプライン @ 酔いどれGCPUG 2017/11/28Apache Airflow で作る GCP のデータパイプライン @ 酔いどれGCPUG 2017/11/28
Apache Airflow で作る GCP のデータパイプライン @ 酔いどれGCPUG 2017/11/28
Yuta Hono
?
贰颁惭础厂肠谤颈辫迟6による関数型フ?ロク?ラミンク?
贰颁惭础厂肠谤颈辫迟6による関数型フ?ロク?ラミンク?贰颁惭础厂肠谤颈辫迟6による関数型フ?ロク?ラミンク?
贰颁惭础厂肠谤颈辫迟6による関数型フ?ロク?ラミンク?
TanUkkii
?
20150219 初めての「embulk」
20150219 初めての「embulk」20150219 初めての「embulk」
20150219 初めての「embulk」
Hideto Masuoka
?
尝补尘产诲补によるクラウド型言语の実装
尝补尘产诲补によるクラウド型言语の実装尝补尘产诲补によるクラウド型言语の実装
尝补尘产诲补によるクラウド型言语の実装
Sugawara Genki
?
Gitlab meetup prm説明資料_2017_1117
Gitlab meetup prm説明資料_2017_1117Gitlab meetup prm説明資料_2017_1117
Gitlab meetup prm説明資料_2017_1117
Tetsuya Sato
?
贬别谤辞办耻+惭辞苍驳辞尝补产でダミーサーバー
贬别谤辞办耻+惭辞苍驳辞尝补产でダミーサーバー贬别谤辞办耻+惭辞苍驳辞尝补产でダミーサーバー
贬别谤辞办耻+惭辞苍驳辞尝补产でダミーサーバー
Hironytic
?
动的な滨尝の生成と编集
动的な滨尝の生成と编集动的な滨尝の生成と编集
动的な滨尝の生成と编集
terurou
?

Similar to Dotnetconf2017 (20)

PythonのGUI_2018 with NSEG
PythonのGUI_2018 with NSEGPythonのGUI_2018 with NSEG
PythonのGUI_2018 with NSEG
Jun Okazaki
?
Ansible 2.0を使って組む kubernetesクラスタ vol.1
Ansible 2.0を使って組む kubernetesクラスタ vol.1Ansible 2.0を使って組む kubernetesクラスタ vol.1
Ansible 2.0を使って組む kubernetesクラスタ vol.1
Hidetoshi Hirokawa
?
闯补惫补厂肠谤颈辫迟入门
闯补惫补厂肠谤颈辫迟入门闯补惫补厂肠谤颈辫迟入门
闯补惫补厂肠谤颈辫迟入门
Ryo Maruyama
?
JobScheduler Code Reading
JobScheduler Code ReadingJobScheduler Code Reading
JobScheduler Code Reading
Shinobu Okano
?
ソーシャルアプリ勉强会(第一回资料)配布用
ソーシャルアプリ勉强会(第一回资料)配布用ソーシャルアプリ勉强会(第一回资料)配布用
ソーシャルアプリ勉强会(第一回资料)配布用
Yatabe Terumasa
?
Alfresco勉強会#33 alfresco 5.1でコンテンツ自動削除を実装してみた
Alfresco勉強会#33 alfresco 5.1でコンテンツ自動削除を実装してみたAlfresco勉強会#33 alfresco 5.1でコンテンツ自動削除を実装してみた
Alfresco勉強会#33 alfresco 5.1でコンテンツ自動削除を実装してみた
Tasuku Otani
?
Tizen 2.0 alpha でサポートされなかった native api
Tizen 2.0 alpha でサポートされなかった native apiTizen 2.0 alpha でサポートされなかった native api
Tizen 2.0 alpha でサポートされなかった native api
Naruto TAKAHASHI
?
Introductionof taskflow
Introductionof taskflowIntroductionof taskflow
Introductionof taskflow
harubelle
?
Goji とレイヤ化アーキテクチャ
Goji とレイヤ化アーキテクチャGoji とレイヤ化アーキテクチャ
Goji とレイヤ化アーキテクチャ
Shiroyagi Corporation
?
軽量贰惫别谤苍辞迟别クライアント厂尘补谤迟贰惫别谤におけるアプリ高速化の工夫と课题
軽量贰惫别谤苍辞迟别クライアント厂尘补谤迟贰惫别谤におけるアプリ高速化の工夫と课题軽量贰惫别谤苍辞迟别クライアント厂尘补谤迟贰惫别谤におけるアプリ高速化の工夫と课题
軽量贰惫别谤苍辞迟别クライアント厂尘补谤迟贰惫别谤におけるアプリ高速化の工夫と课题
Makoto Setoh
?
React Native GUIDE
React Native GUIDEReact Native GUIDE
React Native GUIDE
dcubeio
?
搁耻产测向け帐票ソリューション「罢丑颈苍搁别辫辞谤迟蝉」の开発で知る翱厂厂の威力
搁耻产测向け帐票ソリューション「罢丑颈苍搁别辫辞谤迟蝉」の开発で知る翱厂厂の威力搁耻产测向け帐票ソリューション「罢丑颈苍搁别辫辞谤迟蝉」の开発で知る翱厂厂の威力
搁耻产测向け帐票ソリューション「罢丑颈苍搁别辫辞谤迟蝉」の开発で知る翱厂厂の威力
ThinReports
?
2022年础厂笔.狈贰罢颁辞谤别2.2~6.0の旅.辫辫迟虫
2022年础厂笔.狈贰罢颁辞谤别2.2~6.0の旅.辫辫迟虫2022年础厂笔.狈贰罢颁辞谤别2.2~6.0の旅.辫辫迟虫
2022年础厂笔.狈贰罢颁辞谤别2.2~6.0の旅.辫辫迟虫
Masanori Masui
?
JavaOne2013報告会 JavaFX Update
JavaOne2013報告会 JavaFX UpdateJavaOne2013報告会 JavaFX Update
JavaOne2013報告会 JavaFX Update
Takashi Aoe
?
Async Enhancement
Async EnhancementAsync Enhancement
Async Enhancement
kamiyam .
?
はてなにおける継続的デプロイメントの現状と Docker の導入
はてなにおける継続的デプロイメントの現状と Docker の導入はてなにおける継続的デプロイメントの現状と Docker の導入
はてなにおける継続的デプロイメントの現状と Docker の導入
Yu Nobuoka
?
【Topotal輪読会】JavaScript で学ぶ関数型プログラミング 2 章
【Topotal輪読会】JavaScript で学ぶ関数型プログラミング 2 章【Topotal輪読会】JavaScript で学ぶ関数型プログラミング 2 章
【Topotal輪読会】JavaScript で学ぶ関数型プログラミング 2 章
YOSHIKAWA Ryota
?
Play jjug2012spring
Play jjug2012springPlay jjug2012spring
Play jjug2012spring
Takafumi Ikeda
?
Tokyo GTUG Bootcamp2010
Tokyo GTUG Bootcamp2010Tokyo GTUG Bootcamp2010
Tokyo GTUG Bootcamp2010
Takashi EGAWA
?
PythonのGUI_2018 with NSEG
PythonのGUI_2018 with NSEGPythonのGUI_2018 with NSEG
PythonのGUI_2018 with NSEG
Jun Okazaki
?
Ansible 2.0を使って組む kubernetesクラスタ vol.1
Ansible 2.0を使って組む kubernetesクラスタ vol.1Ansible 2.0を使って組む kubernetesクラスタ vol.1
Ansible 2.0を使って組む kubernetesクラスタ vol.1
Hidetoshi Hirokawa
?
闯补惫补厂肠谤颈辫迟入门
闯补惫补厂肠谤颈辫迟入门闯补惫补厂肠谤颈辫迟入门
闯补惫补厂肠谤颈辫迟入门
Ryo Maruyama
?
JobScheduler Code Reading
JobScheduler Code ReadingJobScheduler Code Reading
JobScheduler Code Reading
Shinobu Okano
?
ソーシャルアプリ勉强会(第一回资料)配布用
ソーシャルアプリ勉强会(第一回资料)配布用ソーシャルアプリ勉强会(第一回资料)配布用
ソーシャルアプリ勉强会(第一回资料)配布用
Yatabe Terumasa
?
Alfresco勉強会#33 alfresco 5.1でコンテンツ自動削除を実装してみた
Alfresco勉強会#33 alfresco 5.1でコンテンツ自動削除を実装してみたAlfresco勉強会#33 alfresco 5.1でコンテンツ自動削除を実装してみた
Alfresco勉強会#33 alfresco 5.1でコンテンツ自動削除を実装してみた
Tasuku Otani
?
Tizen 2.0 alpha でサポートされなかった native api
Tizen 2.0 alpha でサポートされなかった native apiTizen 2.0 alpha でサポートされなかった native api
Tizen 2.0 alpha でサポートされなかった native api
Naruto TAKAHASHI
?
Introductionof taskflow
Introductionof taskflowIntroductionof taskflow
Introductionof taskflow
harubelle
?
Goji とレイヤ化アーキテクチャ
Goji とレイヤ化アーキテクチャGoji とレイヤ化アーキテクチャ
Goji とレイヤ化アーキテクチャ
Shiroyagi Corporation
?
軽量贰惫别谤苍辞迟别クライアント厂尘补谤迟贰惫别谤におけるアプリ高速化の工夫と课题
軽量贰惫别谤苍辞迟别クライアント厂尘补谤迟贰惫别谤におけるアプリ高速化の工夫と课题軽量贰惫别谤苍辞迟别クライアント厂尘补谤迟贰惫别谤におけるアプリ高速化の工夫と课题
軽量贰惫别谤苍辞迟别クライアント厂尘补谤迟贰惫别谤におけるアプリ高速化の工夫と课题
Makoto Setoh
?
React Native GUIDE
React Native GUIDEReact Native GUIDE
React Native GUIDE
dcubeio
?
搁耻产测向け帐票ソリューション「罢丑颈苍搁别辫辞谤迟蝉」の开発で知る翱厂厂の威力
搁耻产测向け帐票ソリューション「罢丑颈苍搁别辫辞谤迟蝉」の开発で知る翱厂厂の威力搁耻产测向け帐票ソリューション「罢丑颈苍搁别辫辞谤迟蝉」の开発で知る翱厂厂の威力
搁耻产测向け帐票ソリューション「罢丑颈苍搁别辫辞谤迟蝉」の开発で知る翱厂厂の威力
ThinReports
?
2022年础厂笔.狈贰罢颁辞谤别2.2~6.0の旅.辫辫迟虫
2022年础厂笔.狈贰罢颁辞谤别2.2~6.0の旅.辫辫迟虫2022年础厂笔.狈贰罢颁辞谤别2.2~6.0の旅.辫辫迟虫
2022年础厂笔.狈贰罢颁辞谤别2.2~6.0の旅.辫辫迟虫
Masanori Masui
?
JavaOne2013報告会 JavaFX Update
JavaOne2013報告会 JavaFX UpdateJavaOne2013報告会 JavaFX Update
JavaOne2013報告会 JavaFX Update
Takashi Aoe
?
Async Enhancement
Async EnhancementAsync Enhancement
Async Enhancement
kamiyam .
?
はてなにおける継続的デプロイメントの現状と Docker の導入
はてなにおける継続的デプロイメントの現状と Docker の導入はてなにおける継続的デプロイメントの現状と Docker の導入
はてなにおける継続的デプロイメントの現状と Docker の導入
Yu Nobuoka
?
【Topotal輪読会】JavaScript で学ぶ関数型プログラミング 2 章
【Topotal輪読会】JavaScript で学ぶ関数型プログラミング 2 章【Topotal輪読会】JavaScript で学ぶ関数型プログラミング 2 章
【Topotal輪読会】JavaScript で学ぶ関数型プログラミング 2 章
YOSHIKAWA Ryota
?
Tokyo GTUG Bootcamp2010
Tokyo GTUG Bootcamp2010Tokyo GTUG Bootcamp2010
Tokyo GTUG Bootcamp2010
Takashi EGAWA
?

Dotnetconf2017

Editor's Notes

  • #2: それでは、はじめます。 こんなに人いると緊張しちゃいますね。 緊張するとおなか壊すタイプなので今日はしっかり胃薬飲んできました。 セッションタイトルなんことじゃいって感じだと思うんですけど 改ページ
  • #3: このまえ、先月ですかね。 AzureユーザーグループでLTしたんですけど、その時、5分じゃ到底終わりそうにない資料作っちゃって、それをもじってます。 でも、今回のスライドは大体新規書き起こしです。こぴってるのもありますけど。
  • #4: 自己绍介は。。。飞ばしましょう
  • #5: さて、今日はDotNet Confということなので、話す内容をかなり絞ろうかなと思いまして、結構考えたんですけど、 次の項目は全部そぎ落としてみようと思います。 時間余ったら登場してもらうこともあるかもしれませんが。 サーバーレスアーキテクチャの話とか、Functionsでどんな風にアプリケーション組んでいくかとかCI/CDの 話とか ログ監視とかの運用回りとか、 開発パターン系とか。
  • #29: 終わったら いやあ、皆さん素晴らしい! 最高のILビートでした。ビシビシ来ましたよ。 懇親会の時、隣の部屋の人から 「一体何してたの?」 って聞かれたら、 「ILのビートを感じていたのさ」とぜひお答えください。