Who are these guys?
Oscar van Tol
@oscarvantol
Rick van den Bosch
@rickvdbosch
Agenda
• History
• Present
• Full Framework
• .NET Core
• Demo's
• Details
• Future
A short history .NET
Late 90's, No Plan
• Brian Harry
• Visual Source Safe
• Managing Runtimes C++, VB, Foxpro
(Windows features)
• Anders Hejlsberg
• Java (Sun lawsuit)
• C Object Oriented Language (COOL) => C#
• Common set of Base Class Libs
• J#
• Scott Guthrie
• 1997 First job at Microsoft
• NT Option pack
• Prototyped ASP+ (using Java)
PDC 2000
• .net is mentioned for the first
time
• Microsoft needed to be more
open
• C# and the runtime published as
ECMA standard
2002
• Windows XP
• Visual Studio.net
• .NET 1.0 / C#
2003
• .NET 1.1 ships
• Bugfixes
2005
• Visual Studio 2005
• .NET 2.0
• 64bit
• Nullable
• Partial Classes
• Anonymous Methods
• Iterators
• Generics
• Brian Harry
• Team Foundation Server
2006
• .NET 3.0
• Windows Presentation Foundation
• Windows Communication Foundation
• Windows Workflow Foundation
• Windows Cardspace
2007
• Secret project Scott Guthrie (MVC)
• Hires OSS Ninja Army
• Rob Conery
• Phil Haack
• Scott Hanselman
• Visual Studio 2008
• .NET 3.5
• LINQ
2009
• .NET 4.0
• Parallel / Task library
• Named params
• Optional params
2010
• Visual Studio 2010
• F#
• jQuery in the box
2012
• //BUILD
• Windows 8 announced
• .Net 4.5
2013
• Visual Studio 2013
• .NET 4.5.1
• Windows Azure => Microsoft Azure
• Satya Nadella
2014
• .NET Foundation
• Roslyn OSS (xplat)
• Typescript
• Windows Free (small screens)
Original post from December 19, 2014
We (Microsoft) generally don't give specific dates. However, I can say that ASP.NET 5 ("vNext") is being released
as part of Visual Studio 2015, and so that means it's being released in 2015 (big surprise!). It is reasonably
safe to assume a release in the early half of 2015.
As you correctly noted, the GitHub repos for ASP.NET 5 now specify the RC milestone, which indicates that our
main focus right now is on stability, and that the feature set for the RTM release is largely there. There are still
features and designs being finalized, and anyone can of course see those going on in the individual repos.
2015
• Windows 10
• .NET 4.6.1
2016
Update for January 19, 2016
ASP.NET 5 is now called ASP.NET Core 1.0.
.NET Core 5 is now .NET Core 1.0.
Entity Framework 7 is now EF Core 1.0
• June 2016
• .NET Core 1.0
Remember the mess?
2016-2019
Let's see what we have .NET Framework
.NET Framework 4.8
• included in Windows 10 May 2019 Update
• also available on
• Windows 7+
• Windows Server 2008 R2+.
.NET 4.8 – New features 1/3
• Runtime
• JIT improvements
• NGEN improvements
• Antimalware Scanning for All Assemblies
• BCL
• Updated Zlib
• Reducing FIPS Impact on Cryptography
.NET 4.8 – New features 2/3
• Windows Forms
• Accessibility Enhancements
• UIA LiveRegions Support in Labels and StatusStrips
• UIA Notification Events
• ToolTips on keyboard access
• DataGridView control accessible hierarchy changes
• WCF
• ServiceHealthBehavior
.NET 4.8 – New features 3/3
• WPF
• Screen narrators no longer announce Collapsed or Hidden elements
• SelectionTextBrush Property for use with Non-Adorner Based Text Selection
• High DPI Enhancements
• Support for UIAutomation ControllerFor property
• Tooltips on keyboard access
• Added Support for SizeOfSet and PositionInSet UIAutomation properties
Let's see what we have .NET Core 3
.NET Core 3.0
• Free and open source
• C#, F# (Partially Visual Basic .NET)
• Cross platform support (Windows, macOS, Linux)
What can we do in .NET Core 3
• ASP.NET
• API
• MVC
• Razor pages
• Blazor server
• Blazor client
• gRPC
• SignalR
• Windows Forms
• WPF
• Entity Framework
DEMO .NET Core
Entity Framework
EF Core 3.0
• .NET Standard 2.1
• x-plat
• Lightweight
• C#8
• Async streams
• nullable reference types
• CosmosDb
EF 6.3.0
• .NET Standard 2.1
• x-plat
• Designer
• Sql HierarchyId
• Fully featured and compatible
What about WCF?!
• Full framework 4.8
• Core WCF
• Rebuild to gRPC
• Docs
• Visual ReCode
https://bit.ly/36mr1oV
Let's see what we have .NET Standard
.NET Standard
The .NET Standard is a
formal specification of .NET APIs
that are intended to be
available on all .NET implementations
.NET Standard
.NET Standard
• Defines uniform set of BCL APIs for all .NET implementations to
implement, independent of workload.
• Enables developers to produce portable libraries that are usable
across .NET implementations, using this same set of APIs.
• Reduces or even eliminates conditional compilation of shared source
due to .NET APIs, only for OS APIs.
.NET Standard 2.1
• No longer supported on .NET Framework
• .NET Core 3.0
• Mono 6.4
• Xamarin.iOS 12.16
• Xamarin.Mac 5.16
• Xamarin.Android 10
• An upcoming version Universal Windows Platform
• An upcoming version Unity
Let’s see what we have C#
C# - 7.x
• 7.1 August 2017 (as part of VS 2017 15.3)
• 7.2 December 2017 (as part of VS 2017 15.5)
• 7.3 May 2018 (as part of VS 2017 15.7)
• C# latest major version is the default
C# - 8
• September 2019 (as part of VS 2019 16.3)
C# 8 – Features & Enhancements
• Readonly members
• Default interface methods
• Pattern matching enhancements:
• Switch expressions
• Property patterns
• Tuple patterns
• Positional patterns
• Using declarations
• Static local functions
• Disposable ref structs
• Nullable reference types
• Asynchronous streams
• Indices and ranges
• Null-coalescing assignment
• Unmanaged constructed types
• Stackalloc in nested expressions
• Enhancement of interpolated
verbatim strings
DEMO C# 8
Where are we going? .NET
.NET 5
• Next release after .NET Core 3 (.NET Core vNext)
• There will be just one .NET going forward
• Windows
• Linux
• macOS
• iOS
• Android
• tvOS
• watchOS
• WebAssembly
Continued
• Open source and community-oriented on GitHub
• Cross-platform implementation
• Support for leveraging platform-specific capabilities
• High performance
• Side-by-side installation
• Small project files (SDK-style)
• Capable command-line interface (CLI)
• Visual Studio, VS for Mac, and VS Code integration
New
• More choice on runtime experiences
• Java interoperability available on all platforms
• Objective-C and Swift interoperability on multiple operating systems
• CoreFX will be extended to support static compilation of .NET
• AOT, smaller footprints & support for more operating systems
Conclusion
Questions Anyone?
Thank you!
@oscarvantol
oscarvantol.nl
www.linkedin.com/in/oscar-van-tol/
@rickvdbosch
rickvandenbosch.net
www.linkedin.com/in/rickvdbosch/

