Ana içeriğe atla

Code Generator (Sergen)

 

Bu bölüm Serenity v5 için güncellenecektir.

Sergen'in çözüm dizininizdeki konfigürasyon dosyası (Serenity.CodeGenerator.config) üzerinden ayarlayabileceğiniz bazı ekstra seçenekleri bulunmaktadır.

İşte seçeneklerin tamamı:

public class GeneratorConfig
{
    public List<Connection> Connections { get; set; }
    public string KDiff3Path { get; set; }
    public string TFPath { get; set; }
    public string TSCPath { get; set; }
    public bool TFSIntegration { get; set; }
    public string WebProjectFile { get; set; }
    public string ScriptProjectFile { get; set; }
    public string RootNamespace { get; set; }
    public List<BaseRowClass> BaseRowClasses { get; set; }
    public List<string> RemoveForeignFields { get; set; }
    public bool GenerateSSImports { get; set; }
    public bool GenerateTSTypings { get; set; }
    public bool GenerateTSCode { get; set; }
}

Bağlantılar, RootNamespace, WebProjectFile, ScriptProjectFile, GenerateSSImports, GenerateSSTypings ve GenerateTSCode seçeneklerinin tümü kullanıcı arayüzünde mevcuttur, bu nedenle diğer seçeneklere odaklanacağız.

KDiff3 Yolu

Sergen, mevcut bir dosyadaki değişiklikleri birleştirmesi gerektiğinde KDiff3'ü başlatmaya çalışıyor. Bir varlık için yeniden kod oluşturmaya çalıştığınızda bu durumla karşılaşabilirsiniz. Sergen, hedef dosyaları geçersiz kılmak yerine KDiff3'ü çalıştıracak.

Sergen, KDiff3'ü varsayılan konumunda C:\Program Files\Kdiff3 altında arar ancak Kdiff3'ü başka bir konuma yüklediyseniz bu seçeneği kullanarak bu yolu geçersiz kılabilirsiniz.

TFSEntegrasyonu ve TFPath

Sergen, TFS ile çalışan kullanıcılara bu seçenekleri sunarak mevcut dosyaların kontrol edilmesini ve kaynak kontrolüne yenilerinin eklenmesini mümkün kılıyor. Projeniz TFS'de sürümlendirilmişse TFSIntegration'ı true olarak ayarlayın ve tf.exe, C:\Program Files\Visual Studio\xy\Common7\ide\ konumundaki varsayılan konumunda değilse TFPath'ı ayarlayın.

{
  // ...
  "TFSIntegration": true,
  "TFPath": "C:\Program Files\....\tf.exe"
}

Yabancı Alanları Kaldır

Sergen varsayılan olarak tablonuzun yabancı anahtarlarını inceler ve bir satır sınıfı oluştururken referans verilen tüm yabancı tablolardan tüm alanları getirir.

Bazen yabancı tablolarda bazı alanlarınız olabilir; örneğin InsertUserId, UpdateDate vb. gibi başka bir satırda kullanışlı olmayan bazı kayıt alanları.

Kod oluşturduktan sonra bunları manuel olarak da kaldırabilirsiniz, ancak bu seçeneği kullanmak daha kolay olabilir. Oluşturulan satırlardan kaldırmak istediğiniz alanları bir dize dizisi olarak listeleyin:

{
  // ...
  "RemoveForeignFields": ["InsertUserId", "UpdateUserId", 
      "InsertDate", "UpdateDate"]
}

Bunun bu alanları tablo satırından kaldırmadığını, yalnızca bu görünüm alanlarını yabancı birleştirmelerden kaldırdığını unutmayın.

BaseRowClasses

Serene'de LoggingRow gibi bir temel satır sınıfı kullanıyorsanız, Sergen'in satırlarınızı bu temel sınıflardan türetmesini isteyebilirsiniz.

Bunun işe yaraması için temel sınıflarınızı ve sahip oldukları alanları listeleyin.

{
  // ...
  "BaseRowClasses": [{
      "ClassName": "Serene.Administration.LoggingRow",
      "Fields": ["InsertUserId", "UpdateUserId", 
          "InsertDate", "UpdateDate"]
  }]     
}

Sergen, bir tablonun "Fields" dizisinde tüm alanların listelendiğini tespit ederse, temel sınıfını "SınıfAdı" olarak ayarlayacak ve bu alanları, temel satır sınıfında zaten tanımlandığı için satırda açık olarak üretmeyecektir.

Birden fazla temel satır sınıfı tanımlamak mümkündür. Bir satırın alanları birden fazla temel sınıfla eşleşiyorsa Sergen, en çok eşleşen alana sahip temel satır sınıfını seçecektir.

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...

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 ş...