SlideShare a Scribd company logo
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/

More Related Content

What's hot

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
Odoo
 
Traversals for all ocasions
Traversals for all ocasionsTraversals for all ocasions
Traversals for all ocasions
Luka Jacobowitz
 
Monads in javascript
Monads in javascriptMonads in javascript
Monads in javascript
Jana 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 traverse
Luka Jacobowitz
 
A tour of Python
A tour of PythonA tour of Python
A tour of Python
Aleksandar Veselinovic
 
Pnno
PnnoPnno
Monoids, monoids, monoids
Monoids, monoids, monoidsMonoids, monoids, monoids
Monoids, monoids, monoids
Luka Jacobowitz
 
A Survey Of R Graphics
A Survey Of R GraphicsA Survey Of R Graphics
A Survey Of R Graphics
Dataspora
 
02 arrays
02 arrays02 arrays
02 arrays
Rajan Gautam
 
Supstat nyc subway
Supstat nyc subwaySupstat nyc subway
Supstat nyc subway
Vivian S. Zhang
 
R scatter plots
R scatter plotsR scatter plots
R scatter plots
Abhik 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 R
Barbara Fusinska
 
Forecast stock prices python
Forecast stock prices pythonForecast stock prices python
Forecast stock prices python
Utkarsh Asthana
 
LeetCode April Coding Challenge
LeetCode April Coding ChallengeLeetCode April Coding Challenge
LeetCode April Coding Challenge
Sunil 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 Monads
Lawrence 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 Bears
Rui 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ódigo
Jacobo de Vera
 
Super spike
Super spikeSuper spike
Super spike
Michael Falanga
 
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
Mahmoud Samir Fayed
 

What's hot (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
 

Viewers also liked

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
Sandro 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 PSDSC
czw2pv
 
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 Apps
Bill 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分でおさらいするサーバレスアーキテクチャ 「サーバレスの薄い本ダイジェスト」 #serverlesstokyo
Masahiro NAKAYAMA
 

Viewers also liked (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 to 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
 
Rcpp11 genentech
Rcpp11 genentechRcpp11 genentech
Rcpp11 genentech
Romain Francois
 
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
 
Arrays
ArraysArrays
Chapter13 two-dimensional-array
Chapter13 two-dimensional-arrayChapter13 two-dimensional-array
Chapter13 two-dimensional-array
Deepak 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 duo
The 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-sheet
Dr. 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 Problems
Sunil Yadav
 
Programming with GUTs
Programming with GUTsProgramming with GUTs
Programming with GUTs
Kevlin Henney
 
Hive Functions Cheat Sheet
Hive Functions Cheat SheetHive Functions Cheat Sheet
Hive Functions Cheat Sheet
Hortonworks
 
JBUG 11 - Scala For Java Programmers
JBUG 11 - Scala For Java ProgrammersJBUG 11 - Scala For Java Programmers
JBUG 11 - Scala For Java Programmers
Tikal Knowledge
 
arrays.pptx
arrays.pptxarrays.pptx
arrays.pptx
NehaJain919374
 
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
AnkurRajSingh2
 
Swift 성능 이해하기
Swift 성능 이해하기Swift 성능 이해하기
Swift 성능 이해하기
Hangyeol Lee
 
Programming with GUTs
Programming with GUTsProgramming with GUTs
Programming with GUTs
Kevlin 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 212
Mahmoud Samir Fayed
 
Python From Scratch (1).pdf
Python From Scratch  (1).pdfPython From Scratch  (1).pdf
Python From Scratch (1).pdf
NeerajChauhan697157
 
C# Today and Tomorrow
C# Today and TomorrowC# Today and Tomorrow
C# Today and Tomorrow
Bertrand Le Roy
 

Similar to 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
 

More from 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.0
Jeff 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 Services
Jeff Chu
 
.NET Innovations and Improvements
.NET Innovations and Improvements.NET Innovations and Improvements
.NET Innovations and Improvements
Jeff 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 functions
Jeff Chu
 
Windows 與 Azure 的容器旅程 @ Ignite Mini 2016
Windows 與 Azure 的容器旅程 @ Ignite Mini 2016Windows 與 Azure 的容器旅程 @ Ignite Mini 2016
Windows 與 Azure 的容器旅程 @ Ignite Mini 2016
Jeff Chu
 
Windows 與 Azure 的容器旅程 @ Skilltree Day
Windows 與 Azure 的容器旅程 @ Skilltree DayWindows 與 Azure 的容器旅程 @ Skilltree Day
Windows 與 Azure 的容器旅程 @ Skilltree Day
Jeff Chu
 
物件導向設計原則:SOLID + DI
物件導向設計原則:SOLID + DI物件導向設計原則:SOLID + DI
物件導向設計原則:SOLID + DI
Jeff 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, Insights
Jeff 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 manufacturing
Jeff Chu
 
Microsoft Azure 新功能導覽 @ Build 2014
Microsoft Azure 新功能導覽 @ Build 2014Microsoft Azure 新功能導覽 @ Build 2014
Microsoft Azure 新功能導覽 @ Build 2014
Jeff 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
 

More from 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)
 

