.Net Core Eğitimleri

4-) Data Katmanı ve Migration

Data Katmanı

“Common” katmanını genel hatları ile oluşturduktan sonra sırada “Data” katmanımız var. Data katmanımızı code first migration yaparak veritabanımız üzerinde tabloları otomatik oluşturacak şekilde kurgulayacağız. “Solution Explorer” üzerinden Data projesinin üzerine sağ tıklayarak “Context” ve “Entites” isminde iki adet klasör ekliyoruz. İlk etapta bu klasörler boş olacak.”ConnectionString” tanımlamak için projeye bir ayar dosyası ekleyeceğiz ve bu dosyadan connection stringi okuyacağız. .Net Core öncesinde bu ayar dosyası xml formatında olur ve ismi web.config olurdu. Artık core ile birlikte json formatında bir ayar dosyası kullanılmakta.Tabi bu bir zorunluluk değil.

Biz projemize “appsettings.json” isminde bir dosya ekliyoruz. Aşağıda bulunan ekran görüntüsünde olduğu gibi önce arama kısmına “json” yazarak bir filtreleme yaptık ve sonuçlar içerisinden “JSON File” seçeneğini işaretleyerek, isim kısmına “appsettings.json”  yazdık.

appsettings.json dosyasının eklenmesi - Mehmet Ali EROL
appsettings.json dosyasının eklenmesi – Code First Migration

Connection String

Bu işlemi yaptıktan sonra “Solution Explorer” üzerinde gördüğümüz “appsettings.json” dosyasına çift tıklayarak açıyoruz ve içini aşağıdaki gibi düzenliyoruz.

Entity ‘lerin Oluşturulaması

Şimdi tek tek projemize entitylerimizi ekleyeceğiz, ekleyeceğimiz her bir class, “Common” katmanımızda kodladığımız “EntityBase” isimli sınıftan kalıtım(inheritance) alacak. “Entities” klasörüne sağ tıklayarak “Add –> Class” diyoruz ve açılan kısımda “Name” alanına
“Customer.cs” yazarak ekliyoruz. “Customer” bizim müşterilerimizin bilgilerini tutacak nesne olacak. “Customer” nesnesini oluşturduğumuz gibi “Organization”, “Language”, “AppResource” nesnelerini de oluşturalım. Bu nesneleri tamamen örnek olması açısından ekliyoruz ve projenin ilerleyen bölümlerinde bu nesneler üzerinde çeşitli işlemler yapacağız. “Organization” nesnesi bizim uygulamamız için firmaların bilgilerini tutacak, “Language” nesnesi çoklu dil alt yapısı kurmak için desteklenen dilleri tutacak ve “AppResource” nesnesi ise çevirilerin yer aldığı nesne olacak.

Bu sınıfların Common katmanında bulunan EntityBase nesnesinden kalıtım alabilmeleri için Common projesini referans olarak Data projesine eklemeliyiz.

Common projesinin referans olarak eklenmesi - Mehmet Ali EROL
Common projesinin referans olarak eklenmesi – Code First Migration
Common projesinin referans olarak eklenmesi 2 - Mehmet Ali EROL
Common projesinin referans olarak eklenmesi 2 – Code First Migration

Karşımıza çıkan pencereden Company.Application.Common seçeneğini seçili hale getiriyoruz.

Yukarıdaki şekilde referans ekleme işlemini yaparak, saydığımız nesneleri oluşturduktan sonra her birinin içeriğini aşağıdaki şekilde güncelleyelim.

Identity Altyapısı

Microsoft.AspNetCore.App paketinin projeye dahil edilmesi - Mehmet Ali EROL
Microsoft.AspNetCore.App paketinin projeye dahil edilmesi – Code First Migration

Projemizde Identity alt yapısını kullanarak authentication ve authorization işlemlerini yapacağımız için “IdentityUser” nesnesinden kalıtım alan ve kullanıcılarımızın bilgileri saklayacağımız class’ımızı oluşturuyoruz.
Entities klasörüne sağ tıklayarak “Add –> Class” yolunu izliyoruz ve yeni dosya ekleme kutusunda “Name” alanına “ApplicationUser.cs” yazıyoruz. Bu nesne bizim uygulamamızı kullanacak kişilerin bilgilerini barındıracak ve “IdentityUser” base classından kalıtım alacak.
“IdentityUser” nesnesini kalıtım alabilmek için aşağıdaki ekran görüntüsünde de görüldüğü gibi “Data” projesine sağ tıklayarak “Manage Nuget Packages” seçeneğine tıklıyoruz.

