Visual Studio Web Transform’u Build İle Tetikleme

Visual Studio Web Transform, Bu makalemizde belkide sürekli farkında olmadan kullandığımız yada farkında olup sıklıkla kullandığımız web transform durumundan bahsedeceğiz ve web transform işleminin build sırasında nasıl tetikleneceğini göreceğiz.

Visual Studio Web Transform’u Build İle Tetikleme

Visual Studio Web Transform'u Build İle Tetikleme

Normalde web transformlar bir düzenleme yapılmadığı sürece publish durumunda seçmiş olduğunuz configuration’a göre web transform devreye girip web.config dosyasının düzenlenmiş son halini üretir. Peki düzenlenmiş son hali derken neden bahsediyoruz hemen örnekler üzerinden gidelim.

Yeni bir Framework 4.5 sürümlü ASP.NET projesi oluşturduğumuzda Web.config ve 2 configuration olan Debug ve Release configuration’larına göre Web.Debug.config ve Web.Release.config adında toplamda 3 configuration dosyası oluşturuluyor. Paragraf girişinde Framework 4.5 sürümünden açıkça bahsetme nedenim birazdan vereceğim Web.config örnekleri Framework 4.5 sürümlü ASP.NET Empty projesi ile oluşturulduğundan farklı bir sürümle oluşturduğunuzda oluşacak farklılıklar Framework Versiyonuna ve Template türüne göre farklılık gösterebilir. Şimdi Web.config dosyasının içerisiğini görelim.

XML(Web.config)

Üstte her ASP.NET projesi oluşturulduğunda varsayılan olarak oluşturulan ama içeriği daha öncede bahsettiğimiz gibi Template türüne göre değişebilen Web.config adlı dosyayı görmektesiniz.

Web Transformlar

Web.Debug.config adlı dosya içerisinde transform işlemi olacak etiketlerin comment blokları arasına alındığını görüyoruz comment blokları arasına alınan 2 transform işlemi var biri connectionStrings etiketi bir diğeri ise customErrors etiketidir peki bu transformlar ne yapıyor ve nasıl transform işlemini yaptığından bahsedelim.

connectionStrings etiketi altında yer alan add etiketinde bir connectionString tanımı yer alıyor normal Web.config‘de yer alan connectionString tanımı haricinde 2 farklı attribute olduğunu görüyoruz bunlar xdt:Transform ve xdt:Locator attribute’leridir bunlar işlevi şudur.

xdt:Tranform: Yapacağınız işlemin ne olduğunu belirtiyoruz. Örnek SetAttributes ile xdt:Locator değerinde yer alan Match(name) tanımı sayesinde name=”MyDB” adlı bir connectionString tanımı yer alıyorsa Web.config dosyası içerisinde o zaman ilgili attibute’lerdeki değerler ile değiştiriliyor. Böylelikle Debug aşamasında farklı bir connection ve Release aşamasında farklı bir connection kullanabiliyor olacağız.

XML(Web.Debug.config)

Web.Debug.config dosyası içerisinden farklı olarak comment edilmemiş bir etiket var ve bu etiket sayesinde compilation etiketindeki debug attribute’ü xdt:Transform=”RemoveAttributes(debug)” tanımı sayesinde silinmektedir. Şimdide Web.Release.config adlı dosya içeriğine gözatalım.

XML(Web.Release.config)

Makale girişindede bahsettiğimiz gibi Web Transform işlemi publish sırasında devreye giriyor. İşte bize bu makale başlığında belirttiğimiz gibi lazım olan şey build esnasında web transformun devreye girmesini bunun için ilk düzenlememizi şöyle yapıyoruz .csproj uzantılı dosyamızı bir editör yardımı ile açıyoruz ve </Project> etiketinden önce alttaki kodu eklemesiniz. Anlatacaklarım buraya kadar eğer bir eksiklik var ise yorum kısmından ulaşmaya çalışınız.

XML(ProjeAdi.csproj)

 

Bu makalede anlatılanlara ait projeyi Github’dan edinmek için buraya tıklayın.

Kaynaklar

Visual Studio Web Transform’u Build İle Tetikleme
5 (100%) 1 oy

Murat ÖNER

1989 yılında Kocaelinin Dilovası ilçesinde doğdum ilkokul ve lise eğitimimi Kocaeli’de aldım, önlisans üniversite eğitimimi Mehmet Akif Ersoy Üniversitesi Gölhisar Meslek Yüksekokulu’nda bilgisayar programcılığı bölümünde yaptım. Üniversite dönemi boyunca Microsoft'un student partner projesinde yer aldım ve diğer student partner öğrencileri ile birçok farklı projede yer aldım. Üniversite eğitimi tamamlandıktan sonra staj yapmış olduğum Ries Technologies şirketinde yazılım geliştirici ve web designer olarak görev aldım ardından Gen Yazılım firmasında ERP ve HBYS sistemleri ile ilgili yazılım geliştirmeye devam ettim. Şuan aktif olarak mobil, web ve masaüstü uygulamalar geliştirmeye devam etmekteyim.

Bunlar da hoşunuza gidebilir...

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir