Tworzenie stron www
Marketing
Pozycjonowanie
PR
Inne
O nas
Sklep
Blog Kontakt

C#

C# to wszechstronny język programowania wykorzystywany w tworzeniu aplikacji na platformę Windows, aplikacji webowych oraz gier. Jego silne właściwości sprawiają, że jest idealny do tworzenia wydajnych i skalowalnych rozwiązań.
Aplikacje i serwisy w C# i ASP.NET Core – architektura, wdrożenie, SEO, utrzymanie

Serwisy i aplikacje webowe w C#, które rosną razem z firmą

C# i platforma .NET to wybór dla projektów, w których strona internetowa jest czymś więcej niż wizytówką: portalem dla klientów, panelem dla partnerów handlowych, systemem zamówień zintegrowanym z ERP albo serwisem obsługującym duży ruch. Silne typowanie, dojrzałe narzędzia i przewidywalny cykl wydawniczy sprawiają, że taki kod da się bezpiecznie rozwijać przez lata. Poniżej kompendium o języku, a w kolejnych sekcjach – jak budujemy aplikacje webowe w C# w SEOSEM24.

Projektujemy i programujemy aplikacje w ASP.NET Core: serwisy renderowane po stronie serwera, interfejsy API dla aplikacji mobilnych i frontendów w JavaScripcie lub TypeScripcie, panele administracyjne i integracje z systemami firmowymi, na przykład Microsoft Dynamics 365. Dbamy o to, żeby aplikacja była od początku przygotowana do pozycjonowania, a po starcie mogła być regularnie aktualizowana do wspieranych wersji .NET. Porównanie z innymi technologiami znajdziesz w przeglądzie języków programowania.

0latawsparcia dla wersji .NET oznaczonych jako LTS – na nich opieramy projekty produkcyjne
0mies.dzielą kolejne główne wydania .NET, które ukazują się co roku w listopadzie
0systemy operacyjne, na których działa współczesny .NET: Windows, Linux i macOS – serwer z Windows nie jest już konieczny
0etapów naszego procesu: od warsztatu i modelu domeny po wdrożenie i plan aktualizacji

Tworzenie stron C#

Język programowania C# to jedno z najważniejszych osiągnięć współczesnej informatyki, które odegrało kluczową rolę w rozwoju aplikacji desktopowych, internetowych i mobilnych. Jego historia sięga końca lat 90., kiedy Microsoft rozpoczął prace nad nową platformą o nazwie .NET Framework. Głównym celem było stworzenie rozwiązania, które pozwoliłoby programistom łatwo tworzyć aplikacje o wysokiej wydajności i niezawodności.

C# został opracowany przez zespół pod kierownictwem Andersa Hejlsberga, znanego z pracy nad językami Turbo Pascal i Delphi. Po raz pierwszy został zaprezentowany w 2000 roku jako część .NET Framework. Microsoft stworzył C# jako odpowiedź na rosnącą popularność języka Java, chcąc dostarczyć programistom narzędzie, które będzie równie wszechstronne, ale lepiej zintegrowane z ich ekosystemem.

Od momentu premiery C# zyskał ogromną popularność, a jego rozwój trwa do dziś. Dzięki ciągłym aktualizacjom i nowym funkcjom język stał się jednym z filarów tworzenia nowoczesnych aplikacji, zarówno w środowisku Windows, jak i w ramach innych platform.

Czym jest C#?

C# (czytane jako „C-Sharp”) to obiektowy język programowania, który łączy cechy wysokopoziomowych języków takich jak Java i Python z mocą języków niskopoziomowych, takich jak C++. C# charakteryzuje się prostotą, nowoczesnością oraz wszechstronnością, co czyni go idealnym wyborem dla szerokiego zakresu projektów programistycznych.

Język ten został zaprojektowany z myślą o łatwości nauki, dzięki czemu jest przyjazny zarówno dla początkujących, jak i doświadczonych programistów. C# oferuje bogaty zestaw bibliotek i narzędzi, które pozwalają na szybkie tworzenie aplikacji desktopowych, serwerowych, internetowych, mobilnych, a nawet gier.

Jego kluczowe cechy to:

  • Obiektowość
    Wszystko w C# opiera się na klasach i obiektach, co ułatwia organizację kodu i jego ponowne wykorzystanie.
  • Bezpieczeństwo typów
    Język ten redukuje ryzyko błędów poprzez ścisłą kontrolę typów danych.
  • Wieloplatformowość
    Dzięki projektowi .NET Core i później .NET 6, aplikacje napisane w C# mogą działać na różnych systemach operacyjnych, w tym Windows, macOS i Linux.
  • Wsparcie dla nowoczesnych technologii
    C# jest doskonałym wyborem do pracy z chmurą, sztuczną inteligencją, aplikacjami mobilnymi i wieloma innymi nowoczesnymi technologiami.

Składnia C# – prostota i czytelność

Jednym z powodów, dla których C# jest tak popularny wśród programistów, jest jego składnia. Jest ona zbliżona do innych języków, takich jak C++, Java czy Python, co ułatwia naukę osobom mającym wcześniejsze doświadczenie w programowaniu. Składnia C# jest zaprojektowana z myślą o czytelności i minimalizowaniu błędów, co sprawia, że język ten jest niezwykle przyjazny dla programistów na każdym poziomie zaawansowania.

Kluczowe elementy składni C#

  • Struktura programu
    Każdy program w C# składa się z co najmniej jednej klasy, a punktem wejścia jest metoda Main(). Dzięki temu programy są dobrze zorganizowane i łatwe do zarządzania.
  • Deklaracja zmiennych
    C# jest językiem silnie typowanym, co oznacza, że każda zmienna musi mieć zdefiniowany typ. Na przykład int, string, czy bool. Typowanie pozwala uniknąć błędów wynikających z nieoczekiwanych operacji na danych.
  • Instrukcje warunkowe i pętle
    C# obsługuje standardowe instrukcje sterujące, takie jak if, else, switch, oraz pętle for, while, i foreach, które pomagają w tworzeniu logicznych i przejrzystych algorytmów.
  • Obiektowość
    Obiektowość jest sercem C#. Klasy, obiekty, dziedziczenie, polimorfizm i enkapsulacja pozwalają na modelowanie rzeczywistych problemów w sposób czytelny i zrozumiały.
  • Bezpieczeństwo i zarządzanie pamięcią
    C# oferuje automatyczne zarządzanie pamięcią za pomocą mechanizmu garbage collection. Programista nie musi martwić się o ręczne zwalnianie zasobów, co zmniejsza ryzyko błędów, takich jak wycieki pamięci.
  • Metody i funkcje
    C# pozwala na definiowanie funkcji (metod) z precyzyjnie określonymi parametrami i typem zwracanych danych. Dzięki temu kod jest bardziej przewidywalny i czytelny.
  • Nowoczesne funkcjonalności
    Nowoczesne wersje języka wprowadziły wiele funkcji, takich jak wyrażenia lambda, programowanie asynchroniczne (async/await) i pattern matching, które pozwalają na jeszcze bardziej eleganckie i wydajne rozwiązania.

Czytelność i przejrzystość kodu

