Your SlideShare is downloading. ×
0
仕事
個人活動
http://tanaka733.net
https://www.nuget.org/profiles/tanaka_733/
先生
.NET の行く先は?
C# の新機能は?
これから何ができるの?
※意外とde:codeで話が少なかったんですよ!!!1
.NET vNext
Core .NET
Next gen JIT (“RyuJIT”)
SIMD
Runtime Compilers
.NET Compiler Platform (“Roslyn”)
Languages innovation
Windows De...
Core .NET
Next gen JIT (“RyuJIT”)
SIMD
Runtime Compilers
.NET Compiler Platform (“Roslyn”)
Languages innovation
Windows De...
Mobile First
Cloud First
Roslyn and C# 6.0(仮)
新しいコンパイラ、新しい言語仕様
C# とVBのコンパイラの再構築
Openness (ブラックからホワイトへ)
豊富なAPIが公開されている
Quality Improvements
API Readiness
Language Features
Diagnostics
Interactive
IDE Support Roslyn Roadmap
IDEが止まらない
• 並列性を高めるためのPDB
• OSSテストキット
WinRTで使いやすく
XMLコメント
妥当な引数チェック
集合型の合理性
コード解析
• 解析ツール
• 静的解析用
• フロー解析を拡張
パフォーマンス改善
コンフリクト検出の改善
Language feature implementation status
public class Point(int x, int y)
{
public int X { get; } = x;
public int Y { get; } = y;
public double R { get; } = Math.S...
using System.Console;
static class UsingStaticMembers
{
static void Dump()
{
WriteLine("Hoge");
}
}
static class DictionaryInitializer
{
public static IDictionary<string, string> Demo()
{
return new Dictionary<string, stri...
if (int.TryParse(text, out var i))
{
Console.WriteLine("指定された値は数値に変換できて、{0} です。", i);
}
else
{
Console.WriteLine("指定された値は数...
static async Task Demo()
{
//Await in catch/finally
//Exception filters
try
{
var urls = new[] { "http://microsoft.com", "...
RyuJIT
64bitでも高速なJITコンパイルを
JITの出力結果は64bitで高速に動くが、JIT自体が64bitで遅かった
サーバー側で動く想定で、JITコンパイルは遅くてもいいという想定
でも最近のWebアプリは立ち上がりからもっと早くなってほしい
RyuJIT: The next-generation JIT compiler for .NET
static void Demo()
{
// Array of 2 * Vector<int>.Length values
int[] values = CreateValues();
// Multiply the first N valu...
.NET Native
C# に Native なみの速さを
C++ 並の速度をC#に!
C# のdynamic compilation の自由度を持ったまま、
C++のstatic compilation のように実行時コンパイルをなくして、
実行速度を高速化したい
Runtime Directive
...
http://aka.ms/dotnetnative
My experience with .NET Native Preview
ASP.NET vNext
MVC, Web API, Web Pages の統一
WebForms も改善されます
System.Web からの脱却
Cloud最適化モード
同一サーバー上に複数のアプリが独立して動かせる (GAC非依存)
セッションやキャッシュのAPI...
閑話休題:その他の話題
時間調整かもしれない
まとめ
Core .NET
Next gen JIT (“RyuJIT”)
SIMD
Runtime Compilers
.NET Compiler Platform (“Roslyn”)
Languages innovation
Windows De...
The Next Generation for C# Developers
The Next Generation for C# Developers
The Next Generation for C# Developers
The Next Generation for C# Developers
The Next Generation for C# Developers
The Next Generation for C# Developers
The Next Generation for C# Developers
The Next Generation for C# Developers
The Next Generation for C# Developers
The Next Generation for C# Developers
Upcoming SlideShare
Loading in...5
×

The Next Generation for C# Developers

3,179

Published on

2014/05/31 のめとべや東京 #4 での発表資料

Published in: Technology

Transcript of "The Next Generation for C# Developers"

  1. 1. 仕事 個人活動 http://tanaka733.net https://www.nuget.org/profiles/tanaka_733/
  2. 2. 先生 .NET の行く先は? C# の新機能は? これから何ができるの? ※意外とde:codeで話が少なかったんですよ!!!1
  3. 3. .NET vNext
  4. 4. Core .NET Next gen JIT (“RyuJIT”) SIMD Runtime Compilers .NET Compiler Platform (“Roslyn”) Languages innovation Windows DesktopAzure and Windows Server Universal projects .NET NativeASP.NET updates Windows Convergence Native compilation Cross-devices Xamarin partnership Web apps .NET support for Azure Mobile Services Cloud Services Openness Windows Store iOS and Android .NET in devices and services The Future of C# (Channel 9)
  5. 5. Core .NET Next gen JIT (“RyuJIT”) SIMD Runtime Compilers .NET Compiler Platform (“Roslyn”) Languages innovation Windows DesktopAzure and Windows Server Universal projects .NET NativeASP.NET updates Windows Convergence Native compilation Cross-devices Xamarin partnership Web apps .NET support for Azure Mobile Services Cloud Services Openness Windows Store iOS and Android .NET in devices and services The Future of C# (Channel 9) RyuJIT Roslyn ASP.NET vNext .NET Native
  6. 6. Mobile First Cloud First
  7. 7. Roslyn and C# 6.0(仮) 新しいコンパイラ、新しい言語仕様
  8. 8. C# とVBのコンパイラの再構築 Openness (ブラックからホワイトへ) 豊富なAPIが公開されている
  9. 9. Quality Improvements API Readiness Language Features Diagnostics Interactive IDE Support Roslyn Roadmap
  10. 10. IDEが止まらない • 並列性を高めるためのPDB • OSSテストキット WinRTで使いやすく
  11. 11. XMLコメント 妥当な引数チェック 集合型の合理性
  12. 12. コード解析 • 解析ツール • 静的解析用 • フロー解析を拡張
  13. 13. パフォーマンス改善 コンフリクト検出の改善
  14. 14. Language feature implementation status
  15. 15. public class Point(int x, int y) { public int X { get; } = x; public int Y { get; } = y; public double R { get; } = Math.Sqrt(x^x+y^y); public Point() : this(0, 0) { } public override string ToString() { return string.Format("({0},{1},{2})", X, Y, R); } }
  16. 16. using System.Console; static class UsingStaticMembers { static void Dump() { WriteLine("Hoge"); } }
  17. 17. static class DictionaryInitializer { public static IDictionary<string, string> Demo() { return new Dictionary<string, string>() { ["x"] = "hoge", $key = "hoge" }; } }
  18. 18. if (int.TryParse(text, out var i)) { Console.WriteLine("指定された値は数値に変換できて、{0} です。", i); } else { Console.WriteLine("指定された値は数値に変換できません。"); }
  19. 19. static async Task Demo() { //Await in catch/finally //Exception filters try { var urls = new[] { "http://microsoft.com", "http://bing.com" }; var client = new HttpClient(); var tasks = urls.Select(url => client.GetAsync(url)); var res = await Task.WhenAll(tasks); } catch (AggregateException e) if (e.InnerExceptions.Count > 2) { await Report("Error"); } finally { await Report("End"); }
  20. 20. RyuJIT
  21. 21. 64bitでも高速なJITコンパイルを JITの出力結果は64bitで高速に動くが、JIT自体が64bitで遅かった サーバー側で動く想定で、JITコンパイルは遅くてもいいという想定 でも最近のWebアプリは立ち上がりからもっと早くなってほしい
  22. 22. RyuJIT: The next-generation JIT compiler for .NET
  23. 23. static void Demo() { // Array of 2 * Vector<int>.Length values int[] values = CreateValues(); // Multiply the first N values with the second // N values (N, being Vector<int>.Length). var x = new Vector<int>(values, 0); var y = new Vector<int>(values, Vector<int>.Length); var z = x * y; // Store the result in the array where x came from z.CopyTo(values, 0); }
  24. 24. .NET Native C# に Native なみの速さを
  25. 25. C++ 並の速度をC#に! C# のdynamic compilation の自由度を持ったまま、 C++のstatic compilation のように実行時コンパイルをなくして、 実行速度を高速化したい Runtime Directive 最初のターゲットはx64 or ARM な Windows Store App .NET Team の .NET Native タグがついたブログ
  26. 26. http://aka.ms/dotnetnative
  27. 27. My experience with .NET Native Preview
  28. 28. ASP.NET vNext
  29. 29. MVC, Web API, Web Pages の統一 WebForms も改善されます System.Web からの脱却 Cloud最適化モード 同一サーバー上に複数のアプリが独立して動かせる (GAC非依存) セッションやキャッシュのAPIもCloudとオンプレ問わず使える DIによる切り替え ブラウザで更新するだけで最新のコードが反映 Roslynによるビルド (従来の).NET Framework とCloud最適化モードは プロジェクトの設定で切り替え可能
  30. 30. 閑話休題:その他の話題 時間調整かもしれない
  31. 31. まとめ
  32. 32. Core .NET Next gen JIT (“RyuJIT”) SIMD Runtime Compilers .NET Compiler Platform (“Roslyn”) Languages innovation Windows DesktopAzure and Windows Server Universal projects .NET NativeASP.NET updates Windows Convergence Native compilation Cross-devices Xamarin partnership Web apps .NET support for Azure Mobile Services Cloud Services Openness Windows Store iOS and Android .NET in devices and services The Future of C# (Channel 9)
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×