Programowanie witryn internetowych

Programowania można uczyć się nawet w wieku kilku, kilkunastu lat. Oswajanie z kodami to zadanie dla pedagogów. Biorąc pod uwagę tempo rozwoju usług informatycznych, być może za kilkanaście lat bez umiejętności zaprogramowania sobie samemu dostępu do różnych zasobów może być problematycznie w codziennym życiu.
W 2000 roku Microsoft jako integralną część swojego systemu operacyjnego wprowadził komponent strukturalny .NET, składający się z wielu programistycznych narzędzi. Pozwalają one na analizę, testowanie, projektowanie, programowanie, rozwój aplikacji. Podstawą platformy programistycznej .NET są: CLR, czyli tzw. środowisko uruchomieniowe języka wspólnego, oraz .NET class library (biblioteka klas /do programowania/). Biblioteka klas jest użyteczna podczas budowy serwisów webowych i aplikacji (ASP.NET, WebForms).

W ramach frameworku technologia .NET są dostępne dwa rodzaje programowania dla serwisów webowych. ASP.NET jest darmowym, open source (jak i .NET), międzyplatformowym narzędziem do tworzenia aplikacji internetowych i usług w .NET i C # (nowy język programowania po wersji C++). Jest tu między innymi Basic Studio – w pełni funkcjonalne i zintegrowane środowisko projektowe (integrated development environment) dla systemów Android, iOS i Windows oraz rozwiązań internetowych i w chmurze. ASP.NET stanowi jedną z głównych i podstawowych usług .NET. Jej tzw. peryferyjną składową jest Xamarin, który jest zestawem narzędzi i technologii do tworzenia natywnych (tj. takich, które są od podstaw pisane w języku programowania specyficznym dla danego systemu operacyjnego, platformy) aplikacji na iOS, Android i Windows – w pełni mobilnych. Poszerza on platformę .NET o komponenty do tworzenia określonych typów aplikacji. Również do programowania tzw. hybrydowego, gdzie aplikacje mogą funkcjonować w różnych środowiskach.
Protokół komunikacyjny SOAP oparty jest o XML.

Platforma deweloperska .NET służy do kreowania bardzo różnego typu aplikacji: mobilnych, internetowych oraz klasycznych czy IoT (internet rzeczy) i tak dalej, jak też gier. Do stosowania w systemach: Windows, Linux i MacOS. Poza C # dostępna jest np. dla języka Visual Basic.NET i F#.

Xamarin Test Cloud to usługa w chmurze do testowania aplikacji mobilnych w zakresie akceptacji interfejsu użytkownika. Automatyzuje testowanie aplikacji na 2000 rzeczywistych urządzeniach w chmurze. To przyśpiesza tworzenie wysokiej jakości aplikacje mobilnych. Pozwala je tworzyć i testować na wielu platformach. Umożliwia programistom szybkie i pewne tworzenie wysokiej jakości aplikacji mobilnych.
Platforma zapewnia szeroką gamę urządzeń mobilnych do testów.

Dla pracy z chmurą przeznaczona jest Application Insights (funkcja Azure Monitor). To rozszerzalna usługa zarządzania wydajnością aplikacji (APM) dla programistów i specjalistów DevOps. Podczas monitorowania aplikacji na żywo automatycznie wykrywa anomalie wydajności. Ma zaawansowane narzędzia analityczne, które pomagają diagnozować problemy i co użytkownicy faktycznie robią z aplikacją. Działa z aplikacjami na wielu różnych platformach, w tym: .NET, Node.js, Java i Python – hostowanych w chmurze lokalnej, hybrydowej czy każdej chmurze publicznej. Może monitorować i analizować dane telemetryczne z aplikacji mobilnych poprzez integrację z Visual Studio App Center.

Responsible Web Design

Stosunkową młodą technologią jest Responsive Web Design (RWD). Programiści i projektanci stron internetowych posługują się nią od 2010 roku (twórcą jest Ethan Marcotte), choć początki sięgają roku dwutysięcznego. Oczywiście zgodnie z wejściem do powszechnego użytku nowego rodzaju ekranów (typu smartfon, konsola, tablet, czytnik) należało dostosować rozdzielczość dla innej szerokości i ułatwić wyszukiwarkom prawidłowe wyświetlanie stron. Bez względu na to, na jakim urządzeniu – ekranie, czy też szerokości strona będzie otwierana i w jakiej rozdzielczości, jej wyświetlanie powinno być wygodne i czytelne dla odbiorcy, a zawartość zachowana – to podstawowe zadanie i wyzwanie podczas projektowania.

Strona przygotowana za jej pomocą przystosowuje się do danego urządzenia. Osiąga się to dzięki właściwie opracowanej kompozycji strony i rozmieszczeniu na niej poszczególnych elementów: elastycznie pracującym w layoucie zdjęciom, wideo etc. w siatce projektowej (grid), użyciu standardu CSS3 z modułem media queries. Nie chodzi tu wyłącznie o zmniejszanie – powiększanie proporcji w zależności od rodzaju ekranu (z tym mamy do czynienia przy tzw. projektowaniu Liquid/ Fluid Layout).