Składnia C# została zaprojektowana z myślą o maksymalnej czytelności. Użycie nawiasów klamrowych do oznaczania bloków kodu, jasne reguły nazewnictwa i intuicyjne konstrukcje sprawiają, że kod w C# jest łatwy do zrozumienia i utrzymania. To ważne zwłaszcza w przypadku dużych projektów, gdzie współpracuje wiele osób.

Wsparcie dla nowoczesnych stylów programowania

C# obsługuje wiele paradygmatów programowania, w tym:

  • Programowanie obiektowe
    Podstawowa filozofia C#, wspierająca organizację kodu w klasy i obiekty.
  • Programowanie funkcyjne
    Dzięki wyrażeniom lambda i LINQ (Language Integrated Query), C# pozwala na pisanie eleganckiego i zwięzłego kodu.
  • Programowanie reaktywne
    Dzięki bibliotekom takim jak Reactive Extensions (Rx), C# umożliwia łatwe zarządzanie zdarzeniami i asynchronicznością.

Powiązania C# z marketingiem i e-commerce

W dzisiejszym świecie biznesu, technologia jest kluczowym elementem sukcesu każdej strategii marketingowej i działalności e-commerce. Język C# odgrywa w tym ważną rolę, dzięki swojej wszechstronności i zdolności do tworzenia zaawansowanych rozwiązań technologicznych.

Tworzenie aplikacji e-commerce
C# znajduje szerokie zastosowanie w budowie aplikacji e-commerce, które wymagają stabilności, bezpieczeństwa i skalowalności. Platformy takie jak nopCommerce czy Orchard Core zostały stworzone przy użyciu C#, co świadczy o jego przydatności w tworzeniu zaawansowanych sklepów internetowych.

Automatyzacja marketingu
Dzięki możliwości integracji z platformami analitycznymi, bazami danych i narzędziami do automatyzacji marketingu, C# pozwala na tworzenie zaawansowanych systemów, które ułatwiają zarządzanie kampaniami marketingowymi. Przykładem mogą być systemy CRM, które wspierają analizę danych klientów i personalizację ofert.

Aplikacje analityczne
W marketingu kluczową rolę odgrywa analiza danych. C# umożliwia programistom tworzenie aplikacji analitycznych, które mogą gromadzić, przetwarzać i wizualizować dane. Dzięki temu marketerzy mogą podejmować bardziej trafne decyzje oparte na twardych danych.

Integracja z platformami chmurowymi
Coraz więcej firm korzysta z rozwiązań chmurowych do przechowywania danych i zarządzania aplikacjami. C# jest idealnym wyborem do tworzenia takich rozwiązań, dzięki wsparciu dla platform takich jak Microsoft Azure, które oferują narzędzia dla e-commerce i marketingu.

Kod C sharp

Języki podobne do c# i porównanie

C# ma wiele wspólnego z innymi popularnymi językami programowania, co czyni go łatwiejszym do nauki dla osób mających doświadczenie w innych językach. Poniżej przedstawiamy kilka języków podobnych do C# oraz ich porównanie.

C++
C++ jest przodkiem C#, ale te języki różnią się znacząco pod względem filozofii. C++ oferuje większą kontrolę nad sprzętem, co jest kluczowe w programowaniu niskopoziomowym, jednak jest bardziej skomplikowany i mniej bezpieczny. C# z kolei kładzie nacisk na prostotę i bezpieczeństwo kosztem pełnej kontroli nad pamięcią.

Java
Java i C# mają podobną składnię i są używane w zbliżonych obszarach. Oba języki są obiektowe i wieloplatformowe, jednak C# często uznawany jest za bardziej nowoczesny i zintegrowany z narzędziami Microsoftu. Z kolei Java pozostaje popularnym wyborem w środowiskach niezależnych od Microsoftu.

Python
Python różni się od C# prostotą składni i wszechstronnością w zakresie zastosowań, takich jak analiza danych czy uczenie maszynowe. Jednak C# oferuje lepszą wydajność i bardziej zaawansowane narzędzia do tworzenia dużych aplikacji korporacyjnych.

JavaScript
JavaScript to język skupiony na przeglądarkach internetowych, podczas gdy C# znajduje zastosowanie głównie w backendzie. Mimo to obydwa języki mogą współpracować w aplikacjach webowych, na przykład przy użyciu frameworka Blazor, który pozwala pisać aplikacje frontendu w C#.

Przyszłość języka C#

C# od momentu swojego powstania stale się rozwija, a jego przyszłość wydaje się być obiecująca dzięki dynamicznemu wsparciu społeczności i Microsoftu. W świecie technologii, gdzie zmiany następują szybko, C# pozostaje jednym z najważniejszych języków programowania. Oto, co można przewidywać na temat przyszłości tego języka.

Dalszy rozwój ekosystemu .net

Jednym z kluczowych filarów przyszłości C# jest rozwój platformy .NET, która od wersji .NET 5 zjednoczyła różne wersje (Framework, Core, Xamarin) w jeden wspólny ekosystem. Dzięki temu programiści mogą używać C# do tworzenia aplikacji na różnych platformach, w tym:

  • Aplikacji webowych
    Framework ASP.NET Core.
  • Aplikacji mobilnych
    MAUI (Multi-platform App UI), będącej następcą Xamarin.
  • Aplikacji desktopowych
    Wykorzystanie Windows Forms i WPF.
  • Rozwiązań chmurowych
    Platformy takie jak Azure.

Microsoft aktywnie inwestuje w rozwój .NET, co oznacza, że C# pozostanie jego kluczowym językiem, stale zyskując nowe funkcje i możliwości.

Rosnąca rola w sztucznej inteligencji i uczeniu maszynowym

Wraz z rozwojem sztucznej inteligencji (AI) i uczenia maszynowego (ML), języki takie jak Python zdobyły popularność dzięki prostocie i dostępności bibliotek. Jednak Microsoft stawia na rozwój narzędzi umożliwiających wykorzystanie C# w tych dziedzinach. Przykładem może być ML.NET, framework do tworzenia modeli uczenia maszynowego w C#, który z czasem może stać się bardziej konkurencyjny wobec popularnych rozwiązań Pythona.

Dzięki połączeniu wysokiej wydajności i wsparcia dla nowoczesnych technologii, C# ma potencjał, by odgrywać większą rolę w AI, zwłaszcza w środowiskach korporacyjnych i projektach wymagających integracji z istniejącymi systemami opartymi na .NET.

Przyszłość C# rysuje się w jasnych barwach dzięki zaangażowaniu Microsoftu, szerokiemu zastosowaniu języka w różnych branżach oraz ciągłym innowacjom. C# ma potencjał, aby nie tylko utrzymać swoją pozycję na rynku, ale również zyskać na znaczeniu w kluczowych dziedzinach technologii, takich jak AI, IoT czy AR/VR.

Stwórz stronę internetową z SEOSEM24

Jeżeli szukasz profesjonalnych usług w zakresie tworzenia stron internetowych, SEOSEM24 to idealny wybór. Dzięki naszemu doświadczeniu i zaawansowanym technologiom, tworzymy strony, które nie tylko wyglądają atrakcyjnie, ale także są zoptymalizowane pod kątem wyników w wyszukiwarkach i wygody użytkownika.