Ardından karşımıza nuget paket yöneticisi ekranı gelecek. Yine aşağıdaki ekran görüntüsünü takip ederek arama kısmına “Microsoft.AspNetCore.App” yazarak arama yapıyoruz ve 2 nolu ok ile işaret edilen seçeneğe tıklıyoruz.  En son 3 nolu ok ile işaret edilen Install butonuna tıklıyoruz. Genelde bu işlemleri yaptığınızda kısa bir bekleme sonrasında size bir onay kutusu gösterir, devam edebilmek için gelen ekranda “Kabul Ediyorum (I Accept)” seçeneğini tıklayalım. Aynı işlemi bu projeye referans verdiğiniz Common projesi için de yapacağız. Lütfen aynı adımları uygulayarak Common projesinede “Microsoft.AspNetCore.App” bağımlılığını yükleyelim.

Microsoft.AspNetCore.App paketinin projeye dahil edilmesi 2 - Mehmet Ali EROL
Microsoft.AspNetCore.App paketinin projeye dahil edilmesi 2 – Code First Migration

IdentityUser

Bu işlemi yaptıktan sonra artık “ApplicationUser.cs” dosyasına çift tıklayarak içeriğini aşağıdaki gibi düzenliyoruz. Koda dikkat edecek olursanız sınıfımız “IdentityUser” base sınıfından kalıtım aldı. “IdentityUser” üzerine tıklayarak klavyeden “F12” tuşuna basabilir ve bu sınıfın içinde ne gibi property ler olduğuna bakabilirsiniz.

IdentityRole

ApplicationUser’ı ekledikten ve gerekli düzenlemeleri yaptıktan sonra Entities klasörüne sağ tıklayarak “Add –> Class” yolunu izliyoruz ve  Rollerimiz için ApplicationRole isimli bir sınıf oluşturuyoruz. Nasıl ki ApplicationUser sınıfımız IdentityUser sınıfından kalıtım aldı ise ApplicationRole sınıfımızda IdentityRole sınıfını kalıtım alacak. Dosyayı ekledikten sonra ApplicationRole.cs dosyasına çift tıklıyoruz ve aşağıdaki şekilde içerisini güncelliyoruz.

Şimdi kullanıcılar ve rollerin eşleştirildiği ApplicationUserRole isimli bir sınıf oluşturacağız ve bu sınıf IdentityUserRole sınıfından kalıtım alacak. Identity alt yapısında kullanıcı yönetimi için UserManager sınıfı kullanılıyorve bu sınıf ile biz sadece kullanıcıya ait rollerin adını alabiliyoruz. Bu nedenle entity framework alt yapısı ile Identityi birleştireceğiz. Entities klasörü içerisine oluşturduğumuz ApplicationUserRole.cs dosyasına çift tıklayarak içeriğini aşağıdaki gibi düzenliyoruz.

Diğer Identity Sınıfları

Entities klasörüne sağ tıklayarak ApplicationUserRole isminde yeni bir sınıf oluşturuyoruz. Bu sınıf bizim User ve Role lerimizin birleşim tablosu yani many to many relation tablomuz olacak. Bu sınıfı ve bundan sonra oluşturacağımız ApplicationUserToken ve ApplicationUserLogin sınıflarını oluşturmak zorunlu değil ancak bu sınıflarda bir id property si bulunmuyor bu nedenle ilerleyen derslerde göreceğimiz AutoHistory ve ApiBase sınıflarımızda sorunlar yaşamamak için ekliyoruz. Identity alt yapısında başka sınıflarda mevcut ancak o sınıflarda Id propertyleri olduğu için bir sorun yok. Siz mevcut Identity sınıflarını genişletecek başka özellikler ekleyecekseniz dbcontext constructor metodunda generic type olarak verdiğimiz tüm Identity sınıflarından kalıtım alan kendi sınıflarınızı oluşturabilirsiniz.

