Bu makale aşağıdaki konuları kapsamaktadır:
Uygulama doğrulama kurallarına giriş
Bir Uygulamanın doğrulanabilmesi için çeşitli testlerden geçmesi gerekir. Bu testler, ETS'nin kalitesini, performansını ve istikrarını sağlar. Test sonuçları, doğrulama için bir Uygulama sürümü yüklendiğinde geliştiriciye bildirilir. (bkz. Uygulama doğrulama)
Kontroller 2 farklı önem derecesine ayrılmıştır:
Hata: Bu testler nettir. Başarısız olan herhangi bir test, Uygulamanın doğrulanmasını otomatik olarak engeller.
Uyarı: Bu testler, bir kural ihlali olabileceğini gösterir. Uygulama manuel olarak incelenmelidir. Böyle bir manuel inceleme, kuralın ihlal edilmediğini gösterirse, Uygulama doğrulanabilir. Aksi takdirde, kural ihlal edilirse doğrulama reddedilir.
Bir Uygulama, bir log kaydı bileşeni veya bir zip derlemesi gibi ek derlemeler içerebileceğinden, kontrollerin buna göre ayarlanması gerekir. Uygulamanın kendisi tarafından kesinlikle uyulması gereken bazı kurallar, diğer bazı derlemeler için uyarı olabilir. Örneğin, Uygulamanın .NET çerçevesi 4.0'a göre derlenmesi gerekirken, üçüncü taraf bileşenleri farklı bir .NET çerçevesine göre derlenebilir. Aksi takdirde, örneğin log4net'in kullanımı hiç mümkün olmaz. Öte yandan, ek derlemeler için kuralların katılığını çok fazla gevşetmek, geliştiricileri sorunlu kodu bu ek derlemelere dış kaynak sağlamaya davet edebileceğinden bir seçenek değildir.
Bu sorunun çözümü, derleme kontrollerini 2 çalıştırmaya bölmektir:
Uygulama geliştiricisinin tüm derlemeleri, kuralların katı bir şekilde yorumlanmasına uymalıdır. Bu, Uygulamanın kendisinin katı kurallara ve aynı geliştiricinin herhangi bir bileşenine göre uygulanmasını sağlar.
İkinci çalıştırmada, üçüncü taraf geliştiricilerin tüm derlemeleri kontrol edilir. Bu derlemeler için, Uygulama geliştiricisinin bu derlemelerin uygulanmasını etkileme şansı çok az olduğundan, bazı kurallar daha az sıkı kontrol edilir. Daha az katı bir şekilde işlenen bu kurallar uyarı olarak bildirilir ve doğrulama yapılmadan önce manuel olarak gözden geçirilmelidir. Bununla birlikte, bazı kurallar katı kalır, örn. doğrudan bus erişiminin kullanılması herşekilde şekilde yasaktır.
Her Uygulamanın uyması gereken kuralların listesi aşağıda açıklanmıştır. Ek olarak, geliştiricinin sorunu nasıl önleyebileceği veya çözebileceği de kısa bir açıklama ile sağlanır. Önem derecesi her iki durum için de sağlanır: Katı sürüm (Uygulama geliştirici derlemeleri) ve daha zayıf sürüm (üçüncü taraf geliştirici derlemeleri)
Uygulama doğrulama kuralları
Otomatik olarak kontrol edilen kurallar
- Eksik strong name
- Birden fazla ETS Eklentisi bulundu
- Harici süreci başlatma
- Yönetilmeyen kod kullanımı
- Yasaklanmış KNX derlemelerinin kullanımı
- Uygulama örneği oluşturulamıyor
- Uygulama örneğinin oluşturulması çok yavaş
- KNX busına doğrudan bağlantı
- Uygulama dosyası çok büyük
- İngilizce yardım dosyası eksik
- .Net runtime çok eski
- Uygulamanın sürümü yok
- Uygulama özelliği, derleme sürümünde belirtildiği gibi farklı bir sürüme sahip
- Konteyner, geçerli bir manifest dosyası içermelidir
- Konteyner, SDK derlemeleri içeremez
- Resmi olmayan SDK sürümünün kullanımı
- SQL bağlantısı algılandı
- Şüpheli ad alanlarının kullanımı algılandı
- Eksik İngilizce dil desteği
- Beklenmeyen App-ID
- Geçersiz DCA Manufacturer ID
- DCA'lar, UI Uygulaması özelliğini kullanmaz
- DCA, x64'ü desteklemelidir
- Uygulama, ETS5 tarafından farklı bir sürümde kullanılan bileşenleri kullanıyor
- Bildirim dosyasındaki AddInAssembly özniteliğinde belirtildiği gibi uygulama derlemesi bulunamadı
ID |
Ad |
Geliştirici için önemi derecesi |
3. taraf geliştirici için önem derecesi |
Tanım |
Çözüm |
1 |
Eksik strong name |
Hata |
Hata |
Bir etsapp konteynırı içindeki her .Net derlemesi, belirsizlikleri önlemek için strong name ile imzalanmalıdır. |
Çözüm için strong name key (snk dosyası) ekleyin. |
2 |
Birden fazla ETS Eklentisi bulundu |
Hata |
Hata |
Her etsapp konteynerı, IEts4App'ten miras alınan ve System.App.AppAttribute'a sahip olan yalnızca bir sınıf içerebilir veya başka bir deyişle: Her etsapp konteynırında yalnızca bir Uygulama(App) olabilir. |
IEts4App'ten devralan diğer tüm sınıfları etsapp'tan kaldırın. |
3 |
Harici süreci başlatma |
Hata |
Hata |
Uygulama, harici bir işlem başlatamaz. |
Harici işlemi başlatan kodu kaldırın. |
4 |
Yönetilmeyen kod kullanımı. |
Uyarı |
Uyarı |
Uygulama, yerel bileşenlere (DLLImport) yapılan çağrıları kullanır. Bu, manuel bir incelemeye yol açacaktır. |
Manuel inceleme, yönetilmeyen kodun illegal kullanımını ortaya çıkarırsa, bu kullanımları kaldırın. |
5 |
Yasaklanmış KNX derlemelerinin kullanımı |
Hata |
Hata |
KNX bileşenlerine yapılan referanslara yalnızca SDK'ya ait olmaları durumunda izin verilir, ör. Knx.Ets.SDK.*, Knx.Ets.CommonTypes, Knx.Ets.CommonResources'a izin verilir. Başka herhangi bir KNX referansı yasaktır. .Net çerçevesi veya kendi derlemelerinin referanslarına izin verilir. |
Yasaklanan ad alanlarının tüm kullanımlarını kaldırın. |
6 |
Uygulama örneği oluşturulamıyor |
Hata |
n.a. - Kural, her derleme için değil, Uygulama için kontrol edilir. |
Uygulamanın bir örneğini oluştururken, hiçbir istisna oluşturulamaz. |
İstisnayı oluşturan sorunu çözün. |
7 |
Uygulama örneğinin oluşturulması çok yavaş |
Hata |
n.a. - Kural, her derleme için değil, Uygulama için kontrol edilir. |
Uygulamanın bir örneğinin oluşturulması 5 saniyeden uzun süremez. Bu, Uygulamanın genel ETS5 performansı üzerindeki olumsuz etkisini sınırlayacaktır. |
Performans sorununun nedenini belirleyin, uygulamayı değiştirin, böylece örnek 5 saniyeden daha kısa sürede oluşturulabilir. |
8 |
KNX busına doğrudan bağlantı. |
Hata |
Hata |
Falcon bağlantılarına izin verilmez. Hiçbir Uygulamanın KNX BUS'ına doğrudan bağlantı sağlamasına izin verilmez. |
KNX BUS'ına doğrudan erişimin tüm kullanımlarını kaldırın. |
9 |
Uygulama dosyası çok büyük |
Hata |
n.a. - Kural, her derleme için değil, etsapp için kontrol edilir. |
Etsapp konteynırının maksimum boyutu 100 MB'dir. |
Çözüm: Dosya boyutunu küçültün, ör. pdf belgeleri, videolar veya resimler gibi ek dosyaları kaldırın veya boyutlarını küçültün. |
10 |
İngilizce yardım dosyası eksik |
Hata |
n.a. - Kural, her derleme için değil, etsapp için kontrol edilir |
En az bir İngilizce derlenmiş HTML yardım dosyası (*.chm) sağlanmalıdır. |
Etsapp'a İngilizce derlenmiş bir HTML yardım dosyası ekleyin. |
11 |
.Net runtime çok eski |
Hata |
Uyarı |
Etsapp konteynerında tüm derlemeler .NET runtime 4.0 ile oluşturulmalıdır. Eski sürümler desteklenmez. |
Uygulamayı hedef çerçeve .NET Framework 4 ile yeniden oluşturun. |
12 |
Uygulamanın sürümü yok |
Hata |
n.a. - Kural, her derleme için değil, Uygulama için kontrol edilir |
Uygulamanın bir sürüm numarası olmalıdır. Bu sürüm, mevcut güncellemeleri belirlemek ve/veya destek durumlarında çalışmayı en aza indirmeye yardımcı olmak için kullanılacaktır. |
Uygulamayı belirli bir dosya sürümüyle yeniden oluşturun. |
13 |
Uygulama özniteliği, derleme sürümünde belirtildiği gibi farklı bir sürüme sahiptir. |
Hata |
n.a. - Kural, her derleme için değil, Uygulama için kontrol edilir |
Uygulama sürümü ve derleme sürümü (Uygulama DLL'si) aynı sayı olmalıdır. Bu sürüm, mevcut güncellemeleri belirlemek ve/veya destek durumlarında çalışmayı en aza indirmeye yardımcı olmak için kullanılacaktır. |
Uygulamayı belirli bir dosya sürümü veya derleme sürümü ile yeniden oluşturun. |
14 |
Konteyner, geçerli bir manifest dosyası içermelidir |
Hata |
n.a. - Kural, her derleme için değil, Uygulama için kontrol edilir. |
Her ETS-App konteynerı, geçerli bir bildirim dosyası içermelidir. |
Kapsayıcıya geçerli bir bildirim dosyası ekleyin. |
15 |
Konteyner, SDK derlemeleri içeremez |
Hata |
n.a. - Kural, her derleme için değil, Uygulama için kontrol edilir. |
ETS-App kapsayıcısı, ETS-SDK'dan herhangi bir derleme içeremez. |
Herhangi bir SDK derlemesini konteynerdan çıkarın. |
16 |
Resmi olmayan SDK sürümünün kullanımı |
Hata |
n.a. - Kural, her derleme için değil, Uygulama için kontrol edilir. |
ETS-SDK'nın yayınlanmamış bir sürümüyle oluşturulmuş ETS-App konteynerlarının yayınlanmasına izin verilmez. |
Yalnızca yayınlanan SDK sürümlerinden dosyalara başvurarak Uygulamayı yeniden oluşturun. |
17 |
SQL bağlantısı algılandı |
Uyarı |
Uyarı |
Derleme, SQL ad alanını (System.Data.SqlClient) kullanıyorsa, bir mesaj bildirilir. Bu, manuel bir incelemeye yol açacaktır. Örneğin SQL ad alanı bir erişim veritabanından veri almak için kullanılıyorsa buna izin verilir. Okuma veya yazma, SDK ObjectModel olmadan ETS4 veritabanına herhangi bir erişim girişimi yasaktır. |
Manuel inceleme, SQL ad alanının illegal kullanımını ortaya çıkarırsa, bu kullanımları kaldırın. |
18 |
Şüpheli ad alanlarının kullanımı algılandı |
Uyarı |
Uyarı |
System.Net.*, System.Data.Sql ve System.Web ad alanlarının kullanımı bir bildirimle sonuçlanır. Bu ad alanlarının etsapp kurallarına uygun bir şekilde kullanılıp kullanılmadığını manuel bir inceleme kontrol etmelidir. Aksi takdirde, doğrulama reddedilir. |
Manuel inceleme, bu şüpheli ad alanlarının illegal kullanıldığını ortaya çıkarırsa, bu kullanımları kaldırın. |
19 |
Eksik İngilizce dil desteği |
Uyarı |
n.a. - Kural, her derleme için değil, Uygulama için kontrol edilir. |
Uygulama birden fazla dil için destek sağlıyorsa, İngilizce desteklenen diller arasında olmalıdır. Koltrol uygulama için İngilizce lakalizasyon arar. Hiçbiri bulunamazsa, doğal metinlerin zaten İngilizce olup olmadığı manuel olarak kontrol edilmelidir. |
İngilizce dil desteği ekleyin. |
20 |
beklenmeyen Uygulama ID |
Hata |
n.a. - Kural, her derleme için değil, Uygulama için kontrol edilir. |
AddIn örneği tarafından döndürülen Uygulama ID, AddIn bildirim dosyasındakiyle aynı olmalıdır. |
AddIn sınıfında ve bildirim dosyasında aynı Uygulama ID'si kullanın.
|
21 |
Geçersiz DCA Üretici Kimliği | Hata |
n.a. - Kural, her derleme için değil, Uygulama için kontrol edilir. |
DeviceConfiguration'daki Üretici ID, AddIn'in üretici kimliğiyle eşleşmiyor. | Uygulama ID ve uygulama programı kimlikleri için aynı üretici kimliğini kullanın |
22 |
DCA'lar, UI Uygulaması özelliğini kullanamaz |
Hata |
n.a. - Kural, her derleme için değil, Uygulama için kontrol edilir. |
Bir DCA aşağıdaki özellikleri kullanamaz:
|
DCA'nızda Eklenti özelliklerini kullanmayın. |
23 |
DCA, x64'ü desteklemelidir |
Hata |
n.a. - Kural, her derleme için değil, Uygulama için kontrol edilir. |
Herhangi bir DCA, x64'ü desteklemelidir, böylece ETS'nin Uyumluluk modunda çalışması gerekmez.
|
Uygulamanızı x64'ü destekleyecek şekilde oluşturun ve bildirimde Is64BitCompatible'ı true olarak ayarlayın.
|
24 |
Uygulama, ETS5 tarafından farklı bir sürümde kullanılan bileşenleri kullanıyor |
Uyarı |
n.a. - Kural her derleme için değil uygulama için kontrol edilir. |
ETS, uygulama tarafından da kullanılan ancak farklı bir sürüme sahip bir bileşen kullanıyor |
Olası uyumsuzluk sorunlarını önlemek için ETS ile aynı bileşen sürümünü kullanın |
25 |
Bildirim dosyasındaki AddInAssembly özniteliğinde belirtildiği gibi uygulama derlemesi bulunamadı |
Hata |
n.a. - Kural her derleme için değil uygulama için kontrol edilir |
Uygulama derlemesi bulunamadı |
Uygulama derlemesinin (bildirim dosyasında belirtilen) mevcut olduğundan emin olun |
Resmi olarak onaylanması gereken kurallar
Otomatik doğrulama mümkün olmadığı için bu kuralların geliştiriciler tarafından manuel olarak onaylanması gerekir.
Geliştirici kurallardan herhangi birini ihlal ederse (otomatik olarak doğrulananlar veya resmi olarak onaylananlar), doğrulama reddedilecektir. Doğrulamadan sonra kurallardan herhangi birinin ihlali fark edilirse, doğrulama iptal edilebilir.
Ad | Tanımlama | Çözüm |
Güncellemeler yalnızca MyKNX üzerinden mümkündür |
Uygulamanın kendi güncelleme mekanizması olmayabilir. Bir Uygulama için güncellemeler yalnızca KNX OLT aracılığıyla yapılabilir. Bu, doğrulanmamış Uygulamaların dağıtımını engeller. |
KNX OLT'yi atlayarak Uygulamayı güncellemek için kullanılan tüm mekanizmaları kaldırın. |
ETS4 veritabanına SQL bağlantısı yok |
Hiçbir Uygulamanın veritabanına doğrudan erişmesine izin verilmez. |
ETS4 veritabanına doğrudan erişen tüm mekanizmaları kaldırın. |
Uygulamalar, dosya sistemindeki verileri sürdürmeyebilir |
|
Verileri doğrudan dosya sisteminde depolayan tüm mekanizmaları kaldırın ve bunları projenin AppData kullanımıyla değiştirin. |
Uygulamalar tam ekran modunda çalışmayabilir |
Bir Uygulama, ETS penceresini gizleyemez ve ana uygulama gibi davranamaz. ETS her zaman ana uygulama olarak yeniden tanımlanabilmelidir. |
Uygulamanın ana uygulama olarak hareket etmesine izin veren tüm kodları kaldırın. |
Uygulama ya responsive olmalı ya da meşgul durumunu göstermelidir |
Uygulama, ETS'nin yanıt vermemesine neden olan zaman alıcı bir işlem gerçekleştirirse, uygulama bir ilerleme veya meşgul göstergesi görüntülemelidir |
Zaman alan işlemler için bir ilerleme göstergesi uygulayın. |
Uygulama beklenmedik bir şekilde kapanmamalıdır. |
Uygulama, kullanıcı dostu bir hata mesajı sağlayarak istisnalara tepki vermelidir. Mesajı görüntüledikten sonra, Uygulama çalışmaya devam etmelidir. Genel veya yetersiz hata mesajları kabul edilmez, ayrıca işlenmeyen istisnalardan sonra uygulamanın beklenmedik şekilde kapatılması. |
Her durumda kullanıcı dostu mesajlar görüntüleyen doğru bir hata işleme kullanın. İşlenmeyen hiçbir özel durumun Uygulamayı çökertemeyeceğinden emin olun. |