SlideShare una empresa de Scribd logo
1 de 99
Mini 
61%YoY Growth .NET Active Developers
(VS 2012+)
40%.NET Core downloads by new developers 62% GitHub contributions from outside of Microsoft
(corefx / coreclr repos)
0
100
200
300
400
500
600
700
800
900
Jan
Feb
Mar
Apr
May
Jun
Jul
Aug
Oct
Nov
Dec
Jan
Feb
Mar
Apr
May
Jun
Jul
Aug
Oct
Nov
Dec
Jan
Feb
Mar
Apr
May
Jun
Jul
Aug
Qtr1 Qtr2 Qtr3 Qtr4 Qtr1 Qtr2 Qtr3 Qtr4 Qtr1 Qtr2 Qtr3
2014 2015 2016
Community PRs by month
.NET in 2015
.NET in 2016
.NET STANDARD LIBRARY
.NET STANDARD LIBRARY
.NET STANDARD LIBRARY
Plain Text Request Per Second
https://www.techempower.com/benchmarks
http://example.com https://example.com
http://example.com https://example.com
@await Component.InvokeAsync("Copyright", new { website = "example.com", year = 2016 })
<vc:copyright website=“example.com” year>< vc:copyright>
http://example.com https://example.com
• Use the current release to get the latest features
• Supported as long as you keep updating to the latest
• Use the Long Term Support release as the most stable platform
• LTS is fully supported for 3 years and receives regular important updates
• You can mix and match your strategy (even in the same machine!)
Current (1.1)
Long Term
Support (LTS)
1.0
.NET STANDARD LIBRARY
.NET STANDARD LIBRARY
Primitives • Collections • Reflection • Interop • LinqCORE
Threads • Thread Pool • TasksTHREADING
Files • Compression • MMFIO
Sockets • Http • Mail • WebSocketsNETWORKING
BinaryFormatter • Data Contract • XMLSERILIZATION
XLinq • XML Document • XPath • Schema • XSLXML
MY
.NET FRAMEWORK
APP
MY STANDARD LIBRARY
MY
.NET CORE
APP
MY
XAMARIN
APP
Create
Cluster
Build/CI,
Integrate,
Test
Monitor and Diagnose
Production
environments
Run, Manage
Container Service
Service Fabric
Batch
App Services
coming soon
…
…
Azure
Container
Registry
Code
Run
Validate
Debug
Inner-Loop
CD, Deploy
Source Code
Control
(SCC)
Public Preview
• November
GA
• Spring ‘17
aka.ms/AzureContainerRegistry
Bot Framework
Your bots – wherever your users are
talking.
Build and connect intelligent bots to interact
with your users naturally wherever they are,
from text/SMS to Skype, Slack, Messenger,
Office 365 mail and other popular services.
Channel
support
Direct
Line support
Cognitive
Services
Embedded
web chat
API
https://channel9.msdn.com/Events/Connect/2016
int[] numbers =
{ 1, 2, 4, 8, 16, 32 };
int[] numbers =
{ 0b1, 2, 4, 8, 16, 32 };
int[] numbers =
{ 0b1, 0b10, 4, 8, 16, 32 };
int[] numbers =
{ 0b1, 0b10, 0b100, 8, 16, 32 };
int[] numbers =
{ 0b1, 0b10, 0b100, 0b1000, 16, 32 };
int[] numbers =
{ 0b1, 0b10, 0b100, 0b1000, 0b10000, 32 };
int[] numbers =
{ 0b1, 0b10, 0b100, 0b1000, 0b1_0000, 32 };
int[] numbers =
{ 0b1, 0b10, 0b100, 0b1000, 0b1_0000, 3_2 };
int[] numbers =
{ 0b1, 0b10, 0b100, 0b1000, 0b1_0000, 3_______2 };
int[] numbers =
{ 0b1, 0b10, 0b100, 0b1000, 0b1_0000, 0b100000 };
int[] numbers =
{ 0b1, 0b10, 0b100, 0b1000, 0b1_0000, 0b10_0000 };
int[] numbers =
{ 0b1, 0b10, 0b100, 0b1000, 0b1_0000, 0b10_0000 };
int[] numbers =
{ 0b1, 0b10, 0b100, 0b1000, 0b1_0000, 0b10_0000 };
var t = Tally(numbers);
int[] numbers =
{ 0b1, 0b10, 0b100, 0b1000, 0b1_0000, 0b10_0000 };
var t = Tally(numbers);
(int, int) Tally(int[] values)
{
}
int[] numbers =
{ 0b1, 0b10, 0b100, 0b1000, 0b1_0000, 0b10_0000 };
var t = Tally(numbers);
(int, int) Tally(int[] values)
{
var r = (0, 0);
return r;
}
int[] numbers =
{ 0b1, 0b10, 0b100, 0b1000, 0b1_0000, 0b10_0000 };
var t = Tally(numbers);
WriteLine($"Sum: {t.Item1}, count: {t.Item2}");
(int, int) Tally(int[] values)
{
var r = (0, 0);
return r;
}
int[] numbers =
{ 0b1, 0b10, 0b100, 0b1000, 0b1_0000, 0b10_0000 };
var t = Tally(numbers);
WriteLine($"Sum: {t.Item1}, count: {t.Item2}");
(int sum, int count) Tally(int[] values)
{
var r = (0, 0);
return r;
}
int[] numbers =
{ 0b1, 0b10, 0b100, 0b1000, 0b1_0000, 0b10_0000 };
var t = Tally(numbers);
WriteLine($"Sum: {t.sum}, count: {t.count}");
(int sum, int count) Tally(int[] values)
{
var r = (0, 0);
return r;
}
int[] numbers =
{ 0b1, 0b10, 0b100, 0b1000, 0b1_0000, 0b10_0000 };
var t = Tally(numbers);
WriteLine($"Sum: {t.sum}, count: {t.count}");
(int sum, int count) Tally(int[] values)
{
var r = (s:0, c:0);
return r;
}
int[] numbers =
{ 0b1, 0b10, 0b100, 0b1000, 0b1_0000, 0b10_0000 };
var (sum, count) = Tally(numbers);
WriteLine($"Sum: {t.sum}, count: {t.count}");
(int sum, int count) Tally(int[] values)
{
var r = (s:0, c:0);
return r;
}
int[] numbers =
{ 0b1, 0b10, 0b100, 0b1000, 0b1_0000, 0b10_0000 };
var (sum, count) = Tally(numbers);
WriteLine($"Sum: {sum}, count: {count}");
(int sum, int count) Tally(int[] values)
{
var r = (s:0, c:0);
return r;
}
int[] numbers =
{ 0b1, 0b10, 0b100, 0b1000, 0b1_0000, 0b10_0000 };
var (sum, count) = Tally(numbers);
WriteLine($"Sum: {sum}, count: {count}");
(int sum, int count) Tally(int[] values)
{
var r = (s:0, c:0);
return r;
}
int[] numbers =
{ 0b1, 0b10, 0b100, 0b1000, 0b1_0000, 0b10_0000 };
var (sum, count) = Tally(numbers);
WriteLine($"Sum: {sum}, count: {count}");
(int sum, int count) Tally(int[] values)
{
var r = (s:0, c:0);
foreach (var v in values)
{
}
return r;
}
int[] numbers =
{ 0b1, 0b10, 0b100, 0b1000, 0b1_0000, 0b10_0000 };
var (sum, count) = Tally(numbers);
WriteLine($"Sum: {sum}, count: {count}");
(int sum, int count) Tally(int[] values)
{
var r = (s:0, c:0);
foreach (var v in values)
{
r = (r.s + v, r.c + 1);
}
return r;
}
int[] numbers =
{ 0b1, 0b10, 0b100, 0b1000, 0b1_0000, 0b10_0000 };
var (sum, count) = Tally(numbers);
WriteLine($"Sum: {sum}, count: {count}");
(int sum, int count) Tally(int[] values)
{
var r = (s:0, c:0);
foreach (var v in values)
{
r.s += v;
}
return r;
}
int[] numbers =
{ 0b1, 0b10, 0b100, 0b1000, 0b1_0000, 0b10_0000 };
var (sum, count) = Tally(numbers);
WriteLine($"Sum: {sum}, count: {count}");
(int sum, int count) Tally(int[] values)
{
var r = (s:0, c:0);
foreach (var v in values)
{
r.s += v; r.c++;
}
return r;
}
int[] numbers =
{ 0b1, 0b10, 0b100, 0b1000, 0b1_0000, 0b10_0000 };
var (sum, count) = Tally(numbers);
WriteLine($"Sum: {sum}, count: {count}");
(int sum, int count) Tally(int[] values)
{
var r = (s:0, c:0);
foreach (var v in values)
{
r.s += v; r.c++;
}
return r;
}
int[] numbers =
{ 0b1, 0b10, 0b100, 0b1000, 0b1_0000, 0b10_0000 };
var (sum, count) = Tally(numbers);
WriteLine($"Sum: {sum}, count: {count}");
(int sum, int count) Tally(int[] values)
{
var r = (s:0, c:0);
foreach (var v in values)
{
Add(v, 1);
}
return r;
}
int[] numbers =
{ 0b1, 0b10, 0b100, 0b1000, 0b1_0000, 0b10_0000 };
var (sum, count) = Tally(numbers);
WriteLine($"Sum: {sum}, count: {count}");
(int sum, int count) Tally(int[] values)
{
var r = (s:0, c:0);
foreach (var v in values)
{
Add(v, 1);
}
return r;
void Add(int s, int c) { r.s += s; r.c += c; }
}
public void PrintStars(object o)
{
}
public void PrintStars(object o)
{
if (o is null) return; // constant pattern "null"
}
public void PrintStars(object o)
{
if (o is null) return; // constant pattern "null"
if (!(o is int i)) return; // type pattern "int i"
}
public void PrintStars(object o)
{
if (o is null) return; // constant pattern "null"
if (!(o is int i)) return; // type pattern "int i"
WriteLine(new string('*', i));
}
switch (shape) // Switch on anything
{
}
switch (shape) // Switch on anything
{
default:
WriteLine("<unknown shape>");
break;
}
switch (shape) // Switch on anything
{
case null:
throw new ArgumentNullException(nameof(shape));
default:
WriteLine("<unknown shape>");
break;
}
switch (shape) // Switch on anything
{
case Circle c: // Type pattern
break;
case null:
throw new ArgumentNullException(nameof(shape));
default:
WriteLine("<unknown shape>");
break;
}
switch (shape) // Switch on anything
{
case Circle c: // Type pattern
WriteLine($"circle with radius {c.Radius}"); // use c
break;
case null:
throw new ArgumentNullException(nameof(shape));
default:
WriteLine("<unknown shape>");
break;
}
switch (shape) // Switch on anything
{
case Rectangle r:
WriteLine($"{r.Length} x {r.Height} rectangle");
break;
case Circle c: // Type pattern
WriteLine($"circle with radius {c.Radius}"); // use c
break;
case null:
throw new ArgumentNullException(nameof(shape));
default:
WriteLine("<unknown shape>");
break;
}
switch (shape) // Switch on anything
{
case Rectangle s when (s.Length == s.Height): // when-condition
WriteLine($"{s.Length} x {s.Height} square");
break;
case Rectangle r:
WriteLine($"{r.Length} x {r.Height} rectangle");
break;
case Circle c: // Type pattern
WriteLine($"circle with radius {c.Radius}"); // use c
break;
case null:
throw new ArgumentNullException(nameof(shape));
default:
WriteLine("<unknown shape>");
break;
}
blogs.msdn.microsoft.com/dotnet/
2016/08/24/whats-new-in-csharp-7-0/

