ABP Framework ile Ad?m Ad?m Yaz?l?m Geli?tirme – B?l?m 1: ABP Framework’e Giri? ve Kurulum
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?
- Geli?tirme H?z?: Tekrar eden ve standart i?lemleri otomatikle?tirir.
- Kurumsal ??z?m: Kurumsal uygulamalarda ihtiya? duyulan ?zellikleri sunar.
- En ?yi Pratikler: Yaz?l?m geli?tirme d?nyas?ndaki en iyi pratiklere g?re tasarlanm??t?r.
- A??k Kaynak Ekosistemi: Geni? bir topluluk deste?i ve haz?r mod?ller sunar.
- 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
- .NET Core SDK: En g?ncel .NET Core SDK’y? resmi sitesinden indirip kurun.
- IDE: Visual Studio, Visual Studio Code veya JetBrains Rider kullanabilirsiniz.
- Veritaban?: SQL Server, MySQL, PostgreSQL veya SQLite kullanabilirsiniz.
- 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:
TodoAppprojenin ad?d?r.-u mvcparametresi UI framework olarak MVC kullan?laca??n? belirtir.
Di?er se?enekler i?in:
-u angularAngular i?in-u blazorBlazor WebAssembly i?in-u blazor-serverBlazor 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?
- L?? TodoApp.Web/ # Web katman? (MVC)
+?? test/ # Test projeleri
- +?? TodoApp.Domain.Tests/
- +?? TodoApp.Application.Tests/
- +?? TodoApp.EntityFrameworkCore.Tests/
- L?? TodoApp.Web.Tests/
+?? TodoApp.sln # Visual Studio solution dosyas?
L?? ...
Projeyi ?al??t?rma
Veritaban?n? Haz?rlama
?lk olarak veritaban?n? olu?turmam?z gerekiyor. Bunun i?in:
TodoApp.DbMigratorprojesini ba?lang?? projesi olarak ayarlay?n.- 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!