﻿
{"id":14921,"date":"2020-04-04T15:28:45","date_gmt":"2020-04-04T15:28:45","guid":{"rendered":"https:\/\/www.gencayyildiz.com\/blog\/?p=14921"},"modified":"2020-04-04T15:28:45","modified_gmt":"2020-04-04T15:28:45","slug":"asp-net-core-environment-nedir-konfigurasyonu-nasil-yapilir","status":"publish","type":"post","link":"https:\/\/www.gencayyildiz.com\/blog\/asp-net-core-environment-nedir-konfigurasyonu-nasil-yapilir\/","title":{"rendered":"Asp.NET Core &#8211; Environment Nedir? Konfig\u00fcrasyonu Nas\u0131l Yap\u0131l\u0131r?"},"content":{"rendered":"<div id=\"fb-root\"><\/div>\n<p>Merhaba,<\/p>\n<p>Biz yaz\u0131l\u0131m geli\u015ftiriciler bir uygulaman\u0131n bulundu\u011fu a\u015famalara dayal\u0131, davran\u0131\u015f\u0131n\u0131 kontrol etmek ve y\u00f6nlendirmek isteyebiliriz. Bunun i\u00e7in bu i\u00e7eri\u011fimizde Asp.NET Core uygulamalar\u0131n\u0131n runtime&#8217;da ki davran\u0131\u015f\u0131n\u0131 belirleyen environment variable \u00fczerine konu\u015fuyor olaca\u011f\u0131z.<\/p>\n<p>Asp.NET Core \u00e7al\u0131\u015fma ortam\u0131n\u0131 belirleyebilmek i\u00e7in &#8216;ASPNETCORE_ENVIRONMENT&#8217; isimli de\u011fi\u015fkeni kullanmaktad\u0131r. Bu de\u011fi\u015fkenin de\u011feri ihtiyaca g\u00f6re herhangi bir de\u011fer olabilir lakin genellikle geli\u015ftirme, sahneleme yahut prod\u00fcksiyon anlamlar\u0131na kar\u015f\u0131l\u0131k gelen &#8216;Development&#8217;, &#8216;Staging&#8217; ve &#8216;Production&#8217; durumlar\u0131 tercih edilmektedir. Bu de\u011ferler Linux i\u015fletim sistemlerinde b\u00fcy\u00fck k\u00fc\u00e7\u00fck harf duyarl\u0131l\u0131\u011f\u0131na sahipken, Windows ve Mac OS i\u015fletim sistemlerinde \u00f6nemli de\u011fildir.<\/p>\n<p>Bir Asp.NET Core uygulamas\u0131nda Environment de\u011fi\u015fkenlere eri\u015febilmek i\u00e7in Solution Explorer&#8217;dan projeye sa\u011f t\u0131klayarak &#8216;Properties&#8217; -> &#8216;Debug&#8217; kombinasyonunu takip etmeniz yeterlidir.<br \/>\n<a href=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2020\/04\/Asp.NET-Core-Environment-Nedir-Konfig\u00fcrasyonu-Nas\u0131l-Yap\u0131l\u0131r..jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2020\/04\/Asp.NET-Core-Environment-Nedir-Konfig\u00fcrasyonu-Nas\u0131l-Yap\u0131l\u0131r..jpg\" alt=\"Asp.NET Core - Environment Nedir? Konfig\u00fcrasyonu Nas\u0131l Yap\u0131l\u0131r?\" width=\"1468\" height=\"734\" class=\"alignnone size-full wp-image-14924\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2020\/04\/Asp.NET-Core-Environment-Nedir-Konfig\u00fcrasyonu-Nas\u0131l-Yap\u0131l\u0131r..jpg 1468w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2020\/04\/Asp.NET-Core-Environment-Nedir-Konfig\u00fcrasyonu-Nas\u0131l-Yap\u0131l\u0131r.-300x150.jpg 300w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2020\/04\/Asp.NET-Core-Environment-Nedir-Konfig\u00fcrasyonu-Nas\u0131l-Yap\u0131l\u0131r.-1024x512.jpg 1024w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2020\/04\/Asp.NET-Core-Environment-Nedir-Konfig\u00fcrasyonu-Nas\u0131l-Yap\u0131l\u0131r.-768x384.jpg 768w\" sizes=\"auto, (max-width: 1468px) 100vw, 1468px\" \/><\/a><br \/>\nA\u00e7\u0131lan pencerede yukar\u0131da g\u00f6r\u00fcld\u00fc\u011f\u00fc \u00fczere &#8220;Environment variables&#8221; k\u0131sm\u0131nda name &#8211; value tarz\u0131nda ortam de\u011fi\u015fkenleri tutulmaktad\u0131r. Burada a\u015fa\u011f\u0131da oldu\u011fu gibi istedi\u011finiz kadar de\u011fi\u015fken olu\u015fturabilirsiniz.<br \/>\n<a href=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2020\/04\/Asp.NET-Core-Environment-Nedir-Konfig\u00fcrasyonu-Nas\u0131l-Yap\u0131l\u0131r.-1.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2020\/04\/Asp.NET-Core-Environment-Nedir-Konfig\u00fcrasyonu-Nas\u0131l-Yap\u0131l\u0131r.-1.jpg\" alt=\"Asp.NET Core - Environment Nedir? Konfig\u00fcrasyonu Nas\u0131l Yap\u0131l\u0131r?\" width=\"540\" height=\"154\" class=\"alignnone size-full wp-image-14927\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2020\/04\/Asp.NET-Core-Environment-Nedir-Konfig\u00fcrasyonu-Nas\u0131l-Yap\u0131l\u0131r.-1.jpg 540w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2020\/04\/Asp.NET-Core-Environment-Nedir-Konfig\u00fcrasyonu-Nas\u0131l-Yap\u0131l\u0131r.-1-300x86.jpg 300w\" sizes=\"auto, (max-width: 540px) 100vw, 540px\" \/><\/a><br \/>\nBu de\u011fi\u015fkenler a\u015fa\u011f\u0131da g\u00f6r\u00fcld\u00fc\u011f\u00fc gibi Solution Explorer&#8217;da ki &#8216;Properties&#8217; sekmesi i\u00e7erisindeki &#8216;launchSettings.json&#8217; dosyas\u0131nda &#8216;environmentVariables&#8217; node&#8217;unda tutulmaktad\u0131r.<br \/>\n<a href=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2020\/04\/Asp.NET-Core-Environment-Nedir-Konfig\u00fcrasyonu-Nas\u0131l-Yap\u0131l\u0131r.-2.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2020\/04\/Asp.NET-Core-Environment-Nedir-Konfig\u00fcrasyonu-Nas\u0131l-Yap\u0131l\u0131r.-2.jpg\" alt=\"Asp.NET Core - Environment Nedir? Konfig\u00fcrasyonu Nas\u0131l Yap\u0131l\u0131r?\" width=\"633\" height=\"502\" class=\"alignnone size-full wp-image-14930\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2020\/04\/Asp.NET-Core-Environment-Nedir-Konfig\u00fcrasyonu-Nas\u0131l-Yap\u0131l\u0131r.-2.jpg 633w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2020\/04\/Asp.NET-Core-Environment-Nedir-Konfig\u00fcrasyonu-Nas\u0131l-Yap\u0131l\u0131r.-2-300x238.jpg 300w\" sizes=\"auto, (max-width: 633px) 100vw, 633px\" \/><\/a><br \/>\nDolay\u0131s\u0131yla bu dosya \u00fczerinden ortam de\u011fi\u015fkenlerine her t\u00fcrl\u00fc m\u00fcdahalede bulunabilir, ekleyip, silebilirsiniz.<\/p>\n<h3>Runtime&#8217;da Ortam De\u011fi\u015fkenlerine Eri\u015fim<\/h3>\n<p>Asp.NET Core uygulamalar\u0131nda bulunan &#8216;Startup.cs&#8217; dosyas\u0131 \u00fczerinden &#8216;ASPNETCORE_ENVIRONMENT&#8217; environment de\u011ferini i\u00e7eren &#8216;IWebHostEnvironment&#8217; parametresi arac\u0131l\u0131\u011f\u0131yla &#8216;IsDevelopment&#8217;, &#8216;IsProduction&#8217; ve &#8216;IsStaging&#8217; durumlar\u0131na g\u00f6re genel environment kontrol\u00fc sa\u011flanabilmektedir.<br \/>\n<a href=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2020\/04\/Asp.NET-Core-Environment-Nedir-Konfig\u00fcrasyonu-Nas\u0131l-Yap\u0131l\u0131r.-3.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2020\/04\/Asp.NET-Core-Environment-Nedir-Konfig\u00fcrasyonu-Nas\u0131l-Yap\u0131l\u0131r.-3.jpg\" alt=\"Asp.NET Core - Environment Nedir? Konfig\u00fcrasyonu Nas\u0131l Yap\u0131l\u0131r?\" width=\"1032\" height=\"412\" class=\"alignnone size-full wp-image-14934\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2020\/04\/Asp.NET-Core-Environment-Nedir-Konfig\u00fcrasyonu-Nas\u0131l-Yap\u0131l\u0131r.-3.jpg 1032w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2020\/04\/Asp.NET-Core-Environment-Nedir-Konfig\u00fcrasyonu-Nas\u0131l-Yap\u0131l\u0131r.-3-300x120.jpg 300w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2020\/04\/Asp.NET-Core-Environment-Nedir-Konfig\u00fcrasyonu-Nas\u0131l-Yap\u0131l\u0131r.-3-1024x409.jpg 1024w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2020\/04\/Asp.NET-Core-Environment-Nedir-Konfig\u00fcrasyonu-Nas\u0131l-Yap\u0131l\u0131r.-3-768x307.jpg 768w\" sizes=\"auto, (max-width: 1032px) 100vw, 1032px\" \/><\/a><\/p>\n<h3>Environment De\u011fi\u015fkenlerin appsettings.json Dosyas\u0131n\u0131 Ezmesi<\/h3>\n<p>Asp.NET Core uygulamalar\u0131nda statik verileri &#8216;appsettings.json&#8217; tutmaktay\u0131z ve biliyoruz ki bu dosyadaki verileri okuyabilmek i\u00e7in IConfiguration t\u00fcr\u00fc \u00fczerinden tarama ger\u00e7ekle\u015ftirmemiz gerekmektedir.<\/p>\n<p>Uygulamada &#8216;appsettings.json&#8217; dosyas\u0131ndaki tan\u0131mlanan alanlar ile ayn\u0131 isimde tan\u0131mlanan environment de\u011fi\u015fkenler s\u00f6z konusuysa environment de\u011fi\u015fkenler daha \u00fcst seviyede olduklar\u0131 i\u00e7in &#8216;appsettings.json&#8217; dosyas\u0131ndaki verileri ezerek \u00f6ncelik elde ederler.<br \/>\n\u015e\u00f6yle ki;<\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\r\n-- appsettings.json --\r\n{\r\n  &quot;Field&quot;: &quot;Field Value - Appsettings.json&quot;\r\n}\r\n<\/pre>\n<p>i\u00e7eri\u011fine sahip olan bir &#8216;appsettings.json&#8217; dosyas\u0131yla birlikte ayn\u0131 name de\u011ferine sahip a\u015fa\u011f\u0131daki gibi environment de\u011fi\u015fken tan\u0131mland\u0131\u011f\u0131nda environment de\u011fi\u015fkenin &#8216;appsettings.json&#8217; dosyas\u0131n\u0131 ezdi\u011fi g\u00f6zlemlenir.<br \/>\n<a href=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2020\/04\/Asp.NET-Core-Environment-Nedir-Konfig\u00fcrasyonu-Nas\u0131l-Yap\u0131l\u0131r.-4.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2020\/04\/Asp.NET-Core-Environment-Nedir-Konfig\u00fcrasyonu-Nas\u0131l-Yap\u0131l\u0131r.-4.jpg\" alt=\"Asp.NET Core - Environment Nedir? Konfig\u00fcrasyonu Nas\u0131l Yap\u0131l\u0131r?\" width=\"487\" height=\"49\" class=\"alignnone size-full wp-image-14936\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2020\/04\/Asp.NET-Core-Environment-Nedir-Konfig\u00fcrasyonu-Nas\u0131l-Yap\u0131l\u0131r.-4.jpg 487w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2020\/04\/Asp.NET-Core-Environment-Nedir-Konfig\u00fcrasyonu-Nas\u0131l-Yap\u0131l\u0131r.-4-300x30.jpg 300w\" sizes=\"auto, (max-width: 487px) 100vw, 487px\" \/><\/a><br \/>\nTalep;<br \/>\n<a href=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2020\/04\/Asp.NET-Core-Environment-Nedir-Konfig\u00fcrasyonu-Nas\u0131l-Yap\u0131l\u0131r.-5.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2020\/04\/Asp.NET-Core-Environment-Nedir-Konfig\u00fcrasyonu-Nas\u0131l-Yap\u0131l\u0131r.-5.jpg\" alt=\"Asp.NET Core - Environment Nedir? Konfig\u00fcrasyonu Nas\u0131l Yap\u0131l\u0131r?\" width=\"418\" height=\"151\" class=\"alignnone size-full wp-image-14937\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2020\/04\/Asp.NET-Core-Environment-Nedir-Konfig\u00fcrasyonu-Nas\u0131l-Yap\u0131l\u0131r.-5.jpg 418w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2020\/04\/Asp.NET-Core-Environment-Nedir-Konfig\u00fcrasyonu-Nas\u0131l-Yap\u0131l\u0131r.-5-300x108.jpg 300w\" sizes=\"auto, (max-width: 418px) 100vw, 418px\" \/><\/a><\/p>\n<p>Yani buradan anla\u015f\u0131lan uygulamada bir &#8216;Configuration[&#8220;&#8230;&#8221;]&#8217; komutu \u00e7al\u0131\u015ft\u0131r\u0131l\u0131yorsa \u00f6ncelikle environment ortam\u0131 sorgulanacakt\u0131r. E\u011fer ilgili veri bulunamazsa s\u0131ras\u0131yla &#8216;secrets.json&#8217; ve ard\u0131ndan &#8216;appsettings.json&#8217; dosyalar\u0131nda inceleme ger\u00e7ekle\u015ftirilecektir.<\/p>\n<h3>Asp.NET Core MVC&#8217;de Environment Kontrol\u00fc<\/h3>\n<p>E\u011fer \u00fczerinde \u00e7al\u0131\u015f\u0131lan uygulama altyap\u0131s\u0131 bir MVC mimarisine dayal\u0131ysa View katman\u0131nda environment&#8217;a g\u00f6re ayr\u0131 i\u015flem ger\u00e7ekle\u015ftirebilmek i\u00e7in a\u015fa\u011f\u0131daki tag halper&#8217;\u0131 kullanabilirsiniz. <\/p>\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">\r\n&lt;environment names=&quot;Development&quot;&gt;\r\n    Development ortam\u0131nda...\r\n&lt;\/environment&gt;\r\n&lt;environment names=&quot;Production&quot;&gt;\r\n    Production ortam\u0131nda...\r\n&lt;\/environment&gt;\r\n<\/pre>\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, Biz yaz\u0131l\u0131m geli\u015ftiriciler bir uygulaman\u0131n bulundu\u011fu a\u015famalara dayal\u0131, davran\u0131\u015f\u0131n\u0131 kontrol etmek ve y\u00f6nlendirmek isteyebiliriz. Bunun i\u00e7in bu i\u00e7eri\u011fimizde Asp.NET Core uygulamalar\u0131n\u0131n runtime&#8217;da ki davran\u0131\u015f\u0131n\u0131 belirleyen environment variable \u00fczerine konu\u015fuyor olaca\u011f\u0131z. Asp.NET Core \u00e7al\u0131\u015fma&#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":9596,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3102],"tags":[3365,3367,3368,3369,3364,3366,3371,3370],"class_list":["post-14921","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-asp-net-core","tag-asp-net-core-environment","tag-asp-net-core-environment-variable","tag-aspnetcore_environment","tag-development","tag-environment","tag-environment-variable","tag-production","tag-staging"],"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/14921","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=14921"}],"version-history":[{"count":17,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/14921\/revisions"}],"predecessor-version":[{"id":14944,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/14921\/revisions\/14944"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/media\/9596"}],"wp:attachment":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/media?parent=14921"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/categories?post=14921"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/tags?post=14921"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}