Jeżeli chcesz stworzyć stronę internetową lub aplikację opartą na C#, SEOSEM24 pomoże Ci wykorzystać potencjał tego języka. Nasz zespół ekspertów jest gotowy, aby wdrożyć Twoje pomysły w życie, korzystając z najlepszych narzędzi!

Sprawdź nasze pozostałe usługi tworzenia stron www: https://seosem24.pl/tworzenie-stron-www

Najczęściej zadawane pytania na temat tworzenia stron w C#

Co to jest C# i do czego służy?
C# to język programowania obiektowego opracowany przez Microsoft. Jest szeroko stosowany w tworzeniu aplikacji desktopowych, gier i aplikacji webowych za pomocą platformy .NET.

Czy C# nadaje się do tworzenia stron internetowych?
Tak, C# jest doskonały do tworzenia stron internetowych, zwłaszcza dzięki wykorzystaniu frameworka ASP.NET, który umożliwia budowę dynamicznych i skalowalnych aplikacji webowych.

Co to jest ASP.NET i jak wspiera tworzenie stron C#?
ASP.NET to framework webowy oparty na C#, który upraszcza proces tworzenia aplikacji internetowych, oferując wsparcie dla MVC, Web API oraz Razor Pages, co pozwala na łatwe generowanie dynamicznych stron.

Jak C# współpracuje z frontendowymi technologiami?
Tworzenie stron C# obejmuje generowanie dynamicznego HTML, który można stylizować za pomocą CSS i wzbogacać o interaktywność za pomocą JavaScript. Blazor, narzędzie ASP.NET, umożliwia również tworzenie interaktywnych aplikacji frontendowych za pomocą C#.

Jakie bazy danych można wykorzystać z C# w tworzeniu stron?
C# obsługuje popularne bazy danych, takie jak SQL Server, MySQL, PostgreSQL i Oracle, za pomocą narzędzi, takich jak Entity Framework, który ułatwia pracę z bazami danych.

Czy C# wspiera tworzenie API?
Tak, ASP.NET Web API umożliwia tworzenie wydajnych API RESTful w C#, co pozwala na integrację aplikacji webowych z innymi systemami.

Jakie są zalety tworzenia stron C#?
Tworzenie stron C# oferuje wysoką wydajność, łatwą integrację z usługami Microsoft, takimi jak Azure, oraz narzędzia takie jak Visual Studio, które upraszczają kodowanie i debugowanie.

Jak C# wspiera bezpieczeństwo w aplikacjach webowych?
C# i ASP.NET oferują zaawansowane mechanizmy bezpieczeństwa, takie jak zarządzanie tożsamością, szyfrowanie danych, ochrona przed CSRF i XSS oraz uwierzytelnianie użytkowników przy użyciu OAuth.

Czy C# nadaje się do tworzenia dużych projektów?
Tak, C# jest idealny do dużych projektów dzięki swojej wydajności, łatwości w zarządzaniu kodem oraz wsparciu platformy .NET, która jest skalowalna i niezawodna.

Jakie znane strony zostały stworzone z użyciem C#?
Platformy takie jak Stack Overflow, Microsoft, Visual Studio Team Services i inne korzystają z C# i ASP.NET do tworzenia swoich aplikacji webowych, co świadczy o ich niezawodności w dużych projektach.

W skrócie

C# warto wybrać, gdy strona jest interfejsem do logiki biznesowej

  • Portale klientów i partnerów, systemy zamówień, konfiguratory, obieg dokumentów.
  • Firmy korzystające z usług Microsoftu: kont firmowych, SQL Server, Dynamics, Azure.
  • Projekty, które mają być rozwijane latami przez zmieniający się zespół.
  • Do prostej strony firmowej lub bloga zwykle wystarczy CMS.
Skonsultuj wybór technologii
Wybór technologii

Kiedy C# i .NET to dobry wybór dla projektu webowego, a kiedy przerost formy

Na pytanie „w czym zrobić stronę” zwykle odpowiadamy pytaniem: co ta strona ma robić za trzy lata? Jeśli ma prezentować ofertę, publikować wpisy blogowe i zbierać zapytania z formularza, tańszy w budowie i wygodniejszy dla redaktorów będzie system CMS. C# pokazuje swoją siłę wtedy, gdy część webowa jest interfejsem do logiki biznesowej: wyliczeń, statusów, uprawnień, integracji i pracy wielu użytkowników naraz. Tam, gdzie błąd w kodzie oznacza złą cenę na fakturze albo zamówienie, które nie trafiło do magazynu, silne typowanie i dojrzałe narzędzia do testów są realną wartością, a nie akademicką zaletą.

Scenariusze, w których C# sprawdza się najlepiej

  • Portale klienta i partnera B2B. Logowanie, indywidualne cenniki, historia zamówień, faktury do pobrania, zgłoszenia serwisowe. Dane pochodzą z systemu ERP lub CRM, a portal musi je pokazywać aktualne i tylko uprawnionym osobom.
  • Firmy pracujące w ekosystemie Microsoftu. Jeśli pracownicy logują się kontami Microsoft Entra ID, a dane leżą w SQL Server lub Dynamics, aplikacja w .NET integruje się z tym środowiskiem w naturalny sposób, łącznie z jednokrotnym logowaniem.
  • Systemy z rozbudowaną logiką. Konfiguratory produktów, kalkulatory ofertowe, rezerwacje zasobów, obieg dokumentów z akceptacjami. Logikę da się wydzielić do osobnej warstwy i pokryć testami niezależnie od interfejsu.
  • Interfejsy API pod dużym obciążeniem. Wbudowany serwer Kestrel i asynchroniczny model programowania pozwalają obsłużyć wiele równoczesnych zapytań przy rozsądnym zużyciu zasobów serwera.
  • Rozwój istniejących systemów .NET. Gdy firma ma już wewnętrzne aplikacje w C#, wspólny język pozwala dzielić kod, biblioteki i kompetencje między projektami.

Kiedy lepiej wybrać coś innego

Do strony firmowej, bloga czy prostego sklepu C# zwykle nie jest potrzebny. Gotowe systemy CMS dają edytor treści, tysiące rozszerzeń i wielu wykonawców na rynku, więc pisanie tych funkcji od zera nie ma ekonomicznego sensu. Często proponujemy układ mieszany: część marketingowa powstaje w CMS, a aplikacja dla zalogowanych użytkowników w ASP.NET Core, pod osobnym adresem lub w subdomenie, z jednolitym wyglądem obu części.

Koszty, o które pytają klienci

Sam .NET jest darmowy i rozwijany jako projekt open source, a aplikacje można uruchamiać na serwerach z Linuksem, więc licencja Windows Server nie jest warunkiem. Koszty licencyjne mogą się pojawić po stronie bazy danych: SQL Server w wersjach komercyjnych jest płatny, ale Entity Framework Core współpracuje też z darmowymi bazami, na przykład PostgreSQL. Przy wyborze bierzemy pod uwagę, z czego firma już korzysta, żeby nie mnożyć systemów do utrzymania.

