Udostępnij za pośrednictwem


Wprowadzenie do platformy .NET

.NET to bezpłatna międzyplatformowa platforma deweloperów typu open source do tworzenia wielu rodzajów aplikacji. Można uruchamiać programy napisane w wielu językach, przy czym C# jest najbardziej popularnym. Opiera się on na środowisku uruchomieniowym o wysokiej wydajności, które jest używane w środowisku produkcyjnym przez wiele aplikacji na dużą skalę.

Aby dowiedzieć się, jak pobrać .NET i rozpocząć pisanie pierwszej aplikacji, zobacz Wprowadzenie.

Platforma .NET została zaprojektowana w celu zapewnienia produktywności, wydajności, zabezpieczeń i niezawodności. Zapewnia automatyczne zarządzanie pamięcią za pośrednictwem zbieracza śmieci (GC). Jest bezpieczny pod kątem typów i pamięci dzięki wykorzystaniu mechanizmu GC oraz ściślejszych kompilatorów językowych. Oferuje współbieżność za pośrednictwem async/await i Task elementów pierwotnych. Zawiera on duży zestaw bibliotek, które mają szeroką funkcjonalność i zostały zoptymalizowane pod kątem wydajności w wielu systemach operacyjnych i architekturach mikroukładów.

Platforma .NET ma następujące punkty projektowe :

  • Produktywność jest pełnym stosem z środowiskiem uruchomieniowym, bibliotekami, językiem i narzędziami, które przyczyniają się do doświadczenia użytkownika dewelopera.
  • Bezpieczny kod jest podstawowym modelem obliczeniowym, a niebezpieczny kod umożliwia dodatkowe optymalizacje ręczne.
  • Kod statyczny i dynamiczny są obsługiwane, umożliwiając szeroki zestaw różnych scenariuszy.
  • Interoperacyjność kodu natywnego i instrukcje sprzętowe są niskokosztowe i wysokiej wierności (nieprzetworzone interfejsy API i dostęp do instrukcji).
  • Code jest przenośny na różnych platformach (system operacyjny i architektura procesora), a ukierunkowanie na platformę umożliwia specjalizację i optymalizację.
  • Zdolność adaptacji w różnych dziedzinach programowania (chmura, klient, gry) jest możliwa dzięki wyspecjalizowanym implementacjom modelu programowania o ogólnym przeznaczeniu.
  • Standardy branżowe takie jak OpenTelemetry i gRPC są preferowane zamiast rozwiązań na zamówienie.

Platforma .NET jest utrzymywana wspólnie przez firmę Microsoft i społeczność globalną. Regularne aktualizacje zapewniają użytkownikom wdrażanie bezpiecznych i niezawodnych aplikacji w środowiskach produkcyjnych.

Składniki

Platforma .NET zawiera następujące składniki:

  • Środowisko uruchomieniowe — wykonuje kod aplikacji.
  • Biblioteki — udostępniają funkcjonalności narzędziowe, takie jak analiza JSON.
  • Kompilator — kompiluje kod źródłowy języka C# (i innych języków) do kodu wykonywalnego (środowiska uruchomieniowego).
  • Zestaw SDK i inne narzędzia — umożliwiają tworzenie i monitorowanie aplikacji za pomocą nowoczesnych przepływów pracy.
  • Stosy aplikacji — takie jak ASP.NET Core i Windows Forms, które umożliwiają pisanie aplikacji.

Środowisko uruchomieniowe, biblioteki i języki to filary stosu platformy .NET. Składniki wyższego poziomu, takie jak narzędzia platformy .NET i stosy aplikacji, takie jak ASP.NET Core, bazują na tych filarach. C# to podstawowy język programowania dla platformy .NET, a większość platformy .NET jest napisana w języku C#.

Język C# jest obiektowy, a środowisko uruchomieniowe obsługuje orientację obiektu. Język C# wymaga odśmiecania pamięci, a środowisko uruchomieniowe zapewnia śledzący mechanizm odśmiecania pamięci. Biblioteki (a także stosy aplikacji) kształtują te możliwości w pojęciach i modelach obiektów, które umożliwiają deweloperom wydajne pisanie algorytmów w intuicyjnych przepływach pracy.

Podstawowe biblioteki uwidaczniają tysiące typów, z których wiele integruje się i napędza język C#. Na przykład instrukcja foreach języka C#umożliwia wyliczanie dowolnych kolekcji. Optymalizacje oparte na wzorcu umożliwiają proste i wydajne przetwarzanie kolekcji, takich jak List<T>. Zarządzanie zasobami można pozostawić odzyskiwaniu pamięci, ale szybkie czyszczenie jest możliwe dzięki IDisposable oraz bezpośredniej obsłudze języka w instrukcji using.

Obsługa wykonywania wielu czynności w tym samym czasie jest podstawowa dla praktycznie wszystkich obciążeń. Może to być aplikacja kliencka wykonująca przetwarzanie w tle przy zachowaniu dynamicznego interfejsu użytkownika, usług obsługujących wiele tysięcy równoczesnych żądań, urządzeń reagujących na wiele równoczesnych bodźców lub maszyn o dużej mocy równoległych przetwarzania operacji intensywnie korzystających z obliczeń. Obsługa programowania asynchronicznego jest kluczową cechą języka programowania C#, który udostępnia słowa kluczowe async i await, co ułatwia pisanie i tworzenie operacji asynchronicznych, jednocześnie ciesząc się pełnymi korzyściami ze wszystkich struktur przepływu sterowania, jakie oferuje język.

