Studio w sieci

Microsoft zaprezentował wersję beta 1 pakietu Visual Studio.NET - następcy Visual Studio 6.0.

Microsoft zaprezentował wersję beta 1 pakietu Visual Studio.NET - następcy Visual Studio 6.0.

Chcąc krótko scharakteryzować pakiet beta VS.NET, można powiedzieć, że jest to pierwsze narzędzie RAD, które zaciera różnice między językami programowania. Programista może skupić się na tworzeniu rozwiązania, a nie nad tym, w jaki sposób połączyć różne fragmenty aplikacji. Może też bez większych trudności łączyć starsze rozwiązania z nowymi. Programista może również połączyć kod intensywnie korzystający ze wskaźników z kodem zarządzalnym.

VS.NET to wspólne środowisko IDE dla wielu różnych języków - Visual C, Visual Basic, nowego języka C#, a także częściowo dla Visual FoxPro. Po uruchomieniu pakietu VS.NET, programista może ustawić swój profil, w którym określi wygląd okien, skróty klawiszowe itp. Dostępne są predefiniowane zestawy dla programistów używających dotychczas VB, VC czy InterDev.

Beta 1 ma duże wymagania sprzętowe. Bardzo ważna jest duża ilość wolnej pamięci i szybki procesor. W zasadzie można już pracować z Pentium II 266 ze 128 MB RAM, ale do wygodnego testowania aplikacji przyda się co najmniej 3 razy więcej pamięci. Nie należy zapomnieć o ustawieniu dużej ilości pamięci wirtualnej! Zdarza się tak, że po chwili pracy VS.NET i NET.Framework zajmują ok. 200 MB. Microsoft zapewnia, że wersja ostateczna będzie miała mniejsze wymagania sprzętowe.

Trzeba zaznaczyć, że pakiet w opisywanej formie jest wczesną wersją beta produktu, mimo to działa w miarę stabilnie i umożliwia zapoznanie się z nowymi narzędziami, które mają szansę stać się podstawowym elementem składowym przyszłej architektury Windows.

Pomoc

Sporo zmian można dostrzec w systemie pomocy i zestawie MSDN (Microsoft Developers Network). W środowisku IDE jest dostępne małe okno pomocy, w którym są pokazywane odsyłacze do rozmaitych tematów. W przypadku edycji kodu wyświetlane są np. odsyłacze do opisu danego słowa kluczowego czy funkcji (szkoda, że nie jest prezentowany również krótki jej opis). Warto dodać, że na wolniejszych procesorach wyłączenie dynamicznej pomocy bardzo usprawni pracę w środowisku.

Wyglądem dokumentacja przypomina rozwiązanie przyjęte w Visual C 4.0. Przykładowo, lista wyszukiwanych tematów jest prezentowana w dolnej części okna, a nie po prawej stronie, jak w MSDN z Visual Studio 6.0. Programista może zdecydować, czy pomoc jest otwierana w tym samym oknie co IDE, czy jako oddzielna aplikacja.

Edytor

Znacznie usprawniono edycję kodu w C# i VB. Oprócz wszechobecnej technologii IntelliSense, podpowiadającej możliwe zakończenia danego wyrażenia, można łatwo "zwijać i rozwijać" definicje klas czy wręcz kod procedur i funkcji. Środowisko zapamiętuje, które elementy są zwinięte, tak że programista może znacznie "skrócić" przeglądanie kodu.

W edytorze kodu źródłowego na bieżąco są podkreślane błędy składniowe, podobnie jak w przypadku błędów ortograficznych w Word. Jest to znacznie wygodniejszy mechanizm niż ten z VB 6.0, gdzie pojawia się okno dialogowe z komunikatem Syntax Error.

Projekty

VS.NET pozwala na tworzenie wielu typów projektów. Wszystkie elementy projektu są pogrupowane w tzw. rozwiązania, podobnie jak InterDev 6.0. Projekty to tak naprawdę specjalna konfiguracja danego kompilatora. W przypadku VB można tworzyć np. aplikacje konsolową, usługę Web czy kontrolkę. Analogiczne projekty są dostępne w C#. W C++ są dwie główne grupy projektów - aplikacje korzystające z .NET lub klasyczne aplikacje Win32. Jednym z typów rozwiązań, jakie można utworzyć w VS.NET, jest także pakiet instalacyjny i mechanizm umożliwiający automatyczne instalowanie oprogramowania w sieci korporacyjnej.

