SlideShare uma empresa Scribd logo
1 de 87
ASP.NET Core 2.1
Shahed Chowdhuri
Sr. Technical Evangelist @ Microsoft
@shahedC
WakeUpAndCode.com
Cross-Platform Web Apps
Agenda
Introduction
> .NET (Framework & Core)
> ASP.NET Core
> Visual Studio & VS Code
References + Wrap-up
Introduction
ASP.NET
Info and Downloads: http://www.asp.net/
.NET Core for Cross-Platform Dev
.NET Core: https://www.microsoft.com/net
.NET Across Windows/Web Platforms
http://blogs.msdn.com/b/dotnet/archive/2014/12/04/introducing-net-core.aspx
ASP.NET
Web API
Active
Server
Pages
(Classic
ASP)
ASP.NET
(Web
Forms)
ASP.NET
MVC
1/2/3/4/5
ASP.NET
Web Pages
Evolution of ASP and ASP .NET
ASP.NET
Core MVC
Unified
MVC, Web
API and
Razor
Web
Pages
Names & Version Numbers
C# 7.x in VS2017
https://docs.microsoft.com/en-us/dotnet/csharp/whats-new/
Agenda
Introduction
> .NET (Framework & Core)
> ASP.NET Core
> Visual Studio & VS Code
References + Wrap-up
.NET Framework
& .NET Core
ASP.NET Core High-Level Overview
Compilation Process
What About .NET Framework 4.6+?
Core is
4.7
ASP .NET Core
ASP.NET Core Features
ASP.NET Core Summary
Relevant XKCD Comic
https://xkcd.com/303/
ASP .NET Core MVC
MVC Web App Basics
Controller
Model
View
User Requests
Updates
Model
Gets
Data
Updates
View
MVC (Web) Controllers
public class HumanController : Controller
{
private readonly ApplicationDbContext _context;
public HumanController(ApplicationDbContext context) {}
// GET: Human, Human/Details/5
public async Task<IActionResult> Index() {}
public async Task<IActionResult> Details(int? id) {}
// GET: Human/Create
public IActionResult Create() {}
// POST: Human
[HttpPost]
[ValidateAntiForgeryToken]
public async Task<IActionResult> Create([Bind("Id,FirstName,LastName")] Human human) {}
// GET: Human/Edit/5
public async Task<IActionResult> Edit(int? id) {}
// POST: Human/Edit/5
[HttpPost]
[ValidateAntiForgeryToken]
public async Task<IActionResult> Edit(int id, [Bind("Id,FirstName,LastName")] Human human) {}
}
MVC (API) Controllers
public class ValuesController : Controller
{
// GET: api/Values, api/Values/5
[HttpGet]
public IEnumerable<string> Get() {}
[HttpGet("{id}", Name = "Get")]
public string Get(int id) {}
// POST: api/Values
[HttpPost]
public void Post([FromBody]string value) {}
// PUT: api/Values/5
[HttpPut("{id}")]
public void Put(int id, [FromBody]string value) {}
// DELETE: api/ApiWithActions/5
[HttpDelete("{id}")]
public void Delete(int id) {}
}
MVC (Web) Views
@model NiceStackWeb.Models.Human
@{
ViewData["Title"] = "Details";
}
<h2>Details</h2>
<div>
<h4>Human</h4>
<hr />
<dl class="dl-horizontal">
<dt>
@Html.DisplayNameFor(model => model.FirstName)
</dt>
<dd>
@Html.DisplayFor(model => model.FirstName)
</dd> ...
</dl>
</div>
<div>
<a asp-action="Edit" asp-route-id="@Model.Id">Edit</a> |
<a asp-action="Index">Back to List</a>
</div>
MVC Models
using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
public class Human
{
[Key]
public int Id { get; set; }
[DisplayName("First Name")]
public string FirstName { get; set; }
[DisplayName("First Name")]
public string LastName { get; set; }
}
New Razor Pages!
http://www.hishambinateya.com/welcome-razor-pages
Intro to Razor Pages
https://docs.microsoft.com/en-us/aspnet/core/mvc/razor-pages
Razor Syntax
SignalR in ASP.NET Core 2.1 (Preview)
https://blogs.msdn.microsoft.com/webdev/2018/02/27/asp-net-core-2-1-0-preview1-getting-started-with-signalr
using Microsoft.AspNetCore.SignalR;
namespace SignalRTutorial.Hubs
{
[Authorize]
public class ChatHub : Hub
{
public override async Task OnConnectedAsync()
{
await Clients.All.SendAsync("SendAction", Context.User.Identity.Name, "joined");
}
public override async Task OnDisconnectedAsync(Exception ex)
{
await Clients.All.SendAsync("SendAction", Context.User.Identity.Name, "left");
}
public async Task Send(string message)
{
await Clients.All.SendAsync("SendMessage", Context.User.Identity.Name, message);
}
}
}
ASP.NET Core 2.1: What’s New?
http://www.talkingdotnet.com/quick-summary-whats-new-asp-net-core-2-1/
ASP.NET Core 2.1: What’s New?
http://www.talkingdotnet.com/quick-summary-whats-new-asp-net-core-2-1/
• Real-time web development
• New Typescript client, jQuery
• Built-in Hub protocols:
• JSON-based for text
• MessagePack for binary
• Improved scale-out model
• Sticky sessions required
ASP.NET Core 2.1: What’s New?
http://www.talkingdotnet.com/quick-summary-whats-new-asp-net-core-2-1/
• UseHttpsRedirection by default
• HSTS protocol support (non-dev)
ASP.NET Core 2.1: What’s New?
http://www.talkingdotnet.com/quick-summary-whats-new-asp-net-core-2-1/
• New ApiController attribute
• Auto model validation
ASP.NET Core 2.1: What’s New?
http://www.talkingdotnet.com/quick-summary-whats-new-asp-net-core-2-1/
• Rich Swagger support
• Easier API documentation
ASP.NET Core 2.1: What’s New?
http://www.talkingdotnet.com/quick-summary-whats-new-asp-net-core-2-1/
• New type ActionResult<T>
• Indicate response type for any
action result
ASP.NET Core 2.1: What’s New?
http://www.talkingdotnet.com/quick-summary-whats-new-asp-net-core-2-1/
• HttpClient as a service
• Register, configure, consume
HttpClient instances
ASP.NET Core 2.1: What’s New?
http://www.talkingdotnet.com/quick-summary-whats-new-asp-net-core-2-1/
• ASP.NET Core (native IIS) Module
• Hooks into IIS pipeline
• Improved Performance
ASP.NET Core 2.1: What’s New?
http://www.talkingdotnet.com/quick-summary-whats-new-asp-net-core-2-1/
• Default UI implemented in a library
• Available as NuGet package
• Enable via Startup class
ASP.NET Core 2.1: What’s New?
http://www.talkingdotnet.com/quick-summary-whats-new-asp-net-core-2-1/
• Compliance for EU General Data
Protection Regulation reqts
• Request user consent for info
ASP.NET Core 2.1: What’s New?
http://www.talkingdotnet.com/quick-summary-whats-new-asp-net-core-2-1/
• Mix authentication schemes
• e.g. Bearer tokens, cookie auth
ASP.NET Core 2.1: What’s New?
http://www.talkingdotnet.com/quick-summary-whats-new-asp-net-core-2-1/
• Compiled during build process
• Improved startup performance
ASP.NET Core 2.1: What’s New?
http://www.talkingdotnet.com/quick-summary-whats-new-asp-net-core-2-1/
• Razor UI as class library
• Share across projects
• Share as Nuget package
ASP.NET Core 2.1: What’s New?
http://www.talkingdotnet.com/quick-summary-whats-new-asp-net-core-2-1/
• Improved end-to-end testing
• e.g. routing, filters, controllers,
actions, views and pages
How about Entity Framework?
DB
ORM
Entities
in Code
Core
)
4.6+
4.6+
Visual Studio 2017
& VS Code
New Installer!
File  New Project  Web
• ASP .NET Core Web App
• Web App (4.x)
Select a Template
1.0 , 1.1, 2.0 Templates
• Empty
• Web API
• Web App (Razor)
• Web App (MVC)
• Angular
• React.js
• React.js & Redux
Other settings:
• Authentication
• Docker Support
VS 2017 Preview with ASP.NET Core 2.1
https://www.visualstudio.com/vs/preview/
.NET Core SDK 2.1.300-preview1
https://www.microsoft.com/net/download/dotnet-core/sdk-2.1.300-preview1
Select a Template (VS 2017 Preview)
Also includes:
ASP .NET Core 2.1
ASP.NET Core Runtime Extension on Azure
https://blogs.msdn.microsoft.com/webdev/2018/02/27/asp-net-core-2-1-0-preview1-using-asp-net-core-previews-on-azure-app-service/
Visual Studio Code
Download https://code.visualstudio.com
Startup.cs Configuration
project.json
.csproj project file 2.0
.csproj project file 2.1
https://github.com/aspnet/Announcements/issues/287
Right-click  (Project) Properties
Choose Profile While Debugging
Live Unit Testing
https://blogs.msdn.microsoft.com/visualstudio/2016/11/18/live-unit-testing-visual-studio-2017-rc/
DEMO
Migrating from MVC to MVC Core
https://docs.microsoft.com/en-us/aspnet/core/migration/mvc
dotnet/cli on GitHub
This repo
contains
the .NET
Core
command-
line (CLI)
tools, used
for
building
.NET Core
apps and
libraries.
GitHub: https://github.com/dotnet/cli
.NET Core 2.x CLI Commands
https://docs.microsoft.com/en-us/dotnet/core/tools/?tabs=netcore2x
>dotnet --version
>dotnet --info
>dotnet new <TEMPLATE> --auth <AUTH_TYPE> -o <OUTPUT_DIR>
>dotnet new console -o MyConsoleApp
>dotnet new mvc --auth Individual -o MyMvcWebApp
>dotnet restore
>dotnet build
>dotnet run
<TEMPLATE> = web | mvc | razor | angular | react | webapi
<AUTH_TYPE> for mvc,razor = None | Individual | SingleOrg | Windows
Azure CLI Commands
https://docs.microsoft.com/en-us/azure/app-service/scripts/app-service-cli-deploy-github
>az login
>az group create -l <REGION> -n <RSG>
>az appservice plan create -g <RSG> -n <ASP> --sku <PLAN> (e.g. F1)
>az webapp create -g <RSG> -p <ASP> -n <APP>
>git init
>git add .
>git commit -m "<COMMIT MESSAGE>“
>az webapp deployment user set --user-name <USER>
>az webapp deployment source config-local-git -g <RSG> -n <APP> --out tsv
>git remote add azure <GIT URL>
>git push azure master
RESULT  http://<APP>.azurewebsites.net
GIT URL  https://<USER>@<APP>.scm.azurewebsites.net/<APP>.git
Agenda
Introduction
> .NET (Framework & Core)
> ASP.NET Core
> Visual Studio & VS Code
References + Wrap-up
References
& Wrap-up
Blog Sources
Scott Hanselman’s Blog: https://www.hanselman.com/blog/
.NET Web Dev Blog: https://blogs.msdn.microsoft.com/webdev/
Visual Studio 2017 Launch Videos
https://channel9.msdn.com/Events/Visual-Studio/Visual-Studio-2017-Launch?sort=viewed&direction=asc
Build 2017: ASP .NET Core 2.0
https://channel9.msdn.com/Events/Build/2017/b8048
.NET Core 2.1 Roadmap PT.1
https://channel9.msdn.com/Shows/On-NET/NET-Core-21-Roadmap-PT1
.NET Core 2.1 Roadmap PT.2
https://channel9.msdn.com/Shows/On-NET/NET-Core-21-Roadmap-PT2
Build Conference 2018 http://build.microsoft.com
Jeff Fritz on YouTube
https://www.youtube.com/watch?v=Oriqg6qC4hc
Other Video Sources
MSDN Channel 9: https://channel9.msdn.com
.NET Conf: http://www.dotnetconf.net
Docs + Tutorials
Tutorials: https://docs.microsoft.com/en-us/aspnet/core/tutorials/first-mvc-app/
Docs: https://blogs.msdn.microsoft.com/webdev/2017/02/07/asp-net-documentation-now-on-docs-microsoft-com/
ASP.NET Core 2.0 Release
https://blogs.msdn.microsoft.com/webdev/2017/08/14/announcing-asp-net-core-2-0/
ASP.NET Core 2.1 Roadmap
https://blogs.msdn.microsoft.com/webdev/2018/02/02/asp-net-core-2-1-roadmap/
.NET Core Roadmap
https://github.com/dotnet/core/blob/master/roadmap.md
MEAN Stack…?
81
NICE Stack!
•.NET
•IIS (optional)
•C#
•Entity Framework
nicestack.io
82
References
• ASP .NET: http://www.asp.net
• .NET Core: https://www.microsoft.com/net
• .NET Web Dev Blog: https://blogs.msdn.microsoft.com/webdev
• Scott Hanselman’s Blog: https://www.hanselman.com/blog
• .NET Conf: http://www.dotnetconf.net
• MSDN Channel 9: https://channel9.msdn.com
• Tutorials: https://docs.microsoft.com/en-us/aspnet/core/tutorials/first-mvc-app
• C# 7: https://docs.microsoft.com/en-us/dotnet/articles/csharp/csharp-7
• ASP.NET Core Roadmap: https://github.com/aspnet/Home/wiki/Roadmap
• .NET Core Roadmap: https://github.com/dotnet/core/blob/master/roadmap.md
Other Resources
• New Razor Pages: http://www.hishambinateya.com/welcome-razor-pages
• Intro to Razor: https://docs.microsoft.com/en-us/aspnet/core/mvc/razor-pages
• Live Unit Testing: https://blogs.msdn.microsoft.com/visualstudio/2016/11/18/live-
unit-testing-visual-studio-2017-rc
• Migrating from MVC to MVC Core: https://docs.microsoft.com/en-
us/aspnet/core/migration/mvc
• Visual Studio Code: https://code.visualstudio.com
• dotnet/cli on GitHub: https://github.com/dotnet/cli
Q & A
Agenda
Introduction
> .NET (Framework & Core)
> ASP.NET Core
> Visual Studio & VS Code
References + Wrap-up
Email: shchowd@microsoft.com  Twitter: @shahedC

