Ana içeriğe atla

Serenity Web Nedir?

  Serenity , açık kaynak teknolojileri üzerine kurulu bir ASP.NET Core/TypeScript uygulama platformudur.

Standart kodlardan kaçınarak, tekrarlanan görevlere harcanan zamanı azaltarak ve en iyi yazılım tasarımı uygulamalarını uygulayarak bakım maliyetlerini düşürürken geliştirmeyi kolaylaştırmayı amaçlamaktadır.

Serene , Serenity platformunu temel alan ücretsiz, açık kaynaklı başlangıç ​​uygulama şablonumuzdur. Bu dokümantasyon aracılığıyla eğitimimiz ve diğer örnekler için esas olarak Serene'yi kullanacağız.

StartSharp , ücretli müşterilerimize sunduğumuz premium uygulama şablonudur. Daha gösterişli bir temaya ve bazı ekstra özelliklere ek olarak Serene'deki her şeyi içerir İkisi de Serenity platformunu temel alıyor.

Adında Ne Var

Serenity'nin sözlük anlamları barış , rahatlık ve sakinliktir .

Serenity ile bunu başarmaya çalışıyoruz. Umarız yükledikten ve kullandıktan sonra siz de bu şekilde hissedeceksiniz...

Bu Platform Kim/Ne İçin?

Serenity, entegre yetenekler içeren ve genellikle birçok form ve listeleme/raporlama sayfası içeren veritabanlarına bağlanan programlar olarak tanımlanabilecek iş kolu (LOB) uygulamaları için en uygunudur.

Aynı zamanda halka açık web sitelerinin yönetim arayüzleri için de iyi bir seçimdir.

Serenity, veri işleme, sorgulama, filtreleme, hizmetler, önbelleğe alma, yerelleştirme, gezinme, doğrulama, kullanıcı erişim kontrolü ve bildirime dayalı kullanıcı arayüzü dahil olmak üzere bu tür uygulamaların birbiriyle kesişen sorunlarına yönelik dahili tesisatın çoğunu yönetir.

Kullanıma Hazır Özelliklerden Bazıları

  • Modüler, hizmet tabanlı bir web uygulaması modeli
  • Bir SQL tablosu için başlangıç ​​hizmetleri/kullanıcı arayüzü kodunu üreten bir kod oluşturucu (Sergen)
  • Derleme zamanı hata denetimi ve Intelli-sense desteği sağlayan C#/TypeScript kodu arasında iki yönlü dönüşümler
  • Bir widget sistemi aracılığıyla uygulanan öznitelik tabanlı bildirimsel kullanıcı arayüzleri
  • Form tanımları aracılığıyla kesintisiz veri bağlama (form <-> varlık <-> hizmeti).
  • Yerel/dağıtılmış önbelleğe alma ve geçersiz kılma
  • Basit, veriye dayalı raporlama, Excel'e aktarma
  • Komut dosyası paketleme, küçültme ve içerik sürümü oluşturma (artık F5 yok / tarayıcı önbelleğini temizleme)
  • Akıcı SQL Oluşturucuları
  • Mikro ORM ve Dapper entegrasyonu
  • Varlık sınıflarındaki bilgileri yeniden kullanarak çalışan ve otomatik doğrulama yapan REST benzeri hizmetler için özelleştirilebilir işleyiciler.
  • Öznitelik tabanlı gezinme menüsü
  • Kullanıcı Arayüzü / Veri Yerelleştirmesi
  • Denetim günlüğü

Bilgi İçin Nereye Bakılmalı

Bu kılavuzu ve eğitimlerini okuduktan sonra Serenity hakkında daha fazla bilgi için aşağıdaki kaynakları takip edin:

Ana Sayfa:
https://serenity.is
Blog:
https://serenity.is/blog
Github Deposu:
https://github.com/serenity-is/Serenity
Sorunlar / Hata Raporları
https://github.com/serenity-is/Serenity/issues
Tartışmalar / Sorular
https://github.com/serenity-is/Serenity/discussions
Topluluk Wiki (SSS, Sorun Giderme ve Topluluk Tarafından Düzenlenen Diğer İçerik)
https://github.com/serenity-is/Serenity/wiki
Günlüğü Değiştir:
https://github.com/serenity-is/Serenity/blob/master/CHANGELOG.md
Sakin Başvuru Şablonu:
https://marketplace.visualstudio.com/items?itemName=VolkanCeylan.SereneSerenityApplicationTemplate
Sakin Github Deposu:
https://github.com/serenity-is/Serene

Arka plan

Tarih okumayı sevmiyorsanız bir sonraki bölüme rahatlıkla geçebilirsiniz :)

Geliştiriciler olarak hepimiz her gün aynı sorunları çözüyoruz. Tıpkı sorunlu kitapları üzerinde çalışan üniversite öğrencileri gibi.

