.NET Framework

Z Wikipedii, wolnej encyklopedii
(Przekierowano z Microsoft .NET)
.NET Framework
Logo .NET Framework
Logo programu
ilustracja
Autor Microsoft
Pierwsze wydanie 2002
Aktualna wersja stabilna 4.8.1
(9 sierpnia 2022) [±]
System operacyjny Windows 98
Windows ME
Windows 2000
Windows XP
Windows 2003
Windows Vista
Windows 7
Windows 8
Windows 8.1
Windows 10
Windows 11
Rodzaj Framework
Licencja Freeware
Strona internetowa

.NET Framework (wym. dot net) – platforma programistyczna opracowana przez Microsoft, obejmująca środowisko uruchomieniowe (Common Language Runtime – CLR) oraz biblioteki klas dostarczające standardowej funkcjonalności dla aplikacji. Technologia ta nie jest związana z żadnym konkretnym językiem programowania, a programy mogą być pisane w jednym z wielu języków – na przykład C++/CLI, C#, F#, J#, Delphi 8 dla .NET, Visual Basic .NET. Zadaniem platformy .NET Framework jest zarządzanie różnymi elementami systemu: kodem aplikacji, pamięcią i zabezpieczeniami.

W środowisku tym można tworzyć oprogramowanie działające po stronie serwera internetowego (IIS) oraz pracujące na systemach, na które istnieje działająca implementacja tej platformy. Z racji jej pochodzenia najpełniej obsługiwane są systemy z rodziny Microsoft Windows, jednak ponieważ zasadnicza część platformy została zgłoszona jako standard ECMA, powstają także jego niezależne wdrożenia, np. Mono i dotGNU.

Microsoft ogłosił[kiedy?], że następca systemu Windows XP będzie pracował w środowisku .NET, a aplikacje starszego typu (EXE) będą miały dostęp do zasobów maszyny przez przekształcenie na wywołania[potrzebny przypis]. W 2006 niewielki procent nowej wersji Windows korzystał z .NET.[potrzebny przypis]

W skład platformy wchodzą:

W listopadzie 2014 Microsoft zapowiedział udostępnienie .NET na zasadach Open Source na licencji MIT[1][2].

Wersja 4.8 jest ostateczną wersją tego frameworka, jednak wciąż będzie otrzymywać poprawki zabezpieczeń i niezawodności. Do tworzenia nowych aplikacji Microsoft zaleca użycie następcy, otwartoźródłowego i wieloplatformowego.NET[3].

.NET jako rozwiązanie problemów z API[edytuj | edytuj kod]

Aplikacje w obecnie[kiedy?] funkcjonujących systemach operacyjnych[jakich?] firmy Microsoft są kompilowane do kodu maszynowego procesora, a z systemem operacyjnym komunikują się poprzez zestaw funkcji, dostarczanych przez system, zwanych Win32API (API). Takie rozwiązanie nastręcza wielu problemów, a głównymi z nich są:

  • nieprzenośność programów między różnymi procesorami lub niewykorzystywanie przez aplikacje wszystkich możliwości procesora,
  • nieprzenośność aplikacji między wersjami systemu ze względu na różnice w zestawie i działaniu funkcji z zestawu API.

Microsoft postanowił rozwiązać ten problem, stosując rozwiązania podobne do zastosowanego w Javie:

  • kompilatory kompilują kod źródłowy do postaci uniwersalnego kodu zwanego kodem pośrednim (nazywa się on obecnie CIL – wcześniej zaś nazywany był MSIL),
  • metoda klasy jest kompilowana do kodu maszynowego w momencie pierwszego wywołania, kolejne wywołania metody prowadzą już bezpośrednio do skompilowanego kodu. Jest to realizowane przez dołączenie do każdej metody w czasie ładowania modułu tymczasowego fragmentu kodu (ang. stub), który przekazuje sterowanie do kompilatora i jest następnie zastępowany przez skompilowany kod. Jest to tzw. kompilacja w locie (ang. just in time). Dostępna jest także możliwość skompilowania całego modułu w trakcie instalacji. Przy okazji przebudowano biblioteki klas ułatwiające dostęp do elementów systemu.

Bloki składowe platformy .NET[edytuj | edytuj kod]

  • CLR (ang. Common Language Runtime) odpowiedzialny za lokalizowanie, wczytywanie oraz zarządzanie typami .NET. To trzon całej platformy .NET, ponieważ to właśnie do CLR należy zadanie kompilowania i uruchamiania kodu zapisanego językiem kodu pośredniego (CIL).
  • CTS (ang. Common Type System) jest odpowiedzialny za opis wszystkich danych udostępnianych przez środowisko uruchomieniowe.
  • CLS (ang. Common Language Specification) to zbiór zasad definiujących podzbiór wspólnych typów precyzujących zgodność kodu binarnego z dostępnymi kompilatorami .NET

Języki programowania[edytuj | edytuj kod]

Nowością, jaka pojawiła się w platformie .NET, jest Common Language Infrastructure. Każdy język programowania, który spełni odpowiednie standardy (chodzi głównie o tzw. common object model), będzie miał dostęp do biblioteki .NET.