Sırası ile ApplicationUserRole (IdentityUserRole’den kalıtım alacak), ApplicationUserToken(IdentityUserToken’dan kalıtım alacak) ve ApplicationUserLogin(IdentityUserLogin’den kalıtım alacak) sınıflarımızı oluşturacağız bunlar bizim kendi sınıflarımız isimlerine istediğimizi verebiliriz.

ApplicationUserRole

ApplicationUserToken

ApplicationUserLogin

DbContext

Artık son aşamaya geldik diyebiliriz. Bu aşamada “DbContext” imizi oluşturacağız. Normal şartlarda oluşturacağımız context sınıfı “DbContext” sınıfından kalıtım alacaktı ancak biz projemizde “IdentityUser” alt yapısını kullandığımız için context sınıfımız generic olan “IdentityDbContext<>” sınıfından kalıtım alacak. Bu generic sınıf tip olarak içerisine IdentityUser’ı kalıtım almış bir sınıfı ve IdentityRole sınıfını kalıtım almış diğer bir sınıfı beklemektedir ki bizde bir adım öncesinde bu sınıfları oluşturmuştuk. Yazının başında oluşturduğumuz “Context” isimli klasöre sağ tıklayalım ve “New –> Class” diyerek yeni bir sınıf oluşturalım ve sınıfımızın adına “ApplicationDbContext.cs” diyelim. Daha sonra bu dosyaya çift tıklayarak içeriğini aşağıdaki gibi düzenleyelim.

Migration Altyapısı

Migration yapabilmek için IDesignTimeDbContextFactory isimli generic interface’i implemente eden bir sınıf oluşturacağız ve bu interface’e oluşturduğumuz ApplicationDbContext sınıfını tip olarak göndereceğiz.
Context klasörümüze sağ tıklayarak “Add –> Class” yolunu izliyoruz ve Name alanına DesignTimeDbContextFactory.cs yazarak kaydediyoruz. Oluşturduğumuz dosyaya çift tıklayarak içini aşağıdaki şekilde düzenliyoruz.

Code First Migration

Migration ekleme işlemi - Mehmet Ali EROL
Migration ekleme işlemi – Code First Migration

Mssql management studio görüntüsü - Mehmet Ali EROL
Mssql management studio görüntüsü – Code First Migration
Update database komutu ile veritabanı oluşturma işlemi - Mehmet Ali EROL
Update database komutu ile veritabanı oluşturma işlemi – Code First Migration

Tüm işlemleri yaptığımızda artık “code first” yaklaşımı ile veritabanımızı kodlamış oluyoruz. Tabiki daha sonradan eklenecek tablolar ve sütunlar olacaktır. Biz projemizin veritabanının bu hali ile “MsSQL server” üzerinde oluşturulması için migration işlemi yapacağız. “Migration” işlemi oluşturduğumuz “ApplicationDbContext” içerisindeki ayarları ve “DbSet” ile tanımladığımız tabloları bizim belirlediğimiz kurallar çerçevesinde “MsSQL” üzerinde oluşturma işlemidir diyebiliriz. Bu işlemi “Package Manager Console”(biz artık PMC diyeceğiz) üzerinden yapacağız. Eğer PMC yi ekranda göremiyorsanız, “Tools” menüsünden “Nuget Packege Manager — > Package Manager Console” yolunu izleyerek açabilirsiniz.

Add-Migration Komutu

PMC ye tıklayarak  “Add-Migration migrationAdı”  şeklinde bir komut yazacağız. Bu migration bizim için ilk olacağından dolayı ben adına ilk anlamına gelen “initial” ismini vereceğim.  Bu işlemi yaparken PMC üzerinde “Default project” alanında “Data” projemizin seçili olduğundan emin oluyoruz ve aynı zamanda Data projemize sağ tıklayarak “Set as Startup Project” demeyide unutmuyoruz.

İşlemleri doğru bir şekilde yaptıysak “Solution Explorer” üzerinde aşağıdaki gibi bir ekran görüntüsü görmemiz gerekiyor.

Peki buraya kadar yaptıklarımız code first ile oluşturduğumuz database tasarımının MsSQL üzerinde oluşmasını sağladı mı? Sorunun cevabını verebilmek için hemen MsSQL Management Studio yu açıyoruz. Databases kısmında connection string içinde belirttiğimiz üzere ApplicationDB isminde bir veritabanı olması gerekiyor. Ama aşağıdaki ekran görüntüsünden de anlaşılacağı üzere veritabanı listede görünmüyor.