Z praktyki: najdroższy błąd to nie wybór „gorszego” języka, tylko technologii, której firma nie będzie w stanie utrzymać. Dlatego pytamy także o to, kto będzie rozwijał aplikację za kilka lat i czy na rynku łatwo będzie znaleźć specjalistów z danej technologii.
Architektura

Z czego składa się aplikacja w ASP.NET Core: sześć elementów, które dobieramy do projektu

ASP.NET Core to zestaw narzędzi, a nie jedna gotowa konstrukcja. Ta sama platforma pozwala zbudować serwis renderowany na serwerze, interfejs API dla aplikacji mobilnej albo panel administracyjny. Oto elementy, z których składamy rozwiązanie.

01

Razor Pages i MVC

Strony generowane na serwerze w składni Razor, która łączy HTML z kodem C#. Przeglądarka i robot wyszukiwarki dostają od razu gotową treść. To nasz domyślny wybór dla części publicznych, w których liczy się widoczność i szybkość pierwszego wyświetlenia.

  • Gotowy HTML z serwera
  • Wspólne układy i komponenty widoku
  • Walidacja formularzy po obu stronach
02

Web API i Minimal APIs

Interfejsy, z których korzystają aplikacje mobilne, frontendy w JavaScripcie i systemy partnerów. Opisujemy je w standardzie OpenAPI, żeby zespół po drugiej stronie wiedział dokładnie, jakie dane wysyłać i co otrzyma w odpowiedzi.

  • Dokumentacja OpenAPI
  • Wersjonowanie interfejsów
  • Limity zapytań i uwierzytelnianie tokenami
03

Blazor

Interaktywne komponenty pisane w C#, które mogą działać na serwerze albo w przeglądarce dzięki WebAssembly. Dobrze sprawdza się w panelach i aplikacjach wewnętrznych, gdzie zespół zna C#, a nie chce utrzymywać osobnego frontendu w JavaScripcie.

  • Komponenty w C# zamiast JavaScriptu
  • Tryby renderowania do wyboru
  • Wspólne modele i walidacja
04

Entity Framework Core

Warstwa dostępu do danych, która pozwala pracować na obiektach C# zamiast ręcznie pisanych zapytań SQL. Zmiany schematu bazy zapisujemy jako migracje w repozytorium. Tam, gdzie liczy się wydajność, zachowujemy pełną kontrolę nad generowanym zapytaniem.

  • Migracje schematu w repozytorium
  • Zapytania LINQ
  • SQL Server, PostgreSQL i inne bazy
05

Tożsamość i uprawnienia

Własne konta użytkowników obsługuje ASP.NET Core Identity, a logowanie kontem firmowym lub zewnętrznym – protokół OpenID Connect, na przykład z Microsoft Entra ID. Uprawnienia opisujemy rolami i politykami, a nie warunkami rozrzuconymi po kodzie.

  • Logowanie kontem firmowym
  • Uwierzytelnianie dwuskładnikowe
  • Polityki dostępu w jednym miejscu
06

Hosting i wdrażanie

Aplikacja może działać na serwerze z Linuksem za odwrotnym proxy, na Windows z IIS, w kontenerach Docker albo w usługach chmurowych, takich jak Azure App Service. Wdrożenia automatyzujemy, żeby każda wersja przechodziła te same testy.

  • Linux, Windows, kontenery lub chmura
  • Automatyczne budowanie i testy
  • Osobne środowisko testowe
Warstwa prezentacji

Razor, Blazor, osobny frontend czy CMS: cztery drogi w projekcie .NET

Logikę biznesową i dostęp do danych piszemy w C# niezależnie od wybranej drogi. Różnica dotyczy tego, jak powstaje interfejs, który widzi użytkownik, a od tej decyzji zależą widoczność w Google, koszt rozwoju i wygoda edycji treści.

Razor Pages lub MVC

HTML generowany na serwerze

  • Najlepsza widoczność w wyszukiwarce bez dodatkowych zabiegów
  • Szybkie pierwsze wyświetlenie treści
  • Interakcje dodawane lekkim JavaScriptem
  • Bardzo dynamiczne interfejsy wymagają więcej pracy
Dobre dla części publicznych, katalogów oferty, treści i formularzy.

Blazor

Komponenty w C#, na serwerze lub w przeglądarce

  • Jeden język w logice i w interfejsie
  • Bogate komponenty interaktywne
  • Możliwość statycznego renderowania treści na serwerze
  • Wariant WebAssembly pobiera więcej danych przy pierwszym uruchomieniu
  • Mniejszy wybór gotowych komponentów niż w ekosystemie JavaScriptu
Dobre dla paneli, aplikacji wewnętrznych i narzędzi dla zalogowanych użytkowników.

API i frontend w JavaScripcie

ASP.NET Core jako zaplecze, interfejs w osobnej aplikacji

  • Swoboda wyboru biblioteki frontendowej
  • To samo API dla strony i aplikacji mobilnej
  • Niezależne wdrażanie obu warstw
  • Dwa projekty do utrzymania i synchronizacji
  • Bez renderowania po stronie serwera słabsza widoczność w Google
Dobre dla rozbudowanych aplikacji z wieloma klientami tego samego API.

CMS na platformie .NET

Gotowy system treści rozszerzany w C#

  • Panel redakcyjny bez budowania go od zera
  • Integracje i własne moduły pisane w C#
  • Przykłady to Umbraco i Orchard Core
  • Mniej gotowych motywów i rozszerzeń niż w popularnych CMS w PHP
  • Mniejszy wybór wykonawców na rynku
Dobre, gdy firma potrzebuje CMS, ale całą infrastrukturę utrzymuje w .NET. Inne systemy porównujemy na stronie o CMS.
W skrócie

W aplikacji nie ma wtyczki SEO – jest kod, który trzeba zaprojektować

  • Jedna wersja każdego adresu: małe litery i stała zasada ukośnika na końcu.
  • Przekierowania 301 oraz prawdziwe kody 404 i 410.
  • Mapa witryny generowana na bieżąco z bazy danych.
  • Tytuły, opisy i dane strukturalne edytowalne w panelu.
Zobacz pozycjonowanie
Widoczność w wyszukiwarce

SEO w aplikacji ASP.NET Core: o czym framework nie pomyśli za Ciebie

Systemy CMS mają wtyczki, które po instalacji generują mapę witryny, pozwalają ustawić tytuły i dodają adresy kanoniczne. Framework aplikacyjny takich gotowców nie ma. Adresy, przekierowania, metadane i mapę witryny trzeba zaprojektować w kodzie. To więcej pracy na starcie, ale w zamian pełna kontrola: nie ma konfliktu wtyczek, a każda reguła działa dokładnie tak, jak ją zapisano. Wymagania SEO zbieramy razem ze specyfikacją funkcjonalną, a nie po wdrożeniu.

