ABP Framework ile Adım Adım Yazılım Geliştirme – Bölüm 1: ABP Framework’e Giriş ve Kurulum

Admin 

ABP Framework Nedir?

ABP (AspNetBoilerplate) Framework, ASP.NET Core üzerine inşa edilmiş, modern web uygulamaları geliştirmek için tasarlanmış açık kaynaklı bir uygulama çerçevesidir. Kurumsal düzeyde uygulamalar oluşturmak için gerekli olan birçok özelliği hazır olarak sunar ve geliştirme sürecinizi önemli ölçüde hızlandırır.

ABP Framework’ün Temel Özellikleri

  • Modüler Mimari: Uygulamanızı modüler bir şekilde geliştirebilir, modülleri farklı projelerde yeniden kullanabilirsiniz.
  • Çok Katmanlı Mimari: Domain-Driven Design prensiplerine uygun olarak düzenlenmiş katmanlı mimari.
  • Hazır Altyapı: Kimlik doğrulama, yetkilendirme, çok kiracılık (multi-tenancy), loglama gibi işlevler hazır olarak gelir.
  • Kod Üretme Araçları: Tekrar eden işler için kod üretme araçları sunar.
  • UI Framework Entegrasyonları: MVC, Angular, Blazor gibi UI framework’leri için hazır entegrasyonlar.
  • Entity Framework Core Entegrasyonu: Veritabanı işlemleri için hazır repository altyapısı.

Neden ABP Framework Kullanmalıyız?

  1. Geliştirme Hızı: Tekrar eden ve standart işlemleri otomatikleştirir.
  2. Kurumsal Çözüm: Kurumsal uygulamalarda ihtiyaç duyulan özellikleri sunar.
  3. En İyi Pratikler: Yazılım geliştirme dünyasındaki en iyi pratiklere göre tasarlanmıştır.
  4. Açık Kaynak Ekosistemi: Geniş bir topluluk desteği ve hazır modüller sunar.
  5. Güncel Teknolojiler: .NET Core, Entity Framework Core, Autofac gibi güncel teknolojileri kullanır.

Geliştirme Ortamının Hazırlanması

ABP Framework ile geliştirme yapmak için aşağıdaki araçlara ihtiyacımız olacak:

Gerekli Yazılımlar

  1. .NET Core SDK: En güncel .NET Core SDK’yı resmi sitesinden indirip kurun.
  2. IDE: Visual Studio, Visual Studio Code veya JetBrains Rider kullanabilirsiniz.
  3. Veritabanı: SQL Server, MySQL, PostgreSQL veya SQLite kullanabilirsiniz.
  4. Node.js: Bazı şablonlar için Node.js ve npm gerekli olabilir.

ABP CLI’ın Kurulumu

ABP CLI (Command Line Interface), ABP projelerini yönetmek için kullanılan komut satırı aracıdır. Kurulum için aşağıdaki adımları izleyin:

bashCopydotnet tool install -g Volo.Abp.Cli

Eğer daha önce kurduysanız, güncel sürümü kullanmak için aşağıdaki komutu çalıştırabilirsiniz:

bashCopydotnet tool update -g Volo.Abp.Cli

İlk ABP Projesinin Oluşturulması

ABP CLI kullanarak ilk projemizi oluşturalım. ABP farklı UI framework’leri için şablonlar sunar:

  • MVC (Razor Pages)
  • Angular
  • Blazor WebAssembly
  • Blazor Server

Bu seride MVC şablonunu kullanacağız, ancak aynı konseptler diğer UI teknolojileri için de geçerlidir.

Yeni Proje Oluşturma

Komut satırında aşağıdaki komutu çalıştırarak yeni bir ABP projesi oluşturun:

bashCopyabp new TodoApp -u mvc

Burada:

  • TodoApp projenin adıdır.
  • -u mvc parametresi UI framework olarak MVC kullanılacağını belirtir.

Diğer seçenekler için:

  • -u angular Angular için
  • -u blazor Blazor WebAssembly için
  • -u blazor-server Blazor Server için