Más contenido relacionado

La actualidad más candente

Odoo - From v7 to v8: the new api
Odoo - From v7 to v8: the new apiOdoo - From v7 to v8: the new api
Odoo - From v7 to v8: the new apiOdoo
 
Traversals for all ocasions
Traversals for all ocasionsTraversals for all ocasions
Traversals for all ocasionsLuka Jacobowitz
 
Monads in javascript
Monads in javascriptMonads in javascript
Monads in javascriptJana Karceska
 
Oh, All the things you'll traverse
Oh, All the things you'll traverseOh, All the things you'll traverse
Oh, All the things you'll traverseLuka Jacobowitz
 
Monoids, monoids, monoids
Monoids, monoids, monoidsMonoids, monoids, monoids
Monoids, monoids, monoidsLuka Jacobowitz
 
A Survey Of R Graphics
A Survey Of R GraphicsA Survey Of R Graphics
A Survey Of R GraphicsDataspora
 
R scatter plots
R scatter plotsR scatter plots
R scatter plotsAbhik Seal
 
A picture speaks a thousand words - Data Visualisation with R
A picture speaks a thousand words - Data Visualisation with RA picture speaks a thousand words - Data Visualisation with R
A picture speaks a thousand words - Data Visualisation with RBarbara Fusinska
 