Adresy i duplikaty

  • Wielkość liter w adresach. Routing w ASP.NET Core domyślnie nie rozróżnia wielkości liter, więc ta sama podstrona otworzy się pod adresem pisanym dużymi i małymi literami. Generujemy linki małymi literami i przekierowujemy pozostałe warianty na wersję kanoniczną.
  • Czytelne adresy zamiast identyfikatorów. Zamiast adresu z parametrem typu id=123 stosujemy przyjazne ścieżki z nazwą produktu lub usługi, które redaktor może kontrolować.
  • Filtry i sortowanie. Kombinacje parametrów potrafią wygenerować tysiące adresów o podobnej treści. Ustalamy, które warianty mają być indeksowane, a dla pozostałych ustawiamy adres kanoniczny lub dyrektywę noindex.

Przekierowania i kody odpowiedzi

Przekierowania 301 obsługujemy w warstwie pośredniej aplikacji, na podstawie mapy starych i nowych adresów, którą można rozbudowywać bez wdrażania nowej wersji. Strony błędów zwracają prawdziwe kody: 404 dla nieistniejących adresów i 410 dla treści usuniętych celowo, zamiast ładnej strony błędu z kodem 200, którą wyszukiwarka uznałaby za zwykłą podstronę.

Mapa witryny, metadane i wersje językowe

Mapę witryny generujemy z bazy danych z datami ostatniej modyfikacji, a plik robots.txt dopasowujemy do środowiska, żeby wersja testowa nigdy nie trafiła do indeksu. Tytuły, opisy i obrazy do udostępnień są polami w panelu administracyjnym z sensownymi wartościami domyślnymi. Przy wersjach językowych łączymy lokalizację treści z atrybutami hreflang, a dane strukturalne JSON-LD budujemy z tych samych modeli, z których powstaje widoczna treść.

Wydajność po stronie serwera

ASP.NET Core ma wbudowane mechanizmy, które warto włączyć świadomie: buforowanie gotowych odpowiedzi, kompresję Brotli i Gzip oraz wersjonowanie plików statycznych, dzięki któremu przeglądarka może je długo przechowywać w pamięci podręcznej. Do tego dochodzą zoptymalizowane obrazy i asynchroniczny dostęp do bazy, który nie blokuje obsługi kolejnych zapytań.

Uwaga na aplikacje w przeglądarce: jeśli część publiczna działa jako Blazor WebAssembly lub aplikacja jednostronicowa w JavaScripcie, treść powinna być wstępnie renderowana na serwerze. Wyszukiwarka potrafi wykonać skrypty, ale robi to z opóźnieniem i nie zawsze w pełni, więc gotowy HTML jest bezpieczniejszy.
Zastosowania

Pięć typów projektów webowych, w których C# pokazuje swoje mocne strony

Każdy z tych projektów ma inne ryzyka i inne elementy, na które trzeba zwrócić uwagę już na etapie planowania. Poniżej opisujemy, od czego zaczynamy i czego pilnujemy.

Portal klienta i partnera handlowego

W portalu B2B po stronie klienta zwykle pracuje kilka osób z różnymi uprawnieniami: kupiec składa zamówienia, księgowość pobiera faktury, kierownik akceptuje większe kwoty. Ceny, rabaty i limity kredytowe pochodzą z systemu ERP i muszą być pokazywane tylko tym, których dotyczą. Klienci hurtowi doceniają funkcje przyspieszające pracę, takie jak powtórzenie poprzedniego zamówienia czy import listy produktów z pliku.

Największym wyzwaniem jest pogodzenie aktualności danych z szybkością. Pytanie ERP o cenę przy każdym wyświetleniu produktu bywa zbyt wolne, a zbyt długie przechowywanie danych w pamięci grozi pokazaniem nieaktualnej ceny. Ustalamy z klientem, które dane mogą być odświeżane cyklicznie, a które muszą być sprawdzane w chwili składania zamówienia.

  • Konta firmowe z rolami użytkowników
  • Indywidualne ceny i limity z ERP
  • Szybkie zamówienia i import z pliku
  • Faktury i statusy realizacji
W skrócie

Koszt utrzymania aplikacji rozstrzyga się w pierwszych tygodniach projektu

  • Logika biznesowa oddzielona od interfejsu i dostępu do danych.
  • Kompilator pilnuje wartości pustych dzięki typom referencyjnym dopuszczającym null.
  • Testy jednostkowe, integracyjne i przeglądarkowe dla kluczowych ścieżek.
  • Logi, metryki i śledzenie żądań od pierwszego wdrożenia.
Zapytaj o przegląd kodu
Jakość kodu

Kod w C#, który da się rozwijać latami: struktura, typy i testy

Aplikacje biznesowe żyją długo, a koszt ich utrzymania i rozwoju po kilku latach zwykle przewyższa koszt budowy. O tym, czy kolejne zmiany będą tanie i bezpieczne, decydują wybory dokonane na początku: jak podzielono kod, jak ścisłe są typy i ile zachowań aplikacji opisują testy. C# i .NET dają do tego bardzo dobre narzędzia, ale trzeba z nich świadomie korzystać.

Warstwy i wstrzykiwanie zależności

Logikę biznesową oddzielamy od kontrolerów, widoków i dostępu do bazy. Reguła naliczania rabatu nie powinna znajdować się w kodzie obsługi formularza, bo wtedy nie da się jej przetestować ani użyć w API. ASP.NET Core ma wbudowany kontener wstrzykiwania zależności, dzięki któremu poszczególne elementy dostają potrzebne usługi z zewnątrz. Ułatwia to testy i podmianę implementacji, na przykład dostawcy płatności.

Typy, które wyłapują błędy przed uruchomieniem

W nowych projektach włączamy typy referencyjne dopuszczające null, dostępne od C# 8. Kompilator ostrzega wtedy o miejscach, w których wartość może być pusta, a my traktujemy te ostrzeżenia jak błędy. Dane, które nie powinny się zmieniać, opisujemy rekordami, a spójny styl kodu wymuszają analizatory i wspólny plik konfiguracji edytora. Dzięki temu część błędów nie ma szansy trafić nawet do testów.

Testy na kilku poziomach

  • Jednostkowe. Sprawdzają reguły biznesowe w izolacji, w xUnit, NUnit lub MSTest. Są szybkie, więc uruchamiamy je przy każdej zmianie.
  • Integracyjne. Uruchamiają aplikację w pamięci, z prawdziwym potokiem żądań i testową bazą danych, i sprawdzają, czy elementy dobrze ze sobą współpracują.
  • Przeglądarkowe. Dla kluczowych ścieżek, takich jak logowanie czy złożenie zamówienia, automatyzujemy działania użytkownika w prawdziwej przeglądarce, na przykład narzędziem Playwright.

Obserwowalność po wdrożeniu

Aplikacja zapisuje logi strukturalne, które da się filtrować i łączyć w ciągi zdarzeń jednego żądania. Metryki i ślady wywołań zbieramy w standardzie OpenTelemetry, obsługiwanym w .NET, więc można je wysłać do różnych narzędzi monitorujących bez zmian w kodzie. Gdy użytkownik zgłasza problem, zespół widzi, co dokładnie się wydarzyło, zamiast zgadywać.

Przeglądy kodu i zapisane decyzje

Każda zmiana trafia do głównej gałęzi dopiero po przeglądzie drugiego programisty i przejściu testów w automatycznym procesie budowania. Ważniejsze decyzje architektoniczne, na przykład wybór sposobu integracji z ERP czy biblioteki do raportów, zapisujemy w krótkich notatkach z uzasadnieniem i rozważanymi alternatywami. Po latach to często jedyne źródło odpowiedzi na pytanie, dlaczego coś zrobiono właśnie tak.

