.NET Framework
Z Wikipedii
.NET Framework w skrócie .NET (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. Powszechnie uważa się, że powstanie .NET to reakcja firmy na sądowy zakaz samodzielnego modyfikowania Javy autorstwa firmy Sun. 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#, 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.
.NET jest strategicznym kierunkiem rozwoju oprogramowania w Microsofcie: ogłosił on, ż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. W 2006 roku okazało się to jednak nieprawdą, gdyż tylko niewielki procent nowej wersji Windows korzysta z .NET.
W skład platformy wchodzą:
- kompilatory języków wysokiego poziomu - standardowo C++/CLI, C#, Visual Basic .NET, J#
- kompilator kodu zarządzanego wraz z debugerem
Spis treści |
[edytuj] .NET jako rozwiązanie problemów z API
Aplikacje w obecnie funkcjonujących systemach operacyjnych 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.
[edytuj] Bloki składowe platformy .NET
- 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
[edytuj] Języki programowania
Istotną 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 bogatej biblioteki .NET.
Obecnie ponad 40 języków programowania jest zgodnych z .NET. 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 (np. Delphi.NET, VB.NET itd.).
Podstawowe języki dostarczane przez Microsoft:
- C#
- Visual Basic .NET
- C++/CLI (wcześniej Managed C++, wariant C++)
- J# (wariant języka Java opracowany przez Microsoft)
- JScript .NET (kompilowany wariant języka JScript)
Pozostałe ważniejsze języki programowania:
- COBOL
- Delphi (Delphi.NET - od wersji 8 środowiska)
- Eiffel
- Fortran
- Lisp
- Nemerle (opracowany przez wrocławskich naukowców)
- Perl
- Python
- Smalltalk
[edytuj] Standardy środowiska .NET
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 (CLI) i ECMA-335 (C#), 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.
[edytuj] Technologie
Platforma .NET niesie ze sobą kilka pochodnych technologii. Można tu wymienić ADO.NET, ułatwiający dostęp do baz danych, oraz ASP.NET, służąca do budowania dynamicznych stron WWW.
[edytuj] Implementacje
W chwili obecnej najbardziej znane platformy .NET to:
- Microsoft .NET Framework - darmowe środowisko udostępniane przez Microsoft
- Mono - projekt Novella na licencji Open Source
- DotGNU Portable.NET - implementacja powstająca w ramach projektu GNU
[edytuj] Środowiska programistyczne
Flagowym produktem jest tu Microsoft Visual Studio .NET, umożliwiające pisanie w kilku językach programowania, istnieje jednak wiele innych komercyjnych narzędzi (jak choćby firmy Borland). Środowisko open source rozwija środowisko MonoDevelop, jednak jest ono wciąż we wczesnej fazie rozwoju. Innym środowiskiem zastępczym dla wspomnianego MS VS jest 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).
[edytuj] Wersje
Ponieważ platforma jest stale rozwijana, istnieją jej kolejne wersje:
- .NET Framework 1.0 - ukazała się 01.2002
- .NET Framework 1.1 - ukazała się 04.2003, System Windows Server 2003 ma domyślnie instalowaną tę wersję
- .NET Framework 2.0 - ukazała się 11.2005
- .NET Framework 3.0 - ukazała się 11.2006
- .NET Framework 3.5 - ukazała się 11.2007
- .NET Framework 4.0 - planowana na 11.2008
Każda z platform ukazuje się jeszcze przed oficjalnym wydaniem w postaci wersji BETA. Najnowsza wersja dostępna jest pod adresem Microsoftu.
[edytuj] Zobacz też
[edytuj] Linki zewnętrzne
- Witryna .NET na stronach Microsoftu (pl)
- Witryna .NET na stronach Microsoftu (en)
- .NET Framework w witrynie MSDN (en)
języki wspierane standardowo przez VS: C# · Visual Basic .NET · C++/CLI · J# · JScript .NET
inne języki i środowiska: A# · Boo · F# · IronLisp · IronPython · IronRuby · Nemerle · Phalanger · Windows PowerShell
alternatywne implementacje platformy: Mono · .NET Compact Framework · Silverlight · SSCLI
Windows APIs: Windows API : Win16 • Win32 • Win32s • Win32 dla 64-bit Windows
Grafika: DirectX • Direct3D • DirectDraw • Graphics Device Interface (GDI) • GDI+ • Desktop Window Manager • ClearType • Windows Presentation Foundation • Windows Image Acquisition
Dźwięk: DirectSound • DirectMusic • XACT
Multimedia: DirectShow • Media Foundation • Windows Media
Dostęp danych: Microsoft Data Access Components • ActiveX Data Objects • OLE DB • ADO.NET • Entity Framework
Komunikacja: Winsock • Remote Application Programming Interface • Telephony Application Programming Interface
Zarządzanie: Windows Management Instrumentation
Model komponentu: ActiveX • Component Object Model (COM) • COM+ • Distributed Component Object Model • Dynamic Data Exchange • Object Linking and Embedding • .NET
Rozwój sterownika: User-Mode Driver Framework • Kernel-Mode Driver Framework • Windows Driver Foundation • Windows Driver Model
Bezpieczeństwo i dyskrecja: Cryptographic Application Programming Interface • Windows CardSpace
.NET: .NET Framework • ASP.NET • ADO.NET • .NET Remoting • Silverlight • Windows Communication Foundation • Windows Presentation Foundation • Windows Workflow Foundation • Windows CardSpace • Managed DirectX
Wstrzymane lub anulowane: WinFS (Windows Future Storage)