Mais conteúdo relacionado

Mais procurados

Automating Web Application Deployment
Automating Web Application DeploymentAutomating Web Application Deployment
Automating Web Application Deployment
Mathew Byrne
 

Mais procurados (20)

ASP.NET Core MVC + Web API with Overview
ASP.NET Core MVC + Web API with OverviewASP.NET Core MVC + Web API with Overview
ASP.NET Core MVC + Web API with Overview
 
SPUnite17 Timer Jobs Event Handlers
SPUnite17 Timer Jobs Event HandlersSPUnite17 Timer Jobs Event Handlers
SPUnite17 Timer Jobs Event Handlers
 
SharePoint Development with the SharePoint Framework
SharePoint Development with the SharePoint FrameworkSharePoint Development with the SharePoint Framework
SharePoint Development with the SharePoint Framework
 
Application Lifecycle Management for Office 365 development
Application Lifecycle Management for Office 365 developmentApplication Lifecycle Management for Office 365 development
Application Lifecycle Management for Office 365 development
 
Microsoft Azure WebJobs
Microsoft Azure WebJobsMicrosoft Azure WebJobs
Microsoft Azure WebJobs
 
Asp.net core 1.0 (Peter Himschoot)
Asp.net core 1.0 (Peter Himschoot)Asp.net core 1.0 (Peter Himschoot)
Asp.net core 1.0 (Peter Himschoot)
 
