C# Today and Tomorrow Mads Torgersen, Microsoft @MadsTorgersen.

Slides:



Advertisements
Similar presentations
Joe Hummel, the compiler is at your service Chicago Code Camp 2014.
Advertisements

C# 2.0 and Future Directions Anders Hejlsberg Technical Fellow Microsoft Corporation.
Joe Hummel, the compiler is at your service SDC Meetup, Sept 2014.
Run on Windows.NET as system component Run on VM (CLR) Black box compilers Edit in Visual Studio Proprietary Run everywhere Deploy with app Compile.
跨平台 Hybrid App 開發簡介 - 使用 Visual Studio Tool for Apache Cordova + HTML/JavaScript 陳葵懋 (Ian)
10/18/2017 3:02 AM © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN.
What is it all about? .NET MeetUp in Prague, CZ (2017/7/19)
1/21/2018 6:52 AM © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN.
C# and VB code-focused development with Visual Studio
5/3/2018 2:15 AM © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS.
Building world-ready Metro style apps with XAML
What’s new in Entity Framework Core 2.0
5/19/2018 1:01 AM © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN.
Tooling Breakout Session
The Future of C# The Future of C# and VB 2-577
Future of C#
Get Typed with TypeScript!
7/2/2018 3:48 AM BRK3394: Visual Studio Code The most useful (and underused!) tips and tricks Chris Dias Principal Program Manager VS Code © Microsoft.
Microsoft Connect /23/2018 5:27 PM
Azure API Management Jothi Prakash A
9/13/2018 7:43 AM © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN.
Herding Nulls and other C# stories from the future
Modern Front-End Web Development with Visual Studio
Introducing ASP.NET Core 2.0
Microsoft Ignite NZ October 2016 SKYCITY, Auckland.
Microsoft Connect /17/ :55 PM
Microsoft Build /8/2018 3:30 AM © 2016 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY,
Microsoft Build /15/2018 6:28 AM © 2016 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY,
Typescript Programming Languages
Microsoft Build /19/2018 2:06 AM © 2016 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY,
Microsoft Build /22/2018 6:07 AM © 2016 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY,
MIX 09 11/22/2018 9:09 AM © 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered.
Xamarin Inspector & Profiler for Visual Studio Enterprise
Mobile Center and VSTS:​ Better together for your Mobile DevOps
Microsoft Connect /26/2018 6:08 PM
Microsoft Connect /26/2018 6:09 PM
11/27/2018 4:20 AM © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN.
Entity Framework Core.
Learn. Imagine. Build. .NET Conf
Getting started with SharePoint Framework
Microsoft Build /30/2018 2:15 AM Migrating Silverlight Windows Phone apps to the Universal Windows Platform Ricardo Villalobos Principal SDE Manager.
Docker Workflows with Visual Studio
Super Charge Your Debugging in Visual Studio
What’s new in F# 4.1 Phillip Carter Program Manager.
DotnetConf 12/3/2018 1:48 AM © 2016 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE.
12/3/2018 7:56 PM © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN.
Application Insights Diagnostics Preview
TechEd /6/2018 8:16 AM © 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks.
Microsoft Connect /7/ :18 AM
Web Development in Visual Studio 2017
TechEd /9/2018 4:17 AM © 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks.
Microsoft Connect /2/2019 9:06 AM
Microsoft Connect /17/2019 9:04 AM
Microsoft Connect /17/2019 9:55 PM
Microsoft Connect /16/ :45 PM
Microsoft Connect /22/2019 9:54 PM
Microsoft Connect /23/ :38 AM
What’s Coming to C# William Fuqua. What’s Coming to C# William Fuqua.
What is Visual Studio Code?
Microsoft Connect /25/2019 1:20 PM
Microsoft Build /27/2019 2:26 PM © 2016 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY,
Create rich, data-driven Web apps with ASP.NET 4.5 Web Forms
Microsoft Ignite NZ October 2016 SKYCITY, Auckland.
Microsoft Build /8/2019 6:29 AM © 2016 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY,
4/12/2019 5:27 PM © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN.
DEV322 Visual Studio 2005 C# IDE Enhancements
5/6/2019 7:40 PM © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS.
Microsoft Build /7/ :40 AM © 2016 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY,
11/11/2019 1:15 PM © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN.
Microsoft Connect /14/ :11 AM
Presentation transcript:

C# Today and Tomorrow Mads Torgersen, Microsoft @MadsTorgersen

Stack Overflow - most popular technologies http://stackoverflow.com/research/developer-survey-2016#technology-most-popular-technologies

Stack Overflow - most loved technologies http://stackoverflow.com/research/developer-survey-2016#technology-most-loved-dreaded-and-wanted

C# Evolution – A balancing act Aggressively improve Improve existing development Embrace new paradigms Stay simple Attractive to new users Stay true to the spirit of C#

.NET - changing our tune… Run on Windows .NET as system component Run on VM (CLR) Black box compilers Edit in Visual Studio Proprietary Run everywhere Deploy with app Compile to native Open compiler APIs Use your favorite editor Open source

Roslyn – the C# language engine There should only need to be one code base in the world for understanding C# IDEs and editors Linters and analysis tools Fixing and refactoring Source generation Scripting and REPLs … Oh, and compiling!

C# 7 – and beyond! C# 7: with next Visual Studio (“15”) Preview 2 of VS “15” available Upcoming prototype installer C# 8: several features underway I’ve got slides later… Point releases in between? Trickle out minor versions as features become ready Opt-in for folks living on the edge

Demos REPL C# 6 C# 7

Ref returns and locals ref PhysicalObject GetAsteroid(Position p) { int index = p.GetIndex(); return ref Objects[index]; } ref var a = ref GetAsteroid(p); a.Explode();

Later: More patterns if (o is Point p && p.X == 5) { WriteLine($"Y: {p.Y}"); } if (o is Point { X: var x, Y: var y } && x == 5) { WriteLine($"Y: {y}"); } if (o is Point { X: 5, Y: var y }) { WriteLine($"Y: {y}"); } if (o is Point(5, var y)) { WriteLine($"Y: {y}"); }

Later: Nullable and non-nullable reference types string? n; // Nullable reference type string s; // Non-nullable reference type n = null; // Sure; it's nullable s = null; // Warning! Shouldn’t be null! s = n; // Warning! Really! WriteLine(s.Length); // Sure; it’s not null WriteLine(n.Length); // Warning! Could be null! if (n != null) { WriteLine(n.Length); } // Sure; you checked WriteLine(n!.Length); // Ok, if you insist!

Later: Records class Person(string First, string Last); class Person : IEquatable<Person> { public string First { get; } public string Last { get; } public Person(string First, string Last) { this.First = First; this.Last = Last; } public (string First, string Last) Deconstruct() => (First, Last); public bool Equals(Person other) => other != null && First == other.First && Last == other.Last; public override bool Equals(object obj) => obj is Person other ? Equals(other) : false; public override int GetHashCode() => GreatHashFunction(First, Last); … }

@MadsTorgersen

11/30/2018 10:43 AM © 2016 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.