.Net Core Eğitimleri

11- ) Web Api Projesi 2. Kısım

Web Api 2. Kısım

Bu dersimizde web api projemizin diğer controller larını oluşturarak, auto history  alt yapısına loglama emrini verecek düzenlemeleri yapacağız. Geliştirdiğimiz web api projesini postman istemcisi ile test ederek güncellediğimiz ya da sildiğimiz kayıtların auto history ile nasıl saklandığına bakacağız.

Controllerlar

Öncelikle controllerlarımızın uygulayacağı interfacelerimizi oluşturacağız daha sonra controllerları oluşturarak içlerini düzenleyeceğiz. Adım adım aşağıdaki şekilde işlemleri yapalım ve projemize controllerlarımızı ekleyelim.

Bir önceki derste UserController’a giriş yapmış ve sadece kullanıcı ekleme işlemi gerçekleştirmiştik. Şimdi kullanıcı ile ilgili tüm işlemleri aşağıdaki şekilde kodlayacağız ancak onun öncesinde web api projemizin içine yeni bir klasör oluşturarak adına VM diyelim. Tam olarak view model olmasada burada kullanıcıdan veri almak için model tanımlamalarımızı yapacağız. Daha sonra bu klasöre sağ tıklayarak Add –> Class diyelim ve name alanına ChangePasswordModel yazarak kaydedelim.

ChangePasswordModel.cs dosyasına çift tıklayalım ve içeriğini aşağıdaki şekilde düzenleyelim. Ben 2 den fazla parametre almasını beklediğim metotlar için küçük modeller oluşturmayı ve bu modeller vasıtası ile parametreleri almayı tercih ediyorum.

Şimdi tekrar UserController.cs dosyamızı açalım içeriğini aşağıdaki şekilde düzenleyelim.

Bir önceki derste ekleme ve çift kayıt kontrolü yaptığımız LanguageControllerı da açalım ve aşağıdaki şekilde içeriğini güncelleyelim.

Şimdi sıra geldi bir önceki derste oluşturmadığımız controllerlarımıza. Önce bu controllerlar için interfaceler oluşturacağız. Bunun için Web api projemizin altında bulunan Interfaces klasörüne aşağıdaki interfaceleri ekleyelim ve içeriklerini düzenleyelim.

IAppResourceController.cs

IOrganizationController.cs

ICustomerController.cs

Arayüzleri oluşturduktan sonra controllerları oluşturabiliriz. Bunun için web api projemizin altında bulunan Controllers klasörüne aşağıdaki controller ları ekleyelim ve içeriklerini düzenleyelim.

AppResourceController.cs

OrganizationController.cs

CustomerController.cs

Şimdi sıra geldi AutoHistory kısmına. Daha önce projemize dahil edip çeşitli ayarlar yaptığımız autohistory alt yapısının çalışması için marşa basmamız gerekiyor. Şuana kadar altyapısını kurmuş olmamız her update ve delete sonrası autohistory tablosuna kayıt atılacağı anlamına gelmiyor. Kayıtların atılması için EnsureAutoHistory komutu ile tetiklememiz gerekiyor. Bunun için ben Unitofwork sınıfımın altında bulunan savechanges metodunu kullanmayı uygun gördüm. Böylece her seferinde bu komutu vermeme gerek kalmayacak zaten veritabanında bir kaydın değişebilmesi için unitofwork sınıfımın altında bulunan savechanges metodunun tetiklenmesi gerekiyor. Ancak siz her değişikliği değiş sadece istediğiniz değişiklikleri autohistory içinde saklamak isterseniz onun için ilgili yerlerde bu komutu vermelisiniz.

Common projemize Microsoft.EntityFrameworkCore.AutoHistory isimli nuget paketini dahil edelim. Daha önceki derslerimizde nuget paketlerinin nasıl projelere eklendiğini görmüştük. Paketi projeye dahil ettikten sonra UnitofWork.cs dosyamıza çift tıklayalım ve içeriğini aşağıdaki şekilde güncelleyelim.

Sonuç

Yukarıdaki işlemleri yaptığımızda artık projemiz içinde bulunan, örnek olması amacı ile eklediğimiz tüm entitylerimiz üzerinde CRUD işlemleri gerçekleştirilebilir olacak. Lütfen postman uygulaması ile controller lar üzerinde bulunan metodları test edin, update ve delete işlemleri yaptığınızda veritabanı üzerinde bulunan AutoHistory tablosuna kayıt atılıp atılmadığını gözlemleyin. İşlemleri doğru bir şekilde yaptı isek bir update ya da delete işlemi sonrasında AutoHistory tablosunda aşağıdaki gibi bir kayıt görmemiz gerekir.

