Visual Studio Dotnet Core Web Api Proje Şablonu B3.Web.Template.V1

20 May

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

13 Ağu

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

.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

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

Proje Görünümü

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.

Kod

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 Code

30 Haz

indirProgramlama dillerinin platform bağımsız bir alana taşınmaya başladığı günümüzde kod geliştirme disiplinleri de baştan aşağı değişiklik göstermektedir. Bir programlama dili ile geliştirme yapmak için her türlü işletim sistemi kullanılabilir olmalıdır. Son bir kaç yılda Microsoft teknolojileri de bu değişime  ayak uydurarak açık kaynak ürünler ve platform bağımsız teknolojiler üretmeye başlamıştır. Microsoft .Net ile artık Mac ve Linux platformlarında geliştirme yapmak mümkün hale gelmiştir. Şu anda (2016 Haziran) Visual Studio Code 1.2.1 sürümü ile yayınlanmıştır.

Adsız

Geliştirme altyapısının platform bağımsız bir yapıya büründüğü Microsoft tarafında geliştirme ortamı da her platformda çalışabilecek bir ürün olan  Visual Studio Code ile desteklenmiştir. Visual Studio Code hızlı, hafif olmanın yanında Microsoft, Linux ve Mac işletim sistemlerinde çalışabilen bir araçtır. Kurulum yapıldığında  basit bir metin editörü görüntüsü ile karşımıza çıkan ürün, eklentiler sayesinde Nodejs, Ruby, Python, C/C++, C#, Javascript gibi bir çok programlama dilini desteklemektedir. Yani klasik Visual Studio ürünleri gibi her şeyi bünyesinde barındırmak yerine çekirdek bir yapı ile başlatılıp lazım olan parçaların eklentiler halinde ürüne eklenmesi sağlanarak mantıklı bir hareket yapılmıştır. Eklentilerin indirilebildiği bir market ortamı oluşturulmuştur.

Visual Studio Code ürününün başlıca özellikleri:

  • Hızlıdır.
  • Platform bağımsız kod geliştirebilmeyi destekler.
  • Code Debugger desteği vardır.
  • Zengin bir kod tanıma(code intellisense) içeriği vardır.
  • Zengin bir kod refactoring desteği vardır.

Windows 10 ve Linux Ubuntu dağıtımında Visual Studio Code kurulumunu ve denemelerini yapsam da henüz Mac versiyonunu deneme şansı bulamadım.

Adsız

ilk izlenimlerime göre klasik Visual Studio 2012,2013 serisinden sonra bu ürünü kullanmak insana ilk başta biraz eziyet gibi geliyor. Çünkü eski alışkanlıklar yüzünde insanın gözü dolu dolu bir IDE arayüzü aramaya başlıyor. Ardından kendinize gelip bunun bir IDE değil editör olduğunu hatırlıyorsunuz.

Visual Studio Solution Template Oluşturmak

25 Mar

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.

New Project
New Project Seçenekleri

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.

Solution
Solution

Bu proje şeklini bir şablon haline getirmek için File->Export Template seçeneğini seçerek ilerleyebiliriz.

Export Template
Export Template

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.

vs4

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.

Template Şablonları
Template Şablonları

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.

Roor.vstemplate
Roor.vstemplate

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.

Template.zip
Template.zip

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.

Yeni Proje Şablonu
Yeni Proje Şablonu

Ve mutlu son!

Proje
Proje

.Net Framework Gelişim Tarihine Genel Bakış

7 Mar

Microsoft .Net Framework ile ilgili tarihi geçmişe bir göz atarak eskiden günümüze(2015) yani 4.5.1 framework sürümüne kadar nasıl bir gelişimin olduğunu genel hatlarıyla incelemeye çalışalım.

.Net Framework 1.0: 2002 yılında duyurulmuş ilk versiyonsdur. Visual Studio .Net geliştirme aracı ile birlikte sunulmuştur.

