﻿
{"id":24032,"date":"2021-12-18T11:31:23","date_gmt":"2021-12-18T11:31:23","guid":{"rendered":"https:\/\/www.gencayyildiz.com\/blog\/?p=24032"},"modified":"2021-12-18T11:31:23","modified_gmt":"2021-12-18T11:31:23","slug":"net-6-webapplication-ile-middleware-pipelineini-inceleyelim","status":"publish","type":"post","link":"https:\/\/www.gencayyildiz.com\/blog\/net-6-webapplication-ile-middleware-pipelineini-inceleyelim\/","title":{"rendered":".NET 6 &#8211; WebApplication \u0130le Middleware Pipeline&#8217;\u0131n\u0131 \u0130nceleyelim"},"content":{"rendered":"<div id=\"fb-root\"><\/div>\n<p>Merhaba,<\/p>\n<p>Bu i\u00e7eri\u011fimizde .NET 6&#8217;da ki <em>WebApplication<\/em> nesnesinin arkas\u0131ndaki koda bakacak, middleware ve endpointlerin nas\u0131l yap\u0131land\u0131r\u0131ld\u0131\u011f\u0131na odaklan\u0131yor olaca\u011f\u0131z.<\/p>\n<p>\u00d6nceki <a href=\"https:\/\/www.gencayyildiz.com\/blog\/net-6-webapplicationbuilderi-inceleyelim\/\" rel=\"noopener\" target=\"_blank\">.NET 6 &#8211; WebApplicationBuilder\u2019\u0131 \u0130nceleyelim<\/a> ba\u015fl\u0131kl\u0131 makalede a\u00e7\u0131kland\u0131\u011f\u0131 gibi uygulama yap\u0131land\u0131rmas\u0131n\u0131n yap\u0131ld\u0131\u011f\u0131 yer \u00e7o\u011funlukla <em>WebApplicationBuilder<\/em>&#8216;d\u0131r.<\/p>\n<p><em>WebApplication<\/em> ise \u00fc\u00e7 ayr\u0131 i\u015flev i\u00e7in operasyonel sorumluluk \u00fcstlenmektedir;<br \/>\n<a href=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2021\/12\/NET-6-WebApplication-Ile-Middleware-Pipelineini-Inceleyelim.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2021\/12\/NET-6-WebApplication-Ile-Middleware-Pipelineini-Inceleyelim.png\" alt=\".NET 6 - WebApplication \u0130le Middleware Pipeline&#039;\u0131n\u0131 \u0130nceleyelim\" width=\"843\" height=\"53\" class=\"aligncenter size-full wp-image-24038\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2021\/12\/NET-6-WebApplication-Ile-Middleware-Pipelineini-Inceleyelim.png 843w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2021\/12\/NET-6-WebApplication-Ile-Middleware-Pipelineini-Inceleyelim-300x19.png 300w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2021\/12\/NET-6-WebApplication-Ile-Middleware-Pipelineini-Inceleyelim-768x48.png 768w\" sizes=\"auto, (max-width: 843px) 100vw, 843px\" \/><\/a><\/p>\n<ol style=\"color:purple;font-size:13px;\">\n<li><em style=\"color:green;\">IApplicationBuilder<\/em> aray\u00fcz\u00fcn\u00fc uygulad\u0131\u011f\u0131 i\u00e7in middleware pipeline&#8217;\u0131 burada \u015fekillendirilip, yap\u0131land\u0131r\u0131lmaktad\u0131r. Yani middleware \u015femas\u0131 bu nesne \u00fczerinden \u00e7\u0131kar\u0131lmakta ve tetiklenme s\u0131ralamas\u0131 bu nesne \u00fczerinden ayarlanmaktad\u0131r.<\/li>\n<li><em style=\"color:green;\">IEndpointRouteBuilder<\/em> aray\u00fcz\u00fcn\u00fc uygulad\u0131\u011f\u0131 i\u00e7in <code>MapGet<\/code>, <code>MapRazorPages<\/code> vs. gibi metotlar arac\u0131l\u0131\u011f\u0131yla endpointler yap\u0131land\u0131r\u0131lmaktad\u0131r.\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\nvar builder = WebApplication.CreateBuilder(args);\r\nvar app = builder.Build();\r\n\r\napp.MapGet(&quot;\/&quot;, () =&gt; &quot;Hello World!&quot;);\r\n\r\napp.Run();\r\n\r\n<\/pre>\n<\/li>\n<li><em style=\"color:green;\">IHost<\/em> aray\u00fcz\u00fcn\u00fc uygulad\u0131\u011f\u0131ndan dolay\u0131 <code>Run<\/code> metodu e\u015fli\u011finde uygulama ba\u015flat\u0131lmaktad\u0131r.<\/li>\n<\/ol>\n<p><a href=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2021\/12\/NET-6-WebApplication-Ile-Middleware-Pipelineini-Inceleyelim-1.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2021\/12\/NET-6-WebApplication-Ile-Middleware-Pipelineini-Inceleyelim-1.png\" alt=\".NET 6 - WebApplication \u0130le Middleware Pipeline&#039;\u0131n\u0131 \u0130nceleyelim\" width=\"259\" height=\"42\" class=\"alignleft size-full wp-image-24044\" \/><\/a><em>WebApplicationBuilder<\/em> nesnesinin <code style=\"color:purple;\">Build<\/code> metodu tetiklendi\u011finde bir generic host instance&#8217;\u0131 olu\u015fturulur ve bu <em>WebApplication<\/em> t\u00fcr\u00fcnde geri d\u00f6nd\u00fcr\u00fcl\u00fcr.<\/p>\n<h5>WebApplication Nesnesi Ba\u015flatma ve Middleware Pipeline&#8217;\u0131 Olu\u015fturma<\/h5>\n<p>Web uygulamas\u0131n\u0131 ba\u015flatman\u0131n standart yolu <em>WebApplication<\/em> nesnesi \u00fczerinden <code>Run()<\/code> ya da <code>RunAsync()<\/code> metotlar\u0131ndan birini \u00e7a\u011f\u0131rmakt\u0131r. Bu metotlar nihai olarak <code>IHost.StartAsync<\/code> metodunu tetikler ve b\u00f6ylece a\u015fa\u011f\u0131daki g\u00f6rseldeki karma\u015f\u0131k metot etkile\u015fimlerinin ba\u015flamas\u0131na vesile olurlar.<br \/>\n<a href=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2021\/12\/NET-6-WebApplication-Ile-Middleware-Pipelineini-Inceleyelim-2.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2021\/12\/NET-6-WebApplication-Ile-Middleware-Pipelineini-Inceleyelim-2.png\" alt=\".NET 6 - WebApplication \u0130le Middleware Pipeline&#039;\u0131n\u0131 \u0130nceleyelim\" width=\"614\" height=\"255\" class=\"aligncenter size-full wp-image-24049\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2021\/12\/NET-6-WebApplication-Ile-Middleware-Pipelineini-Inceleyelim-2.png 614w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2021\/12\/NET-6-WebApplication-Ile-Middleware-Pipelineini-Inceleyelim-2-300x125.png 300w\" sizes=\"auto, (max-width: 614px) 100vw, 614px\" \/><\/a><br \/>\nYukar\u0131daki \u015femada g\u00f6r\u00fcld\u00fc\u011f\u00fc \u00fczere Host&#8217;un aya\u011fa kald\u0131r\u0131lmas\u0131 s\u0131ras\u0131n\u0131n bir par\u00e7as\u0131 olarak <em>IHostedService<\/em> \u00e7al\u0131\u015ft\u0131r\u0131lmaktad\u0131r. Bu middleware&#8217;in olu\u015fturuldu\u011fu ve Kestrel sunucusunun dinlenmeye ba\u015fland\u0131\u011f\u0131 zamand\u0131r.<\/p>\n<p>Ayn\u0131 \u015fekilde g\u00f6rseldeki <em>GenericWebHostService<\/em> ise middleware pipeline&#8217;\u0131n\u0131n olu\u015fturuldu\u011fu ve uygulaman\u0131n \u00e7al\u0131\u015ft\u0131r\u0131lmak i\u00e7in Kestrel&#8217;e g\u00f6nderildi\u011fi yerdir.<\/p>\n<p>Bu s\u00fcre\u00e7 a\u00e7\u0131s\u0131ndan, <em>WebApplication<\/em>&#8216;\u0131 generic host ile kar\u015f\u0131la\u015ft\u0131r\u0131rsak e\u011fer herhangi bir fark bulunmamaktad\u0131r.<\/p>\n<h5>WebApplication Middleware Pipeline<\/h5>\n<p><em>WebApplication<\/em> generic host&#8217;a k\u0131yasla \u00e7e\u015fitli middleware&#8217;ler bar\u0131nd\u0131rmaktad\u0131r. <em>WebApplicationBuilder<\/em> ise varsay\u0131lan olarak Kestrel sunucusunu yap\u0131land\u0131r\u0131r, <em>HostFiltering Middleware<\/em>&#8216;ini ekler ve IIS entegrasyonunu etkinle\u015ftirir. Bunlara ek olarak <em>WebApplicationBuilder<\/em> nesnesi ekstradan middleware yap\u0131lanmas\u0131n\u0131 kurar.<\/p>\n<p>\u015eimdi bir Asp.NET Core uygulamas\u0131nda middleware yap\u0131lanmas\u0131n\u0131n nas\u0131l kuruldu\u011funu ad\u0131m ad\u0131m inceleyerek devam edelim.<\/p>\n<ul>\n<li><strong style=\"color:#e83e8c;\">Empty(Bo\u015f) Pipeline<\/strong><br \/>\n\u00d6ncelikle uygulamaya herhangi bir middleware veya endpoint eklemeksizin incelemede bulunarak ba\u015flayal\u0131m.<\/p>\n<p>A\u015fa\u011f\u0131daki kod blo\u011funu incelerseniz e\u011fer;<\/p>\n<div style=\"font-size:13px;\">\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\nvar builder = WebApplication.CreateBuilder(args);\r\nvar app = builder.Build();\r\napp.Run();\r\n<\/pre>\n<\/div>\n<p>Bu kod, kurulumun en temelidir ve a\u015fa\u011f\u0131daki middleware pipeline&#8217;\u0131 ile i\u015flemektedir.<\/p>\n<ul style=\"font-size:12px;\">\n<li>HostFilteringMiddleware<\/li>\n<li>DeveloperExceptionPageMiddleware<\/li>\n<li><em>WebApplication<\/em> nesnesinin <em>ApplicationBuilder<\/em> property&#8217;sinden olu\u015fturulmu\u015f bir middleware<\/li>\n<\/ul>\n<p><a href=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2021\/12\/NET-6-WebApplication-Ile-Middleware-Pipelineini-Inceleyelim-3.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2021\/12\/NET-6-WebApplication-Ile-Middleware-Pipelineini-Inceleyelim-3.png\" alt=\".NET 6 - WebApplication \u0130le Middleware Pipeline&#039;\u0131n\u0131 \u0130nceleyelim\" width=\"251\" height=\"251\" class=\"alignleft size-full wp-image-24059\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2021\/12\/NET-6-WebApplication-Ile-Middleware-Pipelineini-Inceleyelim-3.png 251w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2021\/12\/NET-6-WebApplication-Ile-Middleware-Pipelineini-Inceleyelim-3-150x150.png 150w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2021\/12\/NET-6-WebApplication-Ile-Middleware-Pipelineini-Inceleyelim-3-80x80.png 80w\" sizes=\"auto, (max-width: 251px) 100vw, 251px\" \/><\/a>Yukar\u0131daki middleware pipeline&#8217;\u0131n\u0131 yandaki gibi \u015femala\u015ft\u0131rabiliriz. Burada <em>DeveloperExceptionPageMiddleware<\/em>&#8216;inin art\u0131k development ortam\u0131nda otomatik olarak eklendi\u011fine dikkatinizi \u00e7ekerim.<\/p>\n<p>A\u00e7\u0131k\u00e7as\u0131 varsay\u0131lan middleware&#8217;e sahip bir uygulama pek kullan\u0131lmamaktad\u0131r. Haliyle temeli bu \u015fekilde att\u0131ktan sonra biraz middleware ekleyerek g\u00f6zlemlerimize devam edelim.\n<\/li>\n<li><strong style=\"color:#e83e8c;\">Ekstra Middleware&#8217;e Sahip Uygulama<\/strong><br \/>\n\u015eimdi a\u015fa\u011f\u0131daki gibi varsay\u0131lan yap\u0131n\u0131n \u00fczerine birka\u00e7 middleware ekleyerek g\u00f6zlemlemede bulunal\u0131m.<\/p>\n<div style=\"font-size:13px;\">\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\nvar builder = WebApplication.CreateBuilder(args);\r\nvar app = builder.Build();\r\napp.UseHttpsRedirection();\r\napp.UseStaticFiles();\r\napp.Run();\r\n<\/pre>\n<\/div>\n<p>Yukar\u0131daki \u00e7al\u0131\u015fmada default olan \u00fc\u00e7 middleware&#8217;in \u00fczerine &#8216;UseHttpsRedirection&#8217; ve &#8216;UseStaticFiles&#8217; middleware&#8217;leri eklenmi\u015ftir. Haliyle son durum a\u015fa\u011f\u0131daki gibidir;<\/p>\n<ul style=\"font-size:12px;\">\n<li>HostFilteringMiddleware<\/li>\n<li>DeveloperExceptionPageMiddleware<\/li>\n<li>A\u015fa\u011f\u0131dakileri i\u00e7eren <em>WebApplication<\/em> nesnesi;\n<ul>\n<li>HttpsRedirectionMiddleware<\/li>\n<li>StaticFilesMiddleware<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p><a href=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2021\/12\/NET-6-WebApplication-Ile-Middleware-Pipelineini-Inceleyelim-4.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2021\/12\/NET-6-WebApplication-Ile-Middleware-Pipelineini-Inceleyelim-4.png\" alt=\".NET 6 - WebApplication \u0130le Middleware Pipeline&#039;\u0131n\u0131 \u0130nceleyelim\" width=\"596\" height=\"275\" class=\"aligncenter size-full wp-image-24062\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2021\/12\/NET-6-WebApplication-Ile-Middleware-Pipelineini-Inceleyelim-4.png 596w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2021\/12\/NET-6-WebApplication-Ile-Middleware-Pipelineini-Inceleyelim-4-300x138.png 300w\" sizes=\"auto, (max-width: 596px) 100vw, 596px\" \/><\/a>\n<\/li>\n<li><strong style=\"color:#e83e8c;\">Endpoint Tan\u0131mlama<\/strong>\n<div style=\"font-size:13px;\">\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\nvar builder = WebApplication.CreateBuilder(args);\r\nvar app = builder.Build();\r\napp.UseHttpsRedirection();\r\napp.UseStaticFiles();\r\napp.MapGet(&quot;\/&quot;, () =&gt; &quot;Laylaylom galiba sana g\u00f6re sevmeler...&quot;);\r\napp.Run();\r\n<\/pre>\n<\/div>\n<p>Yukar\u0131daki gibi <code>MapGet<\/code> metodu ile eklenen endpoint&#8217;ler, <em>WebApplication<\/em> nesnesinin endpoint datasources koleksiyonuna eklenmektedirler.<br \/>\n<a href=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2021\/12\/NET-6-WebApplication-Ile-Middleware-Pipelineini-Inceleyelim-5.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2021\/12\/NET-6-WebApplication-Ile-Middleware-Pipelineini-Inceleyelim-5.png\" alt=\".NET 6 - WebApplication \u0130le Middleware Pipeline&#039;\u0131n\u0131 \u0130nceleyelim\" width=\"691\" height=\"158\" class=\"aligncenter size-full wp-image-24066\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2021\/12\/NET-6-WebApplication-Ile-Middleware-Pipelineini-Inceleyelim-5.png 691w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2021\/12\/NET-6-WebApplication-Ile-Middleware-Pipelineini-Inceleyelim-5-300x69.png 300w\" sizes=\"auto, (max-width: 691px) 100vw, 691px\" \/><\/a>Ve nihai olarak <em>EndpointMiddleware<\/em>&#8216;i eklenerek middleware pipeline aya\u011fa kald\u0131r\u0131lmaktad\u0131r.<\/p>\n<ul style=\"font-size:12px;\">\n<li>HostFilteringMiddleware<\/li>\n<li>DeveloperExceptionPageMiddleware<\/li>\n<li>A\u015fa\u011f\u0131dakileri i\u00e7eren <em>WebApplication<\/em> nesnesi;\n<ul>\n<li>HttpsRedirectionMiddleware<\/li>\n<li>StaticFilesMiddleware<\/li>\n<\/ul>\n<li>EndpointMiddleware<\/li>\n<\/li>\n<\/ul>\n<p><a href=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2021\/12\/NET-6-WebApplication-Ile-Middleware-Pipelineini-Inceleyelim-6.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2021\/12\/NET-6-WebApplication-Ile-Middleware-Pipelineini-Inceleyelim-6.png\" alt=\".NET 6 - WebApplication \u0130le Middleware Pipeline&#039;\u0131n\u0131 \u0130nceleyelim\" width=\"596\" height=\"391\" class=\"aligncenter size-full wp-image-24067\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2021\/12\/NET-6-WebApplication-Ile-Middleware-Pipelineini-Inceleyelim-6.png 596w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2021\/12\/NET-6-WebApplication-Ile-Middleware-Pipelineini-Inceleyelim-6-300x197.png 300w\" sizes=\"auto, (max-width: 596px) 100vw, 596px\" \/><\/a>\n<\/li>\n<li><strong style=\"color:#e83e8c;\">UseRouting Middleware<\/strong><br \/>\nBurada <code>UseRouting<\/code><em>(RoutingMiddleware)<\/em> middleware&#8217;ini incelememizin sebebi, baz\u0131 middleware&#8217;lerin <em>UseRouting<\/em>&#8216;den \u00f6nce \u00e7a\u011fr\u0131lmas\u0131 gerekti\u011fidir. Haliyle <strong><em>RoutingMiddleware&#8217;inden \u00f6nce \u00e7a\u011fr\u0131lmas\u0131 gereken bir middleware varsa ne yap\u0131lmas\u0131 gerekmektedir?<\/em><\/strong> gelin inceleyelim&#8230;<\/p>\n<p>Bunun i\u00e7in yap\u0131lmas\u0131 gereken tek \u015fey <code>UseRouting<\/code> middleware&#8217;inin a\u00e7\u0131k\u00e7a \u00e7a\u011fr\u0131l\u0131p, devreye sokulmas\u0131d\u0131r.<\/p>\n<div style=\"font-size:13px;\">\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\nvar builder = WebApplication.CreateBuilder(args);\r\nvar app = builder.Build();\r\napp.UseHttpsRedirection();\r\napp.UseStaticFiles();\r\napp.UseRouting();\r\napp.MapGet(&quot;\/&quot;, () =&gt; &quot;Laylaylom galiba sana g\u00f6re sevmeler...&quot;);\r\napp.Run();\r\n<\/pre>\n<\/div>\n<p>B\u00f6ylece ilgili middleware&#8217;ler a\u015fa\u011f\u0131daki gibi \u015fekillenecektir.<\/p>\n<ul style=\"font-size:12px;\">\n<li>HostFilteringMiddleware<\/li>\n<li>DeveloperExceptionPageMiddleware<\/li>\n<li>A\u015fa\u011f\u0131dakileri i\u00e7eren <em>WebApplication<\/em> nesnesi;\n<ul>\n<li>HttpsRedirectionMiddleware<\/li>\n<li>StaticFilesMiddleware<\/li>\n<li>RoutingMiddleware<\/li>\n<\/ul>\n<li>EndpointMiddleware<\/li>\n<\/li>\n<\/ul>\n<p><a href=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2021\/12\/NET-6-WebApplication-Ile-Middleware-Pipelineini-Inceleyelim-7.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2021\/12\/NET-6-WebApplication-Ile-Middleware-Pipelineini-Inceleyelim-7.png\" alt=\".NET 6 - WebApplication \u0130le Middleware Pipeline&#039;\u0131n\u0131 \u0130nceleyelim\" width=\"595\" height=\"322\" class=\"aligncenter size-full wp-image-24074\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2021\/12\/NET-6-WebApplication-Ile-Middleware-Pipelineini-Inceleyelim-7.png 595w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2021\/12\/NET-6-WebApplication-Ile-Middleware-Pipelineini-Inceleyelim-7-300x162.png 300w\" sizes=\"auto, (max-width: 595px) 100vw, 595px\" \/><\/a><br \/>\n<code>UseRouting<\/code> middleware&#8217;i yaz\u0131ld\u0131\u011f\u0131nda ana\/main middleware pipeline&#8217;\u0131 ile <em>WebApplication<\/em> nesnesinin <em>ApplicationBuilder<\/em> pipeline&#8217;\u0131 aras\u0131nda genel d\u00fczenin korunmas\u0131 i\u00e7in <em>WebApplicationBuilder<\/em> bir i\u015flevsellik g\u00f6stermektedir. Bu i\u015flevsellik, genel d\u00fczeni korumak \u00fczere generic host&#8217;a d\u00f6nmek gerekti\u011finde ortaya \u00e7\u0131kacakt\u0131r.\n<\/li>\n<li><strong style=\"color:#e83e8c;\">UseEndpoint Pipeline<\/strong><br \/>\n<em>EndpointMiddleware<\/em>, <code>MapGet<\/code> vs. gibi metotlar e\u015fli\u011finde ya da <em>WebApplicationBuilder<\/em> nesnesi ile otomatik ekleniyor olasa da <code>UseEndpoints<\/code> metodu e\u015fli\u011finde de manuel bir \u015fekilde \u00e7a\u011fr\u0131larak, eklenebilmektedir.<\/p>\n<div style=\"font-size:13px;\">\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\nvar builder = WebApplication.CreateBuilder(args);\r\nvar app = builder.Build();\r\napp.UseHttpsRedirection();\r\napp.UseStaticFiles();\r\napp.UseRouting();\r\napp.MapGet(&quot;\/&quot;, () =&gt; &quot;Laylaylom galiba sana g\u00f6re sevmeler...&quot;);\r\napp.UseEndpoints(endpoint =&gt; endpoint.MapGet(&quot;\/x&quot;, () =&gt; &quot;doldur be meyhaneci bo\u015f kalmas\u0131n kadehim&quot;));\r\napp.Run();\r\n<\/pre>\n<\/div>\n<p>Haliyle yukar\u0131daki in\u015fa ile a\u015fa\u011f\u0131daki middleware yap\u0131lanmas\u0131 elde edilecektir.<\/p>\n<ul style=\"font-size:12px;\">\n<li>HostFilteringMiddleware<\/li>\n<li>DeveloperExceptionPageMiddleware<\/li>\n<li>A\u015fa\u011f\u0131dakileri i\u00e7eren <em>WebApplication<\/em> nesnesi;\n<ul>\n<li>HttpsRedirectionMiddleware<\/li>\n<li>StaticFilesMiddleware<\/li>\n<li>RoutingMiddleware<\/li>\n<li>EndpointMiddleware<\/li>\n<\/ul>\n<li>EndpointMiddleware<\/li>\n<\/li>\n<\/ul>\n<p><a href=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2021\/12\/NET-6-WebApplication-Ile-Middleware-Pipelineini-Inceleyelim-8.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2021\/12\/NET-6-WebApplication-Ile-Middleware-Pipelineini-Inceleyelim-8.png\" alt=\".NET 6 - WebApplication \u0130le Middleware Pipeline&#039;\u0131n\u0131 \u0130nceleyelim\" width=\"597\" height=\"349\" class=\"aligncenter size-full wp-image-24079\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2021\/12\/NET-6-WebApplication-Ile-Middleware-Pipelineini-Inceleyelim-8.png 597w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2021\/12\/NET-6-WebApplication-Ile-Middleware-Pipelineini-Inceleyelim-8-300x175.png 300w\" sizes=\"auto, (max-width: 597px) 100vw, 597px\" \/><\/a>Yukar\u0131daki davran\u0131\u015f ile endpoint&#8217;leri do\u011frudan hem <em>WebApplication<\/em>&#8216;da hem de <em>EndpointMiddleware<\/em>&#8216;in \u00e7a\u011fr\u0131s\u0131nda kaydetmi\u015f oluyoruz.<\/p>\n<blockquote><p><em style=\"color:green;\">Burada dikkat edilmesi gereken \u00f6nemli bir nokta vard\u0131r, o da; <code>UseEndpoints<\/code> middleware&#8217;i manuel kullan\u0131l\u0131yorsa kesinlikle <code>UseRouting<\/code> middleware&#8217;i de manuel \u00e7a\u011fr\u0131lmal\u0131d\u0131r. <span style=\"color:red;\">Aksi taktirde hata al\u0131nacakt\u0131r.<\/span><\/em><\/p><\/blockquote>\n<\/li>\n<\/ul>\n<p>Nihai olarak;<br \/>\n<em>WebApplication<\/em> nesnesi \u00fczerinden yap\u0131lan \u00e7al\u0131\u015fmalarda middleware pipeline&#8217;\u0131n\u0131n nas\u0131l ve ne \u015fekilde olu\u015fturuldu\u011funu g\u00f6rm\u00fc\u015f ve incelemi\u015f olduk. B\u00f6ylece art\u0131k .NET 6 ile geli\u015ftirilen web uygulamalar\u0131nda, konfig\u00fcrasyon yap\u0131lanmas\u0131nda neyin ne oldu\u011funa ve ne \u015fekilde davran\u0131\u015f sergiledi\u011fine tam olarak vak\u0131f bir \u015fekilde geli\u015ftirmeler yapabilir ve nimetlerinden daha bilin\u00e7li faydalanabiliriz.<\/p>\n<p>\u0130lgilenenlerin faydalanmas\u0131 dile\u011fiyle&#8230;<br \/>\nSonraki yaz\u0131lar\u0131mda g\u00f6r\u00fc\u015fmek \u00fczere&#8230;<br \/>\n\u0130yi \u00e7al\u0131\u015fmalar&#8230;<\/p>\n<!-- AddThis Advanced Settings generic via filter on the_content --><!-- AddThis Share Buttons generic via filter on the_content -->","protected":false},"excerpt":{"rendered":"<p>Merhaba, Bu i\u00e7eri\u011fimizde .NET 6&#8217;da ki WebApplication nesnesinin arkas\u0131ndaki koda bakacak, middleware ve endpointlerin nas\u0131l yap\u0131land\u0131r\u0131ld\u0131\u011f\u0131na odaklan\u0131yor olaca\u011f\u0131z. \u00d6nceki .NET 6 &#8211; WebApplicationBuilder\u2019\u0131 \u0130nceleyelim ba\u015fl\u0131kl\u0131 makalede a\u00e7\u0131kland\u0131\u011f\u0131 gibi uygulama yap\u0131land\u0131rmas\u0131n\u0131n yap\u0131ld\u0131\u011f\u0131 yer \u00e7o\u011funlukla WebApplicationBuilder&#8216;d\u0131r.&#46;&#46;&#46;<!-- AddThis Advanced Settings generic via filter on get_the_excerpt --><!-- AddThis Share Buttons generic via filter on get_the_excerpt --><\/p>\n","protected":false},"author":1,"featured_media":23959,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4446],"tags":[4481,4482,4466,4483,4464],"class_list":["post-24032","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-net-6","tag-net-6-middleware","tag-net-6-middleware-pipeline","tag-net-6-webapplication","tag-middleware-pipeline","tag-webapplication"],"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/24032","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/comments?post=24032"}],"version-history":[{"count":40,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/24032\/revisions"}],"predecessor-version":[{"id":24083,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/24032\/revisions\/24083"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/media\/23959"}],"wp:attachment":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/media?parent=24032"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/categories?post=24032"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/tags?post=24032"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}