w i th - digicomp€¦ · mvc + webapi + web pages asp.net core. faster deployment cycles. tooling....

Post on 27-May-2020

21 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

with

Cross Platform WebAPIs

ASP.NET Core

@FabianGosebrink

What is ASP.NET Core?

MVC + WebAPI + Web Pages

ASP.NET Core

FasterDeployment

Cycles

Tooling

DOTNET CLIfabian gosebrink

class Program { static void Main(string[] args) { Console.WriteLine("Hello World!"); } }

DOTNET CLIfabian gosebrink

public class Program { public static void Main(string[] args) { BuildWebHost(args).Run(); }

public static IWebHost BuildWebHost(string[] args) => WebHost.CreateDefaultBuilder(args) .UseStartup<Startup>() .Build(); }

Program.cs

1. public class Program 2. { 3. public static void Main(string[] args) 4. { 5. BuildWebHost(args).Run(); 6. } 7. 8. public static IWebHost BuildWebHost(string[] args) => 9. WebHost.CreateDefaultBuilder(args) 10. .UseStartup<Startup>() 11. .Build(); 12. }

public class Program { public static void Main(string[] args) { var host = new WebHostBuilder() .UseKestrel() .UseContentRoot(Directory.GetCurrentDirectory()) .UseIISIntegration() .UseStartup<Startup>() .Build();

host.Run(); } }

DependencyInjection

Startup.cs

1. public class Startup 2. { 3. public Startup(IConfiguration configuration) 4. { 5. Configuration = configuration; 6. } 7. 8. public IConfiguration Configuration { get; set; } 9. 10. public void ConfigureServices(IServiceCollection services) 11. { 12. services.AddOptions(); 13. services.AddCors(...); 14. 15. services.AddSingleton<IFoodRepository, FoodRepository>(); 16

Kestrel

REST

Whatis

Rest?

Restis not

WebAPI

Restis not

HTTP

Architectural

Style

RestConstraints

RichardsonMaturityModel

STATUSCODES

2XX

4XX

5XX

GET /api/orders/

GET /api/orders/1

POST /api/orders/

PUT /api/orders/1

The Controller

1. [Route("api/[controller]")] 2. public class FoodController : Controller 3. { 4. private readonly IFoodRepository _foodRepository; 5. 6. public FoodController(IFoodRepository foodRepository) 7. { 8. _foodRepository = foodRepository; 9. } 10. 11. [HttpGet] 12. public IActionResult Get() 13. { 14. ICollection<FoodItem> foodItems = _foodRepository.GetAll(); 15. IEnumerable<FoodItemDto> dtos = foodItems 16 Select(x => Mapper Map<FoodItemDto>(x));

DocumentationSWAGGER

VERSIONING

document.docx

document-�nal.docx

document-�nal-�nal.docx

document-really-�nal.docx

document-really-�nal-end-of-

discussion.docx

document-really-�nal-approved-by-

customer.docx

document-really-�nal-approved-by-

customer-with-alterations-

suggested-by-his-assistant.docx

document-really-�nal-approved-by-customer-

with-alterations-suggested-by-his-

assistant-and-his-wife-cause-apparently-she-thinks-she-knows-all-about-good-api-design

document-really-�nal-approved-by-customer-

with-alterations-suggested-by-his-

assistant-and-his-wife-cause-apparently-she-thinks-she-knows-all-

API-VERSION: 2.0/API/V2/HOUSES

DEMO

/api/houses?page=4&pageSize=10

/api/houses?orderby=Id

/api/houses?fields=street,number

SignalR

Le Fin

@FabianGosebrink

https://swissangular.comhttps://github.com/FabianGosebrinkhttps://github.com/FabianGosebrink/AS

WebAPI-Sample

Resourceshttps://www.thefamouspeople.com/pro�les/images/og-donald_trump_�ag.jpghttps://timedotcom.�les.wordpress.com/2017/07/gettyimages-810247620.jpg?w=720&quality=85https://media.giphy.com/media/xUPOqFfyBzvODVNTNu/giphy.gifhttps://cdn.vox-

cdn.com/thumbor/5BOvGGpVyW4hSPLTAEYvHng6JlQ=/0x0:2931x1649/1200x800/�lters:focal(1239x265:1707x733)/ccdn.com/uploads/chorus_image/image/55610995/GettyImages_810247620.0.jpg

https://media.giphy.com/media/1BXa2alBjrCXC/giphy.gifhttp://img0.joyreactor.com/pics/post/photo-india-it-programmer-548432.jpeg

top related