• Buradasın

    E-Ticaret Uygulaması İçin Entity Framework Veritabanı Tasarımı Eğitimi

    youtube.com/watch?v=vA4kzB33HQ4

    Yapay zekadan makale özeti

    • Bu video, bir eğitmen tarafından sunulan teknik bir eğitim içeriğidir. Eğitmen, e-ticaret uygulaması için veritabanı altyapısının nasıl oluşturulacağını adım adım göstermektedir.
    • Video, Entity Framework kullanarak veritabanı tasarımı sürecini kapsamlı şekilde ele almaktadır. İçerik, üç temel tablo (ürünler, siparişler ve müşteriler) oluşturma, entity sınıflarını tanımlama, DbContext nesnesi oluşturma, PostgreSQL veritabanı bağlantısını yapılandırma ve Entity Framework Core migrations işlemlerini göstermektedir. Ayrıca, connection string'lerin JSON yapılandırma dosyaları kullanılarak yönetilmesi ve statik bir sınıf ile bağlantı dizesinin yönetilmesi de anlatılmaktadır.
    • Eğitim serisi, bir e-ticaret projesi üzerinde uygulamalarla desteklenmekte ve ilerleyen derslerde repository mimarileri, kullanıcı tabloları ve kimlik doğrulama süreçleri gibi konuların işleneceği belirtilmektedir.
    Uygulama Geliştirme Sürecinin Devamı
    • Önceki derste uygulamanın mimarisel altyapısı oluşturulmuş ve katmanlar inşa edilerek ilişkiler kurulmuştur.
    • Bu derste uygulamanın veritabanı altyapısının oluşturulması yapılacak.
    • Veritabanı altyapısının inşası için entityler, migrationlar ve veritabanının sunucu kısmında maggrade edilmesi gerekmektedir.
    01:51Veritabanı Tasarımı İçin Temel Senaryo
    • Mini e-ticaret için uygun bir senaryo çizerken, birkaç veritabanı tablosu inşa edilecektir.
    • Eğitim süreci boyunca farklı tablolara ihtiyaç duyulacağı için, şu an temel bir altyapı oluşturulacak.
    • E-ticaret uygulaması için üç temel tablo kullanılacak: ürünler (products), siparişler (orders) ve müşteriler (customers).
    03:51Tablolar Arasındaki İlişkiler
    • Ürünlerle siparişler arasında çoklu ilişki vardır: bir siparişte birden fazla ürün bulunabilir ve bir üründe birden fazla siparişte bulunabilir.
    • Ürünlerle siparişler arasındaki çoklu ilişki için araya bir cross table oluşturulması gerekmektedir.
    • Siparişlerle müşteriler arasında ise bir siparişin tek bir müşteriye ait olması, ancak bir müşterinin birden fazla siparişi olabileceği ilişkisi vardır.
    07:18Eğitim Hedefi ve Yöntemi
    • Eğitimde web mimarilerine dair belirli yapıların kritikleri gösterilecek, özel bir kütüphane üzerine yoğunlaşılmayacaktır.
    • Entity Framework ile ilgili temel bilgilerin zaten bilindiği varsayılarak ilerlenecektir.
    • Kritikler doğru zamanda doğru yerde yapılacaktır ve bazı konular ilerleyen derslerde ele alınacaktır.
    09:46Entity Oluşturma
    • Ürün (product), sipariş (order) ve müşteri (customer) entityleri oluşturulacaktır.
    • Entitylerin oluşturulması, veritabanı altyapısının inşasına başlama noktasıdır.
    10:23Entity Framework ile Veritabanı Tasarımı
    • Öğretici, önceki derslerde işlenen konuları bildiğinizi varsayarak devam edecek ve sürekli kazandırmayı amaçlayacak.
    • Entity Framework kullanarak veritabanı tasarımlarını yapacak ve önce base entity oluşturup, diğer entity'lerden türetecek.
    • Product entity'si için stok bilgisi ve fiyat bilgisi (long price) gibi özellikler tanımlanacak.
    11:14Sipariş ve Ürün İlişkileri
    • Sipariş entity'si için sipariş oluşturulma tarihi ve müşteri açıklama alanı (description) gibi özellikler tanımlanacak.
    • Adres bilgisi, şehir, semt, posta kodu ve sokak gibi atomik parçalara bölünebilir.
    • Order ile Product arasında çoklu ilişki kurulacak; Order'da Product koleksiyonu, Product'ta ise Order koleksiyonu olacak.
    14:48Müşteri ve Sipariş İlişkileri
    • Customer entity'si için birden fazla sipariş (orders koleksiyonu) olabilir, ancak bir sipariş sadece bir müşteriye ait olabilir.
    • Entity Framework, Customer'a karşılık bir ID kolonu otomatik olarak ekleyecektir.
    • Müşteri entity'sinde ad bilgisi (name) olabilir, ancak adres bilgilerini müşteriye değil siparişe bağlamak daha mantıklıdır.
    17:51Context Nesnesi Oluşturma
    • Entity'ler oluşturulduktan sonra veritabanına göndermek için context nesnesi oluşturulmalıdır.
    • Context, veritabanının kod kısmındaki karşılığı olarak düşünülebilir ve persistence katmanında çalışılacaktır.
    • E-ticaret API DB Context adında bir sınıf oluşturulacak ve bu sınıf DBContext sınıfından türetilmelidir.
    • DBContext sınıfını kullanabilmek için Microsoft Entity Framework Core kütüphanesi paketi uygulamaya yüklenmelidir.
    20:21Entity Framework Core ile Veritabanı Tasarımı
    • .NET Core'da DbContext sınıfı için bir kontrat oluşturulur ve bu kontrat IOptions parametresi alarak base sınıfına gönderilir.
    • DbContext sınıfında DbSet propertileri oluşturulur (örneğin DbProducts, DbOrders, DbCustomers) ve bu propertiler veritabanındaki tabloları temsil eder.
    • Her entity sınıfı için bir DbSet property oluşturulduğunda, veritabanında karşılık gelen tablo oluşturulur ve entity sınıfındaki propertiler tablonun kolonlarıyla eşlenir.
    23:46IOC Konteyner ve Veritabanı Bağlantısı
    • Oluşturulan DbContext sınıfı IOC konteynerine eklenir, böylece uygulamanın her yerinden erişilebilir hale gelir.
    • Veritabanı bağlantısı için gerekli kütüphane yüklenir (örneğin PostgreSQL için Npgsql.EntityFrameworkCore.PostgreSQL).
    • DbContext sınıfına UseSqlServer veya UseNpgsql gibi metotlar kullanılarak veritabanı sağlayıcısı belirlenir.
    28:25Veritabanı Bağlantı Dizesi ve Configuration
    • Kod içerisinde doğrudan bağlantı dizesi yerine, configuration değerleri dışarıdan alınmalıdır.
    • Konfigürasyon değerleri genellikle JSON, text veya XML dosyaları gibi dış kaynaklardan alınabilir.
    • Magration işlemi için veritabanı adı belirlenir ve Docker'da ayağa kaldırılan PostgreSQL konteynerine bağlantı yapılır.
    31:10Magration İşlemleri
    • Magration işlemleri veritabanı ile ilgili olduğu için Persistence katmanında yapılmalıdır.
    • Magrationları basmak için iki farklı yol kullanılabilir: Package Manager konsol üzerinden veya .NET Entity Framework CLI üzerinden.
    31:48Package Manager ile Magration Oluşturma
    • Package Manager üzerinden magration oluşturmak için öncelikle default project olarak projeyi seçmek gerekir.
    • Talimat olarak "add mag" yazıp ardından magration için isim verilir, isimlendirme için mantıklı bir sistem kullanılmalıdır.
    • Magration oluşturmak için gerekli kütüphaneler yüklü değilse hata verir, bu durumda gerekli kütüphaneler yüklenmelidir.
    34:53Magration Oluşturma İkinci Yöntemi
    • İkinci oluşturma yöntemi Power Shell üzerinden yapılır ve daha zahmetlidir.
    • Power Shell üzerinden magration oluşturmak için "dotnet ef migrations add" talimatı verilir.
    • Power Shell üzerinden magration oluşturmak için Microsoft.EntityFrameworkCore paketinin yüklü olması gerekmektedir.
    40:20Design Time Configuration
    • Power Shell üzerinden magration oluşturmak için design time configuration yapılması gerekir.
    • Design time configuration için bir sınıf oluşturulup IDesignTimeDbContextFactory arayüzü uygulanır.
    • CreateDbContext metodu içinde DB context options oluşturulur ve bağlantı bilgileri verilir.
    43:13Bağlantı Bilgilerinin Tekrarlanmasından Kaçınma
    • Kod yazarken aynı bağlantı bilgilerini birden fazla yerde tekrarlamak yönetilebilir olmaz ve dağıtılmaz.
    • Bağlantı bilgilerinin tek bir yerde tutulması ve oradan kullanılması daha iyi bir uygulamadır.
    • Bu konfigürasyon sorunu sonradan düzeltilmelidir.
    44:30Entity Framework Migrations
    • Entity Framework migrations için options parametresi gönderilerek VPDB context'e veritabanı bağlantı bilgileri aktarılabilir.
    • Reflection mekanizması sayesinde context oluşturulup, belirtilen options'a göre migrationlar çalıştırılabilir.
    • Package Manager Console veya PowerShell üzerinden migrationlar çalıştırılabilir, Visual Studio kullanıcısı için Package Manager Console tercih edilebilir.
    45:56Migration Yapısı ve Kullanımı
    • Migration, veritabanında oluşacak tabloların entitylerden modellenmiş halini sağlar ve sunucu tarafına veritabanını oluşturur.
    • Down fonksiyonu sayesinde yapılan hatayı belirli bir noktaya kadar geri çekmek mümkündür.
    • Migrationlar oluşturulduktan sonra "Update-Database" komutu ile veritabanına uygulanabilir.
    48:00Veritabanı Oluşturma ve Yapılandırma
    • Migrationlar başarıyla uygulandıktan sonra veritabanı oluşturulur ve tablolar oluşturulur.
    • Entity Framework, many-to-many ilişkiler için cross table oluşturur (örneğin OrderProduct).
    • Connection string'in manuel olarak kod içerisinde yazılması yerine, yapılandırma dosyalarından okunması daha iyi bir uygulamadır.
    50:32Configuration Manager Kullanımı
    • Configuration Manager sınıfı, JSON dosyalarını okuyup önbelleğe almak için kullanılır.
    • Microsoft.Extensions.Configuration.Json kütüphanesi, JSON dosyalarına erişim sağlar.
    • ConfigurationBuilder ile base path ayarlanarak, farklı katmandaki JSON dosyalarına erişim sağlanabilir.
    55:19Veritabanı Bağlantısı İçin Sınıf Oluşturma
    • Configuration klasörü yerine doğrudan bir sınıf oluşturulması öneriliyor.
    • Oluşturulan sınıf statik olmalı ve projede kullanılmak üzere tasarlanmalı.
    • Sınıf içinde connection string'i döndüren bir metot oluşturulmalı ve ConfigurationManager.GetConnectionString yöntemi kullanılarak bağlantı bilgileri alınmalı.
    56:32Sınıfın Kullanımı ve Test Edilmesi
    • Oluşturulan statik sınıf, gerekli konfigürasyon noktalarında connection string erişimini sağlayacak.
    • Design time db context factory ve services registration'da yapılan bağlantı işlemleri bu sınıftan çağrılacak.
    • Sınıfın çalışıp çalışmadığı test edilmek üzere veritabanı silinip tekrar oluşturulup test edilecek.
    57:59Dersin Sonuçlanması ve Gelecek Planları
    • Veritabanına başarıyla bağlanıldığı test edildi.
    • İleride authentication işlemi için user tablolarına ve refresh token işlemleri için gerekli tablolar oluşturulacak.
    • Bir sonraki derste repostorylere başlanacak ve proje bu şekilde ilerletilecek.

    Yanıtı değerlendir

  • Yazeka sinir ağı makaleleri veya videoları özetliyor