.Net Framework 1.1: 2003 yılında duyurulan bu versiyon ile birlikte Visual Studio 2003 geliştirme aracı da piyasaya sürülmüştür. .Net Framework 1.1 ile birlikte ilk defa Asp.Net Mobile control araçları denenmiştir. Ayrıca birden fazla ve farklı Framework sürümünü aynı bilgisayarda çalıştırabilme özelliği olan side-by-side özelliği eklenmiştir. Güvenlik ile ilgili yeni gelişmeler eklenmiştir.

.Net Framework 2.0: 2005 yılında Visual Studio 2005 geliştirme aracıyla birlikte duyurulmuştur. Bu framework ile birlikte Generic, Nullable tipleri, IPV6 desteği ve CLR 2.0 gibi önemli özellikler eklenmiştir.

.Net Framework 3.0: 2006 yılında duyurulmuş olup Visula Strudio 2005 üzerinden devam etmiştir. Bu sürüm ile birlikte WCF(Windows Communication Framework), WPF(Windows Presentation Framework), WF(Workflow Foundation) gibi yenilikler geliştiricilerle buluşturulmuştur. Bu yenilikler ile iletişim, sunum  ve iş akışları gibi ayrımlar ilk defa belirgin bir şekilde altyapı olarak yapılmış oldu.

.Net Framework 3.5: 2008 yılında Visual Studio 2008 gelitirme aracı ile beraber duyurulmuştur. LINQ ve Addin/Plugin Model gibi özellikler eklenmiştir.

.Net Framework 4.0: 2010 yılında Visual Studio 2010 il birlikte duyurulan bu sürümde bir çok yeni özellik eklenmiştir. Parallel Computing, Code Contracts, Lazy Initializations, Dynamic Language RuntimeIn-process side-by-side hostingBackground garbage collection ve CLR 4.0 şeklinde önemli eklemeler yapılmıştır.

.Net Framework 4.5: 2012 yılında Visual Sturio 2012 ile beraber duyurulmuştur. Paralel Programlama üzerinde yeni gelişmeler async/await yöntemi, asenkron işlemler, 64-bit platformlarda 2 gigabayt’tan (GB) büyük diziler için destek, Sıkıştırılmış dosyaların boyutunu azaltmak için Zip sıkıştırma işlevinde geliştirmeler yapılmıştır.

.Net Framework 4.5.1: 2013 yılında Visual Studio 2013 ile birlikte duyurulmuştur. Derlemeler için otomatik bağlama yeniden yönlendirme, .NET Framework güncelleştirmelerinden sonra daha hızlı uygulama başlatma, çok çekirdekli JIT geliştirmeleri ve ASP.NET uygulama askıya alma gibi ek performans artışları yapılmıştır. Sunucularda arka plan çöp toplama işlemi ile daha iyi performans sağlanmıştır.

Yazılım Proje Dizin Yapısı Oluşturmak

4 Mar

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.

Proje Dizin Yapısı
Proje Dizin Yapısı

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.

Proje ve Kaynak Kod
Proje ve Kaynak Kod Yapısı

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.

Visual Studio – Paste Special JSON

14 Nis

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.

Paste Special JSON
Paste Special JSON

Sonuç:

Paste JSON as Clasess
Paste JSON as Clasess

Umarım faydası dokunur.

TFS online üzerindeki bir takım projesi nasıl silinir?

24 Tem

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

Delete Command
Delete Command

Komutu çalıştırdığımızda eğer TFS üzerinde oturum açılmamışsa oturum açma penceresi belirecektir.

Login TFS Online
Login TFS Online

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şlemini onyala
Silme işlemini onayla

Silme işlemi başarılı bir şekilde gerçekleşirse aşağıdaki şekilde bir pencere ile karşılaşmamız gerekmektedir.

TFS Online Silme işlemi tamamlandı
TFS Online Silme işlemi tamamlandı

Artık projemiz TFS üzerinden silinmiştir.

Visual Studio 2012 Update Enkazı

28 Mar

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.

Visual Studio Update
Visual Studio Update

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.