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.