Wprowadzenie do platformy .NET

.NET to bezpłatna, międzyplatformowa platforma deweloperów typu open source do tworzenia wielu rodzajów aplikacji. Może uruchamiać programy napisane w wielu językach, a język C# jest najbardziej popularny. Opiera się on na środowisku uruchomieniowym o wysokiej wydajności używanym w środowisku produkcyjnym przez wiele aplikacji o dużej skali.

Aby dowiedzieć się, jak pobrać platformę .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 modułu odśmiecającego pamięci (GC). Jest bezpieczny pod kątem typów i bezpieczeństwa pamięci ze względu na użycie kontrolera GC i ścisłego kompilatora języka. Oferuje współbieżność za pośrednictwem async/await elementów pierwotnych i Task . 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ść to pełny stos ze środowiskiem uruchomieniowym, bibliotekami, językiem i narzędziami, które przyczyniają się do środowiska użytkownika dewelopera.
  • Sejf kod jest podstawowym modelem obliczeniowym, a niebezpieczny kod umożliwia dodatkowe optymalizacje ręczne.
  • Zarówno kod statyczny, jak i dynamiczny są obsługiwane, umożliwiając szeroką gamę odrębnych scenariuszy.
  • Wewnętrzne funkcje międzyoperacyjności kodu natywnego i sprzętu są niskie kosztami i wysoką wiernością (nieprzetworzone interfejsy API i dostęp do instrukcji).
  • Kod jest przenośny na różnych platformach (architektura systemu operacyjnego i mikroukładu), a platforma docelowa umożliwia specjalizację i optymalizację.
  • Możliwość adaptacji między domenami programowania (chmurą, klientem, grami) jest włączona z wyspecjalizowanymi implementacjami modelu programowania ogólnego przeznaczenia.
  • Standardy branżowe, takie jak OpenTelemetry i gRPC, są preferowane w przypadku rozwiązań na zamówienie.

Platforma .NET jest utrzymywana przez firmę Microsoft i społeczność. Jest ona regularnie aktualizowana w celu zapewnienia użytkownikom wdrażania bezpiecznych i niezawodnych aplikacji w środowisku produkcyjnym.

Składniki

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

  • Środowisko uruchomieniowe — wykonuje kod aplikacji.
  • Biblioteki — udostępnia funkcje narzędzi, takie jak analizowanie kodu 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 odzyskiwania pamięci, a środowisko uruchomieniowe zapewnia śledzenie modułu odśmiecanie 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 języka C# foreach umożliwia wyliczanie dowolnych kolekcji. Optymalizacje oparte na wzorcu umożliwiają proste i wydajne przetwarzanie kolekcji List<T> . Zarządzanie zasobami można pozostawić do odzyskiwania pamięci, ale monitowanie czyszczenia jest możliwe za pośrednictwem IDisposable i bezpośredniej obsługi 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 pierwszą klasą języka programowania C#, która udostępnia async słowa kluczowe i await , które ułatwiają pisanie i redagowanie operacji asynchronicznych, a jednocześnie korzystanie z pełnych korzyści ze wszystkich konstrukcji przepływu sterowania, które ma do zaoferowania.

System typów oferuje znaczną szerokość, catering nieco równie samo dla bezpieczeństwa, opisowości, dynamiki i natywnej międzyoperacyjności. 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 to wszechobecna funkcja, która pozwala 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 własne dostrajanie, śledzenie GC. Ma ona na celu dostarczenie operacji "hands off" w ogólnym przypadku, oferując opcje konfiguracji dla bardziej ekstremalnych obciążeń. Obecny GC jest wynikiem wielu lat inwestycji i uczenia się z wielu obciążeń.

Typy wartości i bloki pamięci przydzielone do stosu oferują bardziej bezpośrednią kontrolę niskiego poziomu nad danymi i natywną platformą międzyoperacyjnością, w przeciwieństwie do . Typy zarządzane 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 za pośrednictwem elementu . System typów ogólnych platformy NET, co oznacza, że typy ogólne, takie jak, List<T> mogą zapewniać płaskie, bez obciążenia reprezentacje pamięci kolekcji typów wartości.

Emocje ion to paradygmat "programy jako dane", co pozwala jednemu części programu na dynamiczne wykonywanie zapytań i wywoływanie innego, pod względem zestawów, typów i elementów członkowskich. 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ść, że informacje o błędzie nie muszą być reprezentowane w podpisach 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 mogą być często kompilowane za pomocą jednego dotnet build polecenia, które organizuje przywracanie pakietów NuGet i tworzenie zależności.

Program NuGet to menedżer 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 rozwiązanie typu „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 usłudze GitHub w kilku repozytoriach.

Licencje źródłowe i binarne platformy .NET są licencjonowane z licencją MIT. Dodatkowe licencje mają zastosowanie w systemie Windows.

Pomoc techniczna

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), zazwyczaj o 10:00 czasu pacyficznego.

Ekosystem platformy .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 obsługiwana w konserwacji.
  • 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, która powinna być zgodna z wiekiem chmury, a jednocześnie znacznie zgodna z programem .NET Framework. Aktywnie obsługiwane w systemach Linux, macOS i Windows.

Następne kroki