Bunların zaten çözülmüş olduğunu ve bir yerlerde cevapları olduğunu bilsek bile, bu bizi bunlar üzerinde çalışmaktan alıkoymuyor. Becerilerimizi geliştirmek faydalı olabilir ve bazı hatalar yapmadan öğrenemezsiniz, değil mi? Ancak antrenman yapmakla vakit kaybetmek arasındaki çizgiyi nereye çekeceğimizi öğrenmeliyiz.

Yeni bir projeye başladığınızda platform, mimari ve kütüphane seti hakkında vermeniz gereken çeşitli kararlar vardır. Bugün her konu için çok fazla seçeneğiniz var. Evet, sınırlı olduğu sürece bazı seçeneklere sahip olmak iyidir, çünkü zamanımız sonsuz değildir.

İş uygulamalarında uğraştığınız ortak görevleri yerine getirmeyi ve değerli zamanınızı uygulama alanınıza özel özelliklere odaklanarak ayırmanızı amaçlayan Serenity'nin kısa tarihçesini burada bulabilirsiniz .

Web teknolojileri alanındaki ilk gerçek işim, sektördeki bazı büyük isimlerin, örneğin otomotiv şirketlerinin (bu arada, 15+ yıl öncesinden bahsediyoruz, zaman hızlı akıyor) ülkeye özel web sitelerini tasarlayan bir web ajansındaydı.

Oraya imza atmadan önce masaüstü uygulamalarda yazılım mimarı kariyerim olduğundan, onlar için bir ASP.NET WebForms platformu tasarlamam istendi. Her sitede haberler, galeriler ve navigasyon gibi birçok ortak modül bulunduğunu ancak gereksinimler değiştikçe kopyalayıp yapıştırmak ve ardından kodu her müşteriye özel özelleştirmek zorunda kaldıklarını açıkladılar. Ortak bir özellik eklemek istediklerinde bunu her site için tekrarlamaları gerekiyordu.

O zamanlar piyasada bu kadar çok CMS sistemi yoktu ve ben adının CMS olduğunu bile bilmeden onlar için bir tane tasarladım. Bana göre mükemmel değildi, hatta yeterince iyi bile değildi çünkü tasarlamak için sadece birkaç haftam vardı. Ancak sonuçtan çok memnun kaldılar çünkü yeni sitelerin geliştirilmesi aylardan günlere/haftalara indi. Ayrıca ortaya çıkan kod eskisinden daha kolay yönetilebilir hale geldi.

Bu deneyimden ve hatalardan ders alarak yoksul adamın CMS'sinin daha iyi bir şey haline geldiğini gördük. Daha sonra bu platform, yardım masası sistemi, CRM, ERP, personel yönetimi, elektronik belge yönetimi, üniversite öğrenci bilgi sistemi ve daha fazlası gibi çeşitli alanlardaki uygulamalar tarafından kullanılacak şekilde gelişti.

Farklı türdeki uygulamalarla, sistemlerle ve hatta eski veritabanlarıyla uyumlu olabilmesi için esnek olması ve birçok mimari değişiklikten geçmesi gerekiyordu.

Şimdi bizi Serenity'ye götürüyor. 2015 yılından bu yana açık kaynak kodlu bir proje olmasına rağmen çok daha eski bir geçmişe sahip. Ama aynı zamanda genç, enerjik ve değişimden korkmuyor. Popüler ve istikrarlı hale geldikçe yeni teknolojilere uyum sağlayabilir. Bu, zaman zaman değişiklikleri bozmak anlamına gelebilir, ancak geriye dönük uyumluluk konusunda paranoyaya kapılmadan bunları minimumda tutmaya çalışıyoruz.

Bu blogdaki popüler yayınlar

Code generetor ile oluşturulan dosyaların açıklamaları

  1. Sunum (Presentation/UI) Katmanı (Kullanıcı arayüzü - HTML, TypeScript, Dialog, Grid) 🔹 XYZPage.ts 📌 Ne İşe Yarar? Kullanıcı arayüzünün TypeScript tarafındaki tanımıdır. Serenity'nin Dialog ve Grid bileşenlerini içeren bir TypeScript sınıfıdır. 📌 Çok Katmanlı Mimarideki Yeri: Sunum Katmanı (Presentation Layer) Kullanıcıdan veri almak ve göstermek için kullanılır. 🔹 XYZGrid.ts 📌 Ne İşe Yarar? Tablo (Grid) yapısını oluşturur ve verileri listeler. Filtreleme, sıralama ve sayfalama işlemleri için kullanılır. columnsKey ile hangi kolonların gösterileceğini belirler. 📌 Çok Katmanlı Mimarideki Yeri: Sunum Katmanı (Presentation Layer) Kullanıcının verileri listelediği ve etkileşimde bulunduğu yerdir. 🔹 XYZDialog.ts 📌 Ne İşe Yarar? CRUD (Create, Read, Update, Delete) işlemlerini yöneten pencere (modal) bileşeni Kullanıcı form aracılığıyla veri ekler, günceller veya siler. XYZForm.cs ile birlikte çalışır. 📌 Çok Katmanlı Mimarideki Yeri: Sunum Katmanı (Presentation Layer) Kull...