Ek Parametreler

Proje oluştururken kullanabileceğiniz bazı yaygın parametreler:

  • -d sqlite: SQLite veritabanı kullanmak için (varsayılan: Entity Framework Core ile SQL Server)
  • --mobile none: Mobil uygulama oluşturmamak için
  • --tiered: Katmanlı mimari için (Web ve API katmanlarını ayrı projeler olarak oluşturur)
  • -dbms mysql: MySQL veritabanı kullanmak için
  • -dbms postgresql: PostgreSQL veritabanı kullanmak için

Oluşturulan Proje Yapısı

ABP CLI, aşağıdaki yapıda bir çözüm (solution) oluşturur:

CopyTodoApp/
  ├── src/
  │   ├── TodoApp.Domain/             # Domain katmanı
  │   ├── TodoApp.Domain.Shared/      # Domain için paylaşılan sınıflar
  │   ├── TodoApp.Application/        # Uygulama servisleri
  │   ├── TodoApp.Application.Contracts/ # DTO'lar ve servis arayüzleri
  │   ├── TodoApp.EntityFrameworkCore/ # EF Core yapılandırmaları
  │   ├── TodoApp.DbMigrator/         # Veritabanı migrasyon aracı
  │   └── TodoApp.Web/                # Web katmanı (MVC)
  ├── test/                           # Test projeleri
  │   ├── TodoApp.Domain.Tests/
  │   ├── TodoApp.Application.Tests/
  │   ├── TodoApp.EntityFrameworkCore.Tests/
  │   └── TodoApp.Web.Tests/
  ├── TodoApp.sln                     # Visual Studio solution dosyası
  └── ...

Projeyi Çalıştırma

Veritabanını Hazırlama

İlk olarak veritabanını oluşturmamız gerekiyor. Bunun için:

  1. TodoApp.DbMigrator projesini başlangıç projesi olarak ayarlayın.
  2. Projeyi çalıştırın. Bu, veritabanını oluşturacak ve başlangıç verilerini ekleyecektir.

Alternatif olarak, TodoApp.EntityFrameworkCore projesinde Package Manager Console açıp aşağıdaki komutu da çalıştırabilirsiniz:

CopyUpdate-Database

Web Projesini Çalıştırma

Veritabanı oluşturulduktan sonra, TodoApp.Web projesini başlangıç projesi olarak ayarlayın ve çalıştırın. Tarayıcınızda ABP Framework’ün hoş geldin sayfasını göreceksiniz.

Varsayılan olarak, aşağıdaki kullanıcı bilgileriyle giriş yapabilirsiniz:

  • Kullanıcı adı: admin
  • Şifre: 1q2w3E*

Temel Yapılandırmalar

appsettings.json

TodoApp.Web projesindeki appsettings.json dosyası, uygulamanızın temel ayarlarını içerir:

jsonCopy{
  "App": {
    "SelfUrl": "https://localhost:44352"
  },
  "ConnectionStrings": {
    "Default": "Server=localhost;Database=TodoApp;Trusted_Connection=True"
  },
  "AuthServer": {
    "Authority": "https://localhost:44352",
    "RequireHttpsMetadata": "false"
  },
  "StringEncryption": {
    "DefaultPassPhrase": "..."
  }
}

Bu dosyada aşağıdaki ayarları yapılandırabilirsiniz:

  • ConnectionStrings: Veritabanı bağlantı dizesi
  • App.SelfUrl: Uygulamanın URL’si
  • AuthServer: Kimlik doğrulama sunucusu ayarları

Modül Yapılandırması

ABP, modüler bir yapıya sahiptir. Her projenin bir modülü vardır ve bu modüller ConfigureServices ve OnApplicationInitialization metodları aracılığıyla yapılandırılır.

TodoApp.Web projesindeki TodoAppWebModule sınıfı, web modülünü yapılandırır:

