Visual Studio dla zespołu

Zapowiadana na przyszły rok wersja Visual Studio będzie zawierać rozbudowane narzędzia do pracy grupowej, zarządzania cyklem życia projektu oraz refaktoringu kodu.

Zapowiadana na przyszły rok wersja Visual Studio będzie zawierać rozbudowane narzędzia do pracy grupowej, zarządzania cyklem życia projektu oraz refaktoringu kodu.

Na konferencji TechEd Microsoft zaprezentował wersję Beta 1 pakietu narzędzi programistycznych Visual Studio 2005. Przedstawił także wstępną wersję Visual Studio Team Architect Edition - nowego zestawu narzędzi, którego rolą jest uproszczenie komunikacji między członkami zespołów projektowych - architektów, projektantów, programistów, testerów itd. Nowy pakiet, który ma być częścią Visual Studio Team System, obejmuje funkcjonalnie cały cykl tworzenia aplikacji. Niezależnie, do oferty Redmond będzie wprowadzona niedługo także przebudowana wersja narzędzia do kontroli wersji SourceSafe.

Anonsowane zmiany nie są tego formatu, co różnica pomiędzy Visual Studio 6.0 a Visual Studio .Net. Migracja do Visual Studio .Net 2005 będzie w sumie bezproblemowa - nawet wersja beta otwiera starsze projekty i pozwala na wykonywanie i inspekcję kodu tworzonego w aktualnych wersjach Visual Studio. Co więcej, Microsoft stworzył dedykowane mechanizmy ułatwiające migrację właśnie z Visual Studio 6 (głównie Visual Basic 6) do .Net. Narzędzia ASP .Net 2.0 są zgodne w 100% ze swoim poprzednikiem, zaś w przypadku innych bibliotek .Net Framework różnice są bardzo subtelne. Gdyby jednak okazały się istotne, wersje 1.0, 1.1 i 2.0 narzędzi .Net Framework można instalować "obok siebie", a co więcej, równolegle działające różne wersje mogą nawzajem wywoływać swoje funkcje.

Wysokie C#

Visual Studio 2005 przyniesie kilka istotnych zmian w C# - flagowym języku .Net. Przede wszystkim wprowadzono mechanizm typów ogólnych (generics), które, w uproszczeniu, pozwalają "sparametryzować" definicję klasy określonym typem. Typy ogólne są stosowane w algorytmach zawierających "ogólną" definicję sposobu postępowania, mogącą dotyczyć różnych typów, np. lista "pojemnik" może przechowywać dowolne elementy.

Warto tu podkreślić, że typy ogólne pojawią się wkrótce również w Javie - będą jednak działać zupełnie inaczej. Jeżeli w .Net zostanie zdefiniowany typ "parametryzowany", w wyniku kompilacji powstanie i zostanie odpowiednio skompilowany nowy obiekt typu wskazanego przez parametr. Tymczasem w JDK 1.5 jest wykorzystywana koncepcja opracowana w ramach projektu "Pizza". Typy ogólne obowiązują w niej tylko w czasie kompilacji - potem typ składowy jest zamieniany na Object (ogólny typ danych) i przy każdym dostępie jest wykonywane kosztowne rzutowanie. Rozwiązanie to jest mało wydajne, ale korzyść jest taka, że nie ma potrzeby wprowadzania zmian w maszynie wirtualnej.

W wyniku użycia typów ogólnych w C# 2.0 powstaje wydajny obiekt .Net, który może być analizowany przy użyciu mechanizmów refleksji itp. Cały czas wiadomo że np. jest to lista wartości typu int. Równocześnie w .Net Framework 2.0 będzie dostępna rozbudowana biblioteka realizująca różne struktury danych - stosy, kolejki itp. - zrealizowana jako gotowe do użycia wzorce generics. Dzięki typom ogólnym w C# 2.0 pojawiły się typy z wartością null. Często w programie (zwłaszcza w aplikacjach bazodanowych) trzeba wyróżnić "wartość pustą". W przypadku typów obiektowych było to zawsze możliwe, ale typy proste (np. liczba całkowita) takiej możliwości nie miały. Mechanizm generics pozwala opakować typ prosty w taki sposób, aby miał dodatkową wartość - null. Co ciekawe, dzieje się to niemal bez utraty wydajności.