Forecast stock prices python
Forecast stock prices pythonForecast stock prices python
Forecast stock prices pythonUtkarsh Asthana
 
LeetCode April Coding Challenge
LeetCode April Coding ChallengeLeetCode April Coding Challenge
LeetCode April Coding ChallengeSunil Yadav
 
(2015 06-16) Three Approaches to Monads
(2015 06-16) Three Approaches to Monads(2015 06-16) Three Approaches to Monads
(2015 06-16) Three Approaches to MonadsLawrence Evans
 
Human-powered Javascript Compression for Fun and Gummy Bears
Human-powered Javascript Compression for Fun and Gummy BearsHuman-powered Javascript Compression for Fun and Gummy Bears
Human-powered Javascript Compression for Fun and Gummy BearsRui Lopes
 
Dataclasses en Python 3.7: Empieza a borrar código
Dataclasses en Python 3.7: Empieza a borrar códigoDataclasses en Python 3.7: Empieza a borrar código
Dataclasses en Python 3.7: Empieza a borrar códigoJacobo de Vera
 
The Ring programming language version 1.8 book - Part 29 of 202
The Ring programming language version 1.8 book - Part 29 of 202The Ring programming language version 1.8 book - Part 29 of 202
The Ring programming language version 1.8 book - Part 29 of 202Mahmoud Samir Fayed
 

La actualidad más candente (19)

Odoo - From v7 to v8: the new api
Odoo - From v7 to v8: the new apiOdoo - From v7 to v8: the new api
Odoo - From v7 to v8: the new api
 
Traversals for all ocasions
Traversals for all ocasionsTraversals for all ocasions
Traversals for all ocasions
 
Monads in javascript
Monads in javascriptMonads in javascript
Monads in javascript
 
Oh, All the things you'll traverse
Oh, All the things you'll traverseOh, All the things you'll traverse
Oh, All the things you'll traverse
 
A tour of Python
A tour of PythonA tour of Python
A tour of Python
 
Pnno
PnnoPnno
Pnno
 
Monoids, monoids, monoids
Monoids, monoids, monoidsMonoids, monoids, monoids
Monoids, monoids, monoids
 
A Survey Of R Graphics
A Survey Of R GraphicsA Survey Of R Graphics
A Survey Of R Graphics
 
02 arrays
02 arrays02 arrays
02 arrays
 
Supstat nyc subway
Supstat nyc subwaySupstat nyc subway
Supstat nyc subway
 
R scatter plots
R scatter plotsR scatter plots
R scatter plots
 
A picture speaks a thousand words - Data Visualisation with R
A picture speaks a thousand words - Data Visualisation with RA picture speaks a thousand words - Data Visualisation with R
A picture speaks a thousand words - Data Visualisation with R
 
Forecast stock prices python
Forecast stock prices pythonForecast stock prices python
Forecast stock prices python
 
LeetCode April Coding Challenge
LeetCode April Coding ChallengeLeetCode April Coding Challenge
LeetCode April Coding Challenge
 
(2015 06-16) Three Approaches to Monads
(2015 06-16) Three Approaches to Monads(2015 06-16) Three Approaches to Monads
(2015 06-16) Three Approaches to Monads
 
Human-powered Javascript Compression for Fun and Gummy Bears
Human-powered Javascript Compression for Fun and Gummy BearsHuman-powered Javascript Compression for Fun and Gummy Bears
Human-powered Javascript Compression for Fun and Gummy Bears
 
Dataclasses en Python 3.7: Empieza a borrar código
Dataclasses en Python 3.7: Empieza a borrar códigoDataclasses en Python 3.7: Empieza a borrar código
Dataclasses en Python 3.7: Empieza a borrar código
 
Super spike
Super spikeSuper spike
Super spike
 
The Ring programming language version 1.8 book - Part 29 of 202
The Ring programming language version 1.8 book - Part 29 of 202The Ring programming language version 1.8 book - Part 29 of 202
The Ring programming language version 1.8 book - Part 29 of 202
 

Destacado

BizTalk Server Deep Dive Tips and Tricks For Developers and Admins at TUGA IT
BizTalk Server Deep Dive Tips and Tricks For Developers and Admins at TUGA ITBizTalk Server Deep Dive Tips and Tricks For Developers and Admins at TUGA IT
BizTalk Server Deep Dive Tips and Tricks For Developers and Admins at TUGA ITSandro Pereira
 
ASP.NET 開發人員不可不知的 IIS (IIS for ASP.NET Developers)
ASP.NET 開發人員不可不知的 IIS (IIS for ASP.NET Developers)ASP.NET 開發人員不可不知的 IIS (IIS for ASP.NET Developers)
ASP.NET 開發人員不可不知的 IIS (IIS for ASP.NET Developers)Jeff Chu
 
例外處理實務
例外處理實務例外處理實務
例外處理實務Jeff Chu
 
Managing your azure workloads with Chef and PSDSC
Managing your azure workloads with Chef and PSDSCManaging your azure workloads with Chef and PSDSC
Managing your azure workloads with Chef and PSDSCczw2pv
 
SharePoint ユーザーのための IFTTT で IoT 体験
SharePoint ユーザーのための IFTTT で IoT 体験SharePoint ユーザーのための IFTTT で IoT 体験
SharePoint ユーザーのための IFTTT で IoT 体験Yoshitaka Seo
 
Azure app services 2 - Logic & Api Apps
Azure app services 2  -  Logic & Api AppsAzure app services 2  -  Logic & Api Apps
Azure app services 2 - Logic & Api AppsBill Chesnut
 
Azureでmicroservicesに触れてみる
Azureでmicroservicesに触れてみるAzureでmicroservicesに触れてみる
Azureでmicroservicesに触れてみるKazunori Hamamoto
 
領域驅動設計 (Domain Driven Design)
領域驅動設計 (Domain Driven Design)領域驅動設計 (Domain Driven Design)
領域驅動設計 (Domain Driven Design)Jeff Chu
 
