Witam po krótkiej przerwie! Na naszej liście rzeczy, które najbardziej psują Internet wkraczamy właśnie do pierwszej dziesiątki. A tutaj, jak na dwunastym, wymysł Microsoftu. Oj, jeszcze nieraz ugościmy tutaj producenta jedynego słusznego oprogramowania
Tym razem przyglądnijmy się problematyczności dwóch dość mało związanych ze sobą technologii, jednak stwarzających podobne problemy. ActiveX to “rodzaj komponentów i kontrolek”, jak pisze Wikipedia. Ponadto “z technologii tej korzystają kontrolki ActiveX, służące do uruchamiania aplikacji osadzonych w interfejsie użytkownika, na przykład na formie na stronie WWW (jako aplet)”. OK, wszystko jasne. Coś a la Java. A ASP.NET? Jest to technologia służąca do tworzenia dynamicznych stron internetowych, wykonywanych po stronie serwera. Jak na przykład PHP.
Co z nimi “nie tak”?
Zasada kompatybilności Wielkiego Billa: Twórzmy standardy i technologie, które są kompatybilne wyłącznie z innymi tworzonymi przez nas standardami i technologiami. Niech inni się dostosują.
Czyli co? Sytuacja analogiczna do kodowania win-1250. Póki wykorzystujesz activeX do tworzenia programów pod Windows to wszystko jest ok. Problem zaczyna się, gdy umieszczasz jakiś aplet w Internecie. ActiveX jest natywnie obsługiwany wyłącznie przez MSIE. Do Firefoksa podobno istnieje rozszerzenie, które pozwala na obsługę technologii, jednak po co sobie syfić przeglądarkę? O ile wiem, pod Operą wygląda to jeszcze mniej różowo. Jak masz egzotyczną przeglądarkę, to w zasadzie nie ma szans na zobaczenie zawartości.
Drugi problem to bezpieczeństwo. Sprawa jest tu naprawdę dramatyczna. Ujmę to tak: Z jednej strony activeX jest technologią, która działa poprawnie tylko z IE. Z drugiej – w IE bałbym się uruchomić jakiekolwiek aplety. Swoją złą reputację w sprawach bezpieczeństwa przeglądarka Microsoftu zyskała głównie przez problemy z tą technologią. Zrozumiałym jest więc, że wiele osób wyłącza jej obsługę. Tak więc kto będzie korzystał z apletów na naszej stronie? Nikt? No pewnie nikt…
Z ASP.NET sprawa wygląda bardzo podobnie. Przynajmniej pod względem standardów, to znaczy, że strony są często wybitnie niezgodne z zaleceniami w3c i ich wyświetlenie bywa niemożliwe dla innych przeglądarek niż MSIE. Tak z czysto ekonomicznego i statystycznego punktu widzenia tracimy tym sposobem co trzeciego klienta.
Szczególna zasada wygody użytkowania (dla stron internetowych): Znacznie prościej, szybciej i wygodniej jest zmienić adres przeglądanej strony, niż zastosować się do zaleceń autora, zmieniając rozdzielczość, przeglądarkę i system.
Co zrobić, żeby było “tak”?
Są dwie rady:
- Wywal niepotrzebnie używane technologie lub zamień je na prostsze. Jesteś pewień, że nie poradzisz sobie bez activeX? A może wystarczy Javascript? Może da się to zrobić prościej? Im prostsza technologia, jakiej użyjesz, tym lepiej dla ciebie, a już na pewno dla użytkowników.
- Zacznij stosować standardy. Albo przynajmniej technologie powszechnie uznawane za standardy, czyli takie, które są powszechnie dostępne i kompatybilne ze wszystkimi wiodącymi systemami i przeglądarkami. Zamień activeX na Javę. ASP.NET zastąp PHP. To oczywiście tylko sugestie. Nie zawsze się da, nie zawsze trzeba (patrz punkt 1.), ale niech te obrzydliwe aX’y i .NETy (we wszelkiej postaci) znikną wreszcie z Internetu!
OK, trochę się zagalopowałem. Oczywiście, są sytuacje, kiedy używanie activeX jest uzasadnione (natomiast nie znam analogicznego przypadku dla ASP.NET). Wiąże się to z tym, że aX może bardzo mocno ingerować w system. A czasami jest to porządane zarówno przez twórcę apletu, jak i użytkownika, na przykład gdy mamy do czynienia ze skanerem antywirusowym on-line. Jednak tu nie ma problemu – i tak musisz mieć Windowsa, żeby móc go przeskanować, więc użytkownicy Linuksa nie są pokrzywdzeni.

“Jednak tu nie ma problemu – i tak musisz mieć Windowsa, żeby móc go przeskanować” powinno być
“Jednak tu nie ma problemu – i tak musisz mieć Windowsa, żeby móc mieć wirusa”
pepis, na LIn tez mozesz miec wirusa (miec w sensie miec zainfekowany plik) – co innego ze niejednokrotnie po odpaleniu nawet przez wine, winex czy cedega wirus nie zadziala.
To był bardziej żart niż stwierdzenie.
http://housecall.trendmicro.com/ – działa na linuksie.. Wiadać i bez ActiveX się da! ActiveX powinien umrzeć raz na zawszę!
Co do ASP to nie zdarzyło mi się pod FX że strona w tym źle wyglądała. np.: http://www.tridentmicro.com/index.asp
http://www.tridentmicro.com/index.asp – sprawdź sobie validatorem :] – mi pokazało: ‘Failed validation, 26 Errors’ – hehe
Co wy macie do ASP.NET ? To, że są kontrolki to tylko ułatwienie. Jeżeli komuś się nie podoba to może używać Response.Write które działa identycznie jak echo z php. Poza tym nie we wszystkich zastosowaniach można łatwo zastąpić asp.net poprzez php. ASP.NET ma potężną bibliotekę zwaną .NET Frameworkiem, zawiera implementacje większości algorytmów potrzebnych do rozwiązania typowych problemów typu komunikacja sieciowa, obsługa baz danych, grafika itp. Wszystko w bezpiecznej, wygodnej formie. Nie taki burdel jak w php. Może to brzmi jak reklama ale asp.net naprawdę jest lepsze. No i oczywiście jest możliwość współdzielenia kodu z innymi modułami aplikacji, np. panel administracyjny może być dostępny również jako zwykła aplikacja dla windows albo pocket pc. W sumie jedyna wada asp.net’a to to, że porządnie obsługuje to tylko serwer IIS, jest w prawdzie mono które można podpiąć pod apache ale ta konfiguracja ponoć nie działa najlepiej. To by było na tyle
Sam tworze strone w ASP.NET i uważam, że budowanie witryny jest o wiele łatwiejsze niż PHP. Tak jak powiedział Zomiak, PHP to burdel. W asp sie pisze dość przyjemnie, no i MS dał porządne narzędzie Visual Studio Web Developer 2008, w dodatku za free:) Na początku miałem problemy z dogadaniem sie z Mozillą, ale w końcu sie zrozumieliśmy i wszystko działa. Szkoda tylko ze jest mało serwerów które trawią ASP