- 1. ASP.NET Core: The
best of the new bits
Ken Cenerelli
- 2. About Me
Twitter: @KenCenerelli
Email: Ken_Cenerelli@Outlook.com
Blog: kencenerelli.wordpress.com
LinkedIn: linkedin.com/in/kencenerelli
Bio:
Programmer Writer / Content Developer
Microsoft MVP - Visual Studio and
Development Technologies
Microsoft TechNet Wiki Guru
Co-Organizer of CTTDNUG
Technical reviewer of multiple books
CTTDNUG
Ken Cenerelli
- 3. .NET Core
First things first…
- 4. .NET 2016 – 10K foot view
Next gen JIT (RyuJIT)
SIMD
Runtime
Components Compilers
.NET Compiler Platform (Roslyn)
Languages innovation
.NET Core 1.0 Libraries
.NET Framework 4.6 Libraries
NuGet packages
.NET Framework 4.6 .NET Core 1.0
Full .NET Framework for any scenario and
library support on Windows
Modular libraries & runtime optimized for
server and cloud workloads
- 5. About .NET Core
• .NET Core is a subset of the .NET Framework
• Many .NET Framework components are not in .NET Core
• .NET Core is completely modularized. Each component is
distributed via NuGet
• Apps can be updated independently and do not rely on major
framework releases
• Deployment package includes everything needed to run
• .NET Core will run on Linux, Windows, and OSX
5
- 6. Two parts of .NET Core
•Runtime/Libraries:
• CLR, libraries, compilers, etc.
• Won’t change before RTM
•Tooling:
• Supports .NET Core and ASP.NET Core, including the new
command line tools and bits that plug into Visual Studio
& Visual Studio Code
• Will change before RTM
6
- 7. Differences
7
Feature .NET Framework .NET Core
Library Installation Centralised Distributed with each app
Updates
One big update. You better get
your app ready
Updates to framework are
independent of app.
Update NuGet packages
when you are ready
Platforms Windows is the only one for me
I love everyone!
Windows, OSX, Linux
Base Class Library
All the things! You get the entire
BCL
All the things!
You get the entire BCL
Credit: https://gooroo.io/GoorooTHINK/Article/16732/Introduction-to-NET-Core/22177
- 8. 8
Credit: opensource.com
- 9. Strange Times…
9
- 10. Visual Studio 2015 and ASP.NET Core:
Support for npm, bower, gulp, grunt, etc.
npm bower grunt gulp
- 11. Responsive and plug-in free
http://bradfrost.com/blog/post/this-is-the-web/
- 12. Responsive and plug-in free
http://bradfrost.com/blog/post/this-is-the-web/
- 13. Responsive and plug-in free
http://bradfrost.com/blog/post/this-is-the-web/
- 14. ASP.NET Core
- 15. What about ASP.NET 5?
• ASP.NET Core 1.0 was previously called ASP.NET 5
• It was renamed in January 2016
• You may still see it referred to as ASP.NET 5 in Visual
Studio and in some docs
• Was updated in latest ASP.NET Core Release Candidate 2
- 16. ASP.NET 4.6 and ASP.NET Core 1.0
- 17. ASP.NET Core 1.0 Roadmap
https://github.com/aspnet/home/wiki/roadmap
Milestone Release week
Beta6 27 Jul 2015
Beta7 2 Sep 2015
Beta8 15 Oct 2015
RC1 Nov 2015
RC2 mid-May 2016
1.0.0 late-June 2016
- 18. .NET 2016 – 10K foot view
Next gen JIT (RyuJIT)
SIMD
Runtime
Components Compilers
.NET Compiler Platform (Roslyn)
Languages innovation
.NET Core 1.0 Libraries
.NET Framework 4.6 Libraries
NuGet packages
.NET Framework 4.6 .NET Core 1.0
Full .NET Framework for any scenario and
library support on Windows
Modular libraries & runtime optimized for
server and cloud workloads
- 19. ASP.NET 2016 in a Nutshell
.NET Framework 4.6 .NET Core 1.0
Full .NET Framework for any scenario and
library support on Windows
Modular libraries & runtime optimized for
server and cloud workloads
- 20. ASP.NET Core 1.0 – Key Values
Choose your Editors
and Tools
Open Source
with Contributions Cross-PlatformOSS
Seamless transition
from on-premises to cloud
Faster Development CycleTotally Modular
Fast
- 21. ASP.NET Core ~ What is it?
21
• ASP.NET Core 1.0 is a console app
• In RC1, an ASP.NET application was a class library that contained a
Startup.cs class
• As of RC2, an ASP.NET Core application is a .NET Core Console application
that calls into ASP.NET specific libraries
• So code that used to live in the ASP.NET Hosting libraries and
automatically runs your Startup.cs now lives inside a Program.cs
- 22. ASP.NET Core ~ The features
• Hosting
• Kestrel, Startup
• Middleware
• Routing, authentication, static files, diagnostics, error
handling, session, CORS, localization, custom
• Dependency Injection
• Configuration
• Logging
• Identity
22
- 23. ASP.NET Core ~ Which editors & IDEs?
•Visual Studio 2015 Update 2 including Community
•Visual Studio Code with C# extension
•An OmniSharp-enabled editor:
23
• Atom • Emacs
• Brackets • Sublime Text
• Yeoman • Vim
- 24. ASP.NET Core ~ What can you do?
•ASP.NET
• MVC Web Apps in C#
• Web API apps
• Console apps
• .NET Core compatible class library
•Signal R and Web Pages are coming after RTM
24
- 25.
- 26. ASP.NET Core MVC
•One set of concepts – remove duplication
•Web UI and Web APIs
•Built on ASP.NET Core
•Supports .NET Core
•Runs on IIS or self-hosted
•Deep integration with DI
26
- 27. OWIN (Open Web Interface for .NET)
• OWIN in an open, community owned specification
• OWIN defines pluggable middleware and hosting
• ASP.NET 4.5 and ASP.NET Core 1.0 both support OWIN
- 28. Deployment portability
•Two main models:
• Portable Apps
• Self-contained Apps
28
- 29. Portable Apps
•Default application type in .NET Core
•Require .NET Core to be installed on the target
machine
•Your application is portable between installations of
.NET Core
•No need to decide upfront which OSes your app will
run on
29
- 30. Self-contained Apps
•All app dependencies, including the .NET Core
runtime, is part of the application
•The app is larger, but also capable of running on any
.NET Core supported platforms with the correct
native dependencies
•Need to make an explicit choice which platforms
your application needs to run on during dev
30
- 31. Setting Portability
• Portable: • Self Contained:
• Target .NET Core libraries
in project.json
• Remove any "type":
"platform" properties
• Add a runtimes node in
your project.json
• •
31
- 32. Tooling Changes
- 33. What’s new in ASP.NET Core RC2?
•.NET CLI (SDK) and IDE updates
•Tag Helpers
•IIS support baked in
•Host RC2 apps in Azure App Service
•Docker support with a new version of Docker Tools
for Visual Studio 2015
33
- 34. ASP.NET Core SDK
34
•The .NET Core SDK includes enough software to
build an app
•The SDK gives you both the .NET Core Tools and a
copy of .NET Core
•https://www.microsoft.com/net/core#windows
- 35. Demo
ASP.NET Core 1.0 from the SDK
- 36. ASP.NET Core IDE
•The best way to develop with .NET Core on Windows
is to download the Visual Studio official MSI Installer
and the latest NuGet Manager extension for Visual
Studio
•https://www.microsoft.com/net/core#windows
36
- 37. Demo
ASP.NET Core 1.0 from the IDE
- 38. TagHelpers: Evolution of HTML Forms
• HTML helpers expressed as tags
Ex. Instead of:
@Html.LabelFor(m => m.UserName, new { @class = "col-md-2 control-label" })
Write this:
<label asp-for="UserName" class="col-md-2 control-label"></label>
• Easier to customize with more attributes
• Work seamlessly with the HTML editor
• Markup now looks like HTML and it comes with full
IntelliSense
- 39. TagHelpers
- 40. Demo
TagHelpers
- 41. What about Entity Framework?
•EF6.x most current and runs on .NET Framework 4.6
•Entity Framework 7 renamed to Entity Framework
Core 1.0
•EF Core is a new code base that does not inherit all
the features and API surface of EF6.x
•EF6.x will continue to be a supported for some time
41
- 42. When to use EF Core?
•EF6.x will still be the most suitable choice for most
applications
•EF Core recommended for:
• New applications that do not need features that are not
yet implemented in EF Core
• Applications that target .NET Core, such as Universal
Windows Platform (UWP) and ASP.NET Core apps
42
- 43. Web APIs
- 44. In ASP.NET 4.6 – Separate Stack
- 45. In ASP.NET Core:
API services are an ASP.NET Core feature
- 46. Microsoft /web®
Sample Read-only Model and Controller
- 47. Microsoft /web®
Read-only Controller Actions to return data
- 48. Routing a Web API
- 49. Resources
Feedback and questions
http://asp.net
http://get.asp.net
http://docs.asp.net
http://aka.ms/webcamps-training-kit