20分でおさらいするサーバレスアーキテクチャ 「サーバレスの薄い本ダイジェスト」 #serverlesstokyo
20分でおさらいするサーバレスアーキテクチャ 「サーバレスの薄い本ダイジェスト」 #serverlesstokyo20分でおさらいするサーバレスアーキテクチャ 「サーバレスの薄い本ダイジェスト」 #serverlesstokyo
20分でおさらいするサーバレスアーキテクチャ 「サーバレスの薄い本ダイジェスト」 #serverlesstokyoMasahiro NAKAYAMA
 

Destacado (9)

BizTalk Server Deep Dive Tips and Tricks For Developers and Admins at TUGA IT
BizTalk Server Deep Dive Tips and Tricks For Developers and Admins at TUGA ITBizTalk Server Deep Dive Tips and Tricks For Developers and Admins at TUGA IT
BizTalk Server Deep Dive Tips and Tricks For Developers and Admins at TUGA IT
 
ASP.NET 開發人員不可不知的 IIS (IIS for ASP.NET Developers)
ASP.NET 開發人員不可不知的 IIS (IIS for ASP.NET Developers)ASP.NET 開發人員不可不知的 IIS (IIS for ASP.NET Developers)
ASP.NET 開發人員不可不知的 IIS (IIS for ASP.NET Developers)
 
例外處理實務
例外處理實務例外處理實務
例外處理實務
 
Managing your azure workloads with Chef and PSDSC
Managing your azure workloads with Chef and PSDSCManaging your azure workloads with Chef and PSDSC
Managing your azure workloads with Chef and PSDSC
 
SharePoint ユーザーのための IFTTT で IoT 体験
SharePoint ユーザーのための IFTTT で IoT 体験SharePoint ユーザーのための IFTTT で IoT 体験
SharePoint ユーザーのための IFTTT で IoT 体験
 
Azure app services 2 - Logic & Api Apps
Azure app services 2  -  Logic & Api AppsAzure app services 2  -  Logic & Api Apps
Azure app services 2 - Logic & Api Apps
 
Azureでmicroservicesに触れてみる
Azureでmicroservicesに触れてみるAzureでmicroservicesに触れてみる
Azureでmicroservicesに触れてみる
 
領域驅動設計 (Domain Driven Design)
領域驅動設計 (Domain Driven Design)領域驅動設計 (Domain Driven Design)
領域驅動設計 (Domain Driven Design)
 
20分でおさらいするサーバレスアーキテクチャ 「サーバレスの薄い本ダイジェスト」 #serverlesstokyo
20分でおさらいするサーバレスアーキテクチャ 「サーバレスの薄い本ダイジェスト」 #serverlesstokyo20分でおさらいするサーバレスアーキテクチャ 「サーバレスの薄い本ダイジェスト」 #serverlesstokyo
20分でおさらいするサーバレスアーキテクチャ 「サーバレスの薄い本ダイジェスト」 #serverlesstokyo
 

Similar a Connect() Mini 2016

Python 101++: Let's Get Down to Business!
Python 101++: Let's Get Down to Business!Python 101++: Let's Get Down to Business!
Python 101++: Let's Get Down to Business!Paige Bailey
 
Look Ma, “update DB to HTML5 using C++”, no hands! 
Look Ma, “update DB to HTML5 using C++”, no hands! Look Ma, “update DB to HTML5 using C++”, no hands! 
Look Ma, “update DB to HTML5 using C++”, no hands! aleks-f
 
Chapter13 two-dimensional-array
Chapter13 two-dimensional-arrayChapter13 two-dimensional-array
Chapter13 two-dimensional-arrayDeepak Singh
 
Developer Experience i TypeScript. Najbardziej ikoniczne duo
Developer Experience i TypeScript. Najbardziej ikoniczne duoDeveloper Experience i TypeScript. Najbardziej ikoniczne duo
Developer Experience i TypeScript. Najbardziej ikoniczne duoThe Software House
 
Effective C#
Effective C#Effective C#
Effective C#lantoli
 
Hive function-cheat-sheet
Hive function-cheat-sheetHive function-cheat-sheet
Hive function-cheat-sheetDr. Volkan OBAN
 
Leet Code May Coding Challenge - DataStructure and Algorithm Problems
Leet Code May Coding Challenge - DataStructure and Algorithm ProblemsLeet Code May Coding Challenge - DataStructure and Algorithm Problems
Leet Code May Coding Challenge - DataStructure and Algorithm ProblemsSunil Yadav
 
Programming with GUTs
Programming with GUTsProgramming with GUTs
Programming with GUTsKevlin Henney
 
Hive Functions Cheat Sheet
Hive Functions Cheat SheetHive Functions Cheat Sheet
Hive Functions Cheat SheetHortonworks
 
JBUG 11 - Scala For Java Programmers
JBUG 11 - Scala For Java ProgrammersJBUG 11 - Scala For Java Programmers
JBUG 11 - Scala For Java ProgrammersTikal Knowledge
 
11 1. multi-dimensional array eng
11 1. multi-dimensional array eng11 1. multi-dimensional array eng
11 1. multi-dimensional array eng웅식 전
 
Swift 성능 이해하기
Swift 성능 이해하기Swift 성능 이해하기
Swift 성능 이해하기Hangyeol Lee
 
Programming with GUTs
Programming with GUTsProgramming with GUTs
Programming with GUTsKevlin Henney
 
The Ring programming language version 1.10 book - Part 33 of 212
The Ring programming language version 1.10 book - Part 33 of 212The Ring programming language version 1.10 book - Part 33 of 212
The Ring programming language version 1.10 book - Part 33 of 212Mahmoud Samir Fayed
 

Similar a Connect() Mini 2016 (20)

Python 101++: Let's Get Down to Business!
Python 101++: Let's Get Down to Business!Python 101++: Let's Get Down to Business!
Python 101++: Let's Get Down to Business!
 
Rcpp11 genentech
Rcpp11 genentechRcpp11 genentech
Rcpp11 genentech
 
Look Ma, “update DB to HTML5 using C++”, no hands! 
Look Ma, “update DB to HTML5 using C++”, no hands! Look Ma, “update DB to HTML5 using C++”, no hands! 
Look Ma, “update DB to HTML5 using C++”, no hands! 
 
Arrays
ArraysArrays
Arrays
 