Ciekawym pomysłem jest dostarczenie nie tylko kreatorów pozwalających szybko wygenerować szkielet aplikacji w konkretnym języku, ale także gotowych wzorców (szablonów) całego rozwiązania klasy enterprise, gdzie od razu narzucana jest pewna organizacja i podział projektu. Elementem każdego z projektów może być jego model, przygotowany w specjalnej wersji Visual Modeler - okrojonej wersji pakietu Rational Rose. Prawdopodobnie VS.NET będzie miało specjalne interfejsy, pozwalające na łatwą integrację z innymi pakietami do modelowania aplikacji.

Jeśli chodzi o interfejs aplikacji, to VS.NET ma kilka rozwiązań. Najbardziej elastyczny jest interfejs oparty na standardowych elementach Windows, tzw. bogaty klient. Wtedy rozwiązanie korzysta ze specjalnej biblioteki WinForms (w zasadzie ze specjalnej przestrzeni nazw). W przypadku "najcieńszego" klienta mogą być wykorzystywane usługi WebForms, gdzie zdarzenia są obsługiwane po stronie serwera, a klient otrzymuje kod zgodny ze standardem HTML 3.2. Oczywiście możliwe są także interfejsy "wagi" pośredniej, np. dla DHTML, gdzie część operacji wykonują skrypty po stronie klienta (sprawdzanie poprawności danych), a część kod po stronie serwera (zapis informacji do bazy danych).

Jedną z ważniejszych zalet VS.NET jest "wymuszenie" na programiście rozdzielenia warstwy prezentacji od pozostałych składników projektu. W ten sposób dla jednej aplikacji może powstać zarówno interfejs oparty na WinForms, jak i WebForms.

Interfejs do tworzenia elementów bazodanowych

Bazy danych tworzone w VS.NET opierają się na mechanizmie ADO.NET - następcy ADO. Jest to kolejna wersja ADO, która integruje informacje dostarczane przez tzw. providerów OLE DB z danymi w formacie XML, tak że programista może samodzielnie decydować, w którym formacie najwygodniej jest mu przetwarzać informacje.

Nowym elementem ADO.NET jest DataSet, czyli wirtualna baza danych, która może łączyć informacje pochodzące z różnych źródeł (może też być odwzorowaniem bazy danych z serwera SQL). DataSet ma możliwość definiowania więzów i określania sposobu odczytywania danych. Można dostroić DataSet tak, by jak najmniej informacji było pobieranych za pośrednictwem sieci. Środowisko automatycznie generuje - dla danego zdania SQL ("narysowanego" przy użyciu specjalnego interfejsu) - odpowiednie procedury do wstawiania czy edycji kodu i w pełni samodzielnie określa DataSet. Można także określić, które z procedur przechowywanych mają być wykorzystywane i współpracują z określonym DataSet.

Co ważne, w ADO.NET możliwa jest daleko posunięta kontrola typów, co zapobiega dużej liczbie błędów programistycznych, a zarazem przyspiesza działanie aplikacji.

Co z komponentami?

W VS.NET można wykorzystywać istniejące komponenty lub przekształcać je w nowe, np. rekompilując je tak, by ich kod był zarządzalny. Warto dodać, że duża część istniejących kontrolek ActiveX może być w programach pisanych w VS.NET, zarówno w VB, jak i C#/C++. Niektóre kontrolki odmawiają jednak współpracy z wersją beta tego środowiska.

W interfejsie VS.NET nie ma większej różnicy między kontrolkami a usługami Web. Kontrolki przenosi się, wybierając je z tzw. palety narzędziowej (Toolbox). Usługi Web czy inne elementy są udostępniane przez serwer ze specjalnej przeglądarki Server Explorer. Co ciekawe, po przeniesieniu kontrolki licznika analizującego wydajność, VS.NET automatycznie utworzy listę, na której będzie on prezentowany.

Dla każdego przeniesionego elementu VS.NET tworzy odpowiednie zmienne i powiązania pomiędzy elementami. Warto dodać, że część kodu zarządzana przez IDE jest oznaczona w specjalny sposób, ale użytkownik może ją zmienić. Jeżeli zachodzi potrzeba wprowadzenia poprawek, można skorzystać z okna właściwości albo zmienić dany fragment pliku. Jeżeli poprawiony kod ma błędy składniowe, nie jest możliwa graficzna prezentacja formatki.

