Pro Yearly is on sale from $80 to $50! »

Daha taşınabilir, daha bağımsız .NET uygulamaları tasarlamak

D518bd56413643cbed1c8a02c25898cc?s=47 Eser Ozvataf
November 03, 2018

Daha taşınabilir, daha bağımsız .NET uygulamaları tasarlamak

D518bd56413643cbed1c8a02c25898cc?s=128

Eser Ozvataf

November 03, 2018
Tweet

Transcript

  1. Cover photo: iStockphoto/cybrain Daha taşınabilir, daha bağımsız .NET uygulamaları tasarlamak

    Eser Özvataf dotnetKonf
 03.11.2018
  2. ESER ÖZVATAF /eserozvataf /eserozvataf HAKKIMDA ▸ Süreç Lideri @ Setur

    ▸ Sektörde 18 Yıl İş Deneyimi ▸ Açık Kaynak Ekolünden ▸ Blockchain üzerine çalışmalar yapan
 lisansüstü öğrencisi
  3. BUGÜN BAHSEDECEKLERİM ▸ Uygulama Taşınabilirliği ▸ Bağımlılıkların Tespiti ▸ Daha

    Taşınabilir Olmanın Getirileri ▸ Taşınabilir Uygulama Tasarlamak ▸ Kod Tasarım Çözümleri ▸ Mimari Çözümler ▸ Araç Çözümleri ▸ Paketlemek ▸ Ortam Yapılandırmaları ▸ Uygulamaları Platform Bağımsız Paketlemek ▸ Örnek Uygulama
  4. UYGULAMA TAŞINABİLİRLİĞİ

  5. BAĞIMLILIKLARIN TESPİTİ UYGULAMA TAŞINABİLİRLİĞİ NuGet Paketleri SaaS Hizmetler / Veri

    Sağlayıcıları Servisler / APIler Dosya / Kurulum Bağlılıkları Symbiot / Parazit Uygulamalar Uygulama “Bende çalışıyor” Platform / İşletim Sistemi
  6. DAHA TAŞINABİLİR OLMANIN GETİRİLERİ UYGULAMA TAŞINABİLİRLİĞİ Yan Etki Üretmemek Çoklu

    Cloud Provider Desteği Çoklu Platform Desteği Ölçeklenebilirlik Aynı Uygulamanın Farklı Ortam Kurgularıyla Çalışabilmesi Dağıtık Sistemlere İmkan Daha Net Ölçülebilirlik Test Edilebilirlik
  7. KOD TASARIM ÇÖZÜMLERİ TAŞINABİLİR UYGULAMA TASARLAMAK Koda asla hardcoded/sabitlenmiş bir

    bilgi eklemeyin
  8. KOD TASARIM ÇÖZÜMLERİ TAŞINABİLİR UYGULAMA TASARLAMAK Microsoft.Extensions.Configuration ve Microsoft.Extensions.Options’u kullanın

    Ortam bazlı belirleyebildiğiniz konfigurasyon dosyalarınız olsun Konfigurasyon dosyalarınız environment variable’lar ile ezilebilsin
  9. KOD TASARIM ÇÖZÜMLERİ TAŞINABİLİR UYGULAMA TASARLAMAK İşletim sistemleri arasındaki farkları

    gözardı etmeyin
  10. KOD TASARIM ÇÖZÜMLERİ TAŞINABİLİR UYGULAMA TASARLAMAK Tarih/Saat standartlarını kullanın Her

    sistem aynı yerellik bilgisine sahip değil
  11. KOD TASARIM ÇÖZÜMLERİ TAŞINABİLİR UYGULAMA TASARLAMAK Dependency Injection uygulayın (Microsoft.Extensions.DependencyInjection)

  12. MİMARİ ÇÖZÜMLER TAŞINABİLİR UYGULAMA TASARLAMAK ▸ Kütüphane gereksinimleri için bağımlılık

    yönetimi araçlarını kullanın (NuGet) ▸ Farklı işlevlere sahip uygulamaların kod tabanlarını ayrı tutun ▸ Her müşteriniz için ayrı derlemeler yerine Multi-Tenancy kullanın ▸ Episodik Kurgu ile Stateless ve Event-Driven uygulamalar tasarlayın ▸ Dosyaları ancak okumak için kullanın, diğer IO işlemlerinden uzak durun ▸ Platformlarla uyum kontrolleri için integration testler yazmaya çalışın
  13. ARAÇ ÇÖZÜMLERİ TAŞINABİLİR UYGULAMA TASARLAMAK ▸ Coverage Tool - Coverlet

    ▸ Statik analiz için .NET Core Analyzers ▸ Powershell ve Bash scriptleri yerine MSBuild ▸ Visual Studio yerine .NET Core SDK CLI
  14. TAŞINABİLİR UYGULAMA TASARLAMAK

  15. ORTAM YAPILANDIRMALARI PAKETLEMEK Development Testing Staging Production Ortam Development Testing

    Staging Production Konfigurasyon Dosyası app.Development.json app.Testing.json app.Staging.json app.Production.json IDovizKurlariProvider DovizKurlariMockProvider TcmbTestProvider TcmbProvider TcmbProvider IRepositoryProvider RepositoryMockProvider RepositoryProvider RepositoryProvider RepositoryProvider Connection String localhost:5006/db mongodb.local/db db-staging.x.com/db db.x.com/db
  16. UYGULAMALARI PLATFORM BAĞIMSIZ PAKETLEMEK PAKETLEMEK ▸ Uygulamanızın tüm ortamlarda dotnet

    run ile çalıştığından,
 dotnet build ile derlendiğinden,
 dotnet test ile test edilebildiğinden emin olun ▸ Uygulamanızı self-contained bir biçimde publish edin ▸ Uygulamanızı Dockerize edin ▸ Uygulamanızı Docker-Compose ile ayağa kalkabilir bir hale getirin ▸ CI/CD kullanıyorsanız Visual Studio ve NuGet.exe ile değil, .NET Core SDK ile işlemlerinizi gerçekleştirin
  17. TASSLE ÖRNEK UYGULAMA

  18. ESER ÖZVATAF /eserozvataf /eserozvataf https://acikkaynak.info https://eser.ozvataf.com Sorular?