Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Docker, ASP.NET Core, Domain Driven Design, RestFulAPI

142 views

Published on

Yeditepe Üniversitesi Hastanesi Yazılım Projeleri HISLAB kapsamında Docker, ASP.NET Core, Domain Driven Design, RestFulAPI üzerine hazırlanmış bilgilendirme sunumu. Sunumda teorik olarak özetlenen bilgilerin tamamı açık kaynak kodlu olarak uygulanmıştır. Projenin kaynak kodlarına https://github.com/sabitkose/yeditepe adresinden ulaşılabilir.

Published in: Engineering
  • Be the first to comment

  • Be the first to like this

Docker, ASP.NET Core, Domain Driven Design, RestFulAPI

  1. 1. Docker() .ASPNETCore() .DomainDrivenDesign() .RestFulAPI() ++; Sabit Köse | HISLAB | sabit.kose@gmail.com | 05552231812
  2. 2. Docker Nedir? “Geleceğin Altyapı Teknolojisi” Kısaca: Uygulama Sanallaştırma Container; Linux çekirdeği içerisinde birbirinden izole olarak çalıştırılan process’lerin her birine verilen isimdir. Dockerfile; Dosya sisteminin yapısı ve içerisindeki dosyaları, koşturacağı programı belirleyen ve içeriği metin bazlı dosyadır. Image; Dockerfile’ın build edilmesiyle oluşan binary halidir. Development Environment | Software Automation | Production Environment
  3. 3. ASP.NET Core ASP.NET Core; Açık kaynak kodlu, yüksek performanslı, modern ve cross-platform çalışabilen uygulamadır. Linux, Windows, macOs platformlarda port edilebilir. Middleware; Moduler HTTP request pipeline yapısı ile yüksek performans sunar. Modular Framework Server lisans maliyetleri Her zaman her yerde
  4. 4. Web Framework Benchmarks Plaintext Mayıs 2017 - Saniyede verilen yanıtlar aspnetcore-mvc-linux 831,987 nodejs 429,494 django 88,019 php5 44,881 aspnet 71,589 (2014)
  5. 5. Domain Driven Design Karmaşık yazılım sistemleri geliştirirken karşılaşılan temel problemlere çözümler öneren bir yaklaşımdır. Yazılım tasarlanırken tüm süreçlerin domain’i esas alarak kurgulanmasını önerir. Domain Expert; İşin ve süreçlerin uzmanı.
  6. 6. ApplicationLayer; ● Use-Case, DB CRUD, Specification ● ApplicationService; Application için Gateway görevindedir. ApplicationLayer.Contracts; ● ApplicationLayer katmanı için interface yapılarını içerir. ● Dtos; Data Transfer Objects
  7. 7. DomainModelLayer; Domain; İşin özü (Fiyat hesaplama, iş kuralları vb.) Application’a gateway görevindedir. Entity; POCO (Entity Framework data classlarıdır) Aggregate; Entity’dir. Kendisine bağlı entity’leri yönetir. Örnek; YatanHasta (A), YatHasOrder (E), Anamnez (E) YH.YatanHastaCtor(hastaneBolumu, params vb[]) YH.Update(yeniBolum, params vb[]) YH.YatHasOrderEkle(ilac, params[]) -> YatHasOrderCtor(ilac, vb) -> YH.orderList.add(x) Policy; Domain katmanında iş politikalarını belirler. Basit iş kullarını entity kendisi belirleyebilir.
  8. 8. InfrastructureLayer; DDD’nin teknik alt yapısı (Repository, Context, UnitOfWork vb)
  9. 9. RestFulAPI Facade Pattern Örneğidir Günümüzde popüler olan iki tane servis haberleşmesi; SOAP ve REST’tir. SOAP’ kompleks bir mimari ve xml formatında büyük iletişim datalarıyla çalışır. REST ise HTTP protokolu, esnek yapısı, JSON formatıyla ufak data transferleriyle çalışır. Modern uygulamaların çoğunda RestFulAPI kullanılmaktadır. Versiyonlama Ortak veri yapıları DTO ve mapping
  10. 10. ELK Stack
  11. 11. Application Domain Data Framework Web Mobile IOT HttpServer Load Balancer
  12. 12. Development Environment Test
  13. 13. Deployment - CI/CD Tests
  14. 14. Demo Teşekkürler…. Proje eğitim amaçlı geliştirilmiş olup açık kaynak kodlu olarak aşağıda belirtilen adresten indirilebilir. Kullanımı hakları tamamıyla serbesttir. Github: https://github.com/sabitkose/yeditepe Sabit Köse | 29.09.2017 | Yeditepe Üniversitesi Hastanesi Yazılım Projeleri - HISLAB sabit.kose@gmail.com | 05552231812

×