{“before”:{“CreateDate”:”2018-09-28T16:50:05.1634515Z”,”Creator”:null,”MailAdress”:”mehmetalierol@windowslive.com”,”Name”:”Mehmet Ali”,”OrganizationId”:”b57c7cab-3eeb-436c-8515-934d9c9fd055″,”PasswordHash”:null,”Phone”:”5555 444 3322″,”Status”:1,”Surname”:”EROL”},”after”:{“CreateDate”:”2018-09-28T16:50:05.1634515Z”,”Creator”:null,”MailAdress”:”mehmetalierol@windowslive.com”,”Name”:”Mehmet Ali2″,”OrganizationId”:”b57c7cab-3eeb-436c-8515-934d9c9fd055″,”PasswordHash”:null,”Phone”:”5555 444 3322″,”Status”:1,”Surname”:”EROL2″}}

Projenin buraya kadar olan kısmı ile ilgili sorun yaşıyorsanız bu link ile github üzerinden projeyi indirebilir ve kendi yazdığınız kodlar ile karşılaştırabilirsiniz. Sorularınız için yorum kısmını kullanabilir ya da mail adresim üzerinde benimle iletişime geçebilirsiniz.
Mail Adresim : mehmetalierol@windowslive.com

<- Önceki Post – Sonraki Post ->

.Net Core Eğitimleri

9- ) WebApi Base Sınıfı

Business kod yazma aşamasından hemen önceki adıma geldik. Bu adımı da tamamladığımızda artık projenin business katmanına yani webapi projemize geçebilir ve istemcilerin birebir iletişime geçecekleri metodlarımızı yazabiliriz. Webapi base sınıfı bizim için bütün ApiControllerın yapacakları ortak işleri tek noktaya toplamak ve tekrarlı kod yazmayı engellemek adına oluşturduğumuz bir sınıftır. Temel olarak ekleme,silme,güncelleme ve seçme işlemleri tüm controllerlarda kullanılacağı için bunları ApiBase sınıfında yöneteceğiz.

Projeden şu zamana kadar yazdığımız neredeyse tüm özellikleri bu sınıf içinde birleştireceğiz. Yavaş yavaş yazdığımız kodlar bir anlam ifade etmeye başlayacak. Sistemin mimarisi bu ders ile tamamlanıyor diyebiliriz.

Common katmanımıza giderek Api klasörünün altında bulunana Base klasörüne sağ tıklayalım ve Add –> Class diyerek Name alanına ApiBase.cs yazarak kaydedelim. Kaydettiğimiz ApiBase.cs dosyasına çift tıklayalım ve içeriğini aşağıdaki şekilde düzenliyelim.

Daha sonra ApiController larımızın interfaceleri için bir Base Interface oluşturalım. Bunun için yine Api klasörü altında bulunan Base klasörüne sağ tıklayarak Add –> Class diyoruz ve Name kısmına IApiController.cs yazarak kaydediyoruz. Daha sonra bu dosyaya çift tıklayacağız ve içeriğini aşağıdaki şekilde düzenleyeceğiz. ApiController larımızın hepsinin bir interface’i olacak ve bu interface i uygulayacaklar.

Bu şekilde işlemleri tamamladığımız da solution explorer üzerinde aşağıdaki ekran görüntüsünü alıyor olmalıyız. Kodların arasına eklediğim yorumları okumanızı tavsiye ediyorum. Bir sonraki dersimizde apicontroller larımızı oluşturarak, iş katmanımızda gerekli işlemleri kodlamaya başlayacağız.

Webapi base sınıfı ders sonrası solution explorer görüntüsü - Mehmet Ali EROL
Webapi base sınıfı ders sonrası solution explorer görüntüsü

Projenin buraya kadar olan kısmı ile ilgili sorun yaşıyorsanız bu link ile github üzerinden projeyi indirebilir ve kendi yazdığınız kodlar ile karşılaştırabilirsiniz. Sorularınız için yorum kısmını kullanabilir ya da mail adresim üzerinde benimle iletişime geçebilirsiniz.
Mail Adresim : mehmetalierol@windowslive.com