Update-Database Komutu

Veritabanının oluşmaması gayet normal çünkü biz şuana kadar sadece migration oluşturduk yani veritabanı oluşturmak için gereken son hamleyi henüz yapmadık. Migration ile bir plan hazırladık, yani örnek üzerinden gidecek olursa arabanın çalışması için gereken herşeyi oluşturduk sadece marşa basmak kaldı. O zaman yine PMC üzerinden update-database komutunu girerek marşa basalım.

Bu işlem sonrasın tekrar MsSQL Management Studio üzerinden kontrollerimizi yapıyoruz ve veritabanımızın oluşup oluşmadığını kontrol ediyoruz.

Sizde yukarıdaki ekran görüntüsünü görüyorsanız işlemleri doğru bir şekilde yapmışız demektir. Farkettiyseniz identity yapısını projemize dahil ettiğimiz için Identity tabloları veritabanında otomatik olarak oluşturuldu. Herhangi bir adımda hata ile karşılaştıysanız ya da kendi kodunuz ile benim yazdığım kodu karşılaştırmak istiyorsanız projenin son haline github sayfamdan ulaşmak için bu link ‘e tıklayabilirsiniz.

<- Önceki Post – Sonraki Post ->

.Net Core Eğitimleri

3-) Common Katmanı

Başlarken

Projenin ana yapısını oluşturduktan sonra şimdi sırada Common katmanı ‘nın genel hatlarını oluşturmak var. Bir önceki  post ‘u takip ederek işlemler doğru yaptıysak Solution Explorer üzerinde aşağıdaki görüntüyü görüyor olmalıyız.

Common katmanın yapısının oluşturulması - Mehmet Ali EROL
Common katmanın yapısının oluşturulması

Common Katmanı ‘na Giriş

Öncelikle bu katman içerisinde kullanacağımız kodları gruplamak için klasörler oluşturacağız. Klasör oluşturmak için Solution Explorer tabının içinden Common projemizin adına sağ tıklıyoruz ve sırası ile “Add” –> “Folder” seçeneklerine tıklıyoruz.

Oluşturacağımız Klasörler

1- ) Api -> Bu kısımda api ile ilgili genel tanımlamaları yapacağız. Api result, api base gibi sınıfları bu kısımda kodlayacağız.
2- ) Data -> Bu klasör bizim Data katmanı içerisinde saklayacağımız entityleri’mizin ortak özelliklerini tutacak.
3- ) Dto -> Data transfer objectlerimize ait base class ve ortak özellikleri içeren class lar bu klasörde olacak.
4- ) Enums -> Proje genelinde kullanacağımız enumları barındıracak.
5- ) Logging -> Loglama işlemleri ile ilgili ayarlar ve temel özellikler bu kısımda yer alacak
6- ) Paging -> Sayfalama işlemlerinin çekirdeği bu kısımda yer alacak.
7- ) Repository -> Repository pattern için gerekli classları barındıracak.
8- ) UnitofWork -> Repository pattern ile kullanacağımız UnitofWork mantığı bu klasörde tutulacak.

Başlangıç olarak tüm klasörleri aynı şekilde tek tek oluşturacağız ancak sadece Api,Data,Dto ve Enums klasörleri altına classlar ekleyeceğiz. Diğer klasörlerin altını konuları geldiğinde doldurup projeye dahil edeceğiz. Yukarıdaki adımları uyguladığınız da Solution Explorer aşağıdaki gibi görünüyor olmalıdır.

Common katmanının yapısı - Mehmet Ali EROL
Common katmanının yapısı

ApiResult Sınıfı

Şimdi Solution Explorer üzerinden Common katmanımızın altında kalan Api klasörümüze sağ tıklayarak altına bir class ekleyeceğiz. Ekleyeceğimiz sınıf restful WebApimizin geriye dönüş standartını belirleme görevi görecek. İstemcilerden gelen tüm isteklere ApiResult sınıfımız ile dönüş yapacağız. Bu sınıf içerisinde 3 adet property olacakve çok biçimlilik(polymorphism) özelliği bulunacak. Aşağıdaki ekran görüntülerini takip ederek ApiResult.cs dosyamızı oluşturalım.