Chris OBrien - Pitfalls when developing with the SharePoint Framework (SPFx)
Chris OBrien - Pitfalls when developing with the SharePoint Framework (SPFx)Chris OBrien - Pitfalls when developing with the SharePoint Framework (SPFx)
Chris OBrien - Pitfalls when developing with the SharePoint Framework (SPFx)
 
Develop and Run PHP on Windows. Say(Hello); to WordPress on Azure
Develop and Run PHP on Windows. Say(Hello); to WordPress on AzureDevelop and Run PHP on Windows. Say(Hello); to WordPress on Azure
Develop and Run PHP on Windows. Say(Hello); to WordPress on Azure
 
Meetup Comunidad TESH: My SPFx slides
Meetup Comunidad TESH: My SPFx slidesMeetup Comunidad TESH: My SPFx slides
Meetup Comunidad TESH: My SPFx slides
 
Best of Microsoft Dev Camp 2015
Best of Microsoft Dev Camp 2015Best of Microsoft Dev Camp 2015
Best of Microsoft Dev Camp 2015
 
TypeScript and SharePoint Framework
TypeScript and SharePoint FrameworkTypeScript and SharePoint Framework
TypeScript and SharePoint Framework
 
Chris O'Brien - Modern SharePoint sites and the SharePoint Framework - reference
Chris O'Brien - Modern SharePoint sites and the SharePoint Framework - referenceChris O'Brien - Modern SharePoint sites and the SharePoint Framework - reference
Chris O'Brien - Modern SharePoint sites and the SharePoint Framework - reference
 
