.NET Framework (wym. dot net) to platforma programistyczna stworzona przez Microsoft, która obejmuje środowisko uruchomieniowe (Common Language Runtime – CLR) oraz biblioteki klas, dostarczające standardowe funkcjonalności dla aplikacji. Technologia ta nie jest przypisana do jednego konkretnego języka programowania; programy mogą być tworzone w różnych językach, takich jak C++/CLI, C#, F#, J#, Delphi 8 dla .NET czy Visual Basic .NET. Głównym celem platformy .NET Framework jest zarządzanie różnymi komponentami systemu, takimi jak kod aplikacji, pamięć oraz zabezpieczenia.
W tym środowisku można tworzyć oprogramowanie, które działa po stronie serwera internetowego (IIS) oraz na systemach, które mają działającą implementację tej platformy. Z racji swojego pochodzenia, najlepiej obsługiwane są systemy z rodziny Microsoft Windows, jednak część platformy została zgłoszona jako standard ECMA, co pozwala na powstawanie niezależnych wdrożeń, takich jak Mono i dotGNU.
Microsoft ogłosił, że nowa wersja systemu Windows XP będzie działać w środowisku .NET, a aplikacje starszego typu (EXE) będą miały dostęp do zasobów maszyny dzięki przekształceniu na wywołania. W 2006 roku jedynie niewielki odsetek nowego Windowsa korzystał z .NET.
Do głównych składników platformy należą:
- kompilatory języków wysokiego poziomu – w tym C++/CLI, C#, Visual Basic .NET, J#
- kompilator just-in-time dla kodu zarządzanego, wyposażony w debugger.
W listopadzie 2014 roku Microsoft ogłosił, że .NET będzie dostępny jako Open Source na licencji MIT.
Wersja 4.8 jest ostatnią wersją tego frameworka, lecz wciąż będzie otrzymywać poprawki związane z zabezpieczeniami i niezawodnością. Do tworzenia nowych aplikacji Microsoft zaleca korzystanie z następcy, który jest otwartoźródłowy i wieloplatformowy – .NET.
== .NET jako rozwiązanie problemów z API ==
Aplikacje działające w aktualnych systemach operacyjnych Microsoftu są kompilowane do kodu maszynowego procesora i komunikują się z systemem operacyjnym za pośrednictwem zestawu funkcji zwanych Win32API (API). Takie podejście wiąże się z wieloma problemami, w tym:
- nieprzenośność programów między różnymi procesorami oraz niewykorzystywanie przez aplikacje pełnych możliwości procesora,
- nieprzenośność aplikacji między wersjami systemu z powodu różnic w zestawie i działaniu funkcji API.
Microsoft postanowił rozwiązać te problemy poprzez wprowadzenie mechanizmów podobnych do tych używanych w Javie:
- kompilatory przekształcają kod źródłowy do postaci uniwersalnego kodu znanego jako kod pośredni (obecnie nazywany CIL, wcześniej MSIL),
- metody są kompilowane do kodu maszynowego w momencie ich pierwszego wywołania, a kolejne wywołania już korzystają z skompilowanego kodu. Realizowane jest to przez dołączenie do każdej metody w czasie ładowania modułu tymczasowego fragmentu kodu (ang. stub), który przekazuje kontrolę do kompilatora, a następnie jest zastępowany przez skompilowany kod. To podejście nazywa się kompilacją w locie (ang. just in time).
- Można również skompilować cały moduł w trakcie instalacji. Dodatkowo, przebudowano biblioteki klas, aby ułatwić dostęp do komponentów systemowych.
== Bloki składowe platformy .NET ==
CLR (ang. Common Language Runtime) odpowiada za lokalizację, wczytywanie oraz zarządzanie typami .NET. To kluczowy element całej platformy .NET, ponieważ to do CLR należy odpowiedzialność za kompilację i uruchamianie kodu zapisanego w języku 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 zestaw zasad definiujących podzbiór wspólnych typów, które określają zgodność kodu binarnego z dostępnymi kompilatorami .NET.
== Języki programowania ==
Nowością w platformie .NET jest Common Language Infrastructure. Każdy język programowania, który spełnia odpowiednie standardy (głównie związane z common object model), uzyskuje dostęp do biblioteki .NET.
Obecnie istnieje ponad 40 języków programowania zgodnych z .NET. Wiele z nich, takich jak Visual Basic czy Delphi, musiało przejść znaczące zmiany, aby dostosować się do nowego środowiska. Dlatego języki dla platformy .NET zazwyczaj mają przyrostek .NET (np. Delphi.NET, VB.NET).
Podstawowe języki dostarczane przez Microsoft to:
- C#
- Visual Basic .NET
- F#
- C++/CLI (wcześniej Managed C++, wariant C++)
- J# (wariant języka Java stworzony przez Microsoft)
- JScript .NET (kompilowany wariant języka JScript)
Inne istotne języki programowania to:
- COBOL
- Delphi (Delphi.NET – wersja 8, od 2008 roku Delphi nie wspiera .NET)
- Eiffel
- Fortran
- Lisp
- Nemerle (opracowany przez wrocławskich naukowców)
- Perl
- Python
- Smalltalk
== Standardy środowiska .NET ==
W sierpniu 2000 roku Microsoft, Hewlett-Packard i Intel wspólnie złożyli specyfikację Common Language Infrastructure oraz języka C# do ECMA jako propozycję standardu. Prace nad tymi dokumentami prowadzone były w ramach komitetu TC39 w podgrupach TG3 i TG2, przy współpracy m.in. IBM i Fujitsu. Ostatecznie zatwierdzono je w grudniu 2001 roku jako ECMA-334 (C#) i ECMA-335 (CLI), a opis techniczny jako TR/84, który następnie przeszedł do akceptacji przez ISO.
W kwietniu 2003 roku 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 drugą wersję swoich standardów.
=== Technologie ===
Platforma .NET wiąże się z kilkoma technologiami pochodnymi, w tym ADO.NET, służącym do obsługi baz danych, oraz ASP.NET, dedykowanym do tworzenia dynamicznych stron internetowych.
== Implementacje ==
Microsoft .NET Framework – darmowe środowisko udostępniane przez Microsoft,
Mono – projekt Novelli na licencji Open Source,
DotGNU Portable.NET – implementacja powstająca w ramach projektu GNU.
== Środowiska programistyczne ==
Głównym środowiskiem programistycznym stworzonym przez Microsoft dla platformy .NET jest Microsoft Visual Studio, które umożliwia programowanie w różnych językach. Oprócz niego, istnieją także inne środowiska współpracujące z .NET, m.in. komercyjne rozwiązanie firmy Borland, a także opensource’owe środowiska MonoDevelop oraz SharpDevelop.
W 2005 roku wydano drugą wersję środowiska .NET Framework 2.0, a wraz z nią udostępniono darmowe zintegrowane środowisko programistyczne Visual Studio 2005 Express, które składa się z kilku odrębnych 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 ==
Istnieją różne wersje platformy .NET:
== Zobacz też ==
- C#
- .NET Compact Framework
- Paint.net
== Przypisy ==
== Linki zewnętrzne ==