System typu oferuje znaczną wszechstronność, zapewniając w równym stopniu bezpieczeństwo, opisowość, dynamikę i natywną międzyoperacyjność. Przede wszystkim system typów umożliwia model programowania obiektowego. Obejmuje ona typy, dziedziczenie (pojedynczą klasę bazową), interfejsy (w tym implementacje metod domyślnych) i wysyłanie metod wirtualnych w celu zapewnienia rozsądnego zachowania dla wszystkich warstw typów, które umożliwia orientacja obiektu. Typy ogólne są wszechobecne i pozwalają specjalizować klasy do co najmniej jednego typu.

Środowisko uruchomieniowe platformy .NET zapewnia automatyczne zarządzanie pamięcią za pośrednictwem modułu odśmiecającego pamięć. W przypadku dowolnego języka jego model zarządzania pamięcią jest prawdopodobnie najbardziej definiującym charakterystykę. Dotyczy to języków platformy .NET. Platforma .NET ma samodostosowujący się i śledzący GC. Ma ona na celu zapewnienie użycia "bezobsługowego" dla ogólnych zastosowań, oferując opcje konfiguracji dla bardziej ekstremalnych obciążeń. Obecny GC jest wynikiem wielu lat inwestycji i wyciągania wniosków z różnorodnych obciążeń.

Typy wartości i bloki pamięci przydzielone do stosu oferują bardziej bezpośrednią, niskopoziomową kontrolę nad danymi i interoperacyjnością z natywną platformą, w przeciwieństwie do typów zarządzanych przez GC platformy .NET. Większość typów pierwotnych na platformie .NET, takich jak typy całkowite, to typy wartości, a użytkownicy mogą definiować własne typy z podobnymi semantykami. Typy wartości są w pełni obsługiwane przez system typów ogólnych platformy .NET, co oznacza, że generyki, takie jak List<T>, mogą zapewniać płaskie, nieobciążone reprezentacje pamięci dla kolekcji typów wartości.

Refleksja to paradygmat "programy jako dane", który pozwala jednej części programu na dynamiczne wykonywanie zapytań i wywoływanie innych, w kontekście zestawów, typów i członków. Jest to szczególnie przydatne w przypadku późno powiązanych modeli programowania i narzędzi.

Wyjątki to podstawowy model obsługi błędów na platformie .NET. Wyjątki mają korzyść w tym, że informacje o błędzie nie muszą być reprezentowane w sygnaturach metody ani obsługiwane przez każdą metodę. Właściwa obsługa wyjątków jest niezbędna w przypadku niezawodności aplikacji. Aby zapobiec awarii aplikacji, możesz celowo obsługiwać oczekiwane wyjątki w kodzie. Aplikacja, która uległa awarii, jest bardziej niezawodna i rozpoznawalna niż aplikacja z niezdefiniowanym zachowaniem.

Stosy aplikacji, takie jak ASP.NET Core i Windows Forms, bazują na bibliotekach niskiego poziomu, języku i środowisku uruchomieniowym oraz korzystają z niego. Stosy aplikacji definiują sposób konstruowania aplikacji i ich cyklu życia wykonywania.

Zestaw SDK i inne narzędzia umożliwiają nowoczesne środowisko deweloperskie zarówno na pulpicie dewelopera, jak i na potrzeby ciągłej integracji. Nowoczesne środowisko deweloperskie obejmuje możliwość tworzenia, analizowania i testowania kodu. Projekty platformy .NET często można tworzyć za pomocą jednego polecenia dotnet build, które organizuje przywracanie pakietów NuGet i tworzenie zależności.

NuGet jest menedżerem pakietów dla platformy .NET. Zawiera setki tysięcy pakietów, które implementują funkcje w wielu scenariuszach. Większość aplikacji korzysta z pakietów NuGet na potrzeby niektórych funkcji. Galeria NuGet jest utrzymywana przez firmę Microsoft.

Bezpłatne i open source

Platforma .NET jest bezpłatna, open source i jest projektem .NET Foundation. Platforma .NET jest utrzymywana przez firmę Microsoft i społeczność w witrynie GitHub w kilku repozytoriach.

Licencje źródłowe i binarne platformy .NET są licencjonowane przy użyciu licencji MIT. Dodatkowe licencje mają zastosowanie w systemie Windows.

Wsparcie

Platforma .NET jest obsługiwana przez wiele organizacji, które działają w celu zapewnienia, że platforma .NET może działać w wielu systemach operacyjnych i jest aktualna. Można go używać w architekturach Arm64, x64 i x86.

Nowe wersje platformy .NET są wydawane corocznie w listopadzie, zgodnie z naszymi wersjami i zasadami pomocy technicznej. Jest aktualizowany co miesiąc w Patch Wtorek (drugi wtorek miesiąca), zazwyczaj o 10:00 czasu pacyficznego.

Ekosystem .NET

Istnieje wiele wariantów platformy .NET, z których każda obsługuje inny typ aplikacji. Przyczyną wielu wariantów jest część historyczna, część techniczna.

Implementacje platformy .NET:

  • .NET Framework — oryginalna platforma .NET. Zapewnia dostęp do szerokich możliwości systemów Windows i Windows Server. Jest aktywnie wspierana w ramach utrzymania.
  • Mono — oryginalna społeczność i platforma .NET typu open source. Implementacja międzyplatformowa programu .NET Framework. Aktywnie obsługiwane w systemach Android, iOS i WebAssembly.
  • .NET (Core) — nowoczesna platforma .NET. Międzyplatformowa i open source implementacja platformy .NET, przemyślana na nowo na potrzeby epoki chmury, zachowując przy tym znaczną zgodność z platformą .NET Framework. Aktywnie obsługiwane w systemach Linux, macOS i Windows.

Następne kroki