Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
.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.