From .NET Core 3, all the rest will be legacy

  • 2.
    Who are theseguys? Oscar van Tol @oscarvantol Rick van den Bosch @rickvdbosch
  • 3.
    Agenda • History • Present •Full Framework • .NET Core • Demo's • Details • Future
  • 4.
  • 5.
    Late 90's, NoPlan • Brian Harry • Visual Source Safe • Managing Runtimes C++, VB, Foxpro (Windows features) • Anders Hejlsberg • Java (Sun lawsuit) • C Object Oriented Language (COOL) => C# • Common set of Base Class Libs • J# • Scott Guthrie • 1997 First job at Microsoft • NT Option pack • Prototyped ASP+ (using Java)
  • 6.
    PDC 2000 • .netis mentioned for the first time • Microsoft needed to be more open • C# and the runtime published as ECMA standard
  • 7.
    2002 • Windows XP •Visual Studio.net • .NET 1.0 / C#
  • 8.
    2003 • .NET 1.1ships • Bugfixes
  • 9.
    2005 • Visual Studio2005 • .NET 2.0 • 64bit • Nullable • Partial Classes • Anonymous Methods • Iterators • Generics • Brian Harry • Team Foundation Server
  • 10.
    2006 • .NET 3.0 •Windows Presentation Foundation • Windows Communication Foundation • Windows Workflow Foundation • Windows Cardspace
  • 11.
    2007 • Secret projectScott Guthrie (MVC) • Hires OSS Ninja Army • Rob Conery • Phil Haack • Scott Hanselman • Visual Studio 2008 • .NET 3.5 • LINQ
  • 12.
    2009 • .NET 4.0 •Parallel / Task library • Named params • Optional params
  • 13.
    2010 • Visual Studio2010 • F# • jQuery in the box
  • 14.
    2012 • //BUILD • Windows8 announced • .Net 4.5
  • 15.
    2013 • Visual Studio2013 • .NET 4.5.1 • Windows Azure => Microsoft Azure • Satya Nadella
  • 16.
    2014 • .NET Foundation •Roslyn OSS (xplat) • Typescript • Windows Free (small screens) Original post from December 19, 2014 We (Microsoft) generally don't give specific dates. However, I can say that ASP.NET 5 ("vNext") is being released as part of Visual Studio 2015, and so that means it's being released in 2015 (big surprise!). It is reasonably safe to assume a release in the early half of 2015. As you correctly noted, the GitHub repos for ASP.NET 5 now specify the RC milestone, which indicates that our main focus right now is on stability, and that the feature set for the RTM release is largely there. There are still features and designs being finalized, and anyone can of course see those going on in the individual repos.
  • 17.
  • 18.
    2016 Update for January19, 2016 ASP.NET 5 is now called ASP.NET Core 1.0. .NET Core 5 is now .NET Core 1.0. Entity Framework 7 is now EF Core 1.0 • June 2016 • .NET Core 1.0
  • 19.
  • 20.
  • 21.
    Let's see whatwe have .NET Framework
  • 22.
    .NET Framework 4.8 •included in Windows 10 May 2019 Update • also available on • Windows 7+ • Windows Server 2008 R2+.
  • 23.
    .NET 4.8 –New features 1/3 • Runtime • JIT improvements • NGEN improvements • Antimalware Scanning for All Assemblies • BCL • Updated Zlib • Reducing FIPS Impact on Cryptography
  • 24.
    .NET 4.8 –New features 2/3 • Windows Forms • Accessibility Enhancements • UIA LiveRegions Support in Labels and StatusStrips • UIA Notification Events • ToolTips on keyboard access • DataGridView control accessible hierarchy changes • WCF • ServiceHealthBehavior
  • 25.
    .NET 4.8 –New features 3/3 • WPF • Screen narrators no longer announce Collapsed or Hidden elements • SelectionTextBrush Property for use with Non-Adorner Based Text Selection • High DPI Enhancements • Support for UIAutomation ControllerFor property • Tooltips on keyboard access • Added Support for SizeOfSet and PositionInSet UIAutomation properties
  • 27.
    Let's see whatwe have .NET Core 3
  • 28.
    .NET Core 3.0 •Free and open source • C#, F# (Partially Visual Basic .NET) • Cross platform support (Windows, macOS, Linux)
  • 30.
    What can wedo in .NET Core 3 • ASP.NET • API • MVC • Razor pages • Blazor server • Blazor client • gRPC • SignalR • Windows Forms • WPF • Entity Framework
  • 31.
  • 33.
    Entity Framework EF Core3.0 • .NET Standard 2.1 • x-plat • Lightweight • C#8 • Async streams • nullable reference types • CosmosDb EF 6.3.0 • .NET Standard 2.1 • x-plat • Designer • Sql HierarchyId • Fully featured and compatible
  • 34.
    What about WCF?! •Full framework 4.8 • Core WCF • Rebuild to gRPC • Docs • Visual ReCode https://bit.ly/36mr1oV
  • 35.
    Let's see whatwe have .NET Standard
  • 36.
    .NET Standard The .NETStandard is a formal specification of .NET APIs that are intended to be available on all .NET implementations
  • 37.
  • 38.
    .NET Standard • Definesuniform set of BCL APIs for all .NET implementations to implement, independent of workload. • Enables developers to produce portable libraries that are usable across .NET implementations, using this same set of APIs. • Reduces or even eliminates conditional compilation of shared source due to .NET APIs, only for OS APIs.
  • 40.
    .NET Standard 2.1 •No longer supported on .NET Framework • .NET Core 3.0 • Mono 6.4 • Xamarin.iOS 12.16 • Xamarin.Mac 5.16 • Xamarin.Android 10 • An upcoming version Universal Windows Platform • An upcoming version Unity
  • 41.
    Let’s see whatwe have C#
  • 42.
    C# - 7.x •7.1 August 2017 (as part of VS 2017 15.3) • 7.2 December 2017 (as part of VS 2017 15.5) • 7.3 May 2018 (as part of VS 2017 15.7) • C# latest major version is the default
  • 43.
    C# - 8 •September 2019 (as part of VS 2019 16.3)
  • 44.
    C# 8 –Features & Enhancements • Readonly members • Default interface methods • Pattern matching enhancements: • Switch expressions • Property patterns • Tuple patterns • Positional patterns • Using declarations • Static local functions • Disposable ref structs • Nullable reference types • Asynchronous streams • Indices and ranges • Null-coalescing assignment • Unmanaged constructed types • Stackalloc in nested expressions • Enhancement of interpolated verbatim strings
  • 45.
  • 46.
    Where are wegoing? .NET
  • 47.
    .NET 5 • Nextrelease after .NET Core 3 (.NET Core vNext) • There will be just one .NET going forward • Windows • Linux • macOS • iOS • Android • tvOS • watchOS • WebAssembly
  • 48.
    Continued • Open sourceand community-oriented on GitHub • Cross-platform implementation • Support for leveraging platform-specific capabilities • High performance • Side-by-side installation • Small project files (SDK-style) • Capable command-line interface (CLI) • Visual Studio, VS for Mac, and VS Code integration
  • 49.
    New • More choiceon runtime experiences • Java interoperability available on all platforms • Objective-C and Swift interoperability on multiple operating systems • CoreFX will be extended to support static compilation of .NET • AOT, smaller footprints & support for more operating systems
  • 52.
  • 53.
  • 54.