ApiResult sınıfının oluşturulması - Mehmet Ali EROL
ApiResult sınıfının oluşturulması
ApiResult sınıfının oluşturulması 2 - Mehmet Ali EROL
ApiResult sınıfının oluşturulması 2

ApiResult sınıfımızı oluşturduktan sonra içerisini aşağıda görünen şekilde düzenliyoruz. Kodun içerisinde summaryler kullanarak detaylı açıklamalar yapmaya çalıştım.

Base Sınıflarının ve Durum Enum’ının Oluşturulması

Aynı şekilde Common katmanı altında kalan Data klasörüne EntityBase sınıfını, Dto klasörüne DtoBase sınıfını ve Enum klasörüne AppStatus enum’ını oluşturuyoruz.

EntityBase.Cs

DtoBase.cs

AppStatus.cs

Sonuç

Buraya kadar olan tüm işlemleri doğru bir şekilde yaptıysanız Solution Explorer üzerinde aşağıda bulunan görüntüyü görüyor olmalısınız.

Common katmanı giriş dersi sonunda oluşan görüntü - Mehmet Ali EROL
Common katmanı giriş dersi sonunda oluşan görüntü

Projenin son halini github üzerinden indirmek ve incelemek için bu linke tıklayabilirsiniz. Bir sonraki derste EntityFramework 6 (bundan sonra EF olarak anacağız) ile code first yaklaşımını kullanarak veritabanı tasarımımızı yapacak ve aynı zamanda entitylerimizi oluşturmuş olacağız. Bu kısım için yaşadığınız bir sorun ya da sormak istediğiniz bir soru varsa yorum kısmında ya da mail adresim üzerinden iletebilirsiniz.
Mail adresim : mehmetalierol@windowslive.com

<- Önceki Post – Sonraki Post ->

.Net Core Eğitimleri

2-) Projeye giriş

Geliştirme Ortamı

Projeye giriş dersi ile oluşturacağımız kurumsal backend uygulamamızın temellerini atmış olacağız. Örnek projenin geliştirilmesi sırasında aşağıda bulunan programları kullandım. Uygulama isimlerine tıklayarak bu uygulamaları indirebilir ve sisteminize kurabilirsiniz. Kurulumlar oldukça basit ancak yinede sorun yaşayacak olursanız küçük bir arama ile İnternet’te bolca kurulum videosu ve anlatımı bulabilirsiniz.

1-) Visual Studio 2017
Kodları geliştireceğimiz ortam (Integrated Development Environment – IDE)

2-) MsSQL Express 2017
Veritabanı

3-) Postman
Restful olarak geliştireceğimiz web api projemiz üzerinde testler yapmak için kullanacağımız istemci uygulama olacak. Projeye giriş aşamalarında olmasa da sonrasında sıklıkla kullanacağız.

4-) Fiddler
Local networkümüzde olup bitenler (http request ve responsları) görmek için kullanacağız. Postman ile aynı şekilde projeye giriş kısmında değil sonraki adımlarda kullanacağız.

Visual Studio IDE (Integrated Development Environment)

Yukarıda bulunan ortamları kurduktan sonra ilk olarak Visual Studio geliştirme ortamını açıyoruz. Karşımıza aşağıdaki şekilde bir ekran gelecek. Artık her seferinde Visual Studio demek yerine bundan sonra VS diyerek devam edeceğiz.

Projeye Giriş - Visual studio giriş ekranının tanıtımı. Mehmet Ali EROL
Visual studio giriş ekranının tanıtımı.

Visual Studio Giriş Ekranı

Yukarıda bulunan ekran VS’nin başlangıç ekranıdır. “Get started” bölümünün altında kalan kısım eğitimsel içerikleri barındırmaktadır, “Recent” kısmında son çalıştığınız projelerin kısa yolları, “Open” kısmında var olan projeleri açmak için kısayollar, “New Project” kısmında yeni proje oluşturma kısayolları ve “Developer News” kısmında ise geliştiriciler için yaralı bilgiler, haberler bulunmaktadır. Geriye kalan kısımları ilerleyen bölümler içerisinde açıklamaya çalışacağım.

Projeye Giriş