Introduction to SharePoint Framework (SPFx)
Introduction to SharePoint Framework (SPFx)Introduction to SharePoint Framework (SPFx)
Introduction to SharePoint Framework (SPFx)
 
Future of SharePoint Dev SPFx Extensions
Future of SharePoint Dev   SPFx ExtensionsFuture of SharePoint Dev   SPFx Extensions
Future of SharePoint Dev SPFx Extensions
 
Angular.js in XPages
Angular.js in XPagesAngular.js in XPages
Angular.js in XPages
 
Php on azure
Php on azurePhp on azure
Php on azure
 
Automating Web Application Deployment
Automating Web Application DeploymentAutomating Web Application Deployment
Automating Web Application Deployment
 
Low-Code Testing Tool
Low-Code Testing ToolLow-Code Testing Tool
Low-Code Testing Tool
 
Angular on ASP.NET MVC 6
Angular on ASP.NET MVC 6Angular on ASP.NET MVC 6
Angular on ASP.NET MVC 6
 
Application innovation & Developer Productivity
Application innovation & Developer ProductivityApplication innovation & Developer Productivity
Application innovation & Developer Productivity
 

Semelhante a ASP.NET Core 2.1: The Future of Web Apps

Websites, Web Services and Cloud Applications with Visual Studio
Websites, Web Services and Cloud Applications with Visual StudioWebsites, Web Services and Cloud Applications with Visual Studio
Websites, Web Services and Cloud Applications with Visual Studio
Microsoft Visual Studio
 
Creating Dynamic Web Application Using ASP.Net 3 5_MVP Alezandra Buencamino N...
Creating Dynamic Web Application Using ASP.Net 3 5_MVP Alezandra Buencamino N...Creating Dynamic Web Application Using ASP.Net 3 5_MVP Alezandra Buencamino N...
Creating Dynamic Web Application Using ASP.Net 3 5_MVP Alezandra Buencamino N...
Quek Lilian
 
SoCal Code Camp 2011 - ASP.NET MVC 4
SoCal Code Camp 2011 - ASP.NET MVC 4SoCal Code Camp 2011 - ASP.NET MVC 4
SoCal Code Camp 2011 - ASP.NET MVC 4
Jon Galloway
 

Semelhante a ASP.NET Core 2.1: The Future of Web Apps (20)

Getting Started with ASP.NET Core 1.0 (formerly ASP.NET 5)
Getting Started with ASP.NET Core 1.0 (formerly ASP.NET 5)Getting Started with ASP.NET Core 1.0 (formerly ASP.NET 5)
Getting Started with ASP.NET Core 1.0 (formerly ASP.NET 5)
 
ASP .Net Core SPA Templates
ASP .Net Core SPA TemplatesASP .Net Core SPA Templates
ASP .Net Core SPA Templates
 
ASP.NET Core 1.0 Overview
ASP.NET Core 1.0 OverviewASP.NET Core 1.0 Overview
ASP.NET Core 1.0 Overview
 
ASP.NET Core 1.0 Overview
ASP.NET Core 1.0 OverviewASP.NET Core 1.0 Overview
ASP.NET Core 1.0 Overview
 
Deploying windows containers with kubernetes
Deploying windows containers with kubernetesDeploying windows containers with kubernetes
Deploying windows containers with kubernetes
 
Websites, Web Services and Cloud Applications with Visual Studio
Websites, Web Services and Cloud Applications with Visual StudioWebsites, Web Services and Cloud Applications with Visual Studio
Websites, Web Services and Cloud Applications with Visual Studio
 