<- Ö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 ->

.Net Core Eğitimleri

1) .Net Core Nedir?

.Net Core

.Net Core, Microsoft ‘un açık kaynak kodlu olarak piyasaya sürdüğü bir “framework” tür.

Core öncesinde Microsoft tabanlı ortamlarda geliştirdiğiniz uygulamaları başka platformlar üzerinde koşturmak ya mümkün değildi ya da ekstra uygulamalar ve yöntemler gerektiriyordu. Microsoft, .Net Core ile birlikte bu sorunu ortadan kaldırmakla kalmadı aynı zamanda .Net Framework ile çalışırken karşılaşılan çeşitli sorunları da temizledi diyebiliriz. Örneğin dependency injection yapmak için Core öncesinde 3. parti çözümler kullanmak ve bir sürü ayar yapmak gerekebiliyordu ama artık Core içerisinde dependency injection gibi daha pek çok hayat kurtaran özellik gömülü bir şekilde geliyor. Olay sorunların giderilmesi ile sınırlı kalmıyor, bunların yanında performans üzerinde ciddi iyileştirmeler yapılmış ve tabi tüm bu iyileşmenin altında açık kaynak kod topluluğunun ciddi bir etkisi olduğunu söylemek gerekiyor. Bu link ile önceki sürümler ve .Net Core arasında performans karşılaştırmalarına göz atabilirsiniz.

Artık microsoft tabanlı bir işletim sistemi kullanmadan, visual studio geliştirme ortamına ihtiyaç duymadan gerekli geliştirmeleri yapabilir ve geliştirdiğiniz uygulamaları yine microsoft platformlarına bağımlı kalmaksızın başka ortamlarda çalıştırabiliriz. Core ‘un sürümlerine, sürümler içerisinde ne gibi farklılıkların bulunduğuna Microsoft’un sitesinden bakabilir ve gelişimi detaylıca görebilirsiniz.

Kısaca .Net Core’un temel özelliklerinden bahsettik, fazla detaya girerek gereksiz bilgiler vermek istemiyorum, daha detaylı bilgiye sahip olmak isteyenler mutlaka Microsoft’un sitesinden araştırma yapmalı ve gelinen son noktayı tecrübe etmeli.

Yazı Serisinin Amacı

Bu eğitim adım adım kurumsal bir backend projesinin nasıl yapılacağı ile ilgili bilgi vermek amacı ile hazırlanmıştır. Projeyi en baştan ekran görüntüleri ile birlikte oluşturacağız ve aşağıdaki özellikleri içerecek şekilde tamamlayarak hep birlikte yayına alacağız. Daha sonrasında angular 6 ile frontend tarafında geliştirmeler yapacağız. Ancak o başka bir ders konusu altında olacak. Aşağıda bulunan adımları içeren örnek projeyi bugün itibari ile bitirdim fakat yazıları yazmak ve yayınlamak biraz vaktimi alacak, bu nedenle eğer aşağıda bulunan konulardan herhangi birine ihtiyacınız var ise benimle iletişime geçebilirsiniz, örnek kodları sizinle paylaşabilirim.

Projenin Tanıtımı

Proje Adımları;
1- )    Projemizin oluşturulması ve gereklilikler
2- )    Projenin ana bilgilerini saklayacak common katmanının oluşturulması
3- )    .Net Core Identity ‘nin aktif hale getirilmesi ve code first ile veritabanı tasarımı
4- )    Data Transfer Object (Dto) ‘ların oluşturulması ve Auto Mapper
5- )    Repository ve UnitofWork tasarım desenlerinin eklenmesi
6- )    Web Api projesinin oluşturulması
7- )    ILogger ile dosya sistemine loglama ve AutoHistory ile değişiklik geçmişi
8- )    Usermanager ve Rolemanager ile Identity üzerinde kullanıcı işlemleri
9- )    Jwt token alt yapısı ile kullanıcı authentication alt yapısının kurulması
10- ) Rol bazlı authorization işlemleri
11- ) Web cache kullanımı ve projeye implemente edilmesi
12- ) Web api üzerinde paging alt yapısının kurulması
13- )  SignalR ile canlı veri akışının sağlanması
14- )  Unit testlerin yazılması ve Moq kullanımı
15- ) Swagger

<- Önceki Post – Sonraki Post ->