Yeni proje oluşturmak için; VS’nin açılış ekranında New Project kısmında bulunan Create new project butonuna tıklayabilir ya da File menüsü üzerinden New -> Project yolunu izleyebilirisiniz. Yukarıda bulunan herhangi iki yöntemden birini uyguladığınızda karşınıza yeni proje oluşturma ekranı gelecek. Aşağıdaki görselde de anlatıldığı üzere önce Arama kısmına “Solution” yazacağız, visual studio ile yapabileceğiniz çok fazla proje tipi olduğu için arama kısmından oluşturmak istediğimiz proje türünü arıyoruz. Karşımıza 2 nolu ok ile gösterildiği üzere “Blank Solution” seçeneği çıkacak, bu seçeneğe tıklayarak 3. adıma yani proje ismi kısmına geçiyoruz.

İsimlendirme

Proje isimlendirmesi yaparken dikkat  edilmesi gerekenlere bu link ile ulaşabilirsiniz. Kısaca bizim dikkat edeceğimiz hususlar, mantıklı ve amacına uygun isimler seçmek, rakam ile isimlendirmeye başlamamak, alt tire haricinde özel karakterler kullanmamak, aralarda boşluk bırakmamak olacaktır. İsim seçerken genel olarak ŞirketAdı.UygulamaAdı.KatmanAdı şeklinde bir yapı kullanılır. Bu sayede oluşturduğunuz projenin bölümlerini de ifade etmiş olursunuz ve hiyerarşik bir yapınız olur.

Visual studio yeni solution ekleme ekranı. Mehmet Ali EROL
Visual studio yeni solution ekleme ekranı.

Yukarıda bulunan adımları tamamladığınızda aşağıdaki görüntüyü alıyor olmalısınız.

Solution Explorer Menüsü

Burada önemli nokta “Solution Explorer” penceresidir. Eğer bu pencereyi göremiyorsanız klavyenizden “Ctrl+Alt+L” kısayol kombinasyonunu kullanabilir ya da View menüsüne gelerek “Solution Explorer” butonuna tıklayabilirsiniz. Bu ekranda projemize dair dosyalar gösterilmektedir, kolay ve hızlı şekilde proje,dosya,klasör gibi öğeleri eklememize olanak verir. Projemizin ana çatısı olacak olan boş Solution’ımızı oluşturmuş olduk. Şimdi projemiz içerisinde kullanacağımız katmanları tek tek oluşturacağız. Oluşturma kısmına geçmeden önce projemizin katmanlarını tanıyalım.

Projenin Katmanları

1-) Common : Proje genelinde kullanacağımız tanımlamaları yapacağımız kısım olacak. İçerisinde sadece yapısal tanımlamalara yer vereceğiz.

2-) Data : Projemizde kullanacağımız entitylerimizi ve Dbcontext gibi veritabanı ile ilgili bölümleri tutacağımız katmanımız olacak.

3-) Dto : Data transfer objectlerimizi ve mapper için mapleri tutacağımız kısım olacak.

4-) WebApi : Business katmanımız olacak, projemizde yapacağımız işleri bu kısımda kodlayacak ve frontend tarafına gerekli bilgileri döndürüp gerekli olduğu durumlar frontend kısmından aldığımız bilgileri entity framework sayesinde veritabanımıza ileteceğiz.

5-) UnitTests : Bu kısımda projemizin unit testlerini oluşturacağız ve gerekli test senaryolarını, dependencyleri mocklama yaparak testlerimize dahil edeceğiz.

Yukarıda sıraladığım katmanlar kişiden kişite ve firmadan firmaya göre değişiklik gösterebilir ancak genel anlamı ile bu şekilde oluşturulmaktadır. Aşağıda bulunan ekran görüntülerini sırası ile takip ettiğinizde projemizin genel yapısını oluşturmuş olacaksınız.

Visual studio yeni proje ekleme ekranı. Mehmet Ali EROL
Visual studio yeni proje ekleme ekranı.

Common Katmanı

Oluşturduğumuz “Company.Application” isimli solution’ımıza sağ tıklayarak açılan menüden sırası ile “Add” ve “New Project” seçeneklerini seçiyoruz.

Visual studio common projesinin eklenmesi. Mehmet Ali EROL
Visual studio common projesinin eklenmesi.

