.NET ile yazılım geliştirme

Rolleri, yetkileri ve denetim kaydı olan kurumsal sistemler için ASP.NET Core ve ABP Framework ile katmanlı arka uçlar.

ASP.NET Core, ABP Framework ve Entity Framework Core ile kurumsal .NET arka uçları geliştiriyoruz: katmanlı mimari, rol ve yetki yönetimi, denetim kaydı.

Son güncelleme:

.NET hangi projelerde doğru seçim

.NET, Microsoft’un açık kaynaklı geliştirme platformu; ASP.NET Core da bunun web ve API tarafı. Güçlü tip sistemi, olgun araçları ve uzun destek süreleriyle, yıllarca büyüyecek ve iş kuralları zamanla çoğalacak sistemlerde rahat çalışır. Bugünkü .NET Linux’ta çalışıyor; Windows sunucuya bağlı değilsiniz.

.NET’in iyi oturduğu durumlar

  • Çok sayıda rol, bölge ya da birim bazlı yetki ve kimin neyi değiştirdiğini gösteren denetim kaydı gerekiyor
  • Şirketinizin mevcut sistemleri ve ekibi zaten .NET üzerinde
  • İş kuralları karmaşık ve zamanla artacak; kodun katmanlara ayrılması önemli
  • Ağır raporlama ve toplu veri aktarımı sistemin parçası

Başka bir yol önereceğimiz durumlar

  • Birkaç ekrandan oluşan küçük bir ilk sürüm hedefliyorsunuz; ABP’nin kurulumu bu ölçek için ağır kalır
  • Ürünün merkezinde anlık mesajlaşma var ve ekip tamamen TypeScript ile çalışıyor (burada Node.js’i öneriyoruz)
  • İşin çoğu belge işleme ya da yapay zekâ modelleriyle çalışmak (burada Python’u öneriyoruz)

ABP Framework ile katmanlı mimari

ABP Framework, ASP.NET Core üzerine kurulu ve alan odaklı tasarımı (DDD) temel alan açık kaynaklı bir uygulama çatısı. Kimlik, rol ve izin yönetimi, denetim kaydı, arka plan işleri ve ayarlar hazır modül olarak gelir; biz zamanımızı müşterinin iş kurallarına ayırırız. Çözüm, her biri tek bir sorumluluğu olan projelere bölünür:

KatmanSorumluluğuBir müşteri projesindeki karşılığı
DomainVarlıklar, iş kuralları, domain olaylarıKayıt, ziyaret ve işlem varlıkları; işlem kaydında bildirim gönderen olay işleyici
ApplicationKullanım senaryoları ve yetki kontrolüMobil taraf ve yönetim paneli için iki ayrı uygulama katmanı
HttpApi.HostAPI, kimlik doğrulama, API belgesiMobil API ve yönetim API’si için iki ayrı host
EntityFrameworkCoreVeritabanı erişimi ve migrationPostgreSQL ve PostGIS; ağır raporlar Dapper ile
DbMigratorŞema güncelleme ve başlangıç verisiRoller ve başlangıç kullanıcıları

Bir müşteri projesinde .NET

Bir müşteri projesinde, sahada çalışan ekipleri ve anlaşmalı noktaları olan bir kurum için kayıt ve yönetim platformu geliştirdik. Kayıtlar, saha ziyaretleri, işlem geçmişi ve bölge bazlı yetkiler tek sistemde. Arka uç .NET ve ABP ile, yönetim paneli Vite ve React ile, mobil uygulama Expo ile yazıldı. Arka uçta öne çıkan kararlar:

  • İki ayrı API host’u var: biri mobil uygulamanın, diğeri yönetim panelinin kullandığı. İkisi aynı domain katmanını paylaşıyor, uygulama katmanları ve yetkileri ayrı.
  • Konumlar ve bölge sınırları PostgreSQL’de PostGIS ile tutuluyor ve EF Core’a NetTopologySuite ile bağlı. Haritalı yönetim ekranları ve bölgeye göre filtreleme bunun üzerine kurulu.
  • Listeler, sayımlar ve işlem raporları gibi ağır sorgular Dapper ile doğrudan SQL olarak yazıldı; geri kalan veri erişimi EF Core ile.
  • Denetim kayıtları ana veritabanından ayrı bir veritabanına yazılıyor.
  • Bir işlem kaydedildiğinde bir domain olayı tetikleniyor ve ilgili kişiye SMS bildirimi gidiyor; iş kuralı ile bildirim birbirinden ayrı kalıyor.
  • QR kodlar QRCoder ile üretiliyor; Excel dışa aktarma EPPlus ile, CSV içe aktarma CsvHelper ile yapılıyor.
  • Toplu veri aktarımları için ayrı bir komut satırı aracı var: önce deneme modunda çalışıp rapor üretiyor, veriyi ancak açıkça onaylandığında yazıyor.

