Sieć z kropką - co, jak, dlaczego?

.Net i narzędzia programistyczne

Uzupełnieniem architektury .Net są narzędzia do budowy komponentów. Najważniejsze z nich jest Visual Studio .Net (VS .Net). Jest to jedno z najlepszych zintegrowanych środowisk programistycznych (Integrated Development Environment - IDE) na rynku. W szczególności słowo "zintegrowane" nabiera głębokiego znaczenia, bo VS .Net jest doskonale powiązane z .Net Framework.

Na przykład napisanie lokalnego komponentu (tj. takiego, który do działania wymaga zainstalowania go na lokalnej maszynie) i pisanie usługi Web różni się praktycznie tylko typem projektu. Zależnie od tego, czy komponent ma udostępniać usługę lokalnie lub sieciowo, jedyną różnicą jest sposób udostępniania interfejsu swoim użytkownikom. VS .Net posiada mechanizm wspierania .Net Framework. Kiedy ktoś buduje usługę Web, VS .Net dodaje cały kod do komunikacji z wykorzystaniem SOAP, zaś w przypadku lokalnego komponentu, zamiast tego zapewnia interfejsy bezpośrednio do CLR.

Jednym z ciekawszych i całkiem nowych elementów .Net jest język C#. Jest on tyleż często, co niesłusznie porównywany z Javą. Prawdą jest, że składnia C# wywodzi się z Javy i C++, ale taki był cel Microsoftu. Twórcy języka chcieli po prostu trafić do społeczności programistów piszących w Javie czy C++. To podobieństwo składniowe nie jest jednak najważniejszym aspektem języka. Najciekawsza jest jego ścisła integracja z .Net Framework.

Cały system typów C# jest wspomagany bezpośrednio przez CLR (C# dodaje jedynie typ wyliczeniowy). Biblioteki klas .Net Framework są dostępne bezpośrednio za pomocą słowa kluczowego using. C# również daje możliwość używania tzw. atrybutów języka (language attributes), pozwalających na dodawanie metainformacji do elementów programu, takich jak klasy czy argumenty metod (inne języki .Net również na to pozwalają). Takie atrybuty są obiektami klasy System.Attribute, które można wywołać podczas działania programu.

Na przykład, jeżeli programista doda atrybut Serializable do klasy C, to podczas działania programu będzie on mógł wywołać metodę obiektu System.Attribute.Serializable, aby zapisać obiekty klasy C do pliku. Atrybuty języka to realizacja koncepcji zwanej aspect programming.

Strategicznie o .Net

.Net mógłby się wydawać zbiorem technologii naprędce poskładanych, aby umożliwić Microsoftowi wejście na rynek SOA (Service Oriented Architecture). Patrząc jednak na historię rozwoju .Net, staje się oczywiste, że Microsoft jest jednym z ważniejszych, jeśli nie najważniejszym, motorem napędowym nowego sposobu myślenia o systemach korporacyjnych. Microsoft udowodnił w przeszłości, że potrafi bardzo szybko rozwinąć nowe technologie, jeżeli tylko uzna je za strategiczne. Najlepszym przykładem tego może być casus narzędzi internetowych - Microsoft, mimo początkowego zapóźnienia, bardzo szybko nadrobił straty.

W przypadku .Net Microsoft nie musi doganiać rynku. Przeciwnie, w dziedzinie SOA jest jednym z jego liderów. Czego w związku z tym możemy spodziewać się w niedalekiej przyszłości?

Po pierwsze, Microsoft użyje .Net Framework jako platformy dla własnych produktów. Osiągnie w ten sposób dwa cele: udowodni, że ta platforma jest dostatecznie dojrzała dla aplikacji korporacyjnych, a jednocześnie spopularyzuje ją. Jednym z tego efektów będzie to, że droga do współpracy między produktami nie będzie wiodła przez tzw. piekło DLL (DLL hell). Ktokolwiek pisze program używający komponentów COM, wie, jak dużym to będzie ułatwieniem.

Następna rzecz, której należy oczekiwać, to kolejna generacja Visual Studio. Jeżeli krok naprzód względem dzisiejszego VS .Net będzie taki, jak postęp między VS 6.0 a VS .Net, to wreszcie my - autorzy aplikacji biznesowych - będziemy mogli skupić się na projektowaniu systemów opartych na SOA, a nie na pisaniu programów. Najważniejszym dodatkiem do następnej generacji VS .Net powinny być graficzne narzędzia do budowy komponentów. Innymi słowy, powinniśmy się spodziewać, że Microsoft zacznie aktywnie walczyć o pozycję lidera w budowie oprogramowania opartego na modelowaniu (model-driven development).

Cokolwiek można by powiedzieć o firmie Microsoft - informatycy z Redmond znają się na oprogramowaniu.

Wojtek Kozaczyński do niedawna pełnił funkcję Director of Application and Architecture Frameworks w firmie Rational. W ostatnich dniach objął funkcję Architect w Prescriptive Architecture Guidance Group w firmie Microsoft. Będzie odpowiedzialny za techniczną strategię grupy.


TOP 200