1. adımda gösterildiği üzere sol kısımdan .Net Core seçeneğini seçerek, 2. adımda gösterilen proje tipine tıklıyoruz. Bu proje türü çalıştırılabilir bir proje türü değildir bizim için bu proje altında bulunan kodlar bir dll haline getirilecek ve projemizin bir katmanını temsil edecek. Name kısmına “Company.Application.Common” yazarak “Ok” seçeneğine tıklıyoruz.

Data ve Dto Katmanları

Common projesini oluştururken uyguladığımız adımların aynısını Data ve Dto projeleri için aynı şekilde yapıyoruz. Data projesinde Name kısmına “Company.Application.Data” ve Dto projesinde “Company.Application.Dto” yazarak kaydediyoruz. Bu iki işleme ait ekran görüntüleri aşağıdadır.

Visual studio data projesinin eklenmesi. Mehmet Ali EROL
Visual studio data projesinin eklenmesi.
Visual studio dto projesinin eklenmesi. Mehmet Ali EROL
Visual studio dto projesinin eklenmesi.

Test Projesinin Oluşturulması

Common, data ve dto projelerinden sonra sırada Web api ve unit test projelerimiz var. Önce test projemizi oluşturuyoruz.

Visual studio test projesinin eklenmesi. Mehmet Ali EROL
Visual studio test projesinin eklenmesi.

Web Api Katmanı (Business)

Son olarak sıra geldi web api projesini oluşturmaya bu projeyi oluşturmak diğerlerinden biraz daha detay barındırıyor. Öncelikle aşağıda bulunan ekran görüntüsündeki adımları takip ediyoruz

Visual studio web api projesinin eklenmesi. Mehmet Ali EROL
Visual studio web api projesinin eklenmesi.

.Net Core Sürümleri ve Seçimi

Daha sonra karşımıza gelen ikinci ekrandaki işlemler için yine ekran görüntüsündeki adımları izliyoruz. Eğer aşağıda gördüğünüz “.Net Core” ya da “ASP.NET Core 2.1”  seçenekleri sizde çıkmıyorsa VS yi güncellemeniz gerekmektedir. Güncelleme yapmak için VS nin en solunda bulunan “Notifications” tabını açabilir ve en üst kısımda bulunan “Visual studio 2017 update version x.x.x is available” ibaresine tıklayabilirsiniz. Bu işlemi yaptığınızda VS yi güncellemek için gerekli ekranlar açılacak ve güncelleme için sizi yönlendirecektir.

Visual studio web api projesinin eklenmesi 2. - Mehmet Ali EROL
Visual studio web api projesinin eklenmesi 2

Web Projesi Tipleri

.Net Core çalışacağımız framework’ü, ASP.NET Core 2.1 bu framework’ün sürümünü, ve alt kısımda kalan pencere içerisinde bulunan iconlar ise bu framework çatısı altında yapabileceğiniz web projelerinin tiplerini göstermektedir. Configure for HTTPS kısmını bu projede kullanmayacağımız için disabled olarak bırakıyorum. Dikkat etmemiz gereken diğer bir husus “Authentication” kısmında “No Authentication” yazması, böyle yaparak projemize ön tanımlı hazır paketlerin kurulmasını istemediğimizi belirtiyoruz eğer bu şeçeneği seçerseniz VS sizin için gerekli tüm ayarlamaları ve kurulumları otomatik yapacak. Biz her şeyi sıfırdan oluşturacağımız için bu alanı bu şekilde bırakıyoruz.

Silinecek dosyalar - Mehmet Ali EROL
Silinecek dosyalar

Sonuç

Son durumda projeye giriş dersi sonunda “Solution Explorer” üzerinde bu şekilde bir görüntü alıyor olmalıyız. Son bir rötuş yaparak beyaz oklar ile işaretlenmiş Class1.cs dosyalarını ve UnitText1.cs dosyasını projeden siliyoruz. VS bizim için bu dosyaları örnek olması açısından otomatik oluşturdu ancak biz bu dosyaları kullanmayacağız.

Bir sonraki derste projemizin “Common” katmanını oluşturacağız. Bu kısım için yaşadığınız bir sorun ya da sormak istediğiniz bir soru varsa yorum kısmında ya da mail adresim üzerinden iletebilirsiniz.
Mail adresim : mehmetalierol@windowslive.com

<- Önceki Post – Sonraki Post ->