Recently uploaded

Taking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdfTaking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdf
ssuserfac0301
 
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAUHCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
panagenda
 
Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)
Jakub Marek
 
Serial Arm Control in Real Time Presentation
Serial Arm Control in Real Time PresentationSerial Arm Control in Real Time Presentation
Serial Arm Control in Real Time Presentation
tolgahangng
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Malak Abu Hammad
 
Skybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoptionSkybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoption
Tatiana Kojar
 
Best 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERPBest 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERP
Pixlogix Infotech
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
Octavian Nadolu
 
HCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAUHCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAU
panagenda
 
Ocean lotus Threat actors project by John Sitima 2024 (1).pptx
Ocean lotus Threat actors project by John Sitima 2024 (1).pptxOcean lotus Threat actors project by John Sitima 2024 (1).pptx
Ocean lotus Threat actors project by John Sitima 2024 (1).pptx
SitimaJohn
 
Fueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte WebinarFueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte Webinar
Zilliz
 
Introduction of Cybersecurity with OSS at Code Europe 2024
Introduction of Cybersecurity with OSS  at Code Europe 2024Introduction of Cybersecurity with OSS  at Code Europe 2024
Introduction of Cybersecurity with OSS at Code Europe 2024
Hiroshi SHIBATA
 
GenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizationsGenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizations
kumardaparthi1024
 
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
Edge AI and Vision Alliance
 
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc
 
Nordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptxNordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptx
MichaelKnudsen27
 
GraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracyGraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracy
Tomaz Bratanic
 
UI5 Controls simplified - UI5con2024 presentation
UI5 Controls simplified - UI5con2024 presentationUI5 Controls simplified - UI5con2024 presentation
UI5 Controls simplified - UI5con2024 presentation
Wouter Lemaire
 
Webinar: Designing a schema for a Data Warehouse
Webinar: Designing a schema for a Data WarehouseWebinar: Designing a schema for a Data Warehouse
Webinar: Designing a schema for a Data Warehouse
Federico Razzoli
 
Building Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and MilvusBuilding Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and Milvus
Zilliz
 

Recently uploaded (20)

Taking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdfTaking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdf
 
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAUHCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
 
Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)
 
Serial Arm Control in Real Time Presentation
Serial Arm Control in Real Time PresentationSerial Arm Control in Real Time Presentation
Serial Arm Control in Real Time Presentation
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
 
Skybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoptionSkybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoption
 
Best 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERPBest 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERP
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
 
HCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAUHCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAU
 
Ocean lotus Threat actors project by John Sitima 2024 (1).pptx
Ocean lotus Threat actors project by John Sitima 2024 (1).pptxOcean lotus Threat actors project by John Sitima 2024 (1).pptx
Ocean lotus Threat actors project by John Sitima 2024 (1).pptx
 
Fueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte WebinarFueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte Webinar
 
Introduction of Cybersecurity with OSS at Code Europe 2024
Introduction of Cybersecurity with OSS  at Code Europe 2024Introduction of Cybersecurity with OSS  at Code Europe 2024
Introduction of Cybersecurity with OSS at Code Europe 2024
 
GenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizationsGenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizations
 
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
 
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
 
Nordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptxNordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptx
 
GraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracyGraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracy
 
UI5 Controls simplified - UI5con2024 presentation
UI5 Controls simplified - UI5con2024 presentationUI5 Controls simplified - UI5con2024 presentation
UI5 Controls simplified - UI5con2024 presentation
 
Webinar: Designing a schema for a Data Warehouse
Webinar: Designing a schema for a Data WarehouseWebinar: Designing a schema for a Data Warehouse
Webinar: Designing a schema for a Data Warehouse
 
Building Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and MilvusBuilding Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and Milvus
 

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; }