[PL] Wymagania dla certyfikatu Windows 7 Logo

certifiedwindows7.jpg

Zbliża się Windows 7 i coraz więcej wiadomo na temat wymagań dotyczących testu “Certified for Windows 7 Logo”. Zdefinionanych zostało 9 wymagań technicznych i 3 reguły (policy), które po krótce opisuję poniżej:

Reguły:

1. Oprogramowanie zgodne z zasadami AntiSpyware Coalition . Malware i Spyware to zmora naszej współczesności. Żadne oprogramowanie uznane za ten typ aplikacji nie otrzyma certyfikatu oraz logo.

Najprostszą definicję spy/malware jaką mogę podać to oprogramowanie, które bez zgody, potwierdzenia i świadomości użytkownika koliduje z kontrolą użytkownika nad:
* doświadczeniami z użytkowania środowiska na którym pracuje.
* prywatnością oraz bezpieczeństwem pracy w środowisku
* wykorzystaniem systemowych zasobów włączając zainstalowane oprogramowanie oraz dane. Więcej szczegółów ukrytych jest pod odnośnikiem.

2. Oprogramowanie nie zmienia zasobów chronionych przez WRP ( Windows Resource Protection ). Pod linkiem jest kompletna lista zasobów chronionych tym mechanizmem. Jeśli potrzebujecie zmodyfikować zasoby chronione, istnieją do tego wspierane mechanizmy, więcej szczegółów tutaj.

3. Aplikacja musi być wysokiej jakości, co głównie można rozumieć przez to, iż jest stabilna. Wszelkie błędy (wiadomo, że i tak może być) nie mogą być ukrywane i muszą być poprawnie obsługiwane (wyjątki, etc obsługują Windows Error Reporting (WER). Niektóre aplikacje ze względu na bezpieczeństwo danych czy innych informacji nie mogą wykorzystywać WER, taki scenariusz jest też przewidziany, ale na ten moment nie mam więcej szczegółów. Więcej na temat WER tutaj.

Wymagania techniczne:

1. Czysta, odwracalna metoda instalacji. Podczas instalacji aplikacja nie powinna wymagać restartu, zawsze powinna dawać możliwość restartu w poźniejszym czasie. Instalacja nie powinna być zależna tylko od krótkich nazw plików (8.3 SFN). To tylko przykłady, więcej informacji tutaj.

2. Instalacja do poprawnych folderów: Binaria do %ProgramFiles%, Dane aplikacji czy użytkownika nie powinny być tam przetrzymywane. Dane współdzielone przez użytkowników aplikacji powinny być umieszczone w %ProgramData%. Aplikacje specyficzne tylko dla danego użytkownika powinny być przechowywane w %UserProfile\AppData. Aplikacja nie powinna bezpośrednio zapisywać nic w folderze Windows. Szczegółów jest więcej, ale mam nadzieję, że koncepcja jest jasna.

3. Pliki wykonywalne i sterowniki powinny być cyfrowo podpisane. Pomocne w tym są programy WHQL oraz DRS. Więcej szczegółów tutaj.

4. Aplikacja musi wspierać 64bitowe środowisko Windows.

5. Oprogramowanie nie powinno blokować instalacji i działania aplikacji tylko przez sprawdzanie numeru wersji. W skrócie:

if (WinVersion != WinVersionExpected) exit(0);

w kodzie programu eliminuje szansę sukcesu w teście.

6. Aplikacja powinna być zgodna z praktykami UAC (UAC Guidelines). Więcej informacji tutaj.

7. Aplikacja powinna być “świadoma” procedury restartowej. Gdy Windows się zamyka lub restartuje do aplikacji jest wysyłany odpowiedni komunikat WM_* (WM_QUERYENDSESSION, WM_ENDSESSION). Aplikacja powinna poprawnie zareagować na ten komunikat. Powinna bezpiecznie się wyłączyć, zabezpieczyć krytyczne dla sesji dane użytkownika i pozwolić (a nie blokować) systemowi się wyłączyć. Jeśli macie swoje powody aby to zdarzenie blokować, jedyne wspierane rozwiązanie to rejestracja funkcji via ShutdownBlockReasonCreate().

8. Oprogramowanie nie wgrywa sterowników oraz serwisów systemowych gdy system jest w trybie Safe Mode. Ten tryb służy do analizy poprawnego działania systemu z wgranym krytycznym minimum systemowych aplikacji. Dodatkowe sterowniki i serwisy zaburzają tę ideę z definicji i takie, które to robią nie przejdą testu.

9. Oprogramowanie powinno wspierać prace w wieloużytkownikowym(wielosesyjnym) środowisku. Więcej informacji tutaj

-
Jak widać wymagań i reguł jest niewiele. O wiele mniej niż w przypadku Windows Vista co powinno znacząco ułatwić wam zdanie testu. Jak widać to co jest w teście jest krytyczne z punktu widzenia aplikacji i nie wiem jak wy, ja to czuję nawet jako użytkownik. Z tego testu od razu widać bezpośrednią wartość dla użytkownika końcowego, natomiast o tych benefitach czyli odpowiedzi na pytanie dlaczego powinienem wybrać aplikację z Logo “Certified for Windows” napiszę osobny artykuł.

Te wymagania nie są jeszcze finalne, informacje bazowałem na podstawie toolkitu w wersji alpha. Można się zatem spodziewać zmian, osobiście myślę, że kosmetycznych i raczej w obszarze precyzyjnego dodefiniowania powyższych zasad niż ich zmieniana.

Poza tymi regułami oraz wymaganiami technicznymi wspomnę jeszcze o 4 najlepszych praktykach projektowania aplikacji pod Windows 7. Nie są one jeszcze objęte w wymaganiach. Przynajmniej w tej wersji dokumentu, którym dysponuje, natomiast są ważne i ich uwzględnienie teraz może wam ułatwić życie w niedalekiej przyszłości:

1) Default Programs & File Association.
2) High DPI awareness
3) Unicode support.
4) Security Considerations.

Technorati Tagi: Polish posts,coding,Windows 7