Gdzie się podział InterDev?

W pakiecie VS.NET nie ma oddzielnego narzędzia do projektowania witryn ASP+. Dzięki temu, że w ASP+ oddzielono kod witryny od kodu obsługującego zdarzenia, stronę ASP+ można utworzyć w VB czy w C#.

Istnieje wspólny interfejs do edycji stron HTML i projektowania ich wyglądu. Interfejs pozwala na dwa tryby pracy: liniowy, gdzie za rozkład elementów odpowiada ostatecznie przeglądarka, i taki, gdzie można określić raster i dokładnie rozmieszczać elementy na stronie HTML (tak jak na formatce czy oknie dialogowym).

Twarde VC++

Visual C++ w wersji 7 oprócz tego, że pozwala przy odpowiednim pisaniu kodu na tworzenie zarządzalnych aplikacji korzystających z mechanizmu CLR .NET czy usług Web, zawiera wiele modyfikacji pozwalających tworzyć bardzo wydajny kod. Ma także sporo rozszerzeń ułatwiających programistom codzienną pracę.

Dostępne są szablony serwerów ATL, pozwalające tworzyć niemal dowolne obiekty typu COM - zarówno ISAPI, będące rozszerzeniem IIS, jak i usługi Web oparte na protokole SOAP. Serwery ATL wspierają tzw. pliki matrycy. Są to specjalne pliki HTML, których pewne elementy są zastępowane w wyniku działania serwera ATL.

W VC++ można wykorzystywać atrybuty, co bardzo upraszcza tworzenie klas COM. Atrybuty, tak jak słowa kluczowe C++, są rozpoznawane podczas kompilacji i zamiast nich jest "podstawiany" odpowiedni kod. Co ważniejsze, "dostarczyciel" atrybutów może znajdować się poza główną klasą lub projektem czy wręcz niektóre jego cechy mogą być znane dopiero w trakcie wykonywania programu.

Atrybuty posłużyły także do realizacji wielu elementów wbudowanych w COM+. W dużym stopniu dzięki temu mechanizmowi skrócił się kod IDL definiujący interfejsy. Co najważniejsze, programista może tworzyć własne atrybuty i w ten sposób rozszerzać język C++.

W VC++ ujednolicono model obsługi zdarzeń. Niemal w ten sam sposób pisze się kod obsługujący zdarzenia w klasach C++, obiektach COM czy w kodzie zarządzalnym .NET.

Wprowadzono też kilka rozszerzeń do C++. Wzorce mogą być parametryzowane przy użyciu innych zmiennych. Na poziomie klasy bazowej można zablokować przesłanianie określonych funkcji. VC++ 7.0 może wykorzystywać rozszerzone zestawy instrukcji procesorów (zarówno MMX, SSE, SSE2, jak i 3DNOW!). Wbudowany asembler pozwala na stosowanie tych instrukcji we wstawkach w kodzie maszynowym.

W bibliotekach C Run Time można włączyć sprawdzanie błędów w czasie wykonania. VC 7.0 zawiera mechanizm umożliwiający wznowienie działania programu w momencie przepełnienia stosu.

Istotne zmiany wprowadzono też w bibliotece MFC. Po pierwsze, w MFC można tworzyć interfejs, taki jaki ma Windows 2000. Znacznie rozbudowano system pomocy - Microsoft zdecydował się, by do dokumentacji MFC dodać krótkie przykłady ilustrujące wykorzystanie konkretnych metod klas MFC. Część kodu MFC, zwłaszcza podstawowe, użytkowe klasy, takie jak CString czy Crect, będą oparte na środowisku .NET. Oznacza to, że będą wykorzystywać mechanizmy CLR. Jednak należy podkreślić, że nie wiadomo czy klasy te zostaną przebudowane tak, by aplikacje MFC były kodem zarządzalnym.

Fenomen Fox Pro

Przyglądając się z boku Visual Fox Pro, można zaryzykować stwierdzenie, że jest to język od dawna martwy, wypierany przez coraz nowsze wersje uniwersalnych pakietów RAD. Jednak okazuje się, że w rzeczywistości nadal w Visual Fox Pro powstają nowe aplikacje. Co więcej, do tego środowiska są przenoszone istniejące programy. Język FoxBase był tworzony z myślą o lokalnych aplikacjach bazodanowych. Co prawda pewne jego rozwiązania nie pasują do aplikacji typu klient/serwer, ale w przypadku prostych programów jednostanowiskowych trudno o wygodniejsze narzędzie.

