Dotnet geliştiriciler için faydalı olabilecek Visual Studio Code eklentileri.
Tag Archives: Visual Studio
Visual Studio Dotnet Core Web Api Proje Şablonu B3.Web.Template.V1
Bir aspnet core web api projesinde ihtiyaç duyulabilecek katmanları ve araçları bir araya getirerek B3.Web.Template.V1 bir proje şablonu hazırlayarak Github üzerinden yayınladım. Şablonu kullanabilmek için, projeyi Github üzerinden indirebilirsiniz.
Proje Katmanları
- WebApi layer (B3.WebApi)
- Application services layer (B3.Applcation)
- Data access layer (B3.EntityFramework)
- Domain layer (B3.Domain)
- Infrastructure layer (B3.Infrastructure)
Katman ilişki şeması aşağıdaki gibidir.
Template Kullanımı
B3.Web.Template.V1 projesini indirin. Visual Studio 2019 için kullanılacak ise indirilen B3WebTemplate.zip dosyasını ProjectTemplates dizinine ekleyin. Örneğin kenid bilgisayarımdaki yol şu şekildedir: (C:\Users\User\Documents\Visual Studio 2019\Templates\ProjectTemplates)
Visual Studio’yu açın ve yeni proje ekleme adımını uygulayın.
Proje adını girin.
Artık yeni web api projeniz tüm katmanlarıyla hazır hale gelmiştir.
Asp.Net Core ve ilk Web Api Projesi
Microsoft tarafından alınan en radikal kararlardan biri olan açık kaynak dünyasına geçiş, tüm geliştiriciler tarafından olumlu bir şekilde karşılanmıştır. Hatta geç kalınmış bir karar olduğuna dair eleştiriler de yapılmıyor değil.
Microsoft tarafında açık kaynak geliştirmeye olanak sağlayan düşünce ile birlikte, geliştirme ve çalıştırma araçları da tamamen yenilenmiştir. Çünkü açık kaynak ürünler, en önemli özelliklerinden biri olan, platform bağımsız çalışabilme yeteneğine sahip olmalıdır. Bu nedenle, geliştirme ve çalıştırma tarafında yeni ürünlere yer verilmiştir.
Platform bağımsız(cross-platform) çalışabilme yeteneğini kazandıran ilk ürün .Net Core adı altında yaniden düzenlenen .Net çatısı olmuştur. Şu an yayınlanmış olan versiyon .Net Core 2.1 şeklindedir.
.Net Core projeleri geliştirme yapmak için .Net Core SDK indirilerek kurulum yapılmalıdır.
Geliştirme işlemi tamamlandıktan sonra projenin bir platformda (Sunucu, PC v.s) çalıştırılabilmesi için ise .Net Core Rutime indirilerek kurulumu yapılmalıdır.
Çalışma ortamında .Net Core SDK kurulumu yapıldıktan sonra yine platform bağımsız bir araç olan Visual Studio Code kurulumu yapılmalıdır. (.Net Core projeleri Visual Studio 2017 geliştirme aracı ile de yapılabilmektedir.)
Visual Studio Code ortamı, yönetici olarak başlatıldıktan sonra, yeni bir klasöre bağlantı yaparak yani diskte boş bir çalışma dizin açarak ilk çalışma projesi oluşturulabilir. Bu örnekte Asp.Net Web Api projesi üzerinden çalışılacağı için proje adını FirstWebApi olarak düzenleyebiliriz. FirstWebApi dizinini Visual Studio ile açtıktan sonra Terminal penceresine aşağıdaki konutu yazarak ilk Asp.Net Core Web Api projesi oluşturulabilmektedir.
dotnet new webapi
Yeni bir proje oluşturulduğunda, geliştiricilere yol göstermesi açısından, varsayılan olarak ValuesController.cs dosyası otomatik olarak oluşturulmaktadır. ValuesController içerisinde basitçe bir değişiklik yaparak ilk projeyi çalıştırabiliriz.
Kodu çalıştırmak için aşağıdaki komutu girmek yeterlidir.
dotnet run
Proje çalıştırıldığında http://localhost:5000 portundan web uygulaması için dinlemeye geçilir. Tarayıcıdan http://localhost:5000/api/Values adresine girildiğinde aşağıdaki şekilde bir JSON response elde edilir.
{“FirstName”:”bayram”,”LastName”:”Üçüncü”}
Visual Studio Solution Template Oluşturmak
Visual Studio geliştirme aracında yeni proje oluşturma seçenekleri arasında proje türüne göre oluşturulmuş hazır şablonlar bulunmaktadır. Sunulan seçenekler Class Library, Console Application, Asp.Net, WCF v.s gibi uzayıp gider. Seçtiğimiz proje türüne göre bir çalışma ortamı otomatik olarak hazırlanır.
Ancak birbirine benzer projeler oluştururken solution içerisine sürekli aynı proje türlerini seçerek oluşturmak zorunda kalırız.
Örneğin bir web projesi için her defasında arayüz katmanı, veri katmanı, test katmanı gibi proje türleri seçilerek işleme başlanabilir. Bunun dışında da katmanlar vardır ama bu yazıda basit olarak üç katmanı ele almak anlaşılırlık açısında uygun olacaktır.
Bu gibi durumlarda kendi proje şablonumuzu olşuturabilirsek işimiz biraz daha kolaylaşmış olacaktır. Yapmamız gereken şey öncelikle bir solution oluşturarak gerekli proje türlerini bu solution içerisine dahil etmek olacaktır.
Bu proje şeklini bir şablon haline getirmek için File->Export Template seçeneğini seçerek ilerleyebiliriz.
Bu işlemin ardından My Exported Templates içerisine DataLayer.zip şeklinde bir dosya oluşturulduğunu görebiliriz. Bu solution içerisindeki tek bir katmana ait şablondur.
MyTemplate.vstemplate içerisinde oluşturduğumuz şablona ilişkin bilgiler bulunmaktadır. İçeriği xml şeklindedir ve istediğimiz şekilde düzenleyebiliriz. Bu işlemi solution içerisindeki tüm projelere uygulayıp oluşan *.zip dosyalarını tek bir şablon içerisinde birleştirebiliriz.
Export Template işlemi ile tüm projelere ait şablonları oluşturup *.zip dosyalarını bir klasöre çıkartalım.
Klasörlerin yanına Root.vstemplate şeklinde bir dosya oluşturmamız gerekmektedir. Adının ne olduğu önemli değildir. Önemli olan *.vstemplate uzantısına sahip olmasıdır. İçerik bilgisi ise şu şeklide olmalıdır.
TemplateContent içierisindeki ProjectCollection bölümünde daha önce tek tek oluşturduğumuz proje şablonlarını listeliyoruz. Icon olarak belirlediğimiz template.png dosyasını da aynı klasör içine kaydetmemiz gerekmektedir. Son olarak bu klasörü zip şeklinde sıkıştırarak kaydetmemiz gerekmektedir.
Artık oluşturduğumuz My Web Template.zip dosyasını Visual Studio Project Templates içerisine taşıyarak çalışır hale getirebiliriz.
Şimdi Visual Studio ortamında yeni proje eklemeyi deneyelim. Proje adını da ETicaret olarak belirleyelim.
Ve mutlu son!
Yazılım Proje Dizin Yapısı Oluşturmak
Projelerimizi oluştururken kendimize bir dizin standardı belirleyip, belirlediğimiz bu düzene sadık kalarak ilerlemek işlerimizi bir nebze kolaylaştıracaktır. Şu an için kodlama standartları gibi geleneksel bir standart yayınlanmamış olsa da programcıların yaygın olarak kullandığı bir dizin yapısı vardır. Bu dizin yapısına göre kaynak kodlar, dış kaynak kütüphaneleri ve dökümantasyon gibi kavramlar ayrı ayrı tutulmak üzere belirlenmiştir.
Bir çok açık kaynak projeyi indirip incelediğimizde bu yapıya benzer bir dizin ağacına rastlarız. Bu ağaçta belirtilen kavramlar:
- doc: Kod ile ilgili dökümanların bulunduğu dizindir. Geliştiricinin karşılaştığı sorunlar, çözümler, resimler, ip ucu olabilecek kısa yollar v.s bu dizinde bulunur.
- lib: Proje için gerekli olan dış kaynak kütüphaneleri bu dizinde bulunur. Örneğin Nuget paketleri, Github üzerinden indirilip referans alınabiliecek başka kaynak kodlar.
- src: Porjemizin kaynak kodunu barındırdığımız yer bu dizindir. Örneğin Visual Studio Solution veya Eclipse projesini bu dizine olşutururuz.
Yukarıda lib dizininde dış kaynaklı kütüphanelerin bulunacağını belirtmiştik. Burada Visual Studio ile çalışanların Nuget paketlerini otomatik olarak lib dizinine indirebilmesi için gerekli bir ayar yapılmalıdır. Proje kaynak kod dizini içerisine yani yukarıda ki şemada src olarak adlandırılmış olan dizine nuget.config adında bir ayar dosyası oluşturulmalıdır . Bu ayar dosyasına şu satırları eklemek yeterlidir.
<settings> <repositoryPath>..\lib</repositoryPath> </settings>
Artık Nuget Package Manager tarafından indirilen dosyalar doğrudan lib dizinine kaydedilir.
Bu yapıda oluşturulan çalışmaları versiyon kontrol sistemlerine derli toplu bir şekilde aktarmak mümkün hale gelmektedir.
NOT: Bu ayarlar Visual Studio 2013 üzerinde başarıyla denenmiştir. Sonraki çıkacak versiyonlarda bu ayarların değişme olasılığı vardır.
Resharper Visual Studio Eklentisi
Bu yazıda Visual Studio eklentisi olan Resharper kodlama aracına bir göz atalım istedim. Bugüne kadar gördüğüm en akıllı eklentidir diyebilirim. Resharper aracı kod denetimlerini yaparak bize rehberlik eden bir uygulamadır. Yazdığımız kodu kontrol ederek hata, uyarı, eksik referans, gereksiz satır, işletilemeyen satır gibi eksiklikleri bize bildirir. Bir diğer özelliği refactoring konusunda geliştiriciye yardımcı olmasıdır. Kodun yerinden düzenlenmesi için yol gösterici özelliklere sahiptir. Ayrıca navigasyon özelliği sayesinde tüm solution bünyesinde aradığımızı bulma konusunda çok etkilidir. Kendi bünyesinde bulunan unit test aracı sayesinde testleri de çalıştırabilmektedir. Gelen olarak başlıca özelliklerini liste halinde verecek olursak:
- Kod analizi
- Navigasyon ve arama
- Kodun yeniden yapılandırılması (Refactoring)
- Kod düzenleme ve temizleme
- Kod üretimine yardımcı olma
Visual Studio proje tiplerinden C#, VB.NET, ASP.NET, Javascript, Typescript gibi proje türlerine destek vermektedir.
Programcılar açısından bir baş ucu aracıdır diyebilirim. Ancak şunu belirtmeliyim, sizi kendine çok kolay bir şekilde bağlar ve bir süre sonra Resharper olmadan kod yazmak size çok sıkıcı gelebilir.
Visual Studio – Paste Special JSON
Visual Studio ortamında JSON nesneleriyle haşır neşir olanlara kolaylık sağlayacak bir özelliği hatırlatmak istiyorum. Diyelim ki elinizde bir JSON nesnesi var ve bu JSON nesnesini temsil eden C# tiplerini oluşturmak istiyorsunuz. Bu durumda oturup tek tek sınıfları yazmanıza gerek yok. Visual Studio bizim yerimize bu işlemi yapıyor. Nasıl mı?
JSON nesnemiz şu şekilde olsun:
{ "Employee": { "Id": 1, "Name": "bayram", "salary": 100, "Department": { "Id": 12, "Name": "Development" } } }
Bu nesneyi kopyalayıp Visual Studio penceresinden Edit-> Paste Special -> Paste JSON as classes seçeneğini seçelim.
Sonuç:
Umarım faydası dokunur.
TFS online üzerindeki bir takım projesi nasıl silinir?
Microsoft’un sunduğu TFS(Team Foundation Service) sayesinde online ortamın takım projeleri(Team Project) oluşturmak mümkündür. Şimdilik 5 kişiye kadar olan takımlar için ücretsiz kullanabilen bir hizmettir. Sistemi biraz kurcaladım ve gayet başarılı bir ürün olduğunu gördüm. Şimdilik şu açıdan söylüyorum sistem üzerinde bir kaç defa proje oluşturup silerek denemeler yaptım henüz “TFS online takıldı!” diye bir mesajla karşılaşmadım. Hız konusunda yine gayet başarılı.
Gelelim bu yazımızın konusuna. TFS online üzerinde takım projesi oluşturmak çok kolay. Ancak TFS online arayüzü üzerinden veya Visual Studio üzerinden takım projelerinizi silme hizmeti verilmemiş ya da ben göremedim. Hal böyle olunca Command Prompt üzerinden silme işlemlerini gerçekleştirdim. Silme işlemini aşağıdaki gibi adımlar halinde özetlemek istedim.
Silme işlemine başlamak için öncelikle Visual Studio Command Prompt aracını yönetici olarak çalıştırmalıyız. Komut satırına aşağıdaki düzende silme komutunu girmeliyiz. Ek bilgi olarak şunu belirteyim, bu işlemleri gerçekleştirdiğim makine üzerinde Windows 8 ve Visual Stuido 2012 mevcut.
tfsdeleteproject /collection:https://YOUR-ACCOUNT-URL.visualstudio.com/DefaultCollection "Your project name"
Yukarıdaki desene örnek olması açısından bizim kodumuzu şu şeklide yazabiliriz.
tfsdeleteproject /collection:https://rabitelli.visualstudio.com/DefaultCollection telekome
Komutu çalıştırdığımızda eğer TFS üzerinde oturum açılmamışsa oturum açma penceresi belirecektir.
Oturum açma işleminin ardından karşımıza çıkan pencerede silme işleminin sonuçlarında oluşacak durumları onaylamamız istenecektir.
Silme işlemi başarılı bir şekilde gerçekleşirse aşağıdaki şekilde bir pencere ile karşılaşmamız gerekmektedir.
Artık projemiz TFS üzerinden silinmiştir.
Visual Studio 2012 Update Enkazı
Visual studio ürün ailesine dahil edilen 2012 sürümünü çoğumuz kurup çalışmaya başlamışızdır. Bu versiyonda dikkatimi en çok cezbeden nokta Update süreleriydi. Daha Visual Studio ürününü yükler yüklemez bir Update uyarısı verdi. Yeni ürünün yeni güncellemesini yüklemek istedim. Aman Allah’ım! Tam üç saat. Tabi bu internet hızı ile alakalı bir durum mu yoksa bilgisayar donanımı ile alakalı mı diye bir düşünce sardı beni hemen. Derken güncelleme işlemi hayırlısıyla sona erdi.
Aradan bir iki ay geçti, Visual Studio’yu başlattığımda bu sefer de Update1 diye bir uyarı belirdi Windows’un sağ alt köşesinde. Eyvah! dedim içinden. Gene kabus başladı. Tam 2 saatte Update1 için zaman harcadım.
Bu kadar uzun süren Update yapacaklarına yeni versiyon çıkarsalar daha isabetli olurdu bence. Çünkü Visual Studio ürününü sıfırdan yükleme süresi zaten yarım saat. Bu yarım saat üzerine 5 saatlik güncelleme yükü çok can sıkıcı oluyor. Bu kadar can sıkıcı olmasaydı bu yazıyı ele almazdım inanın.
Ürünün önceki sürümlerinde böyle bir durumla karşılaşmamıştık. Umarım buna bir önlem alırlar ve Update 2 çıkmadan ürün yenilenir. Yeni bir güncellemeye ayıracak vaktim yok.
Bir sonraki yazıda görüşmek üzere.
NCrunch Visual Studio Eklentisi
NCrunch, kodlama esnasında birim testleri (unit tests) otomatik ve eş zamanlı olarak çalıştıran bir Visual Studio eklentisidir.
Projelerini teste dayalı geliştirenler için mükemmel bir araç diyebilirim. Performans konusunda donanımınızın yeterliliğine ve test sayınıza göre NCrunch analiz süresi değişiklik gösterebilir.
NCrunch aracı, siz kodunuzu yazarken arka planda otomatik olarak kodu testlerden geçirerek durumu size bildirir.
İsterseniz testleri otomatik olarak değil de el yordamıyla da yaptırabilirsiniz. Testlerin durumunu aşağıdaki pencereden de görebilirsiniz.
Büyük projeler düşünülerek, Visual Studio IDE performansı üzerindeki etkileri en aza indirmek için, proje mimarisindeki bağımlılıkları analiz ederek, testleri yürütme işlemi için öncelik sırasına koyar ve asenkron süreçler, ek işlemci çekirdeği kullanır.
Bir diğer özellik ise test kapsamına girmeyen kodların belirlenmesidir.
Siyah noktayla işaretlenen satırların test edilmediğini anlayabilmekteyiz. Yeşil noktayla işaretlenen kod satırlarının testlerden başarıyla geçtiğini göstermektedir.
Testlerin çalıştırılma süresini ölçen özelliği sayesinde ise uzun sürebilecek testler işaretlenir.
NCrunch aracının noktasal işaretleme özelliğinin renkleri isteğe göre değiştirilebilmektedir.
Test Driven Development yapanlar için çok iyi bir araçtır.