ASP.NET Core 1.0 Overview: Post-RC2
ASP.NET Core 1.0 Overview: Post-RC2ASP.NET Core 1.0 Overview: Post-RC2
ASP.NET Core 1.0 Overview: Post-RC2
 
.NET Fest 2017. Андрей Антиликаторов. Проектирование и разработка приложений ...
.NET Fest 2017. Андрей Антиликаторов. Проектирование и разработка приложений ....NET Fest 2017. Андрей Антиликаторов. Проектирование и разработка приложений ...
.NET Fest 2017. Андрей Антиликаторов. Проектирование и разработка приложений ...
 
ASP.NET Presentation
ASP.NET PresentationASP.NET Presentation
ASP.NET Presentation
 
Introduction to ASP.NET Core
Introduction to ASP.NET CoreIntroduction to ASP.NET Core
Introduction to ASP.NET Core
 
ASP.NET Core 1.0 Overview: Pre-RC2
ASP.NET Core 1.0 Overview: Pre-RC2ASP.NET Core 1.0 Overview: Pre-RC2
ASP.NET Core 1.0 Overview: Pre-RC2
 
Learning ASP.NET 5 and MVC 6
Learning ASP.NET 5 and MVC 6Learning ASP.NET 5 and MVC 6
Learning ASP.NET 5 and MVC 6
 
ASP.NET Core 1.0
ASP.NET Core 1.0ASP.NET Core 1.0
ASP.NET Core 1.0
 
The next step from Microsoft - Vnext (Srdjan Poznic)
The next step from Microsoft - Vnext (Srdjan Poznic)The next step from Microsoft - Vnext (Srdjan Poznic)
The next step from Microsoft - Vnext (Srdjan Poznic)
 
Creating Dynamic Web Application Using ASP.Net 3 5_MVP Alezandra Buencamino N...
Creating Dynamic Web Application Using ASP.Net 3 5_MVP Alezandra Buencamino N...Creating Dynamic Web Application Using ASP.Net 3 5_MVP Alezandra Buencamino N...
Creating Dynamic Web Application Using ASP.Net 3 5_MVP Alezandra Buencamino N...
 
The Future of ASP.NET
The Future of ASP.NETThe Future of ASP.NET
The Future of ASP.NET
 
.NET Core, ASP.NET Core Course, Session 18
 .NET Core, ASP.NET Core Course, Session 18 .NET Core, ASP.NET Core Course, Session 18
.NET Core, ASP.NET Core Course, Session 18
 
Vijay Oscon
Vijay OsconVijay Oscon
Vijay Oscon
 
SoCal Code Camp 2011 - ASP.NET MVC 4
SoCal Code Camp 2011 - ASP.NET MVC 4SoCal Code Camp 2011 - ASP.NET MVC 4
SoCal Code Camp 2011 - ASP.NET MVC 4
 
Deep Dive OpenShitt on Azure & .NET Core on OpenShift
Deep Dive OpenShitt on Azure & .NET Core on OpenShiftDeep Dive OpenShitt on Azure & .NET Core on OpenShift
Deep Dive OpenShitt on Azure & .NET Core on OpenShift
 

Mais de Shahed Chowdhuri

Mais de Shahed Chowdhuri (20)

Cloud-Backed Mixed Reality: HoloLens & Azure Cognitive Services
Cloud-Backed Mixed Reality: HoloLens & Azure Cognitive ServicesCloud-Backed Mixed Reality: HoloLens & Azure Cognitive Services
Cloud-Backed Mixed Reality: HoloLens & Azure Cognitive Services
 
Cloud-Backed Mixed Reality with HoloLens & Azure Cognitive Services
Cloud-Backed Mixed Reality with HoloLens & Azure Cognitive ServicesCloud-Backed Mixed Reality with HoloLens & Azure Cognitive Services
Cloud-Backed Mixed Reality with HoloLens & Azure Cognitive Services
 
Microsoft Cognitive Services
Microsoft Cognitive ServicesMicrosoft Cognitive Services
Microsoft Cognitive Services
 
Intro to Bot Framework v3 with DB
Intro to Bot Framework v3 with DBIntro to Bot Framework v3 with DB
Intro to Bot Framework v3 with DB
 
Game On with Windows & Xbox One @ .NET Conf UY
Game On with Windows & Xbox One @ .NET Conf UYGame On with Windows & Xbox One @ .NET Conf UY
Game On with Windows & Xbox One @ .NET Conf UY
 
Game On with Windows & Xbox One!
Game On with Windows & Xbox One!Game On with Windows & Xbox One!
Game On with Windows & Xbox One!
 
Going Serverless with Azure Functions
Going Serverless with Azure FunctionsGoing Serverless with Azure Functions
Going Serverless with Azure Functions
 
Azure for Hackathons
Azure for HackathonsAzure for Hackathons
Azure for Hackathons
 
Intro to Xamarin: Cross-Platform Mobile Application Development
Intro to Xamarin: Cross-Platform Mobile Application DevelopmentIntro to Xamarin: Cross-Platform Mobile Application Development
Intro to Xamarin: Cross-Platform Mobile Application Development
 
Xbox One Dev Mode
Xbox One Dev ModeXbox One Dev Mode
Xbox One Dev Mode
 
