Języki programowania

Opulikowano: 24 sierpnia 2004 r. | Zaktualizowano: 29 grudnia 2010 r.

Główną cechą, która wyróżnia platformę .NET wśród innych środowisk programistycznych, jest wsparcie wielu języków programowania. Umożliwia to grupom programistów o różnych umiejętnościach tworzenie komponentów oprogramowania w wybranych językach, a następnie połączenie opracowanych komponentów w dobrze współpracującą całość.

Wraz z wprowadzeniem CLR programiści uzyskali możliwość wyboru spośród szerokiej palety języków, co pozwala im programować w języku najbardziej odpowiadającym ich umiejętnościom i najlepiej nadającym się do wykonania otrzymanego zadania. Współpraca fragmentów kodu napisanych w różnych językach możliwa jest ze względu na to, że każdy język zgodny z platformą .NET Framework kompilowany jest do kodu MSIL, uruchamianego następnie w środowisku CLR.

Do języków platformy .NET zalicza się języki: Visual Basic, Visual C++ oraz Visual C#.

*

Zawartość strony

Visual C# .NETVisual C# .NET

Visual Basic .NETVisual Basic .NET

Visual C++ .NETVisual C++ .NET

Python .NETPython .NET

Wskazówki dotyczące wyboru językaWskazówki dotyczące wyboru języka

Porównanie .NET z J2EEPorównanie .NET z J2EE

 

Visual C# .NET

C# to jedyny język programowania Microsoft, który został zaprojektowany od samego początku specjalnie dla platformy .NET i wspólnego środowiska uruchomieniowego CLR. Chociaż CLR obsługuje wiele języków, to tylko C# był projektowany równolegle z CLR. Te dwie technologie miały na siebie duży wpływ, przez co C# świetnie nadaje się do pisania kodu zarządzanego. Kod zarządzany komponentów platformy .NET, takich jak biblioteki klas i środowisko programistyczne ASP.NET, został napisany właśnie w języku C#.

C# jest znacznie prostszym językiem niż C++, jednak — jak sama nazwa wskazuje — należy do rodziny języków C. Oznacza to, że ma wiele cech wspólnych z C/C++, których nie mają języki takie jak Visual Basic. Na przykład C# rozróżnia wielkie i małe litery, a VB nie. C# wymaga od programistów jawnej konwersji pomiędzy typami danych, a Visual Basic dokonuje niektórych konwersji automatycznie. Składnia języka C# jest podobna do składni języków C++ i Java. C# ma jednak w stosunku do C++ kilka dodatkowych cech obiektowych, takich jak właściwości, atrybuty, delegaty czy zdarzenia.

W języku C# można także tworzyć kod „niebezpieczny”. W C# można na przykład uzyskać bezpośredni dostęp do pamięci zaalokowanej dla bufora i przeglądać tę pamięć przy użyciu wskaźników. Określenie „niebezpieczny” może wydawać się dość szokujące, jednak nie taki diabeł straszny, jak go malują. Niebezpieczny kod nie jest kodem, który jest źle napisany i ma luki. Nazywany jest „niebezpiecznym” dlatego, że niemożliwe jest sprawdzenie, czy kod bezpośrednio operujący na pamięci wykona niedozwoloną akcję.

Cechy języka Visual C# .NET

  • Wsparcie wszystkich typów danych CTS
  • Obsługa przekazywania parametrów przez referencje
  • Obsługa parametrów wyjściowych. W języku C# programiści mogą tworzyć para¬metry wyjściowe, wymagające inicjalizacji przed zakończeniem wykonywania funkcji, w której zostały zdefiniowane
  • Przeciążanie operatorów
  • Możliwość stosowania wskaźników i bezpośredniego operowania na pamięci
  • Dokumentacja tworzonych rozwiązań w kodzie źródłowym w języku XML

Zobacz też:

Do początku stronyDo początku strony

 

Visual Basic .NET

Visual Basic jest uważany za najbardziej popularny język programowania aplikacji dla Windows. W wersji Visual Basic .NET wprowadzono do języka wiele zmian. Zmiany objęły między innymi sposób deklaracji zmiennych i funkcji, sposób tworzenia i usuwania obiektów, domyślny sposób przekazywania parametrów funkcji, sposób wywoływania procedur. Największe zmiany dotyczą chyba sposobu obsługi błędów — została usunięta stosowana do tej pory obsługa błędów, często nazywana „on error goto hell”. Visual Basic .NET w pełni wspiera strukturalną obsługę wyjątków.

Dzięki możliwości współdziałania platformy .NET Framework ze starszymi technologiami, kod napisany w Visual Basic .NET może wywoływać istniejący kod, napisany w starszych wersjach języka Visual Basic (i odwrotnie), dzięki czemu aplikacje na platformie .NET mogą wykorzystywać starsze moduły aplikacji.