csharpCopy[DependsOn(
    typeof(TodoAppApplicationModule),
    typeof(TodoAppEntityFrameworkCoreModule),
    typeof(AbpAutofacModule),
    typeof(AbpAccountWebModule),
    typeof(AbpIdentityWebModule),
    typeof(AbpAspNetCoreMvcUiBasicThemeModule),
    // ...diğer bağımlılıklar
)]
public class TodoAppWebModule : AbpModule
{
    public override void ConfigureServices(ServiceConfigurationContext context)
    {
        // Servis yapılandırmaları burada yapılır
    }

    public override void OnApplicationInitialization(ApplicationInitializationContext context)
    {
        // Uygulama başlatılırken yapılacak işlemler burada yapılır
    }
}

Örnek Bir Sayfanın İncelenmesi

ABP şablonları, birçok hazır sayfa içerir. Örneğin, kullanıcı yönetimi sayfası TodoApp.Web/Pages/Identity/Users dizininde bulunur.

Users dizininde:

  • Index.cshtml: Kullanıcı listesi sayfası
  • Index.js: Sayfa için JavaScript kodları
  • CreateModal.cshtml: Yeni kullanıcı oluşturma modalı
  • EditModal.cshtml: Kullanıcı düzenleme modalı

Bu sayfaları inceleyerek ABP’nin sayfa yapısını anlayabilirsiniz.

ABP Framework Dokümantasyonu

ABP Framework ile ilgili daha fazla bilgiye ihtiyaç duyarsanız, resmi dokümantasyonu ziyaret edebilirsiniz.

Sonraki Adımlar

Bu bölümde ABP Framework’ün temel özelliklerini, kurulumunu ve ilk projenin oluşturulmasını öğrendik. Bir sonraki bölümde, ABP’nin katmanlı mimarisini daha detaylı inceleyeceğiz.

Herhangi bir sorunuz varsa, yorumlarda belirtebilirsiniz. ABP Framework ile geliştirme serimize devam edeceğiz!

Recommended Posts

ABP Framework ile Adım Adım Yazılım Geliştirme – Bölüm 7: Kullanıcı Arayüzü Geliştirme

Uygulamanın kullanıcılarla etkileşim kurduğu katman olan Kullanıcı Arayüzü (UI) Katmanı, genellikle ASP.NET Core MVC (Razor Pages), Angular veya Blazor gibi teknolojilerle geliştirilir. ABP Framework, seçtiğiniz UI teknolojisiyle sorunsuz entegrasyon sağlayarak geliştirme sürecinizi hızlandırır ve ortak UI ihtiyaçlarını karşılar. Bu bölümde, ABP ile kullanıcı arayüzü geliştirmenin temel yönlerini ele alacağız. Seçilen UI Teknolojisine Göre Temel Yapılandırma […]

Admin 

ABP Framework ile Adım Adım Yazılım Geliştirme – Bölüm 6: API Katmanı Geliştirme

Modern uygulamalarda API (Application Programming Interface) katmanı, hem istemci uygulamalar (mobil, web) hem de diğer servislerle iletişim kurmak için kritik öneme sahiptir. ABP Framework, güçlü ve kolay yapılandırılabilir bir API katmanı oluşturmanızı sağlar. Bu bölümde, ABP’nin API geliştirme özelliklerini ve en iyi pratikleri inceleyeceğiz. Auto API Controller Özellikleri ABP Framework’ün en kullanışlı özelliklerinden biri Auto […]

Admin 

ABP Framework ile Adım Adım Yazılım Geliştirme – Bölüm 5: Application Layer Geliştirme

Application Layer (Uygulama Katmanı), uygulamanın kullanım senaryolarını (use cases) ve kullanıcı hikayelerini yönetir. Domain katmanındaki işlevleri kullanarak kullanıcı arayüzünden gelen isteklere yanıt verir ve sunum katmanı ile domain katmanı arasındaki bir köprü görevi görür. Bu bölümde, uygulama katmanının temel bileşenlerini ve geliştirme pratiklerini ele alacağız. Application Service’ler Oluşturma Application Service (Uygulama Servisi), dış dünyadan (UI, […]

Admin 

Leave A Comment