Tämä artikkeli kattaa seuraavat aiheet:
Sovelluksen vahvistussääntöjen esittely
Sovelluksen on läpäistävä useita testejä, ennen kuin se voidaan hyväksyä. Nämä testit varmistavat ETS:n laadun, suoritustehon ja vakauden. Testitulokset raportoidaan kehittäjälle, kun sovellusversio ladataan palvelimelle vahvistusta varten. (katso Sovelluksen vahvistus)
Tarkistukset jaetaan 2 eri vakavuusluokan mukaisesti:
Virhe: Nämä testit ovat yksiselitteisiä. Epäonnistunut testi estää automaattisesti sovelluksen vahvistuksen.
Varoitus: Nämä testit osoittavat, että kyseessä voi olla sääntörikkomus. Sovellus on tarkastettava manuaalisesti. Jos tällainen manuaalinen tarkistus osoittaa, että sääntöä ei ole rikottu, sovellus voidaan vahvistaa. Muussa tapauksessa, jos sääntöä on rikottu, vahvistus evätään.
Koska sovellus voi sisältää lisäkokoonpanoja, kuten kirjauskomponentin tai zip-kokoonpanon, tarkastusten on mukauduttava tuohon. Jotkin säännöt, joita itse sovelluksen on noudatettava tarkasti, voivat olla varoituksia muille kokoonpanoille. Esimerkiksi kun sovellus on koottava .NET framework 4.0:n mukaisesti, kolmannen osapuolen komponentit saatetaan koota eri .NET frameworkin mukaisesti. Muussa tapauksessa esim. log4netin käyttö olisi lainkaan mahdollista. Toisaalta tiukkojen sääntöjen höllentäminen liikaa lisäkokoonpanojen osalta ei ole vaihtoehto, koska tämä voisi houkuttaa kehittäjiä ulkoistamaan ongelmalliset koodit noille lisäkokoonpanoille.
Ratkaisu tähän ongelmaan on jakaa kokoonpanotarkistukset kahteen (2) osaan:
Kaikkien itse sovelluksen kehittäjältä tulevien kokoonpanojen on noudatettava sääntöjen tiukkaa tulkintaa. Näin varmistetaan, että itse sovellus on toteutettu tiukkojen sääntöjen mukaisesti, samoin kuin jokainen komponentti samalta kehittäjältä.
Toisessa osassa tarkistetaan kaikki kolmannen osapuolen kehittäjien kokoonpanot. Noiden kokoonpanojen osalta jotkin säännöt tarkistetaan löyhemmin, koska sovelluksen kehittäjä voi vaikuttaa vain vähän noiden kokoonpanojen toteutukseen. Nämä vähemmän tiukasti käsitellyt säännöt raportoidaan varoituksina, ja ne on tarkistettava manuaalisesti ennen vahvistuksen myöntämistä. Jotkin säännöt pysyvät kuitenkin tiukkoina, esim. suoran väyläpääsyn käyttö on kiellettyä joka tapauksessa.
Sääntöluettelo, jota jokaisen sovelluksen on noudatettava, selitetään alla. Lisäksi annetaan myös lyhyt kuvaus siitä, kuinka kehittäjä voi välttää tai ratkaista ongelman. Vakavuus annetaan molemmissa tapauksissa: Tiukka versio (sovelluskehittäjän kokoonpanot) ja heikompi versio (kolmannen osapuolen kehittäjän kokoonpanot)
Sovelluksen vahvistussäännöt
Automaattisesti tarkistetut säännöt
- Puuttuva täydellinen nimi
- Useampi kuin yksi sovellus löytynyt
- Käynnistää ulkoista prosessia
- Hallitsemattoman koodin käyttö
- Kiellettyjen KNX-kokoonpanojen käyttö
- Sovellusesiintymää ei voi luoda
- Sovellusesiintymän luonti on liian hidasta
- Suora yhteys KNX-väylään
- Sovellustiedosto liian iso
- Puuttuva englanninkielinen ohjetiedosto
- .Net-suorituspalvelu liian vanha
- Sovelluksella ei ole versiota
- Sovellusattribuutilla on eri versio kuin kokoonpanoversiossa on määritetty
- Säiliön on sisällettävä voimassa oleva resurssiluettelotiedosto
- Säiliö ei saa sisältää SDK-kokoonpanoja
- Muun kuin virallisen SDK-version käyttö
- SQL-yhteys havaittu
- Epäilyttävien nimiavaruuksien käyttöä havaittu
- Puuttuva englanninkielinen tuki
Tunnus |
Nimi |
Vakavuus kehittäjälle |
Vakavuus 3. osapuolen kehittäjälle |
Kuvaus |
Ratkaisu |
1 |
Puuttuva täydellinen nimi |
Virhe |
Virhe |
Jokainen .Net-kokoonpano etsapp-säiliössä on allekirjoitettava täydellisellä nimellä epäselvyyksien estämiseksi. |
Lisää täydellisen nimen avain (snk-tiedosto) ratkaisuun. |
2 |
Useampi kuin yksi sovellus löytynyt |
Virhe |
Virhe |
Jokainen etsapp-säiliö voi sisältää vain täsmälleen yhden luokan, joka peritään IEts4Appista ja jolla on System.App.AppAttribute, tai toisin sanoen: Jokainen etsapp-säiliö voi sisältää vain yhden sovelluksen. |
Poista kaikki muut luokat, jotka perivät IEts4Appin etsappista. |
3 |
Käynnistää ulkoisen prosessin |
Virhe |
Virhe |
Sovellus ei saa käynnistää ulkoista prosessia. |
Poista koodi, joka käynnistää ulkoisen prosessin. |
4 |
Hallitsemattoman koodin käyttö. |
Varoitus |
Varoitus |
Sovellus käyttää soittoja natiivikomponentteihin (DLLImport). Tämä johtaa manuaaliseen tarkastukseen. |
Jos manuaalinen tarkastus paljastaa hallitsemattoman koodin laittoman käytön, poista nuo käytöt. |
5 |
Kiellettyjen KNX-kokoonpanojen käyttö |
Virhe |
Virhe |
Viittaukset KNX-komponentteihin sallitaan vain, jos ne kuuluvat SDK:lle, ts. Knx.Ets.SDK.*, Knx.Ets.CommonTypes, Knx.Ets.CommonResources sallitaan. Kaikki muut KNX-viitteet ovat kiellettyjä. Viittaukset .Net frameworkiin tai omiin kokoonpanoihin sallitaan. |
Poista kaikki kiellettyjen nimiavaruuksien käyttö. |
6 |
Sovellusesiintymää ei voida luoda |
Virhe |
n.a. – Sääntö tarkastetaan sovellukselle, ei jokaiselle kokoonpanolle. |
Sovelluksen esiintymää luodessa poikkeuksia ei saa esiintyä. |
Ratkaise ongelma, jossa poikkeus esiintyy. |
7 |
Sovellusesiintymän luonti on liian hidasta |
Virhe |
n.a. – Sääntö tarkastetaan sovellukselle, ei jokaiselle kokoonpanolle. |
Sovelluksen esiintymän luonti ei saa kestää viittä (5) sekuntia pidempään. Tällä rajoitetaan sovelluksen haitallista vaikutusta ETS5:n kokonaissuoritustehoon. |
Määritä syy suoritusteho-ongelmaan, muuta toteutusta niin, että esiintymä voidaan luoda alle 5 sekunnissa. |
8 |
Suora yhteys KNX-väylään. |
Virhe |
Virhe |
Falcon-yhteyksiä ei sallita. Mikään sovellus ei saa tarjota suoraa yhteyttä KNX-väylään. |
Poista kaikki suoran käytön yhteydet KNX-väylään. |
9 |
Sovellustiedosto on liian iso |
Virhe |
n.a. – Sääntö tarkastetaan etsappille, ei jokaiselle kokoonpanolle. |
Etsapp-säiliön suurin koko 100 MB. |
Ratkaisu: Pienennä tiedostokokoa esim. poistamalla ylimääräiset tiedostot, kuten pdf-asiakirjat, videot tai kuvat, tai pienennä niiden kokoa. |
10 |
Puuttuva englanninkielinen ohjetiedosto |
Virhe |
n.a. – Sääntö tarkastetaan etsappille, ei jokaiselle kokoonpanolle |
Vähintään yksi englanninkielellä laadittu HTML-ohjetiedosto (*.chm) on tarjottava. |
Lisää englanninkielinen HTML-ohjetiedosto etsappiin. |
11 |
.NET-suorituspalvelu liian vanha |
Virhe |
Varoitus |
Kaikki etsapp-säiliön kokoonpanot on rakennettava versolla .NET runtime 4.0. Vanhempia versioita ei tueta. |
Rakenna sovellus uudestaan kohdekehyksellä .NET Framework 4. |
12 |
Sovelluksella ei ole versiota |
Virhe |
n.a. – Sääntö tarkastetaan sovellukselle, ei jokaiselle kokoonpanolle |
Sovelluksella on oltava versionumero. Tätä versiota käytetään määrittämään saatavissa olevat päivitykset ja/tai apuna työn minimoinnissa tukitapauksissa. |
Rakenna sovellus uudestaan määritetyllä tiedostoversiolla. |
13 |
Sovellusattribuutilla on eri versio kuin kokoonpanoversiossa on määritetty. |
Virhe |
n.a. – Sääntö tarkastetaan sovellukselle, ei jokaiselle kokoonpanolle |
Sovellusversiolla ja kokoonpanoversiolla (Sovellus-DLL) on oltava sama numero. Tätä versiota käytetään määrittämään saatavissa olevat päivitykset ja/tai apuna työn minimoinnissa tukitapauksissa. |
Rakenna sovellus uudestaan määritetyllä tiedosto- tai kokoonpanoversiolla. |
14 |
Säiliön on sisällettävä voimassa oleva resurssiluettelotiedosto |
Virhe |
n.a. – Sääntö tarkastetaan sovellukselle, ei jokaiselle kokoonpanolle. |
Jokaisen ETS-sovelluksen säiliön on sisällettävä voimassa oleva resurssiluettelotiedosto. |
Lisää voimassa oleva resurssiluettelotiedosto säiliöön. |
15 |
Säiliö ei saa sisältää SDK-kokoonpanoja |
Virhe |
n.a. – Sääntö tarkastetaan sovellukselle, ei jokaiselle kokoonpanolle. |
ETS-sovelluksen säiliö ei voi sisältää kokoonpanoja ETS-SDK:sta. |
Poista mahdollinen SDK-kokoonpano säiliöstä. |
16 |
Muun kuin virallisen SDK-version käyttö |
Virhe |
n.a. – Sääntö tarkastetaan sovellukselle, ei jokaiselle kokoonpanolle. |
Sellaisten ETS-sovellusten säiliöiden julkaisua ei sallita, jotka on rakennettu ETS-SDK:n julkaisemattomalla versiolla. |
Rakenna sovellus uudestaan viittaamalla vain julkaistujen SDK-versioiden tiedostoihin. |
17 |
SQL-yhteys havaittu |
Varoitus |
Varoitus |
Jos kokoonpano käyttää SQL-nimiavaruutta (System.Data.SqlClient), viesti raportoidaan. Tämä johtaa manuaaliseen tarkastukseen. Jos esimerkiksi SQL-nimiavaruutta käytetään tuodessa tietoja käyttöoikeustietokannasta, tämä sallitaan. Yritys käyttää ETS4-tietokantaa ilman SDK ObjectModelia, joko lukemalla tai kirjoittamalla, on kielletty. |
Jos manuaalinen tarkastus paljastaa SQL-nimiavaruuden laittoman käytön, poista tuollaiset käytöt. |
18 |
Epäilyttävien nimiavaruuksien käyttö havaittu |
Varoitus |
Varoitus |
Nimiavaruuksien System.Net.*, System.Data.Sql ja System.Web käyttö aiheuttaa ilmoituksen. Manuaalisessa tarkastuksessa on tarkistettava, käytetäänkö näitä nimiavaruuksia etsapp-sääntöjen mukaisella tavalla. Jos ei, vahvistus evätään. |
Jos manuaalinen tarkastus paljastaa tuollaisten epäilyttävien nimiavaruuksien laittoman käytön, poista nuo käytöt. |
19 |
Puuttuva englanninkielinen tuki |
Varoitus |
n.a. – Sääntö tarkastetaan sovellukselle, ei jokaiselle kokoonpanolle. |
Jos sovellus tarjoaa tuen useille kielille, englannin on oltava yksi noista tuetuista kielistä. Tarkistus hakee englanninkielistä lokalisaatiota sovellukselle. Jos mitään ei löytynyt, on tarkistettava manuaalisesti, ovatko neutraalit tekstit jo englanniksi. |
Lisää englannin kielen tuki. |
Säännöt, jotka on vahvistettava virallisesti
Kehittäjien on vahvistettava nämä säännöt manuaalisesti, koska automaattinen varmennus ei ole mahdollista.
Jos kehittäjä rikkoo jotain näistä säännöistä (joko automaattisesti varmennettuja tai näitä virallisesti vahvistettuja), vahvistus evätään. Jos jonkin säännön rikkominen huomataan vahvistuksen jälkeen, vahvistus voidaan peruuttaa.
Nimi | Kuvaus | Ratkaisu |
Päivitykset mahdollisia vain MyKNX:n kautta |
Sovelluksella ei ehkä ole omaa päivitysmekanismia. Sovelluksen päivitykset ovat saatavilla vain KNX OLTIN kautta. Tämä estää vahvistamattomien sovellusten jakelun. |
Poista mekanismi, jota käytetään sovelluksen päivittämiseen ohittamalla KNX OLT. |
SQL-yhteyksiä ETS4-tietokantaan ei ole |
Sovellukselle ei sallita suoraa pääsyä tietokantaan. |
Poista mekanismi, joka käyttää ETS4-tietokantaa suoraan. |
Sovellukset eivät saa säilyttää tietoja tiedostojärjestelmässä |
Sovelluksien ei sallita säilyttää tietoja ETS4-tietokannan ulkopuolella. Tällaista toimintaa varten projektissa on käytettävä SDK:n tarjoamaa AppDataa. |
Poista kaikki mekanismit, jotka tallentavat tietoja suoraan tiedostojärjestelmään, ja korvaa ne projektin AppDatan käytöllä. |
Sovellukset eivät saa toimia koko näytön tilassa |
Sovellus ei saa piilottaa ETS5-ikkunaa ja toimia pääsovelluksena. ETS5:n on oltava aina tunnistettavissa pääsovellukseksi. |
Poista koodi, joka antaa sovelluksen toimia pääsovelluksena. |
Sovelluksen on joko vastattava tai osoitettava varattu tila |
Jos sovellus suorittaa aikaavievää toimintoa, joka tekee ETS5:stä reagoimattoman, sovelluksen on näytettävä edistymisen ilmaisin tai varattu-ilmaisin. |
Toteuta edistymisen ilmaisin aikaavieville toiminnolle. |
Sovellus ei saa sulkeutua odottamattomasti. |
Sovelluksen on reagoitava poikkeuksiin tarjoamalla käyttäjäystävällinen virheviesti. Viestin näyttämisen jälkeen sovelluksen on jatkettava suorittamista. Yleisiä tai riittämättömiä virheviestejä ei hyväksytä eikä myöskään sovelluksen ennakoimatonta sulkeutumista käsittelemättömien poikkeusten jälkeen. |
Toteuta asianmukainen virheiden käsittely, joka näyttää käyttäjäystävällisiä viestejä joka tilanteessa. Varmista, että ennakoimaton poikkeus ei voi kaataa sovellusta. |