Dług techniczny pod kontrolą: w każdej iteracji rezerwujemy część czasu na porządki w kodzie i aktualizacje zależności. Drobne, regularne poprawki są znacznie tańsze niż wielka refaktoryzacja po latach zaniedbań.
Proces

Jak budujemy aplikację w C#: od modelu domeny do planu aktualizacji

Aplikacje biznesowe rzadko daje się w całości opisać przed rozpoczęciem prac. Dlatego pracujemy iteracyjnie, ale na stabilnych fundamentach: wspólnym słowniku pojęć, decyzjach architektonicznych zapisanych na początku i testach, które rosną razem z kodem.

1

Warsztat i model domeny

Rozmawiamy z osobami, które będą korzystać z systemu, i spisujemy procesy, role, dane oraz wyjątki od reguł. Ustalamy wspólny słownik: co dokładnie oznacza zamówienie, oferta, rabat czy klient aktywny. Wymagania zapisujemy jako historyjki z kryteriami akceptacji, które później stają się podstawą testów.

Zespół klienta i naszSłownik pojęć
2

Architektura i mapa integracji

Wybieramy sposób budowy interfejsu, bazę danych, metodę logowania i sposób wymiany danych z systemami firmy: przez API, pliki czy kolejki komunikatów. Określamy wymagania pozafunkcjonalne, takie jak przewidywane obciążenie, dostępność i zasady ochrony danych osobowych. Kluczowe decyzje zapisujemy z uzasadnieniem.

Decyzje architektoniczneMapa integracji
3

Programowanie w iteracjach

Pracujemy w krótkich cyklach zakończonych pokazem działającej wersji na środowisku testowym. Klient widzi postępy na bieżąco i może zmienić priorytety, zanim powstanie kod, który okazałby się niepotrzebny. Najpierw dostarczamy funkcje, które dają największą wartość albo niosą największe ryzyko techniczne.

Krótkie cyklePokaz działającej wersji
4

Testy i przeglądy kodu

Logikę biznesową pokrywamy testami jednostkowymi, a współpracę z bazą i zewnętrznymi systemami testami integracyjnymi. Każda zmiana przechodzi przegląd drugiego programisty i analizę statyczną. Regularnie sprawdzamy też, czy używane pakiety NuGet nie mają zgłoszonych podatności.

Testy jednostkowe i integracyjneKontrola zależności
5

Wdrożenie produkcyjne

Wersję produkcyjną buduje i wdraża automatyczny proces, a migracje bazy danych uruchamiamy w kontrolowany sposób. Konfigurujemy logi strukturalne, monitoring dostępności i punkty kontrolne stanu aplikacji. Przed startem przygotowujemy też plan wycofania zmian na wypadek nieprzewidzianych problemów.

Automatyczne wdrożeniaMonitoring i logi
6

Utrzymanie i plan aktualizacji

Microsoft co miesiąc publikuje aktualizacje serwisowe .NET z poprawkami bezpieczeństwa, które instalujemy po przetestowaniu. Z wyprzedzeniem planujemy też przejście na kolejną wersję LTS, żeby aplikacja nigdy nie została na platformie bez wsparcia. Rozwój nowych funkcji prowadzimy dalej w tym samym rytmie iteracji.

Comiesięczne poprawkiPrzejście na kolejne LTS

Gdzie jest najwięcej pracy przy migracji z .NET Framework

indeks, 100 = najbardziej pracochłonny obszar

Wykres poglądowy dla typowej aplikacji Web Forms przenoszonej do ASP.NET Core. Rzeczywisty rozkład zależy od architektury, jakości kodu i liczby zależności.

Cykl życia platformy

Aktualizacje .NET i migracje ze starszych systemów: jak zaplanować je z wyprzedzeniem

Jedną z zalet .NET jest przewidywalny cykl wydawniczy. Nowa główna wersja ukazuje się co roku w listopadzie. Wersje parzyste mają status LTS i trzy lata wsparcia, nieparzyste otrzymują krótsze wsparcie standardowe. W czasie wsparcia każda wersja dostaje comiesięczne aktualizacje z poprawkami błędów i bezpieczeństwa. Po jego zakończeniu poprawki przestają się ukazywać, a aplikacja na takiej wersji z każdym miesiącem staje się łatwiejszym celem i trudniejszym argumentem w rozmowie z działem bezpieczeństwa czy audytorem.

Dlatego aplikacje produkcyjne opieramy na wersjach LTS, a przejście na kolejną planujemy jako stały element utrzymania, a nie awaryjny projekt. Przejście między kolejnymi wersjami nowoczesnego .NET zwykle sprowadza się do aktualizacji pakietów i dostosowania kodu do zmian opisanych przez Microsoft w dokumentacji. Przeprowadzamy je na środowisku testowym z pełnym zestawem testów automatycznych.

Aplikacje na .NET Framework i Web Forms

Wiele firm wciąż korzysta z aplikacji napisanych lata temu na .NET Framework, często w technologii ASP.NET Web Forms lub MVC 5. .NET Framework 4.8 jest nadal wspierany jako składnik systemu Windows, ale nie dostaje już nowych funkcji, a cały rozwój platformy odbywa się w nowoczesnym .NET. Web Forms nie zostało przeniesione do ASP.NET Core, więc migracja takiej aplikacji oznacza napisanie warstwy interfejsu od nowa. Logikę biznesową i dostęp do danych w C# często da się natomiast przenieść z umiarkowanymi zmianami.

Migracja krok po kroku zamiast wielkiego przełączenia

Zamiast przepisywać całą aplikację i przełączać ją jednego dnia, stosujemy podejście stopniowe, które Microsoft opisuje w swojej dokumentacji. Nowa aplikacja ASP.NET Core staje przed starą jako odwrotne proxy i przejmuje kolejne ścieżki, a pozostałe przekazuje do dotychczasowego systemu. Użytkownicy korzystają z jednej aplikacji, ryzyko rozłożone jest na wiele małych wdrożeń, a każdy przeniesiony moduł od razu działa na wspieranej platformie. Narzędzie .NET Upgrade Assistant przyspiesza część mechanicznych zmian w projektach.

Co sprawdzamy przed migracją

  • Zależności. Czy używane biblioteki i kontrolki mają wersje dla nowoczesnego .NET, a jeśli nie – czym je zastąpić.
  • Kod związany z Windows i IIS. Odwołania do rejestru, usług systemowych czy modułów serwera, które utrudnią uruchomienie na Linuksie lub w kontenerze.
  • Logowanie i sesje. Sposób uwierzytelniania i przechowywania stanu, który w okresie przejściowym musi działać w obu aplikacjach jednocześnie.
  • Testy. Jeśli stara aplikacja ich nie ma, zaczynamy od testów opisujących obecne zachowanie, żeby po migracji móc je porównać.