Na platformę .NET przeniesiono jedynie główną odmianę języka Visual Basic. Nie został przeniesiony język skryptowy Visual Basic Scripting Edition (znany pod nazwą VBScript), wykorzystywany do tworzenia skryptów administracyjnych, stron ASP i dynamicznej zawartości stron internetowych oraz język Visual Basic for Applications (VBA) — język skryptowy wykorzystywany do pisania makr dla aplikacji rodziny Office.

Cechy języka Visual Basic .NET

  • Domyślna inicjalizacja zmiennych
  • Typy domniemane i późne wiązanie (nie trzeba określać typu zmiennej przed jej użyciem)
  • Bardziej intuicyjne stosowanie typów wyliczeniowych
  • Domyślny dostęp publiczny
  • Dostęp do współdzielonych elementów składowych klas może być realizowany zarówno poprzez nazwę klasy, jak też przez zmienną instancji klasy zawierającej te elementy
  • Możliwość stosowania parametrów opcjonalnych
  • Strukturalna obsługa wyjątków
  • Parametryzowane właściwości
  • Funkcje obsługi zdarzeń mogą deklarować obsługiwane przez siebie zdarzenia
  • Redeklaracja składowych w interfejsach

Zobacz też:

Do początku stronyDo początku strony

 

Visual C++ .NET

Visual C++ to bardzo popularny język programowania, nadający się zarówno do tworzenia kodu niskiego poziomu, jak i do pisania aplikacji dla Windows. W podstawowym języku C++ można pisać kod niezarządzany. Jednak w Visual C++ .NET wprowadzono obsługę nowych słów kluczowych i typów danych (zwanych rozszerzeniami Managed Extentions dla Visual C++), które umożliwiają pisanie kodu zarządzanego oraz tworzenie aplikacji w pełni korzystających z możliwości platformy .NET Framework.

Kompilator Visual C++ .NET nadal jest kompilatorem natywnym, co - wraz z zapewnianymi przez CLR możliwościami łączenia nowego kodu zarządzanego z istniejącym kodem niezarządzanym - pozwala programistom C++ nadal stosować dokładnie ten sam język i środowisko, którego używali do tej pory. Dodatkowo w Visual Studio .NET 2003, programiści C++, wykorzystujący rozszerzenia Managed Extensions do tworzenia aplikacji na platformę .NET, mogą stosować te same kreatory interfejsu użytkownika, których używają programiści języków Visual Basic i C#. Wcześniej programiści C++ musieli korzystać z biblioteki MFC lub pisać interfejsy użytkownika ręcznie, co trwało dużo dłużej i było związane z większą liczbą błędów.

Cechy języka Visual C++ .NET

  • Szablony umożliwiające wielokrotne wykorzystywanie kodu i zwiększenie wydajności
  • Wskaźniki dające bezpośredni dostęp do pamięci systemu
  • Wielokrotne dziedziczenie
  • Funkcje wbudowane, umożliwiające dostęp do ważnych funkcji platformy sprzętowej
  • Atrybuty kompilacji, umożliwiające szybkie tworzenie zoptymalizowanego kodu do wielokrotnego wykorzystania
  • Wsparcie kodu 32- i 64-bitowego

Zobacz też:

Do początku stronyDo początku strony

 

Python .NET

IronPython to pełnoprawna implementacja języka Python, zanim więc poruszone zostaną bardziej zaawansowane przypadki jego użycia lub integracji z platformą .NET, warto zrobić bardziej dokładne wprowadzenie do samego języka.

Artykuł ten jest kolejnym z cyklu artykułów poświęconych wsparciu technologii .NET dla dynamicznych języków programowania na przykładzie języka Python.

Do początku stronyDo początku strony

 

Wskazówki dotyczące wyboru języka

  • Przy języku C++ powinni pozostać programiści, którzy dobrze znają ten język i piszą nowe aplikacje natywne. Natomiast programiści, którzy adaptują kod istniejących aplikacji natywnych, przenosząc go do platformy .NET, powinni skorzystać z rozszerzeń Managed Extensions dla C++.
  • Programiści C++, którzy tworzą nowe aplikacje i komponenty, wykorzystywane przez innych programistów, powinni używać języka C# lub rozszerzeń Managed Extensions dla C++.
  • Język C# jest najbardziej atrakcyjny dla programistów, którzy znają Visual C++ lub język Java oraz dla zaawansowanych programistów Visual Basic, którzy tworzą komponenty i szukają łatwego do opanowania języka, wykorzystującego środowisko CLR i biblioteki klas .NET Framework.
  • Programiści Visual Basic, którzy korzystają z bardziej zaawansowanych możliwości języka, mogą uznać C# za przydatne narzędzie dodatkowe.
  • Zaawansowani programiści, korzystający do tej pory z języka Visual Basic i często odwołujący się bezpośrednio do systemu operacyjnego oraz jego funkcji, mogą nadal pisać w tym języku komponenty niższego poziomu, które będą na przykład wykorzystywane przez innych programistów. Jednak ze względu na fakt, że komponenty te będą wykorzystywane przez innych, warto jest zastanowić się nad programowaniem ich w bardziej rygorystycznym języku zorientowanym obiektowo, takim jak C#.
  • C# jest także dobrym wyborem dla programistów, którzy znają już język Java lub J++ i chcą skupić się na pisaniu nowych aplikacji.
  • Język J# .NET powinien spodobać się wszystkim programistom, którzy programowali w języku J++ i dobrze znają składnię języka Java, ale chcieliby przejść na platformę .NET lub przenieść na nią istniejące aplikacje napisane w języku J++.

