Strona główna » Wpisy » Wykorzystywane technologie
angle

Wykorzystywane technologie

Prace programistyczne – wykorzystywane technologie: 

  1. .NET – otwartoźródłowa, wieloplatformowa platforma programistyczna stworzona przez firmę Microsoft. Umożliwia tworzenie nowoczesnych aplikacji na różne systemy operacyjne, takie jak Windows, Linux, macOS, a także na urządzenia mobilne (Android, iOS), systemy wbudowane i chmurę. 

Główne cechy .NET: 

  • Wieloplatformowość – aplikacje .NET mogą działać na różnych systemach operacyjnych. 
  • Wsparcie wielu języków – przede wszystkim C#, ale także F# i Visual Basic. 
  • Uniwersalność – umożliwia tworzenie aplikacji webowych, desktopowych, mobilnych, gier, aplikacji chmurowych, mikrousług, API i wielu innych. 
  • Nowoczesne narzędzia – integracja z Visual Studio, wsparcie dla CI/CD, debugowania, testów jednostkowych itp. 
  • Wydajność i bezpieczeństwo – platforma zaprojektowana z myślą o wysokiej wydajności i bezpieczeństwie aplikacji. 
  • Rozbudowany ekosystem – bogaty zbiór bibliotek i narzędzi, wsparcie społeczności oraz łatwy dostęp do NuGet – menedżera pakietów .NET. 

Platforma .NET jest szeroko stosowana w środowisku biznesowym, korporacyjnym, jak i w projektach open-source. Dzięki regularnym aktualizacjom i wsparciu Microsoftu, .NET pozostaje jedną z najpopularniejszych technologii do tworzenia aplikacji we współczesnym świecie IT. 

  1. Blazor – to nowoczesny framework webowy wchodzący w skład platformy .NET, stworzony przez Microsoft. Umożliwia tworzenie interaktywnych i responsywnych aplikacji internetowych z użyciem C#, HTML i Razor – bez konieczności pisania kodu w JavaScript. Dzięki Blazorowi programiści .NET mogą tworzyć zarówno logikę aplikacji, jak i jej interfejs użytkownika w tym samym języku – C#, co zwiększa spójność kodu i ułatwia pracę zespołom developerskim 

Blazor występuje w kilku wariantach: 

  • Blazor Server – logika działa po stronie serwera, a interfejs użytkownika aktualizowany jest przez SignalR. 
  • Blazor WebAssembly – aplikacja działa bezpośrednio w przeglądarce, dzięki technologii WebAssembly. 
  • Blazor Hybrid – umożliwia tworzenie aplikacji desktopowych i mobilnych z użyciem Blazora i .NET MAUI. 

To nowoczesne podejście do tworzenia aplikacji webowych, pozwalające wykorzystać wiedzę z .NET i C# również we frontendzie. 

  1. THREE.js – wysokopoziomowa biblioteka JavaScript, która umożliwia tworzenie zaawansowanej grafiki 3D w przeglądarce internetowej przy użyciu WebGL – bez konieczności znajomości niskopoziomowego API WebGL. Biblioteka została stworzona z myślą o uproszczeniu procesu budowania scen 3D, modeli, animacji i efektów specjalnych, oferując przy tym duże możliwości i elastyczność. 

Główne możliwości THREE.js: 

  • Tworzenie scen 3D z obiektami, światłami, kamerami i materiałami 
  • Obsługa modeli 3D (np. w formatach GLTF, OBJ, FBX) 
  • Animacja obiektów i kamer 
  • Obsługa świateł i cieni (ambient, directional, point, spotlight) 
  • Wsparcie dla efektów specjalnych, takich jak mgła, refleksy, cząsteczki itp. 
  • Obsługa tekstur i mapowania materiałów (bump map, normal map, environment map) 
  • Interaktywność – możliwość reagowania na zdarzenia użytkownika (np. kliknięcia, obrót obiektów) 
  • Wsparcie dla VR (Virtual Reality) i AR (Augmented Reality) z wykorzystaniem WebXR 

Zalety wykorzystania THREE.js: 

  • Duża i aktywna społeczność  
  • Rozbudowana dokumentacja i wiele przykładów 
  • Open-source (na licencji MIT) 

Biblioteka THREE.js wykorzystywana jest w celach wizualizacyjnych, systemów różnego zastosowania, gdzie wspomniane wizualizacje budowane są w technologii 3D. Wspomniana biblioteka zapewnia możliwość wizualizacji różnego typu takie jak rekonstrukcje tomograficzne czy lokalizacja obiektów w czasie rzeczywistym. 

  1. Radzen Blazor – zaawansowany zestaw komponentów UI przeznaczony do tworzenia aplikacji webowych w technologii Blazor (zarówno Blazor Server, jak i Blazor WebAssembly). Projekt rozwijany jest przez firmę Radzen, która oferuje również wizualne narzędzie RAD (Rapid Application Development) – Radzen IDE. 

Radzen Blazor Components są dostępne jako open-source i mogą być używane samodzielnie w dowolnym projekcie Blazor, bez konieczności korzystania z Radzen IDE. 