Chapter13 two-dimensional-array
Chapter13 two-dimensional-arrayChapter13 two-dimensional-array
Chapter13 two-dimensional-array
 
Developer Experience i TypeScript. Najbardziej ikoniczne duo
Developer Experience i TypeScript. Najbardziej ikoniczne duoDeveloper Experience i TypeScript. Najbardziej ikoniczne duo
Developer Experience i TypeScript. Najbardziej ikoniczne duo
 
Effective C#
Effective C#Effective C#
Effective C#
 
Hive function-cheat-sheet
Hive function-cheat-sheetHive function-cheat-sheet
Hive function-cheat-sheet
 
Leet Code May Coding Challenge - DataStructure and Algorithm Problems
Leet Code May Coding Challenge - DataStructure and Algorithm ProblemsLeet Code May Coding Challenge - DataStructure and Algorithm Problems
Leet Code May Coding Challenge - DataStructure and Algorithm Problems
 
Programming with GUTs
Programming with GUTsProgramming with GUTs
Programming with GUTs
 
Hive Functions Cheat Sheet
Hive Functions Cheat SheetHive Functions Cheat Sheet
Hive Functions Cheat Sheet
 
JBUG 11 - Scala For Java Programmers
JBUG 11 - Scala For Java ProgrammersJBUG 11 - Scala For Java Programmers
JBUG 11 - Scala For Java Programmers
 
arrays.pptx
arrays.pptxarrays.pptx
arrays.pptx
 
11 1. multi-dimensional array eng
11 1. multi-dimensional array eng11 1. multi-dimensional array eng
11 1. multi-dimensional array eng
 
Arrays & Strings.pptx
Arrays & Strings.pptxArrays & Strings.pptx
Arrays & Strings.pptx
 
Swift 성능 이해하기
Swift 성능 이해하기Swift 성능 이해하기
Swift 성능 이해하기
 
Programming with GUTs
Programming with GUTsProgramming with GUTs
Programming with GUTs
 
The Ring programming language version 1.10 book - Part 33 of 212
The Ring programming language version 1.10 book - Part 33 of 212The Ring programming language version 1.10 book - Part 33 of 212
The Ring programming language version 1.10 book - Part 33 of 212
 
Python From Scratch (1).pdf
Python From Scratch  (1).pdfPython From Scratch  (1).pdf
Python From Scratch (1).pdf
 
C# Today and Tomorrow
C# Today and TomorrowC# Today and Tomorrow
C# Today and Tomorrow
 

Más de Jeff Chu

.NET Conf 2019 高雄場 - .NET Core 3.0
.NET Conf 2019 高雄場 - .NET Core 3.0.NET Conf 2019 高雄場 - .NET Core 3.0
.NET Conf 2019 高雄場 - .NET Core 3.0Jeff Chu
 
Developing Serverless application with Microsoft Azure and Cognitive Services
Developing Serverless application with Microsoft Azure and Cognitive ServicesDeveloping Serverless application with Microsoft Azure and Cognitive Services
Developing Serverless application with Microsoft Azure and Cognitive ServicesJeff Chu
 
.NET Innovations and Improvements
.NET Innovations and Improvements.NET Innovations and Improvements
.NET Innovations and ImprovementsJeff Chu
 
Microsoft Azure IoT 手把手實作 @ K.NET by Maduka (2017-8-12)
Microsoft Azure IoT 手把手實作 @ K.NET by Maduka (2017-8-12)Microsoft Azure IoT 手把手實作 @ K.NET by Maduka (2017-8-12)
Microsoft Azure IoT 手把手實作 @ K.NET by Maduka (2017-8-12)Jeff Chu
 
Innovations of .NET and Azure (Recaps of Build 2017 selected sessions)
Innovations of .NET and Azure (Recaps of Build 2017 selected sessions)Innovations of .NET and Azure (Recaps of Build 2017 selected sessions)
Innovations of .NET and Azure (Recaps of Build 2017 selected sessions)Jeff Chu
 
利用微軟雲端平台打造完整 IoT 服務鍊 (maduka)
利用微軟雲端平台打造完整 IoT 服務鍊 (maduka)利用微軟雲端平台打造完整 IoT 服務鍊 (maduka)
利用微軟雲端平台打造完整 IoT 服務鍊 (maduka)Jeff Chu
 
Developing serverless applications with azure functions
Developing serverless applications with azure functionsDeveloping serverless applications with azure functions
Developing serverless applications with azure functionsJeff Chu
 
Windows 與 Azure 的容器旅程 @ Ignite Mini 2016
Windows 與 Azure 的容器旅程 @ Ignite Mini 2016Windows 與 Azure 的容器旅程 @ Ignite Mini 2016
Windows 與 Azure 的容器旅程 @ Ignite Mini 2016Jeff Chu
 
Windows 與 Azure 的容器旅程 @ Skilltree Day
Windows 與 Azure 的容器旅程 @ Skilltree DayWindows 與 Azure 的容器旅程 @ Skilltree Day
Windows 與 Azure 的容器旅程 @ Skilltree DayJeff Chu
 
物件導向設計原則:SOLID + DI
物件導向設計原則:SOLID + DI物件導向設計原則:SOLID + DI
物件導向設計原則:SOLID + DIJeff Chu
 
ASP.NET 5 快速入門 (Getting Started ASP.NET 5)
ASP.NET 5 快速入門 (Getting Started ASP.NET 5)ASP.NET 5 快速入門 (Getting Started ASP.NET 5)
ASP.NET 5 快速入門 (Getting Started ASP.NET 5)Jeff Chu
 
Machine Learning, Big Data, Insights
Machine Learning, Big Data, InsightsMachine Learning, Big Data, Insights
Machine Learning, Big Data, InsightsJeff Chu
 
Global Azure Bootcamp 2015 Taipei: Planning and Migrating your Application fr...
Global Azure Bootcamp 2015 Taipei: Planning and Migrating your Application fr...Global Azure Bootcamp 2015 Taipei: Planning and Migrating your Application fr...
Global Azure Bootcamp 2015 Taipei: Planning and Migrating your Application fr...Jeff Chu
 
Cloud computing for manufacturing
Cloud computing for manufacturingCloud computing for manufacturing
Cloud computing for manufacturingJeff Chu
 