What's New at Microsoft?
What's New at Microsoft?What's New at Microsoft?
What's New at Microsoft?
 
Capture the Cloud with Azure
Capture the Cloud with AzureCapture the Cloud with Azure
Capture the Cloud with Azure
 
Intro to HoloLens Development + Windows Mixed Reality
Intro to HoloLens Development + Windows Mixed RealityIntro to HoloLens Development + Windows Mixed Reality
Intro to HoloLens Development + Windows Mixed Reality
 
Intro to Bot Framework v3
Intro to Bot Framework v3Intro to Bot Framework v3
Intro to Bot Framework v3
 
Azure: PaaS or IaaS
Azure: PaaS or IaaSAzure: PaaS or IaaS
Azure: PaaS or IaaS
 
Capture the Cloud with Azure
Capture the Cloud with AzureCapture the Cloud with Azure
Capture the Cloud with Azure
 
Intro to HoloLens Development
Intro to HoloLens DevelopmentIntro to HoloLens Development
Intro to HoloLens Development
 
Intro to Bot Framework
Intro to Bot FrameworkIntro to Bot Framework
Intro to Bot Framework
 
Xbox One Dev Mode
Xbox One Dev ModeXbox One Dev Mode
Xbox One Dev Mode
 
Intro to Xamarin
Intro to XamarinIntro to Xamarin
Intro to Xamarin
 

Último

Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 

Último (20)

Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
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
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
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
 
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, ...
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Cyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdfCyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdf
 
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
 
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
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
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...
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 