Do początku stronyDo początku strony

 

Porównanie .NET z J2EE

Firma Sun jest producentem platformy programistycznej, konkurencyjnej w stosunku do platformy Microsoft .NET Framework - Java 2 Enterprise Edition (w skrócie J2EE). Założenia projektowe oraz architektura obydwu platform są podobne, jednak sposób ich implementacji jest całkowicie inny.

Podobne misje

Zarówno platformę .NET, jak i J2EE projektowano z myślą o zwiększeniu produktywności programistów. Cel ten osiągnięto poprzez udostępnienie gotowych komponentów (programiści nie muszą już poświęcać wiele czasu na pisanie procedur niskiego poziomu).

Obydwie platformy cechuje większa niezawodność. Uzyskano ją, ograniczając w językach programowania stosowanie konstrukcji, których użycie często prowadziło do błędów (taką konstrukcją są na przykład wskaźniki, które dają bezpośredni dostęp do pamięci operacyjnej). W obydwu platformach zastosowano również bardziej restrykcyjne modele programowania, wymuszające ścisłe deklarowanie zmiennych. Kolejnym celem, jaki postawiono twórcom tych platform, było zwiększenie bezpieczeństwa. Osiągnięto go dzięki stosowaniu podpisów cyfrowych oraz kontroli praw nadawanych aplikacjom.

Wspólną cechą .NET i J2EE jest także uproszczenie procesu instalacji i wdrażania rozwiązań. Aplikacje, zbudowane w oparciu o te platformy, mogą być automatycznie instalowane na żądanie, a proces instalacji często nie wymaga żadnej interwencji ze strony użytkownika bądź administratora.

Podobna architektura

Ze względu na podobne cele, platformy .NET i J2EE mają także podobną architekturę. W obydwu platformach wprowadzono maszynę wirtualną, wykorzystywaną do sprawdzania, ładowania i wykonywania programów w ściśle kontrolowanym środowisku. Takie rozwiązanie ogranicza możliwości ataków wirusów lub niepoprawnych akcji zaufanego kodu. W przypadku platformy .NET maszyną wirtualną jest CLR, a w przypadku J2EE - maszyna wirtualna Java. Dzięki zastosowaniu w językach programowania ścisłego dopasowania typów oraz modułów odzyskiwania pamięci zmniejszyło się także prawdopodobieństwo wystąpienia błędów.

Biblioteka klas zapewnia programistom wiele przydatnych funkcji, takich jak obsługa uwierzytelniania i wielu protokołów, czy podłączanie się do zewnętrznych źródeł danych. Programiści nie muszą już wszystkiego wymyślać i kodować od podstaw.

Na obydwu platformach można tworzyć tradycyjne aplikacje oraz aplikacje internetowe. Technologią tworzenia aplikacji internetowych na platformie .NET jest ASP.NET, a na platformie J2EE jest to technologia Java Server Pages.

Wybór platformy

Platformy .NET Framework oraz J2EE mają bardzo podobną architekturę oraz możliwości, dlatego decyzja co do wyboru platformy nie zależy od sfery technicznej. Przy wyborze platformy warto zwrócić uwagę na następujące zagadnienia:

  • wsparcie usług internetowych - Java i towarzyszące jej biblioteki klas są starsze niż idea usług internetowych, dlatego Sun musiał przepisać istniejące interfejsy API tak, by wspierały XML i usługi internetowe. W przypadku platformy .NET obsługę XML i usług internetowych zaimplementowano od razu podczas tworzenia platformy .NET,
  • umiejętności programistów - przy wyborze platformy decydujące znaczenie może mieć liczba programistów znających poszczególne języki programowania,
  • dostępność narzędzi - wraz z wprowadzeniem technologii .NET, Microsoft wprowadził także wiele ulepszeń do środowiska programistycznego Visual Studio. Z językiem Java nie są związane żadne środowiska programistyczne, które budziłyby taki entuzjazm programistów, jaki budzi Visual Studio,
  • przenośność i interoperacyjność - aplikacje napisane w języku Java można łatwiej przenosić pomiędzy różnymi platformami. Natomiast wspólne środowisko uruchomieniowe CLR platformy .NET zapewnia większą interoperacyjność między kodem .NET a kodem napisanym dla istniejących platform Windows, niż Java może zapewnić po przeniesieniu na platformę Windows.

Zobacz też:

Przegląd możliwych sposobów zapewnienia interoperacji pomiędzy aplikacjami platformy .NET oraz aplikacjami opartymi na J2EE
https://www.microsoft.com/poland/developer/techniczne/interoperacyjnosc.aspx

Do początku stronyDo początku strony