Microsoft Azure 新功能導覽 @ Build 2014
Microsoft Azure 新功能導覽 @ Build 2014Microsoft Azure 新功能導覽 @ Build 2014
Microsoft Azure 新功能導覽 @ Build 2014Jeff Chu
 
Microsoft Azure 概觀 (2014-4-2 雲端達人班)
Microsoft Azure 概觀 (2014-4-2 雲端達人班)Microsoft Azure 概觀 (2014-4-2 雲端達人班)
Microsoft Azure 概觀 (2014-4-2 雲端達人班)Jeff Chu
 
Microsoft Azure 虛擬機器與虛擬網路 (2014-4-2 雲端達人班)
Microsoft Azure 虛擬機器與虛擬網路 (2014-4-2 雲端達人班)Microsoft Azure 虛擬機器與虛擬網路 (2014-4-2 雲端達人班)
Microsoft Azure 虛擬機器與虛擬網路 (2014-4-2 雲端達人班)Jeff Chu
 
GWAB 2014 Taipei: 由本地移轉至雲端 - 構思與實踐
GWAB 2014 Taipei: 由本地移轉至雲端 - 構思與實踐GWAB 2014 Taipei: 由本地移轉至雲端 - 構思與實踐
GWAB 2014 Taipei: 由本地移轉至雲端 - 構思與實踐Jeff Chu
 
從雲端看資訊科技的未來 (2014-03-26 國立嘉義大學資管系週會演講)
從雲端看資訊科技的未來 (2014-03-26 國立嘉義大學資管系週會演講)從雲端看資訊科技的未來 (2014-03-26 國立嘉義大學資管系週會演講)
從雲端看資訊科技的未來 (2014-03-26 國立嘉義大學資管系週會演講)Jeff Chu
 
雲端的架構開發 (Designing Cloud Application Architecture with Windows Azure Platform)
雲端的架構開發 (Designing Cloud Application Architecture with Windows Azure Platform)雲端的架構開發 (Designing Cloud Application Architecture with Windows Azure Platform)
雲端的架構開發 (Designing Cloud Application Architecture with Windows Azure Platform)Jeff Chu
 

Más de Jeff Chu (20)

.NET Conf 2019 高雄場 - .NET Core 3.0
.NET Conf 2019 高雄場 - .NET Core 3.0.NET Conf 2019 高雄場 - .NET Core 3.0
.NET Conf 2019 高雄場 - .NET Core 3.0
 
Developing Serverless application with Microsoft Azure and Cognitive Services
Developing Serverless application with Microsoft Azure and Cognitive ServicesDeveloping Serverless application with Microsoft Azure and Cognitive Services
Developing Serverless application with Microsoft Azure and Cognitive Services
 
.NET Innovations and Improvements
.NET Innovations and Improvements.NET Innovations and Improvements
.NET Innovations and Improvements
 
Microsoft Azure IoT 手把手實作 @ K.NET by Maduka (2017-8-12)
Microsoft Azure IoT 手把手實作 @ K.NET by Maduka (2017-8-12)Microsoft Azure IoT 手把手實作 @ K.NET by Maduka (2017-8-12)
Microsoft Azure IoT 手把手實作 @ K.NET by Maduka (2017-8-12)
 
Innovations of .NET and Azure (Recaps of Build 2017 selected sessions)
Innovations of .NET and Azure (Recaps of Build 2017 selected sessions)Innovations of .NET and Azure (Recaps of Build 2017 selected sessions)
Innovations of .NET and Azure (Recaps of Build 2017 selected sessions)
 
利用微軟雲端平台打造完整 IoT 服務鍊 (maduka)
利用微軟雲端平台打造完整 IoT 服務鍊 (maduka)利用微軟雲端平台打造完整 IoT 服務鍊 (maduka)
利用微軟雲端平台打造完整 IoT 服務鍊 (maduka)
 
Developing serverless applications with azure functions
Developing serverless applications with azure functionsDeveloping serverless applications with azure functions
Developing serverless applications with azure functions
 
Windows 與 Azure 的容器旅程 @ Ignite Mini 2016
Windows 與 Azure 的容器旅程 @ Ignite Mini 2016Windows 與 Azure 的容器旅程 @ Ignite Mini 2016
Windows 與 Azure 的容器旅程 @ Ignite Mini 2016
 
Windows 與 Azure 的容器旅程 @ Skilltree Day
Windows 與 Azure 的容器旅程 @ Skilltree DayWindows 與 Azure 的容器旅程 @ Skilltree Day
Windows 與 Azure 的容器旅程 @ Skilltree Day
 
物件導向設計原則:SOLID + DI
物件導向設計原則:SOLID + DI物件導向設計原則:SOLID + DI
物件導向設計原則:SOLID + DI
 
ASP.NET 5 快速入門 (Getting Started ASP.NET 5)
ASP.NET 5 快速入門 (Getting Started ASP.NET 5)ASP.NET 5 快速入門 (Getting Started ASP.NET 5)
ASP.NET 5 快速入門 (Getting Started ASP.NET 5)
 
Machine Learning, Big Data, Insights
Machine Learning, Big Data, InsightsMachine Learning, Big Data, Insights
Machine Learning, Big Data, Insights
 
Global Azure Bootcamp 2015 Taipei: Planning and Migrating your Application fr...
Global Azure Bootcamp 2015 Taipei: Planning and Migrating your Application fr...Global Azure Bootcamp 2015 Taipei: Planning and Migrating your Application fr...
Global Azure Bootcamp 2015 Taipei: Planning and Migrating your Application fr...
 
Cloud computing for manufacturing
Cloud computing for manufacturingCloud computing for manufacturing
Cloud computing for manufacturing
 
Microsoft Azure 新功能導覽 @ Build 2014
Microsoft Azure 新功能導覽 @ Build 2014Microsoft Azure 新功能導覽 @ Build 2014
Microsoft Azure 新功能導覽 @ Build 2014
 
Microsoft Azure 概觀 (2014-4-2 雲端達人班)
Microsoft Azure 概觀 (2014-4-2 雲端達人班)Microsoft Azure 概觀 (2014-4-2 雲端達人班)
Microsoft Azure 概觀 (2014-4-2 雲端達人班)
 
Microsoft Azure 虛擬機器與虛擬網路 (2014-4-2 雲端達人班)
Microsoft Azure 虛擬機器與虛擬網路 (2014-4-2 雲端達人班)Microsoft Azure 虛擬機器與虛擬網路 (2014-4-2 雲端達人班)
Microsoft Azure 虛擬機器與虛擬網路 (2014-4-2 雲端達人班)
 