W C# wprowadzono także iteratory. Uproszczą one tworzenie konstrukcji, za pomocą których programista chce "wyliczyć" pewną kolekcję danych. Nie będzie konieczne, jak w .Net 1.x, stosowanie interfejsu IEnumerable. Ponadto dużą wygodę przyniosą tzw. klasy częściowe. Definicję jednej klasy będzie można rozbić między wiele plików, co zwiększy znacznie elastyczność, np. pozwoli, by część kodów była automatycznie generowana (z czego korzysta IDE z budowanymi projektantami). W Visual Studio 2003 projektanci generowali kod w obrębie klasy. W VS 2005 kod znajduje się już w oddzielnych plikach. W ten sposób kod pisany przez programistę zostaje logicznie oddzielony od kodu generowanego automatycznie. Dodatkowa korzyść polega na tym, że błędy składniowe w kodzie pisanym nie zakłócają funkcjonowania IDE. Także ASP .Net 2.0 korzysta z tego mechanizmu. Klasy częściowe ułatwiają również tworzenie pakietów złożonych z wielu fizycznych plików.

Dzięki specjalnemu operatorowi "::" można odwoływać się do "nadrzędnej" przestrzeni nazw (przydaje się to wtedy, gdy pewna nazwa zostanie przesłonięta). Można tworzyć tzw. aliasy przypisywane różnym wersjom tej samej biblioteki - co pozwala wykorzystać w programie np. różne wersje komponentów. Klasy statyczne pozwalają łatwo zdefiniować obiekty, które nie mogą być tworzone dynamicznie w programie, a mają tylko przechowywać pewne elementy globalne. Właściwościom obiektów można przypisywać różne poziomy dostępu, np. określić, że odczytać wartość właściwości mogą wszystkie klasy, ale już operacja przypisania będzie chroniona. Wszystkie te zmiany sprawiają, że prościej można wyrazić skomplikowane struktury obiektowe, a mimo to kod nadal będzie czytelny.

Pewnym ułatwieniem Visual Studio 2005 będzie możliwość przypisywania bezpośrednio do delegatu (czy zdarzenia) fragmentu kodu, który ma być wywołany za pośrednictwem danego mechanizmu. W .Net 1.1 trzeba było zawsze tworzyć funkcje, co w przypadku krótkich procedur obsługi zdarzeń było mało wygodne.

Visual Basic .Net

Visual Studio dla zespołu

Pasek zadań obok kontrolki pozwala szybko wykonał standardowe operacje na danym obiekcie

W Visual Basic .Net ponownie wprowadzono kilka elementów składni, które były obecne w wersji 6, ale nie pojawiły się w pierwszej wersji Visual Basic .Net. Chodzi tu m.in. o mechanizm "kontynuacji" wewnątrz pętli (co pozwala pominąć pozostałe instrukcje w bloku i od razu przejść do kolejnej iteracji). Także środowisko IDE zawiera specjalne, uproszczone opcje, przypominające te elementy, które były wybierane w czasie kompilowania programów w Visual Basic 6. Deklarując tablicę, można jawnie określić, że dolnym indeksem jest zero, co tylko zwiększa czytelność kodu, bo, niestety, nie można zmienić domyślnej wartości "dolnego" ograniczenia tablicy (wymóg CTS). Dodatkowo wprowadzono także typy liczbowe "bez znaku".

W nowej wersji, podobnie jak w wersji 6, można odwołać się do składowych za pośrednictwem nazwy formatki bez jawnego tworzenia zmiennej danego typu. Mechanizm ten był bardzo wygodny i powszechnie wykorzystywany. W Visual Basic 2005 będzie także dostępna operacja Using, która po zakończeniu korzystania z zasobów (tak samo jak w C#) będzie powodować wywoływanie funkcji Dispose. Podobnie jak w C# 2.0, w Visual Basic .Net 2005 są dostępne: mechanizm typów ogólnych, możliwość przeciążania operatorów arytmetycznych, klasy częściowe itp. Kompilator Visual Basic 2005 będzie mógł generować dokumentację (dotychczas robił to tylko kompilator csc).

Przy okazji warto podkreślić, że samym "jądrem" .Net Framework są dwa elementy: CLS (Common Language Specification) połączony z CTS (Common Type System), które określają zasady współpracy elementów napisanych w różnych językach programowania i CLR - środowiska runtime, które uruchamia kod .Net. Nic nie stoi na przeszkodzie, by język przeznaczony dla .Net wykorzystywał np. tylko CLR i CTS. W ten sposób mogą w .Net istnieć różne języki: nieobiektowe, funkcyjne itp. Język Visual Basic .Net 2005 pozwala stosować pewne struktury składniowe, które powodują, że skompilowany kod nie jest zgodny z CLS (współpracę z innymi aplikacjami .Net zapewnia wspólna warstwa typów - CTS). Niemniej, od kompilatora można zażądać, by zgłosił ostrzeżenie, jeżeli kod Visual Basic .Net będzie niezgodny z CLS.

W celu komercyjnej reprodukcji treści Computerworld należy zakupić licencję. Skontaktuj się z naszym partnerem, YGS Group, pod adresem [email protected]

TOP 200