W VS.NET Beta 1 jest dostępna kolejna wersja Visual Fox Pro. Wydawać by się mogło, że jest to pakiet niemal zupełnie oddzielony od zintegrowanego środowiska VS.NET. Tak jak w poprzednich wersjach, po kliknięciu na charakterystyczną ikonę lisa otwierane jest okno Command. Jednak do istniejącego rozwiązania tworzonego w Visual Studio można dodać projekt Fox Pro, jako element tworzący warstwę środkową aplikacji (gdy potrzebny jest szybki i mały motor bazodanowy, działający na lokalnej maszynie). Wtedy dany składnik edytuje się bez opuszczania wspólnego IDE.

Już po rozpoczęciu pracy z VFP programistę czekają miłe niespodzianki. VFP 7.0, tak jak pozostałe elementy pakietu Visual Studio, ma wbudowaną technologię IntelliSense, co pozwala, by edytor kodu podpowiadał np. elementy klasy czy nazwy tabel/pól. Można wreszcie korzystać z wczesnego wiązania do obiektów COM, co umożliwia wykrycie dużej liczby błędów literowych już na etapie kompilacji. Większość poleceń, które dotychczas pracowały na bieżącym obszarze roboczym, ma w tej chwili specjalną klauzulę IN, pozwalającą wybrać konkretny obszar, bez konieczności przełączania obszaru domyślnego. Prawdopodobnie w kolejnej wersji beta będzie dostępna także kontrola typów zmiennych (na etapie kompilacji).

VFP 7.0 wprowadza wiele nowych zdarzeń, pozwalających oprogramowywać własne rozszerzenia pakietu. Przykładowo, kontener będący abstrakcją bazy danych udostępnia zdarzenia wyzwalane w momencie modyfikacji nazwy tabeli czy tworzenia nowego widoku.

Do VFP 7.0 dołączono provider OLE DB, umożliwiający manipulowanie bazą DBC. W ten sposób inne aplikacje mogą korzystać z bazy DBC bez pośredników.

Tworzenie interfejsu w VFP zostało również ułatwione i dostosowane do współczesnych wymagań. Nie jest już konieczne tworzenie standardowych interfejsów, które niemal dla każdej aplikacji wyglądają podobnie. VFP ma np. nowe zdarzenie, wyzwalane w momencie, gdy mysz znajduje się nad danym elementem. Niemal wszystkie kontrolki zyskały wiele nowych właściwości i metod określających sposób wizualizacji.

Także w VFP Microsoft wprowadził pełną integrację pomiędzy XML a bazą danych. VFP 7.0 pozwala przekształcać plik XML w kursor bazodanowy. Zmiany w takim kursorze mogą być z powrotem przesłane do pliku XML.

Zdarzenia z VFP mogą być przekazywane do dowolnego obiektu COM. Co więcej, można powiązać metody interfejsu VFP z serwerem zdarzeń COM. W ten sposób można utworzyć obiekt odpowiadający zbiorowi rekordów w ADO.NET, a następnie związać z nim obiekt VFP, który będzie obsługiwał błędy i reagował na zmiany położenia bieżącego rekordu. W VFP 6.0 wymagało to dużej sprawności kodowania. W VFP 7.0 jest to operacja bardzo prosta.

Warto podkreślić, że VFP 7.0 może korzystać z możliwości .NET, ale de facto jest to korzystanie tylko w "jedną stronę". Nie ma możliwości, by aplikacja VFP była tzw. kodem zarządzalnym bądź wykorzystywała pewne zaawansowane możliwości DataSet z ADO.NET. Natomiast Microsoft planuje udostępnienie narzędzi ułatwiających przekształcanie aplikacji Fox Pro w usługi Web.

Przed tygodniem opublikowaliśmy najnowsze informacje o strategii .NET Microsoftu. Za tydzień zamieścimy drugą część artykułu o pakiecie Visual Studio.NET, dotyczącą nowych cech Visual Basicu i Visual C związanych z platformą .NET, a także nowego języka programowania C#.

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

TOP 200