GWAB 2014 Taipei: 由本地移轉至雲端 - 構思與實踐
GWAB 2014 Taipei: 由本地移轉至雲端 - 構思與實踐GWAB 2014 Taipei: 由本地移轉至雲端 - 構思與實踐
GWAB 2014 Taipei: 由本地移轉至雲端 - 構思與實踐
 
從雲端看資訊科技的未來 (2014-03-26 國立嘉義大學資管系週會演講)
從雲端看資訊科技的未來 (2014-03-26 國立嘉義大學資管系週會演講)從雲端看資訊科技的未來 (2014-03-26 國立嘉義大學資管系週會演講)
從雲端看資訊科技的未來 (2014-03-26 國立嘉義大學資管系週會演講)
 
雲端的架構開發 (Designing Cloud Application Architecture with Windows Azure Platform)
雲端的架構開發 (Designing Cloud Application Architecture with Windows Azure Platform)雲端的架構開發 (Designing Cloud Application Architecture with Windows Azure Platform)
雲端的架構開發 (Designing Cloud Application Architecture with Windows Azure Platform)
 

Último

Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...apidays
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsNanddeep Nachan
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot ModelNavi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot ModelDeepika Singh
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodJuan lago vázquez
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdflior mazor
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingEdi Saputra
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesrafiqahmad00786416
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...apidays
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Zilliz
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024The Digital Insurer
 

Último (20)

Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot ModelNavi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 