Przy responsywnym wyświetlaniu tak naprawdę projekt zmienia się w zależności od urządzenia. Jednak kod i adres URL pozostają te same, a mimo to strona może działać na urządzeniu mobilnym tak dobrze, jak na PC. To narzędzie programistyczne pozwala odpowiednio wyświetlić stronę w odpowiedzi na wielkość urządzenia.
Inny układ kolumn jest dla 32-calowego monitora o wysokiej rozdzielczości i 12-calowego laptopa o niższej rozdzielczości czy smartfona, Efekt dla użytkownika ma być taki sam, jeśli chodzi o odbiór strony – przy np. rozdzielczości 1680×1050 pikseli, jak i 320×480. Technika polega na “mieszaniu”: rozciągania, skalowania procentowego i dodawania – usuwania elementów w zależności od parametrów ekranu (rozdzielczości). Strona internetowa responsywna jest interaktywna – patrzy na okno użytkownika pod kątem wielkości pikseli i dostosowuje swój wygląd.

Format projektowania, o którym powyżej, obecnie jest na porządku dziennym. Wręcz jest nakazanym elementem podczas projektowania stron, gdyż na przykład wyszukiwarka Google nie toleruje stron bez tego formatu.

Responsywność mobilna

Ciekawostką jest ogólnodostępny test online, gdzie dowolny adres internetowy można sprawdzić pod kątem wyświetlania jego zawartości na urządzeniach mobilnych: narzędzie Google.

Dla informatyków dwie dekady to jak dziejowe stulecie. To czas, w którym dla większości firm stało się oczywiste, że ich strony na pewno będą oglądane na urządzeniach mobilnych. Dla przypomnienia – premiery systemu operacyjnego Android, jak i MacOS to rok 2007/ 2008.
Tak więc nie tylko zawartość “obrazkowa”, lecz również rozmaite dedykowane kanały dostępu do usług stały się w przewadze dostępne poprzez przenośne sprzęty. Dlatego też mobilna responsywność nie powinna być traktowana jako nowinka, ale jako jedno z najbardziej podstawowych narzędzi dla programisty. Można dyskutować, czy przygotowywać strony i serwisy pod wyłącznie ich odbiór na małych urządzeniach. To kwestia również przyjętej strategii marketingowej. Jednak narzędzia, jak wyżej zarysowane, pozwalają tworzyć strony, witryny uniwersalne, adaptujące się samoistnie.

Tak jak w każdym działaniu, tak i w programowaniu istnieją dwie części całości: zamierzenia i środki. Po stronie jednej są więc plany, cele, wizje, idee, strategie, pomysły, zapotrzebowanie itp., po stronie drugiej są narzędzia, platformy, języki. Jeśli te dwie części będą adekwatne do siebie, będą współgrały. I jakiej jakości “aktywa” będą po obu stronach, taka będzie całość, czyli rezultat pracy. Podjętych działań. Szybki rozwój narzędzi programistycznych niekoniecznie współgra z dobrą zawartością. Warto teraz odnieść się do aktualnego narzędzia, jakim jest Docker. Dzięki niemu można na poczekaniu zaprojektować lekką wirtualną maszynę z aplikacjami (tzw. kontener) i konfiguracją i ją wdrożyć. .NET może mieć zastosowanie do kontenera, również bez mikroserwisów, do uproszczenia dotychczasowej monolitycznej aplikacji.

Internet jest inną formą rzeczywistości. To, co w życiu codziennym należy do sfery poza prawem, tak też jest w internecie. Kasyno online na telefon jest usługą jak najbardziej mobilną, czyli dostosowującą się do dostępnych narzędzi i udogodnień technologicznych. Zapotrzebowanie na wiele usług w formie elektronicznej przez ostatnie miesiące bardzo wzrosło wobec ogólnoświatowej preferencji przeniesienia większości społecznej aktywności do internetu. Z użyciem, jak wydaje się klasycznego już, .NET Framework można również budować aplikacje mikroserwisowe.

Projektowanie usług w oparciu o User Experience (UX) stanowi jeden z podstawowych trendów, szczególnie przy budowie właśnie architektury mikroserwisów. To nowe podejście do inżynierii programistycznej. Budowa takiej aplikacji ma odpowiadać jakiejś jednej funkcji bez tworzenia całego dużego oprogramowania. Mikroserwisy mogą być łączone ze sobą w zbiory i komunikują się ze sobą przez API.
Zaś bezwarunkowy dostęp do internetu czy mobilność usług dla każdego to cele, które stawiają sobie zarządzający instytucjami.
Serwisy informują, że są w pełni legalne, jako te “wyjątkowe”. Jednak uzyskanie zezwolenia na działalność kasyna wymaga administracyjnej zgody, również jeśli odnosi się to do internetu. Bez koncesji działalność taka jest zakazana.

Z tematem mobilnej responsywności wiąże się sprawa przeniesienia aplikacji i systemów, funkcjonujących stacjonarnie, do chmury. Paręnaście lat temu, czyli jak na warunki informatyczne – dość dawno – popularny obecnie serwis Netflix, gdzie z powodzeniem są obecni polscy artyści, przeniósł swoją zawartość serwerów do chmury. To przykład tego, że działanie nawet na dużą skalę może odbywać się przy pełnej wirtualizacji.