word image

Herkese merhabalar;

Bu yazımda mongodb kullanarak çokça yeni olan çiçeği burnunda bir .net 5.0 teknoloji kullanarak bir web api yazmaya çalışıcam.

Nedir Bu MangoDb ?

Burada çok teknik malesef konuşamayacağım.Bildiğim şeyler bana uygulama yazarken yardımcı oluyor.Sadece bunları aktarmak istiyorum.NoSql tabanlı bir veritabanıdır bu “MongoDb” dedikleri şey yani klasik mssql bir kenara bırakalım.Herhangi bir tablo yapısı yoktur.Bunun yerini collection lara bırakır.Diğer bakımdan kurumsal olarak sql gibi uygulama her seferinde aynı veriyi çekmez.Mssql cash yapısının olduğunu biliyoruz fakat bu mongoDb de daha farklı bir yapıda karşımıza çıkıyor.Uygulamanın bastırdığı istekler doğrultusunda otomatik olarak sanal sunucu açıp istekleri bir işlemci yapısına dönüştürüyor.Kısacası ne kadar istek artarsa o kadar kendi içinde sunucuları çalıştırıyor.Muhteşem birşey bu tabi dezavantajları da mevcut mongodb ile ilgili detaylı araştırmalarım sürüyor bittiğinde sizlerle paylaşırım şimdilik bu kadar yeterli.

Katmanların Belirlenmesi

word image 1

Soldaki görseldede görüldüğü üzere şimdilik 4 adet katmandan oluşan bir proje tasarladım.Core kısmı veri tabanı ile bağlantının olduğu tek kısım.Bunun yanı sıra test katmanında database fonksiyonlarının unit testini yapıcaz.Bu yazıda başlıkta da belirttiğim üzere sadece web api katmanını ayağı kaldırcaz diğer yazılarımda WebApp katmanına razor page çakıp basit düzeyde bir uygulama yapmayı planlıyorum.

Hadi başlıyalım;

Projelerin arzularını test katmanında belirlemeyi seviyorum.Burada iki adet test fonksiyonu yazacağım bunlar doğrultusunda veritabanını ayağa kaldıracak senaryoyu belirleyeceğim.

word image 2

Gayet açık veritabanındaki category tablosundaki değerleri test metoduna bas.Diğeri ise objectId ye göre filtreleyip metotlara bas.

word image 3

Comment aldığım yerleri farklı bir yazıda farklı bir uygulamada kullanmak istiyorum onları göz ardı edin.Burada her service bir constructor var constructor içindeki verileri app setting den alıyorum ki herhangi bir durumda database değişirse dll boşuna compiler edilmesin.Kodları derlemek yorucu iş malum.

Api kısmında anlatmaya değer birşey yok malum service enjekte edip verileri akıtıyoruz klasik senaryo….

Evet hepsi bu kadarcık ve gayet sade mongoDb son yıllarda baya kurumsallaşması ile fazlasıyla ilgimi çekti pandemi döneminde malum büt sınavlarından kurtulup böyle birşey test edip sizlerle paylaşmak istedim.Umarım faydalı ve zevkli bir yazı olmuştur.Proje nin linkine github repomdan ulaşabilirsiniz.Herkese sevgiler…

By