Obecnie[kiedy?] ponad 40 języków programowania jest zgodnych z .NET[potrzebny przypis]. Wiele z nich (np. Visual Basic, Delphi) musiało przejść istotne zmiany, by dostosować się do nowego środowiska. Dlatego też zwykle oznacza się języki dla platformy .NET przyrostkiem .NET (na przykład Delphi.NET, VB.NET).

Podstawowe języki dostarczane przez Microsoft:

Pozostałe ważniejsze języki programowania:

Standardy środowiska .NET[edytuj | edytuj kod]

W sierpniu 2000 Microsoft, Hewlett-Packard i Intel wspólnie złożyły specyfikację Common Language Infrastructure i języka C# do ECMA jako propozycję standardu. Prace nad nimi odbywały się w ramach komitetu TC39 w podgrupach TG3 i TG2, przy współudziale m.in. IBM i Fujitsu. Zostały one ostatecznie zatwierdzone w grudniu 2001 jako ECMA-334 (C#) i ECMA-335 (CLI), a opis techniczny jako TR/84, a następnie przekazane do akceptacji przez ISO. W kwietniu 2003 ISO uznało nadesłane standardy, nadając im numery ISO/IEC 23270 (C#), ISO/IEC 23271 (CLI) oraz ISO/IEC 23272 (CLI TR), a ECMA przyjęła je jako drugie wydanie swoich standardów.

Technologie[edytuj | edytuj kod]

Platforma .NET niesie ze sobą kilka pochodnych technologii. Można tu wymienić ADO.NET, służący do obsługi baz danych, oraz ASP.NET, służący do budowania dynamicznych stron WWW.

Implementacje[edytuj | edytuj kod]

Środowiska programistyczne[edytuj | edytuj kod]

Sztandarowym środowiskiem programistycznym firmy Microsoft związanym z platformą .NET jest Microsoft Visual Studio, umożliwiające pisanie w kilku językach programowania. Istnieją również inne środowiska współpracujące z platformą .NET, m.in. komercyjne rozwiązanie firmy Borland[potrzebny przypis], oraz środowiska programistyczne opensource MonoDevelop oraz SharpDevelop.

W roku 2005 została wydana druga wersja środowiska .NET Framework 2.0, wraz z nią udostępniono darmowe zintegrowane środowisko programistyczne Visual Studio 2005 Express, które składa się z kilku osobnych produktów (Visual Basic 2005 Express Edition, Visual C# 2005 Express Edition, Visual C++ 2005 Express Edition, Visual J# 2005 Express Edition, Visual Web Developer 2005 Express Edition, SQL Server 2005 Express Edition).

Wersje[edytuj | edytuj kod]

Istnieją następujące wersje platformy .NET:

Wersja Numer wersji Data wydania Visual Studio Dołączona do Windows
1.0 1.0.3705.0 2002-02-13 Visual Studio .NET
1.1 1.1.4322.573 2003-04-24 Visual Studio .NET 2003 Windows Server 2003, Windows XP
2.0 2.0.50727.42 2005-11-07 Visual Studio 2005
3.0 3.0.4506.30 2006-11-06 Windows Vista, Windows Server 2008
3.5 3.5.21022.8 2007-11-19 Visual Studio 2008 Windows 7, Windows Server 2008 R2
3.5 SP1 3.5.30729.4926 2009-06-10
4.0 4.0.30319.1 2010-04-12 Visual Studio 2010
4.5 4.5.50709 2012-08-15 Visual Studio 2012 Windows 8
4.5.1 4.5.50938.18408 2013-10-12 Visual Studio 2013 Windows 8.1
4.5.2 4.5.51209.34209 2014-05-06
4.6 2015-07-20 Visual Studio 2015 Windows 10
4.6.1 4.6.1055.0 2015-11-17
4.6.2[4] 2016-08-03 Windows 10 v1607
4.7 2017-04-05 Visual Studio 2017 Windows 10 v1703
4.7.1 2017-10-17 Visual Studio 2017 Windows 10 v1709
4.7.2 4.7.3062 2018-04-30 Visual Studio 2017 Windows 10 v1803
4.8 4.8.3761 2019-04-18 Visual Studio 2019 Windows 10 v1903

Zobacz też[edytuj | edytuj kod]

Przypisy[edytuj | edytuj kod]

  1. NET na Linuksie i Maku. Microsoft otwiera kod swojego programistycznego frameworku – dobreprogramy [online], www.dobreprogramy.pl [dostęp 2017-11-21] (pol.).
  2. Microsoft makes.Net open-source, finally embraces iOS, Android, and Linux – ExtremeTech [online], www.extremetech.com [dostęp 2017-11-21] (ang.).
  3. .NET Framework versions and dependencies [online], Microsoft Docs, 17 stycznia 2020 [dostęp 2021-01-25] (ang.).
  4. Announcing .NET Framework 4.6.2. [dostęp 2016-10-19].

Linki zewnętrzne[edytuj | edytuj kod]