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.