.NET’in yanında kullandığımız araçlar

ABP Framework

Katmanlı çözüm yapısı, kimlik, izin ve denetim kaydı modülleri. Bir müşteri projesinin arka ucunu ABP ile kurduk.

Entity Framework Core

Nesne-ilişkisel eşleme ve migration ile şema yönetimi. Aynı projede PostgreSQL ile kullanıyoruz.

PostGIS ve NetTopologySuite

Konum, sınır ve yakınlık sorguları için. Haritalı yönetim ekranları bunun üzerinde çalışıyor.

Dapper

EF Core’un yanında, performansı önemli rapor ve liste sorgularını doğrudan SQL ile yazmak için.

OpenIddict

Mobil uygulama ve yönetim paneli için token tabanlı kimlik doğrulama. ABP’nin hesap modülüyle birlikte kullanıyoruz.

Serilog

Yapılandırılmış ve eşzamansız loglama; hataların izini canlı ortamda sürmek için.

Bir .NET projesi nasıl ilerliyor

  1. 01

    Ücretsiz keşif görüşmesi

    30 dk

    Sistemi kimlerin hangi rollerle kullanacağını, mevcut altyapınızı ve aklınızdaki bütçeyi konuşuyoruz.

  2. 02

    Yazılı kapsam ve teklif

    Varlıkları, rolleri ve izinleri, entegrasyonları ve hangi katmanın neyi üstleneceğini yazıya döküyoruz.

  3. 03

    Haftalık sürümler

    Her hafta çalışan bir sürüm teslim ediyoruz; yeni ekranları ve uç noktaları kendi rollerinizle deniyorsunuz.

  4. 04

    Test ve yayın

    Senior QA sürümü yayından önce test ediyor; migration’lar ve başlangıç verisi canlı ortama kontrollü biçimde uygulanıyor.

  5. 05

    Yayından sonraki 30 gün

    30 gün

    Bu sürede çıkan hataları ücretsiz düzeltiyoruz; ardından aylık bakımla devam edebilirsiniz.

Süre ve bütçe aralıkları özel yazılım geliştirme ve fiyatlar sayfalarımızda yayında; bu sayfa da aynı rakamlara dayanıyor.

.NET hakkında sık sorulanlar

ABP için lisans ücreti ödemem gerekir mi?

ABP’nin açık kaynaklı bir sürümü ve ücretli ticari bir sürümü var. Müşteri projemizde yalnızca açık kaynaklı paketleri kullandık; ticari sürüme ihtiyaç olmadı.

.NET için Windows sunucu gerekir mi?

Hayır. Güncel .NET Linux’ta çalışıyor. Müşteri projemizde her API host’u ve veritabanı güncelleme aracı ayrı bir Linux tabanlı Docker imajı olarak paketleniyor.

Yönetim panelini ve mobil uygulamayı da siz mi geliştiriyorsunuz?

Evet. Aynı projede yönetim panelini Vite ve React ile, mobil uygulamayı Expo ile geliştirdik; ikisi de .NET API’lerine bağlanıyor.

Proje bitince elimde ne kalır?

Yazılımı süresiz kullanma lisansı ve dokümantasyon. Kaynak kodun size devri ek ücretle mümkün; bu ücret teklifte ayrıca belirtilir.

İlgili hizmetler

Özel yazılımWeb uygulamasıERP, CRM & entegrasyonVeri paneli
İletişim

.NET projenizi konuşalım

30 dakikalık ücretsiz keşif görüşmesinde rolleri, yetkileri ve sistemin hangi katmanlara ayrılacağını birlikte netleştirelim.