2. @tanaka_733
Red Hat K. K.
◦ .NET Core on RHEL, Red Hat on Azure, OpenShift
◦ SQL Server on RHEL も調べたり
Microsoft MVP for VSDT*
◦ .NET, C#, Azure系の勉強会によく出現します
◦ Build Insider でよく執筆しています (C# 文法, C# 7.0 や .NET Core)
◦ (需要があれば) ほかの勉強会にもお邪魔したいです
Contact
◦ contact@tanaka733.net or twitterで
2
* VSDT: Visual Studio and Development Technologies
3. AGENDA
.NET Core とは
◦ (この後出てくる) coreclr とか corefxが何かを知ってもらう
CoreFX on Linux
◦ ネットワーク通信とかファイルIOとかどう実装してるのか
Debugging .NET Core on Linux
◦ Visual Studioが使えないLinux上でどうやってデバッグするのか
3
21. async on Linux
C# (5.0以降)では非同期処理の記述にasync/await構文が使えます
.NET ではasync/await構文の実装は単純なスレッドプールではないです
WindowsではIO完了ポートが使われています。では、Linuxは?
24
public async Task<string> GetExample()
{
var client = new HttpClient();
var res = await client.GetAsync("http://example.com");
return await res.Content.ReadAsStringAsync();
}
22. epoll for async in Linux
25
https://github.com/dotnet/corefx/blob/release/1.1.0/src/Nativ
e/Unix/System.Native/pal_networking.cpp
Linux では epoll が、 macOSではkqueueが使われています