Connect() Mini 2016

  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17. 61%YoY Growth .NET Active Developers (VS 2012+) 40%.NET Core downloads by new developers 62% GitHub contributions from outside of Microsoft (corefx / coreclr repos) 0 100 200 300 400 500 600 700 800 900 Jan Feb Mar Apr May Jun Jul Aug Oct Nov Dec Jan Feb Mar Apr May Jun Jul Aug Oct Nov Dec Jan Feb Mar Apr May Jun Jul Aug Qtr1 Qtr2 Qtr3 Qtr4 Qtr1 Qtr2 Qtr3 Qtr4 Qtr1 Qtr2 Qtr3 2014 2015 2016 Community PRs by month
  • 20.
  • 23.
  • 25.
  • 26. Plain Text Request Per Second
  • 28.
  • 29.
  • 30.
  • 33. @await Component.InvokeAsync("Copyright", new { website = "example.com", year = 2016 })
  • 36.
  • 37.
  • 38. • Use the current release to get the latest features • Supported as long as you keep updating to the latest • Use the Long Term Support release as the most stable platform • LTS is fully supported for 3 years and receives regular important updates • You can mix and match your strategy (even in the same machine!) Current (1.1) Long Term Support (LTS) 1.0
  • 41.
  • 42. Primitives • Collections • Reflection • Interop • LinqCORE Threads • Thread Pool • TasksTHREADING Files • Compression • MMFIO Sockets • Http • Mail • WebSocketsNETWORKING BinaryFormatter • Data Contract • XMLSERILIZATION XLinq • XML Document • XPath • Schema • XSLXML
  • 43. MY .NET FRAMEWORK APP MY STANDARD LIBRARY MY .NET CORE APP MY XAMARIN APP
  • 44.
  • 45.
  • 46.
  • 48.
  • 49.
  • 50.
  • 51. Build/CI, Integrate, Test Monitor and Diagnose Production environments Run, Manage Container Service Service Fabric Batch App Services coming soon … … Azure Container Registry Code Run Validate Debug Inner-Loop CD, Deploy Source Code Control (SCC)
  • 52. Public Preview • November GA • Spring ‘17 aka.ms/AzureContainerRegistry
  • 53.
  • 54. Bot Framework Your bots – wherever your users are talking. Build and connect intelligent bots to interact with your users naturally wherever they are, from text/SMS to Skype, Slack, Messenger, Office 365 mail and other popular services.
  • 57.
  • 58.
  • 59. int[] numbers = { 1, 2, 4, 8, 16, 32 };
  • 60. int[] numbers = { 0b1, 2, 4, 8, 16, 32 };
  • 61. int[] numbers = { 0b1, 0b10, 4, 8, 16, 32 };
  • 62. int[] numbers = { 0b1, 0b10, 0b100, 8, 16, 32 };
  • 63. int[] numbers = { 0b1, 0b10, 0b100, 0b1000, 16, 32 };
  • 64. int[] numbers = { 0b1, 0b10, 0b100, 0b1000, 0b10000, 32 };
  • 65. int[] numbers = { 0b1, 0b10, 0b100, 0b1000, 0b1_0000, 32 };
  • 66. int[] numbers = { 0b1, 0b10, 0b100, 0b1000, 0b1_0000, 3_2 };
  • 67. int[] numbers = { 0b1, 0b10, 0b100, 0b1000, 0b1_0000, 3_______2 };
  • 68. int[] numbers = { 0b1, 0b10, 0b100, 0b1000, 0b1_0000, 0b100000 };
  • 69. int[] numbers = { 0b1, 0b10, 0b100, 0b1000, 0b1_0000, 0b10_0000 };
  • 70. int[] numbers = { 0b1, 0b10, 0b100, 0b1000, 0b1_0000, 0b10_0000 };
  • 71. int[] numbers = { 0b1, 0b10, 0b100, 0b1000, 0b1_0000, 0b10_0000 }; var t = Tally(numbers);
  • 72. int[] numbers = { 0b1, 0b10, 0b100, 0b1000, 0b1_0000, 0b10_0000 }; var t = Tally(numbers); (int, int) Tally(int[] values) { }
  • 73. int[] numbers = { 0b1, 0b10, 0b100, 0b1000, 0b1_0000, 0b10_0000 }; var t = Tally(numbers); (int, int) Tally(int[] values) { var r = (0, 0); return r; }
  • 74. int[] numbers = { 0b1, 0b10, 0b100, 0b1000, 0b1_0000, 0b10_0000 }; var t = Tally(numbers); WriteLine($"Sum: {t.Item1}, count: {t.Item2}"); (int, int) Tally(int[] values) { var r = (0, 0); return r; }
  • 75. int[] numbers = { 0b1, 0b10, 0b100, 0b1000, 0b1_0000, 0b10_0000 }; var t = Tally(numbers); WriteLine($"Sum: {t.Item1}, count: {t.Item2}"); (int sum, int count) Tally(int[] values) { var r = (0, 0); return r; }
  • 76. int[] numbers = { 0b1, 0b10, 0b100, 0b1000, 0b1_0000, 0b10_0000 }; var t = Tally(numbers); WriteLine($"Sum: {t.sum}, count: {t.count}"); (int sum, int count) Tally(int[] values) { var r = (0, 0); return r; }
  • 77. int[] numbers = { 0b1, 0b10, 0b100, 0b1000, 0b1_0000, 0b10_0000 }; var t = Tally(numbers); WriteLine($"Sum: {t.sum}, count: {t.count}"); (int sum, int count) Tally(int[] values) { var r = (s:0, c:0); return r; }
  • 78. int[] numbers = { 0b1, 0b10, 0b100, 0b1000, 0b1_0000, 0b10_0000 }; var (sum, count) = Tally(numbers); WriteLine($"Sum: {t.sum}, count: {t.count}"); (int sum, int count) Tally(int[] values) { var r = (s:0, c:0); return r; }
  • 79. int[] numbers = { 0b1, 0b10, 0b100, 0b1000, 0b1_0000, 0b10_0000 }; var (sum, count) = Tally(numbers); WriteLine($"Sum: {sum}, count: {count}"); (int sum, int count) Tally(int[] values) { var r = (s:0, c:0); return r; }
  • 80. int[] numbers = { 0b1, 0b10, 0b100, 0b1000, 0b1_0000, 0b10_0000 }; var (sum, count) = Tally(numbers); WriteLine($"Sum: {sum}, count: {count}"); (int sum, int count) Tally(int[] values) { var r = (s:0, c:0); return r; }
  • 81. int[] numbers = { 0b1, 0b10, 0b100, 0b1000, 0b1_0000, 0b10_0000 }; var (sum, count) = Tally(numbers); WriteLine($"Sum: {sum}, count: {count}"); (int sum, int count) Tally(int[] values) { var r = (s:0, c:0); foreach (var v in values) { } return r; }
  • 82. int[] numbers = { 0b1, 0b10, 0b100, 0b1000, 0b1_0000, 0b10_0000 }; var (sum, count) = Tally(numbers); WriteLine($"Sum: {sum}, count: {count}"); (int sum, int count) Tally(int[] values) { var r = (s:0, c:0); foreach (var v in values) { r = (r.s + v, r.c + 1); } return r; }
  • 83. int[] numbers = { 0b1, 0b10, 0b100, 0b1000, 0b1_0000, 0b10_0000 }; var (sum, count) = Tally(numbers); WriteLine($"Sum: {sum}, count: {count}"); (int sum, int count) Tally(int[] values) { var r = (s:0, c:0); foreach (var v in values) { r.s += v; } return r; }
  • 84. int[] numbers = { 0b1, 0b10, 0b100, 0b1000, 0b1_0000, 0b10_0000 }; var (sum, count) = Tally(numbers); WriteLine($"Sum: {sum}, count: {count}"); (int sum, int count) Tally(int[] values) { var r = (s:0, c:0); foreach (var v in values) { r.s += v; r.c++; } return r; }
  • 85. int[] numbers = { 0b1, 0b10, 0b100, 0b1000, 0b1_0000, 0b10_0000 }; var (sum, count) = Tally(numbers); WriteLine($"Sum: {sum}, count: {count}"); (int sum, int count) Tally(int[] values) { var r = (s:0, c:0); foreach (var v in values) { r.s += v; r.c++; } return r; }
  • 86. int[] numbers = { 0b1, 0b10, 0b100, 0b1000, 0b1_0000, 0b10_0000 }; var (sum, count) = Tally(numbers); WriteLine($"Sum: {sum}, count: {count}"); (int sum, int count) Tally(int[] values) { var r = (s:0, c:0); foreach (var v in values) { Add(v, 1); } return r; }
  • 87. int[] numbers = { 0b1, 0b10, 0b100, 0b1000, 0b1_0000, 0b10_0000 }; var (sum, count) = Tally(numbers); WriteLine($"Sum: {sum}, count: {count}"); (int sum, int count) Tally(int[] values) { var r = (s:0, c:0); foreach (var v in values) { Add(v, 1); } return r; void Add(int s, int c) { r.s += s; r.c += c; } }
  • 89. public void PrintStars(object o) { if (o is null) return; // constant pattern "null" }
  • 90. public void PrintStars(object o) { if (o is null) return; // constant pattern "null" if (!(o is int i)) return; // type pattern "int i" }
  • 91. public void PrintStars(object o) { if (o is null) return; // constant pattern "null" if (!(o is int i)) return; // type pattern "int i" WriteLine(new string('*', i)); }
  • 92. switch (shape) // Switch on anything { }
  • 93. switch (shape) // Switch on anything { default: WriteLine("<unknown shape>"); break; }
  • 94. switch (shape) // Switch on anything { case null: throw new ArgumentNullException(nameof(shape)); default: WriteLine("<unknown shape>"); break; }
  • 95. switch (shape) // Switch on anything { case Circle c: // Type pattern break; case null: throw new ArgumentNullException(nameof(shape)); default: WriteLine("<unknown shape>"); break; }
  • 96. switch (shape) // Switch on anything { case Circle c: // Type pattern WriteLine($"circle with radius {c.Radius}"); // use c break; case null: throw new ArgumentNullException(nameof(shape)); default: WriteLine("<unknown shape>"); break; }
  • 97. switch (shape) // Switch on anything { case Rectangle r: WriteLine($"{r.Length} x {r.Height} rectangle"); break; case Circle c: // Type pattern WriteLine($"circle with radius {c.Radius}"); // use c break; case null: throw new ArgumentNullException(nameof(shape)); default: WriteLine("<unknown shape>"); break; }
  • 98. switch (shape) // Switch on anything { case Rectangle s when (s.Length == s.Height): // when-condition WriteLine($"{s.Length} x {s.Height} square"); break; case Rectangle r: WriteLine($"{r.Length} x {r.Height} rectangle"); break; case Circle c: // Type pattern WriteLine($"circle with radius {c.Radius}"); // use c break; case null: throw new ArgumentNullException(nameof(shape)); default: WriteLine("<unknown shape>"); break; }