Editor's Notes

  • #11 WPF, WCF, WF… wait, what? Explain why Windows Workflow Foundation was shortened to WF instead of WWF
  • #24 JIT based on .NET Core 2.1 Native Image Generator Previously only loaded from disk, now also for instance Assembly.Load(byte[]) Since 4.5 native version Zlib, updated key improvements and features Less ‘Works in my machine’
  • #25 ToolTips when using keyboard, LiveRegions and Notification Events to many commonly used controls notify screen readers of a text change raise UIA event: Narrator making an announcement - - a WCF service behavior that extends IServiceBehavior
  • #26 - - Per-Monitor V2 DPI Awareness and Mixed-Mode DPI scaling - - used by applications to describe the count of items in a set -> Screen reader
  • #30 The first four columns focus on APIs that also exist in .NET Framework The last two columns shows all APIs in either platform for reference By looking at the delta between the fourth and the fifth column, you can see that we also added a bunch of APIs that only exist in .NET Core (~60K).
  • #32 MVC/Api/Razor pages Blazor (server) gRPC Windows Forms
  • #45 https://docs.microsoft.com/en-us/dotnet/csharp/whats-new/csharp-8
  • #48 AND MORE!
  • #52 https://devblogs.microsoft.com/dotnet/introducing-net-5/