Główne cechy Radzen Blazor: 

  • Bogaty zestaw komponentów: zawiera wele gotowych komponentów takich jak np.: datagrid, formularze oraz walidacja, dialogi/panele/zakładki oraz wykresy 
  • Responsywność i styl: komponenty są responsywne i stylizowalne, dzięki czemu można je łatwo dopasować do własnych potrzeb lub zintegrować z istniejącym motywem 
  • Integracja z .NET i EntityFramework – komponenty łatwo współpracują z backendem .NET i bazami danych, co przyspiesza tworzenie aplikacji biznesowych 
  • Wsparcie dla zdarzeń oraz danych: obsługuje dynamiczne źródła danych, zdarzenia użytkownika, walidację i wiązanie danych (data binding), co pozwala na tworzenie interaktywnych aplikacji bez dużej ilości kodu 
  1. SignalR – biblioteka opracowana przez Microsoft w ramach platformy ASP.NET, która umożliwia komunikację w czasie rzeczywistym pomiędzy serwerem a klientem (np. przeglądarką internetową, aplikacją mobilną lub desktopową). Pozwala serwerowi aktywnie wysyłać dane do klienta bez potrzeby odpytywania go (tzw. push), co znacznie poprawia responsywność i interaktywność aplikacji. 
    Główne cechy SignalR: 
  • Dwukierunkowa komunikacja – zarówno klient, jak i serwer mogą inicjować komunikaty w czasie rzeczywistym 
  • Automatyczny wybór transportu: SignalR sam wybiera najlepszą dostępną technologię transmisji z dostępnych: 
  • WebSockets (preferowana) 
  • Server-Sent Events 
  • Long Pooling 
  • Obsługa wielu klientów: możliwość wysyłania wiadomości do wszystkich, wybranych grup lub konkretnych użytkowników 

SignalR wykorzystywany jest w systemach, gdzie niezbędna jest komunikacja w czasie rzeczywistym pomiędzy klientem oraz serwerem, przy zastosowaniu wzorca PubSub (Publish/Subscribe). Przykładem takiego użycia może być informowanie klientów o zmianie położenia obiektu w systemach lokalizacyjnych 

  1. Kafka – rozproszona platforma do przetwarzania strumieniowego danych (event streaming platform), stworzona przez LinkedIn, a obecnie rozwijana jako projekt open-source w ramach Fundacji Apache. Kafka została zaprojektowana do szybkiego, niezawodnego i skalowalnego przetwarzania dużych ilości danych w czasie rzeczywistym, zarówno w systemach o wysokim obciążeniu, jak i w złożonych środowiskach mikroserwisowych. 

Główne cechy: 

  • Wysoka przepustowość – Kafka może obsługiwać miliony komunikatów na sekundę 
  • Niezawodność – komunikaty są trwałe i mogą być przechowywane na dysku przez określony czas 
  • Skalowalność – łatwe skalowanie w poziomie przez dodawanie brokerów 
  • Odporność na błędy – zaprojektowana do pracy w klastrach z replikacją danych 

Przykładowe zastosowanie: 

  • Integracja mikroserwisów (jako zamiennik REST do komunikacji asynchronicznej) 
  • Analiza danych w czasie rzeczywistym (real-time analytics)  
  • Przesyłanie logów systemowych i aplikacyjnych 

Platforma Kafka wykorzystywana jest jako podstawowy instrument komunikacji pomiędzy wieloma współpracującymi między sobą serwisami. Zapewnia ona wysoką przepustowość nawet dla dużych struktur danych takich jak np. dane tomograficzne lub rekonstrukcje. Wykorzystywana jest również w systemach IoT, gdzie zapewnia możliwość m.in. kolejkowania oraz buforowania zdarzeń. 

Użycie brokera wiadomości Kafka przy rozwiązaniu prac nad inteligentnym budynkiem 

  1. Redis – (skrót od Remote Dictionary Server) to ultraszybka baza danych typu klucz–wartość, działająca głównie w pamięci RAM (in-memory), co zapewnia bardzo niskie opóźnienia i wysoką przepustowość operacji odczytu i zapisu. Redis jest projektem open source, napisanym w języku C, i jest szeroko wykorzystywany jako cache, kolejka komunikatów, licznik, sesja użytkownika, a nawet jako główna baza danych w niektórych przypadkach. 

Główne cechy Redis’a: 

  • Przechowywanie w pamięci RAM: dane są przechowywane w pamięci operacyjnej, ale mogą być okresowo zapisywane na dysk (tzw. persistence) 
  • Obsługa TTL (Time To Live) – możliwość automatycznego wygaszenia danych po określonym czasie 
  • Replikacja i klasteryzacja – może działać w trybie master-slave oraz w trybie klastrowym, umożliwiając skalowanie i wysoką dostępność 
  • Pub/Sub (publish/subscribe) – mechanizm komunikacji między procesami, idealny do prostych systemów komunikatów lub notyfikacji 

Przykładowe zastosowanie: 

  • Cache – buforowanie zapytań do bazy danych, wyników obliczeń, danych sesji itp 
  • Zarządzanie sesją – szybki dostęp do danych użytkownika w aplikacjach webowych 
  • Liczniki i statystyki – błyskawiczne zliczanie, np. odwiedzin, kliknięć, logowań 

Powodem wykorzystania produktu Redis jest konieczność przechowywania dużych ilości danych, zapisywanych oraz odczytywanych z bardzo dużą częstotliwością, gdzie standardowe rozwiązania bazodanowe okazały się niewystarczające. Dane te wykorzystywane są do wizualizacji położenia obiektów w czasie rzeczywistym.