Nie czekaj do ostatniej chwili: migracja planowana na spokojnie kosztuje mniej niż wymuszona incydentem bezpieczeństwa albo wymaganiami audytu. Jeśli Twoja aplikacja działa na wersji .NET, której wsparcie się kończy, zacznij od przeglądu kodu i zależności.
Bezpieczeństwo

Sześć zabezpieczeń, które włączamy w każdej aplikacji .NET

ASP.NET Core ma wiele mechanizmów ochronnych wbudowanych w framework, ale część z nich trzeba świadomie skonfigurować, a inne łatwo wyłączyć nieuważnym kodem. Te zasady stosujemy zawsze, niezależnie od wielkości projektu.

Ochrona formularzy przed CSRF

Formularze generowane przez Razor zawierają tokeny chroniące przed wysłaniem żądania z obcej strony w imieniu zalogowanego użytkownika. Pilnujemy, żeby walidacja tych tokenów była włączona także dla akcji wywoływanych skryptem.

Kodowanie danych na wyjściu

Razor domyślnie koduje wyświetlane dane, co chroni przed wstrzyknięciem skryptu. Nie omijamy tego mechanizmu dla treści pochodzących od użytkowników, a tam, gdzie potrzebny jest HTML z edytora, stosujemy jego oczyszczanie.

Sekrety poza repozytorium

Hasła do baz, klucze API i certyfikaty nie trafiają do kodu ani plików konfiguracyjnych w repozytorium. Na środowisku produkcyjnym przechowujemy je w zmiennych środowiskowych lub sejfie kluczy, z dostępem ograniczonym do aplikacji.

Wymuszone HTTPS i nagłówki ochronne

Cały ruch przekierowujemy na HTTPS, włączamy HSTS i ustawiamy nagłówki ograniczające źródła skryptów i osadzanie strony w ramkach. Ciasteczka sesyjne mają atrybuty Secure i HttpOnly.

Limity zapytań

Logowanie, resetowanie hasła i publiczne API chronimy wbudowanym w ASP.NET Core mechanizmem ograniczania liczby zapytań. Utrudnia to zgadywanie haseł i przeciążanie aplikacji automatami.

Parametryzowane zapytania do bazy

Entity Framework Core przekazuje wartości do bazy jako parametry. Gdy piszemy własne zapytania SQL, również używamy parametrów zamiast sklejania tekstu, co zamyka drogę do ataków typu SQL injection.

Pytania i odpowiedzi

Aplikacja w C# i ASP.NET Core: o co pytają klienci przed startem projektu

Uzupełnienie pytań z kompendium. Tym razem o kosztach, hostingu, wyborze technologii i współpracy.

Czy aplikacja w ASP.NET Core musi działać na serwerze z Windows?
Nie. Współczesny .NET działa na Windows, Linuksie i macOS, więc aplikację można uruchomić na serwerze z Linuksem, w kontenerze Docker albo w usłudze chmurowej. Windows z IIS ma sens głównie wtedy, gdy firma już utrzymuje taką infrastrukturę albo aplikacja korzysta z elementów dostępnych tylko w tym systemie.
Czy za .NET trzeba płacić?
Sama platforma .NET i ASP.NET Core są darmowe i rozwijane jako projekty open source. Koszty mogą dotyczyć hostingu, licencji bazy danych, jeśli wybierzesz komercyjną wersję SQL Server, oraz płatnych bibliotek, na przykład do raportów czy generowania dokumentów. Wszystkie takie pozycje wskazujemy przed rozpoczęciem projektu.
Razor Pages czy Blazor – co wybrać dla części publicznej?
Dla treści, które mają być widoczne w Google i szybko się wyświetlać, zwykle wybieramy Razor Pages lub MVC albo Blazor w trybie statycznego renderowania na serwerze. Interaktywne tryby Blazora sprawdzają się lepiej w panelach dla zalogowanych, gdzie widoczność w wyszukiwarce nie ma znaczenia, a liczy się wygoda pracy z rozbudowanym interfejsem.
Czy aplikację w C# można połączyć ze stroną na WordPressie?
Tak, to częsty układ. Strona marketingowa działa na WordPressie, a portal klienta lub konfigurator w ASP.NET Core pod osobnym adresem. Obie części mogą mieć wspólny wygląd, a w razie potrzeby wymieniać dane, na przykład przez interfejs REST WordPressa lub własne API aplikacji.
Jak długo będzie wspierana wersja .NET, na której powstanie aplikacja?
Wersje LTS mają trzy lata wsparcia od premiery, dlatego nowe projekty zaczynamy na aktualnej wersji LTS. Przed końcem wsparcia planujemy przejście na kolejną. Przy dobrze utrzymanym kodzie i testach automatycznych to rutynowa aktualizacja, a nie przepisywanie aplikacji.
Czy przejmiecie aplikację napisaną przez inną firmę?
Tak. Zaczynamy od przeglądu kodu, zależności, konfiguracji środowisk i dokumentacji, jeśli istnieje. Na tej podstawie przygotowujemy ocenę stanu aplikacji, listę ryzyk i plan: co trzeba poprawić od razu, co może poczekać i czy wersja .NET wymaga aktualizacji. Potrzebujemy dostępu do repozytorium, serwerów i bazy danych.
Czy aplikacja w C# może być dobrze widoczna w Google?
Tak, jeśli treść publiczna jest renderowana na serwerze i zadbamy o adresy, przekierowania, mapę witryny i metadane. Wyszukiwarka nie wie, w jakim języku napisano zaplecze aplikacji. Ocenia HTML, który dostaje, szybkość strony i jej treść, więc te elementy projektujemy od początku.
Jak wygląda integracja z systemem ERP?
To zależy od możliwości systemu. Najwygodniej, gdy ERP udostępnia API, z którego aplikacja pobiera ceny, stany i dokumenty oraz przekazuje zamówienia. Gdy API nie ma, stosujemy wymianę plików lub bezpośrednie połączenie z bazą w trybie tylko do odczytu. Zadania wymagające czasu wykonujemy w tle, żeby użytkownik nie czekał na odpowiedź systemu.
Czy aplikację można uruchomić w chmurze innej niż Azure?
Tak. Azure ma wygodne usługi dla .NET, ale aplikacja w kontenerze lub na serwerze z Linuksem działa równie dobrze u innych dostawców chmury i na zwykłych serwerach wirtualnych. Wybór zależy od tego, gdzie firma utrzymuje pozostałe systemy, jakie ma wymagania dotyczące lokalizacji danych i jaki model kosztów jej odpowiada.
Czy C# nadaje się do funkcji działających w czasie rzeczywistym?
Tak. Biblioteka SignalR, będąca częścią ASP.NET Core, pozwala wysyłać dane do przeglądarki na bieżąco, bez odświeżania strony. Wykorzystuje się ją do powiadomień, czatów, statusu zamówień czy pulpitów z danymi, które aktualizują się automatycznie.
Od czego zależy koszt aplikacji w C#?
Przede wszystkim od liczby i złożoności procesów, liczby integracji, wymagań dotyczących bezpieczeństwa i dostępności oraz tego, czy potrzebna jest także aplikacja mobilna. Wycenę przygotowujemy po warsztacie, a duże projekty dzielimy na etapy, z pierwszą wersją obejmującą najważniejsze funkcje, żeby szybciej zaczęła przynosić korzyści.
Czy C# opłaca się w małym projekcie?
Technicznie tak, bo ASP.NET Core pozwala zbudować nawet bardzo prostą usługę w kilkudziesięciu linijkach kodu. Ekonomicznie zależy to od tego, co ma robić aplikacja. Jeśli to prosty formularz albo strona z treściami, tańszy będzie CMS. Jeśli mały projekt jest zalążkiem większego systemu albo musi współpracować z istniejącymi aplikacjami w .NET, C# od początku jest rozsądnym wyborem.
Jak wygląda przekazanie aplikacji po zakończeniu projektu?
Przekazujemy repozytorium z historią zmian, opis architektury, instrukcję budowania i wdrażania oraz listę środowisk i dostępów. Na życzenie prowadzimy spotkania wprowadzające dla zespołu IT klienta. Zakres praw do kodu i warunki przekazania ustalamy w umowie przed rozpoczęciem prac, a po starcie możemy dalej utrzymywać i rozwijać aplikację.
Czy aplikację będzie mógł później rozwijać inny wykonawca?
Tak, i projektujemy ją z myślą o tym. C# jest popularnym językiem, a my trzymamy się standardowych rozwiązań ASP.NET Core zamiast własnych, nietypowych konstrukcji. Testy automatyczne i dokumentacja decyzji architektonicznych pozwalają nowemu zespołowi szybko zrozumieć kod i bezpiecznie wprowadzać zmiany.
Czy aplikacja będzie dostępna dla osób z niepełnosprawnościami?
Tak, jeśli zaplanujemy to od początku. Widoki w Razorze i komponenty Blazora budujemy na semantycznym HTML, z obsługą klawiatury, etykietami pól i czytelnymi komunikatami błędów, zgodnie z wytycznymi WCAG na poziomie AA. Dla podmiotów publicznych to wymóg prawny, a dla firm prywatnych coraz częściej oczekiwanie klientów i partnerów.
Czy pracujecie z firmami spoza Krakowa?
Tak. Nasze biuro mieści się w Krakowie, a z klientami z innych miast i krajów pracujemy zdalnie. Warsztaty i pokazy wersji prowadzimy na wideorozmowach, kod udostępniamy w repozytorium, a postępy prac są widoczne na bieżąco na środowisku testowym.
Przed uruchomieniem

