Aracılığıyla paylaş


Kod analizi kuralları genişletilebilirliğine genel bakış

, veritabanı kodunuzdaki tasarım, adlandırma ve performans uyarılarını kod çözümleme kurallarına göre rapor eden Transact-SQL sağladı. Yerleşik kod analizi kuralları, otomatik olarak algılamak istediğiniz belirli bir T-SQL sorunu veya kötü amaçlı yazılımdan koruma kapsamı içermiyorsa, özel veritabanı kodu çözümleme kuralları oluşturabilirsiniz.

Örneğin, 'de gösterildiği gibi, WAITFOR DELAY deyiminin kullanılmasından kaçınan özel bir kural oluşturmak isteyebilirsiniz,Özel kod çözümleme kuralları yazarak. Özel veritabanı kodu çözümleme kuralları oluşturmak için CodeAnalysis ad alanında sınıfları kullanırsınız.

Bu genel bakış, veritabanı kodu çözümleme kurallarının çeşitli bileşenleri arasındaki temel mimariyi kapsar.

Veritabanı kod analizi kuralları bileşenleri

Aşağıdaki diyagramda veritabanı kodu çözümleme kuralları bileşenlerinin nasıl işlendiği gösterilmektedir:

Veritabanı kod analizi işleme akışının ekran görüntüsü.

Veritabanı kodu çözümleme kuralları özelliğini kullandığınızda, tüm kurallar projenizde nasıl yapılandırdığınıza göre yüklenir ve kullanılır. Daha fazla bilgi için bkz. Nasıl yapılır: Veritabanı Kodunun Statik Analizi için Belirli Kuralları Etkinleştirme ve Devre Dışı Bırakma. Uzantı Yöneticisi, oluşturduğunuz ve kaydettiğiniz tüm özel kural derlemelerini de yükler.

Özel bir kod analizi kural sınıfı, SqlCodeAnalysisRule'dan türetilir. Özel kural sınıfı, kural yürütme bağlamı aracılığıyla yararlı nesnelere erişebilir. Bu nesneler şunlardır:

  • Kuralın kendisi hakkındaki meta veriler.
  • Tüm model öğeleri, bunlar ve öğelerin özellikleri arasındaki ilişkiler dahil olmak üzere veritabanının şemasını temsil eden Dac.Model.TSqlModel.
  • Belirli öğeleri inceleyen kurallar için modeldeki şema elemanını temsil eden Dac.Model.TSqlObject, bağlama dahil edilir.
  • Birçok şema nesnesi, bu bağlam aracılığıyla erişilebilen bir ScriptDom gösterimine de sahiptir. Bu, SelectStarExpressiongibi olası söz dizimi sorunlarını görmeye çalışırken yararlı olabilecek bir öğenin AST tabanlı bir gösterimidir.

Kural tarafından bulunan tüm sorunlar için bir Dac.CodeAnalysis.SqlRuleProblem nesnesi oluşturulur. Bu SqlRuleProblem nesnesi oluşturulurken, ilgili Dac.Model.TSqlObject ve büyük olasılıkla bir ScriptDom gösterimi öğesi oluşturucuya geçirilir ve bunlar kaynak kod dosyalarınızdaki sorunun konumunu belirlemek için kullanılır. Çözümlemenin sonunda, bu sorunların tümü Hata Yöneticisi'ne geçirilir ve Hata Listesi'nde görüntülenir.

Sql projesine özel kurallar ekleme

Microsoft.Build.Sql SDK stili SQL projeleriyle, kuralları içeren bir paket başvurusu ekleyerek projeye özel kod çözümleme kuralları eklersiniz. Aşağıdaki örnekte özel kod çözümleme kuralı paketine bir paket başvurusu gösterilmektedir:

<ItemGroup>
  <PackageReference Include="Your.CustomCode.AnalysisRules" Version="1.2.3" />
</ItemGroup>

paket başvurularında SQL projesinde kod çözümleme kuralları paketine başvurma hakkında daha fazla bilgi edinin.