ASP.NET Core 2.1: The Future of Web Apps

  • 1. ASP.NET Core 2.1 Shahed Chowdhuri Sr. Technical Evangelist @ Microsoft @shahedC WakeUpAndCode.com Cross-Platform Web Apps
  • 2. Agenda Introduction > .NET (Framework & Core) > ASP.NET Core > Visual Studio & VS Code References + Wrap-up
  • 4. ASP.NET Info and Downloads: http://www.asp.net/
  • 5. .NET Core for Cross-Platform Dev .NET Core: https://www.microsoft.com/net
  • 6. .NET Across Windows/Web Platforms http://blogs.msdn.com/b/dotnet/archive/2014/12/04/introducing-net-core.aspx
  • 7.
  • 8. ASP.NET Web API Active Server Pages (Classic ASP) ASP.NET (Web Forms) ASP.NET MVC 1/2/3/4/5 ASP.NET Web Pages Evolution of ASP and ASP .NET ASP.NET Core MVC Unified MVC, Web API and Razor Web Pages
  • 9. Names & Version Numbers
  • 10. C# 7.x in VS2017 https://docs.microsoft.com/en-us/dotnet/csharp/whats-new/
  • 11. Agenda Introduction > .NET (Framework & Core) > ASP.NET Core > Visual Studio & VS Code References + Wrap-up
  • 15. What About .NET Framework 4.6+? Core is 4.7
  • 21. MVC Web App Basics Controller Model View User Requests Updates Model Gets Data Updates View
  • 22. MVC (Web) Controllers public class HumanController : Controller { private readonly ApplicationDbContext _context; public HumanController(ApplicationDbContext context) {} // GET: Human, Human/Details/5 public async Task<IActionResult> Index() {} public async Task<IActionResult> Details(int? id) {} // GET: Human/Create public IActionResult Create() {} // POST: Human [HttpPost] [ValidateAntiForgeryToken] public async Task<IActionResult> Create([Bind("Id,FirstName,LastName")] Human human) {} // GET: Human/Edit/5 public async Task<IActionResult> Edit(int? id) {} // POST: Human/Edit/5 [HttpPost] [ValidateAntiForgeryToken] public async Task<IActionResult> Edit(int id, [Bind("Id,FirstName,LastName")] Human human) {} }
  • 23. MVC (API) Controllers public class ValuesController : Controller { // GET: api/Values, api/Values/5 [HttpGet] public IEnumerable<string> Get() {} [HttpGet("{id}", Name = "Get")] public string Get(int id) {} // POST: api/Values [HttpPost] public void Post([FromBody]string value) {} // PUT: api/Values/5 [HttpPut("{id}")] public void Put(int id, [FromBody]string value) {} // DELETE: api/ApiWithActions/5 [HttpDelete("{id}")] public void Delete(int id) {} }
  • 24. MVC (Web) Views @model NiceStackWeb.Models.Human @{ ViewData["Title"] = "Details"; } <h2>Details</h2> <div> <h4>Human</h4> <hr /> <dl class="dl-horizontal"> <dt> @Html.DisplayNameFor(model => model.FirstName) </dt> <dd> @Html.DisplayFor(model => model.FirstName) </dd> ... </dl> </div> <div> <a asp-action="Edit" asp-route-id="@Model.Id">Edit</a> | <a asp-action="Index">Back to List</a> </div>
  • 25. MVC Models using System.ComponentModel; using System.ComponentModel.DataAnnotations; public class Human { [Key] public int Id { get; set; } [DisplayName("First Name")] public string FirstName { get; set; } [DisplayName("First Name")] public string LastName { get; set; } }
  • 27. Intro to Razor Pages https://docs.microsoft.com/en-us/aspnet/core/mvc/razor-pages
  • 29. SignalR in ASP.NET Core 2.1 (Preview) https://blogs.msdn.microsoft.com/webdev/2018/02/27/asp-net-core-2-1-0-preview1-getting-started-with-signalr using Microsoft.AspNetCore.SignalR; namespace SignalRTutorial.Hubs { [Authorize] public class ChatHub : Hub { public override async Task OnConnectedAsync() { await Clients.All.SendAsync("SendAction", Context.User.Identity.Name, "joined"); } public override async Task OnDisconnectedAsync(Exception ex) { await Clients.All.SendAsync("SendAction", Context.User.Identity.Name, "left"); } public async Task Send(string message) { await Clients.All.SendAsync("SendMessage", Context.User.Identity.Name, message); } } }
  • 30. ASP.NET Core 2.1: What’s New? http://www.talkingdotnet.com/quick-summary-whats-new-asp-net-core-2-1/
  • 31. ASP.NET Core 2.1: What’s New? http://www.talkingdotnet.com/quick-summary-whats-new-asp-net-core-2-1/ • Real-time web development • New Typescript client, jQuery • Built-in Hub protocols: • JSON-based for text • MessagePack for binary • Improved scale-out model • Sticky sessions required
  • 32. ASP.NET Core 2.1: What’s New? http://www.talkingdotnet.com/quick-summary-whats-new-asp-net-core-2-1/ • UseHttpsRedirection by default • HSTS protocol support (non-dev)
  • 33. ASP.NET Core 2.1: What’s New? http://www.talkingdotnet.com/quick-summary-whats-new-asp-net-core-2-1/ • New ApiController attribute • Auto model validation
  • 34. ASP.NET Core 2.1: What’s New? http://www.talkingdotnet.com/quick-summary-whats-new-asp-net-core-2-1/ • Rich Swagger support • Easier API documentation
  • 35. ASP.NET Core 2.1: What’s New? http://www.talkingdotnet.com/quick-summary-whats-new-asp-net-core-2-1/ • New type ActionResult<T> • Indicate response type for any action result
  • 36. ASP.NET Core 2.1: What’s New? http://www.talkingdotnet.com/quick-summary-whats-new-asp-net-core-2-1/ • HttpClient as a service • Register, configure, consume HttpClient instances
  • 37. ASP.NET Core 2.1: What’s New? http://www.talkingdotnet.com/quick-summary-whats-new-asp-net-core-2-1/ • ASP.NET Core (native IIS) Module • Hooks into IIS pipeline • Improved Performance
  • 38. ASP.NET Core 2.1: What’s New? http://www.talkingdotnet.com/quick-summary-whats-new-asp-net-core-2-1/ • Default UI implemented in a library • Available as NuGet package • Enable via Startup class
  • 39. ASP.NET Core 2.1: What’s New? http://www.talkingdotnet.com/quick-summary-whats-new-asp-net-core-2-1/ • Compliance for EU General Data Protection Regulation reqts • Request user consent for info
  • 40. ASP.NET Core 2.1: What’s New? http://www.talkingdotnet.com/quick-summary-whats-new-asp-net-core-2-1/ • Mix authentication schemes • e.g. Bearer tokens, cookie auth
  • 41. ASP.NET Core 2.1: What’s New? http://www.talkingdotnet.com/quick-summary-whats-new-asp-net-core-2-1/ • Compiled during build process • Improved startup performance
  • 42. ASP.NET Core 2.1: What’s New? http://www.talkingdotnet.com/quick-summary-whats-new-asp-net-core-2-1/ • Razor UI as class library • Share across projects • Share as Nuget package
  • 43. ASP.NET Core 2.1: What’s New? http://www.talkingdotnet.com/quick-summary-whats-new-asp-net-core-2-1/ • Improved end-to-end testing • e.g. routing, filters, controllers, actions, views and pages
  • 44. How about Entity Framework? DB ORM Entities in Code Core ) 4.6+ 4.6+
  • 45.
  • 48. File  New Project  Web • ASP .NET Core Web App • Web App (4.x)
  • 49. Select a Template 1.0 , 1.1, 2.0 Templates • Empty • Web API • Web App (Razor) • Web App (MVC) • Angular • React.js • React.js & Redux Other settings: • Authentication • Docker Support
  • 50. VS 2017 Preview with ASP.NET Core 2.1 https://www.visualstudio.com/vs/preview/
  • 51. .NET Core SDK 2.1.300-preview1 https://www.microsoft.com/net/download/dotnet-core/sdk-2.1.300-preview1
  • 52. Select a Template (VS 2017 Preview) Also includes: ASP .NET Core 2.1
  • 53. ASP.NET Core Runtime Extension on Azure https://blogs.msdn.microsoft.com/webdev/2018/02/27/asp-net-core-2-1-0-preview1-using-asp-net-core-previews-on-azure-app-service/
  • 54. Visual Studio Code Download https://code.visualstudio.com
  • 58. .csproj project file 2.1 https://github.com/aspnet/Announcements/issues/287
  • 60. Choose Profile While Debugging
  • 62. DEMO
  • 63. Migrating from MVC to MVC Core https://docs.microsoft.com/en-us/aspnet/core/migration/mvc
  • 64. dotnet/cli on GitHub This repo contains the .NET Core command- line (CLI) tools, used for building .NET Core apps and libraries. GitHub: https://github.com/dotnet/cli
  • 65. .NET Core 2.x CLI Commands https://docs.microsoft.com/en-us/dotnet/core/tools/?tabs=netcore2x >dotnet --version >dotnet --info >dotnet new <TEMPLATE> --auth <AUTH_TYPE> -o <OUTPUT_DIR> >dotnet new console -o MyConsoleApp >dotnet new mvc --auth Individual -o MyMvcWebApp >dotnet restore >dotnet build >dotnet run <TEMPLATE> = web | mvc | razor | angular | react | webapi <AUTH_TYPE> for mvc,razor = None | Individual | SingleOrg | Windows
  • 66. Azure CLI Commands https://docs.microsoft.com/en-us/azure/app-service/scripts/app-service-cli-deploy-github >az login >az group create -l <REGION> -n <RSG> >az appservice plan create -g <RSG> -n <ASP> --sku <PLAN> (e.g. F1) >az webapp create -g <RSG> -p <ASP> -n <APP> >git init >git add . >git commit -m "<COMMIT MESSAGE>“ >az webapp deployment user set --user-name <USER> >az webapp deployment source config-local-git -g <RSG> -n <APP> --out tsv >git remote add azure <GIT URL> >git push azure master RESULT  http://<APP>.azurewebsites.net GIT URL  https://<USER>@<APP>.scm.azurewebsites.net/<APP>.git
  • 67. Agenda Introduction > .NET (Framework & Core) > ASP.NET Core > Visual Studio & VS Code References + Wrap-up
  • 69. Blog Sources Scott Hanselman’s Blog: https://www.hanselman.com/blog/ .NET Web Dev Blog: https://blogs.msdn.microsoft.com/webdev/
  • 70. Visual Studio 2017 Launch Videos https://channel9.msdn.com/Events/Visual-Studio/Visual-Studio-2017-Launch?sort=viewed&direction=asc
  • 71. Build 2017: ASP .NET Core 2.0 https://channel9.msdn.com/Events/Build/2017/b8048
  • 72. .NET Core 2.1 Roadmap PT.1 https://channel9.msdn.com/Shows/On-NET/NET-Core-21-Roadmap-PT1
  • 73. .NET Core 2.1 Roadmap PT.2 https://channel9.msdn.com/Shows/On-NET/NET-Core-21-Roadmap-PT2
  • 74. Build Conference 2018 http://build.microsoft.com
  • 75. Jeff Fritz on YouTube https://www.youtube.com/watch?v=Oriqg6qC4hc
  • 76. Other Video Sources MSDN Channel 9: https://channel9.msdn.com .NET Conf: http://www.dotnetconf.net
  • 77. Docs + Tutorials Tutorials: https://docs.microsoft.com/en-us/aspnet/core/tutorials/first-mvc-app/ Docs: https://blogs.msdn.microsoft.com/webdev/2017/02/07/asp-net-documentation-now-on-docs-microsoft-com/
  • 78. ASP.NET Core 2.0 Release https://blogs.msdn.microsoft.com/webdev/2017/08/14/announcing-asp-net-core-2-0/
  • 79. ASP.NET Core 2.1 Roadmap https://blogs.msdn.microsoft.com/webdev/2018/02/02/asp-net-core-2-1-roadmap/
  • 83. References • ASP .NET: http://www.asp.net • .NET Core: https://www.microsoft.com/net • .NET Web Dev Blog: https://blogs.msdn.microsoft.com/webdev • Scott Hanselman’s Blog: https://www.hanselman.com/blog • .NET Conf: http://www.dotnetconf.net • MSDN Channel 9: https://channel9.msdn.com • Tutorials: https://docs.microsoft.com/en-us/aspnet/core/tutorials/first-mvc-app • C# 7: https://docs.microsoft.com/en-us/dotnet/articles/csharp/csharp-7 • ASP.NET Core Roadmap: https://github.com/aspnet/Home/wiki/Roadmap • .NET Core Roadmap: https://github.com/dotnet/core/blob/master/roadmap.md
  • 84. Other Resources • New Razor Pages: http://www.hishambinateya.com/welcome-razor-pages • Intro to Razor: https://docs.microsoft.com/en-us/aspnet/core/mvc/razor-pages • Live Unit Testing: https://blogs.msdn.microsoft.com/visualstudio/2016/11/18/live- unit-testing-visual-studio-2017-rc • Migrating from MVC to MVC Core: https://docs.microsoft.com/en- us/aspnet/core/migration/mvc • Visual Studio Code: https://code.visualstudio.com • dotnet/cli on GitHub: https://github.com/dotnet/cli
  • 85. Q & A
  • 86. Agenda Introduction > .NET (Framework & Core) > ASP.NET Core > Visual Studio & VS Code References + Wrap-up
  • 87. Email: shchowd@microsoft.com  Twitter: @shahedC

Notas do Editor

  1. Agenda
  2. Introduction
  3. Agenda
  4. Variables, Operators & Loops
  5. ASP .NET 5.0
  6. ASP .NET 5.0
  7. ASP .NET 5.0
  8. Agenda
  9. Introduction
  10. Additional Topics
  11. Agenda
  12. Contact Microsoft email: shchowd@microsoft.com Personal Twitter: @shahedC Dev Blog: WakeUpAndCode.com