Lista kontrolna aplikacji .NET przed startem produkcyjnym

Osiem punktów, które sprawdzamy przed oddaniem aplikacji użytkownikom. Przydają się także przy ocenie systemu, który przejmujesz od innego wykonawcy.

  • Wspierana wersja platformy. Aplikacja działa na aktualnej wersji LTS .NET, a termin przejścia na kolejną jest zapisany w planie utrzymania.
  • Sekrety w bezpiecznym miejscu. Hasła i klucze są poza repozytorium, a dostęp do nich ma tylko aplikacja i wyznaczone osoby.
  • Testy logiki biznesowej. Najważniejsze wyliczenia i reguły są pokryte testami, które uruchamiają się automatycznie przy każdej zmianie.
  • Jedna wersja każdego adresu. Małe litery, stała zasada ukośnika, adresy kanoniczne i przekierowania 301 ze starych adresów.
  • Mapa witryny i robots.txt. Mapa generuje się z bazy danych, a środowisko testowe jest zablokowane przed indeksowaniem i dostępne tylko po zalogowaniu.
  • Logi i monitoring. Błędy trafiają do centralnych logów, a monitoring dostępności i stanu aplikacji powiadamia zespół o problemach.
  • Kopie zapasowe z testem odtworzenia. Baza danych i pliki mają regularne kopie, a procedura ich przywrócenia została sprawdzona w praktyce.
  • Dokumentacja i dostępy. Opis architektury, instrukcja wdrożenia i lista dostępów są aktualne i przekazane osobom odpowiedzialnym po stronie klienta.
Słowniczek

Pojęcia z ekosystemu .NET, które pojawiają się w ofertach

Krótkie wyjaśnienia terminów, które usłyszysz w rozmowie o aplikacji w C#.

.NET Framework
Pierwotna, działająca tylko w systemie Windows wersja platformy. Jest nadal wspierana jako składnik Windows, ale nowe funkcje trafiają wyłącznie do nowoczesnego, wieloplatformowego .NET.
ASP.NET Core
Framework do budowy aplikacji webowych i interfejsów API na platformie .NET. Obejmuje m.in. Razor Pages, MVC, Blazor, SignalR i mechanizmy uwierzytelniania.
Razor
Składnia szablonów łącząca HTML z kodem C#. Na jej podstawie serwer generuje gotowe strony, które trafiają do przeglądarki.
Blazor
Technologia budowy interaktywnych interfejsów z komponentów pisanych w C#. Komponenty mogą działać na serwerze albo w przeglądarce dzięki WebAssembly.
Entity Framework Core
Biblioteka do pracy z bazami danych w .NET. Pozwala operować na obiektach C# zamiast ręcznie pisanych zapytań i zapisywać zmiany schematu bazy jako migracje.
WebAssembly
Standard pozwalający uruchamiać w przeglądarce skompilowany kod napisany w innych językach niż JavaScript. Dzięki niemu komponenty Blazora mogą działać bezpośrednio na urządzeniu użytkownika.
Kestrel
Wbudowany serwer HTTP aplikacji ASP.NET Core. W środowisku produkcyjnym często pracuje za odwrotnym proxy, które obsługuje certyfikaty i ruch z internetu.
NuGet
Menedżer pakietów dla .NET, z którego pobiera się biblioteki używane w projekcie. Wersje pakietów trzeba regularnie aktualizować i sprawdzać pod kątem podatności.
LTS i STS
Typy wsparcia wersji .NET. Wersje LTS, wydawane co dwa lata, mają trzy lata wsparcia, a wersje STS, wydawane pomiędzy nimi, krótsze wsparcie standardowe.
Middleware
Warstwa pośrednia w potoku obsługi żądania. Kolejne elementy odpowiadają m.in. za przekierowania, kompresję, uwierzytelnianie czy obsługę błędów.
SignalR
Biblioteka ASP.NET Core do komunikacji w czasie rzeczywistym między serwerem a przeglądarką, wykorzystywana w powiadomieniach, czatach i żywych pulpitach.
OpenAPI
Standard opisu interfejsów API. Na jego podstawie powstaje dokumentacja, z której korzystają programiści aplikacji mobilnych i systemów partnerów.
Porozmawiajmy o Twojej aplikacji

Planujesz portal, system zamówień albo migrację starej aplikacji .NET?

Opowiedz nam o procesach, które aplikacja ma obsługiwać, i systemach, z którymi ma się łączyć. Pomożemy wybrać architekturę, oszacować zakres pierwszego etapu i zaplanować wdrożenie.

4.9/5 - 1124

Zostaw komentarz

Twój adres e-mail nie zostanie opublikowany. Komentarze są moderowane.

Porozmawiajmy o Twoim projekcie

Bezpłatnie sprawdzimy Twoją stronę i zaproponujemy plan działań. Odpowiadamy tego samego dnia, dyżur eksperta 24/7.