background image

8

Visual Studio 2005

www.sdjournal.org

Software Developer’s Journal Extra   19

Stefan Turalski

Aplikacje Web w ASP.NET 2.0 

i Visual Studio 2005

Z

 

artykułu dowiesz się czym różni się ASP.NET 

2.0  od  poprzedniej  wersji  ASP.NET  1.1,  na 

które  z  nowości  należy  zwrócić  szczególną 

uwagę,  jakie  korzyści  przynosi  zastosowanie  śro-

dowiska IDE Visual Studio 2005 oraz w jaki sposób 

sam możesz pogłębić swoją wiedzę

W  wciąż  przyspieszającym  świecie,  gdy  czas 

przewidziany  na  implementację  konkretnego  roz-

wiązania jest coraz krótszy, tylko odpowiedni dobór 

technologii  i  narzędzi  może  zapewnić  powodzenie 

przedsięwzięcia.

Celem  stworzenia  nowej,  mocno  rozbudowanej, 

wersji  środowiska  ASP.NET  było  podniesienie  pro-

duktywności  programistów  zajmujących  się  tworze-

niem ogólnie rozumianych aplikacji web.

Postaram  się  pomóc  Ci  w  ocenie  czy  ASP.NET 

i Visual Studio 2005 odpowiadają Twoim potrzebom. 

Czy rzeczywiście możemy mówić o środowisku, któ-

re zapewni poprawę wydajności naszej pracy?

Wprowadzenia słów kilka

Specyfiką projektów informatycznych, których celem 

jest stworzenie rozwiązania – aplikacji web, jest czę-

sto zmieniająca się technologia. Wraz z rozwojem In-

ternetu  rozwijały  się  i  wciąż  się  rozwijają  standardy 

oraz narzędzia wspierające pracę programistów zaj-

mujących się tworzeniem wspomnianych rozwiązań. 

Jeśli  pamiętasz  technologie,  z  których  wywodzi  się 

ASP.NET, czyli tradycyjne strony ASP (Active Server 

Pages),  możesz  też  łatwo  przywołać  wspomnienia 

tego jak wówczas wyglądał proces tworzenia aplika-

cji web. Brak zintegrowanego środowiska, trudności 

z  utrzymaniem  kodu,  integracją  z  źródłami  danych, 

zarządzaniem spójnością rozwijanego produktu, wa-

dy  tego  rozwiązania  można  wymieniać  bez  końca. 

Dla  wielu  programistów  związanych  z  technologa-

mi  firmy  Microsoft  pojawienie  się  środowiska  .NET, 

a  wraz  z  nim  ASP.NET  było  krokiem  w  dobrą  stro-

nę, łatwiej było osiągnąć cel – stworzyć funkcjonal-

ne rozwiązanie.

Programiści, którzy zetknęli się lub wręcz prowa-

dzili  projekty  na  konkurencyjnych  platformach  pro-

gramistycznych  z  pewnością  z  dystansem  podcho-

dzili  wówczas  do  pojawienia  się  nowego  rozwiąza-

nia. Do dziś technologią wybieraną najczęściej przy 

budowaniu rozwiązań klasy korporacyjnej jest J2EE, 

mniejsze projekty często realizowane są z wykorzy-

staniem  PHP  lub  niezliczonych  środowisk  zarówno 

komercyjnych jak i open-source.

Mimo to, przez ostatnie kilka lat technologia .NET 

zyskuje na popularności. W tym miejscu należy za-

dać  sobie  pytanie,  w  którym  kierunku  zdążają  pro-

jektanci Microsoft.

ASP  .NET  pozwala  na  wykorzystywanie  pracy 

programisty dzięki temu, że:

l

 

Wprowadzono  kilkanaście  rozwiązań  pozwala-

jących  na  stworzenie  rozwiązań  tzw.”zero-co-

de” - stworzenie aplikacji web przy użyciu do-

stępnych funkcjonalności, bez konieczności sa-

modzielnego kodowania. Np. Znacznie rozsze-

rzono  możliwości  kontrolek  odpowiedzialnych 

z obsługę danych, profilowanie wyglądu stron, 

logowanie, etc.

l

 

Ułatwiono zarządzanie i administrację rozwiąza-

niami opartymi o ASP.NET 2.0

l

 

Wydajność samego rozwiązania – system oparty 

o technologię w najnowszej wersji działa po pro-

stu szybciej

l

 

Poprawiono  samo  środowisko  Visual  Studio 

2005,  zapewniono  m.in.  lepsze  wsparcie  Intelli-

Sense, budowanie i analizowanie kodu.

Jednym słowem, programista aplikacji web otrzyma 

do  ręki  technologię,  która  znacznie  usprawni  jego 

pracę w większości typowych przypadków (i co waż-

ne nie utrudni ich w tych cięższych sytuacjach).

Postaram  się  udowodnić,  że  jest  tak  rzeczywi-

ście,  kończąc  wstęp  i  przechodząc  do  opisu  po-

szczególnych technologii.

Mniej kodu!

Każdy kto mówi o ograniczeniu ilości kodu, który na-

leży stworzyć w celu otrzymania kompletnego rozwią-

Autor pracuje na stanowisku - projektant oprogramowa-
nia w firmie Silicon & Software Systems Polska. Z tech-
nologią  .NET  i  jej  zastosowaniem  w  złożonych  projek-
tach informatycznych ma do czynienia od 3 lat.
Kontakt z autorem: stefan.turalski@gmail.com

Gdzie szukać informacji

l

  “Introducing Microsoft® ASP.NET 2.0” Dino Esposito 

2005

l

  “ASP.NET 2.0 Beta Preview” Bill Evjen. 2004

l

  Visual Studio Launch: ASP.NET 2.0 

 

http://msdn.microsoft.com/vstudio/tryit/hosted/asp2/

default.aspx

l

  ASP.NET : ASP.NET 2.0 Beta 2 and Visual Web De-

veloper Beta 2

 

http://msdn.microsoft.com/asp.net/beta2/

background image

9

www.sdjournal.org

Software Developer’s Journal Extra   19

zania,  omawia  najczęściej  funkcjonalności  dostępne  „out-of-

box” – już wbudowane w rozwiązanie. Nim jednak przejdziemy 

do  tego  tematu  warto  zgłębić  podstawowe  różnice  pomiędzy 

sposobem w jaki ASP.NET 1.1 i 2.0 zarządzają kodem.

Różnice w modelu kodu

Podstawowym  pojęciem  jest  tu  model  kodu  (ang.  code  mo-
del
). Aby zapewnić możliwość tworzenia  bardziej zaawanso-

wanej logiki, nie wystarczy nam kod na stronie ASPX (ang. co-
de inline
). To czego potrzebuje programista i co oferowało już 

środowisko  w  wersji  1.*  to  kod  klasy  obsługującej  zdarzenia 

i  bardziej  zaawansowaną  funkcjonalność  (ang.code  behind). 

Plik  zawierający  taki  kod  zapewne  znasz  bardzo  dobrze,  to 

z klasy zdefiniowanej w tym pliku dziedziczy kod strony ASPX. 

Z pewnością nie raz dodając kontrolkę na stronie ASPX (w try-

bie desing) zauważyłeś, że środowisko tworzy automatycznie 

wpisy zarówno w kodzie strony jak i w kodzie pliku zawiera-

jącego  logikę.  Co  więcej  w  momencie  uruchomienia  aplika-

cji kod strony ASPX w ASP.NET 1.* jest kompilowany do tym-

czasowej lokalizacji przez przystawkę serwera IIS. Natomiast 

wszystkie  klasy  powiązane  ze  stroną  ASPX,  są  kompilowa-

ne  do  katalogu  /bin  aplikacji  już  podczas  kompilacji.  Jak  ła-

two zauważyć, możliwe jest doprowadzenie do braku spójno-

ści pomiędzy kodem strony i klas realizujących jej logikę. Sam 

proces integracji strony kompilowanej podczas uruchomienia 

i poprzednio stworzonej biblioteki z funkcjonalnością aplikacji 

nie jest banalny, co prezentuje Rysunek 1.

Projektanci  Microsoft  najprawdopodobniej  sami  zauważy-

li trudności wynikające z takiego rozwiązania, co spowodowało 

zmianę modelu zarządzania kodem. Obecnie kod obsługi zda-

rzeń, czy wręcz logikę biznesową można dodać bezpośrednio 

w kodzie strony ASPX. Kod taki oddzielony jest od kodu HTML 

znacznikiem 

<script>

. Oczywiście jeżeli chcemy pozostać przy 

osobnym pliku z samym kodem wciąż mamy taką możliwość. 

Wystarczy  zaznaczyć  podczas  tworzenia  nowej  strony  opcję 

powodującą tworzenie osobnych plików (Rysunek 2.)

Mimo to nie mamy tu do czynienia z sytuacją w której śro-

dowisko  tak  jak  poprzednio  traktuje  pliki  jak  osobne  klasy. 

Wszystko dzięki wprowadzeniu nowego słowa kluczowego – 

partial

.

Klasa oznaczona takim słowem automatycznie może być 

podzielona  pomiędzy  kilka  fizycznych  plików.  Co  rozwiązuje 

problem z zarządzaniem kodem logiki biznesowej, nawet jeśli 

jest on w osobnym pliku.

Przykładowy kod potrzebny w celu wykonania prostej ope-

racji w ASP.NET 1.1 zaprezentowano na Listingu 1 dla porów-

nania kod w 2.0 na Listingu 2. Brak potrzeby inicjowania kon-

rolek  (są  inicjowane  bezpośrednio  w  kodzie  strony  ASPX) 

znacznie upraszcza kod.

Zarządzanie kodem klas logiki biznesowej dodatkowo uła-

twia  wprowadzenie  specjalnego  folderu 

/App _ code

.  Doda-

nie tego folderu do projektu w Visual Studio 2005, a następ-

nie umieszczenie w nim dowolnej klasy spowoduje, że kod tej 

klasy będzie automatycznie zbudowany do osobnego pakietu 

oraz dodany jako referencja do naszej aplikacji web.

Podsumowując, Rysunek 3 prezentuje omówione tu zmia-

ny w koncepcji modelu kodu. Dlaczego projektanci Visual Stu-

dia od razu nie wybrali prostszego rozwiązania pozostanie za-

pewne zagadką...

Rysunek 1. 

Schemat modelu w ASP.NET 1.*

Rysunek 2. 

Zaznaczenie opcji “Place code in separate file” 

spodowuje stworzenie osobnych plików dla kodu i strony

background image

10

Visual Studio 2005

www.sdjournal.org

Software Developer’s Journal Extra   19

Nowe kontrolki

Szybsze  tworzenie  aplikacji  jest  możliwe  także  dzięki  zesta-

wowi kilkudziesięciu nowych kontrolek. Oczywiście postarano 

się także o to, aby zachować wsteczną zgodność z już istnie-

jącymi kontrolkami z wersji ASP.NET 1.1

Do  najciekawszych  z  pewnością  należą  kontrolki  służą-

ce  do  wyświetlania  danych.  Moją  ulubioną  –  stała  się  kon-

trolka 

GridView

,  która  rozszerza  możliwości  DataGrid.  Do-

tychczas  rozwijane  przez  programistów  funkcjonalności,  ta-

kie jak dzielenie na strony czy sortowanie są dostępne bezpo-

średnio dzięki bogatej funkcjonalności tej kontrolki. Udostęp-

nia ona także funkcjonalność bezpośredniego edytowania ko-

mórek, kasowania, wybierania rzędów i kilku innych przydat-

nych funkcji.

Drugą  z  kontrolek  przydatnych  w  obsłudze  danych  jest 

DetailsView

.  Kontrolka  pozwalając  na  przeglądanie  danych 

bezpośrednio  –  rekord  po  rekordzie.  Każdy  kto  miał  okazję 

pracować z Microsoft Access z pewnością kojarzy tego typu 

komponent. Podczas pracy z dużym zbiorem danych, polega-

jącej na edytowaniu lub specjalnym traktowaniu każdego z re-

kordów, jest to jedno z najlepszych rozwiązań.

Dość  często  wykorzystywanym  mechanizmem  będzie 

też  zapewne  osadzanie  bezpośrednio  w  kodzie  kontrolek 

<asp:TreeView>

 lub 

<asp:Menu>

. Stworzenie drzewiastego me-

nu nie będzie już sprawiało kłopotu. Oczywiście wciąż progra-

mista potrzebujący większej kontroli nad menu będzie musiał 

samodzielnie oprogramować taką funkcjonalność. Mimo to dla 

prostych  rozwiązań,  obie  kontrolki  oszczędzają  sporo  pracy 

przy  tworzeniu  własnego  menu.  Element 

<asp:SiteMapPath> 

tworzy natomiast często ostatnio spotykaną ścieżkę wskazu-

jącą  na  naszą  lokalizację  na  stronie.  (np.  Home>Company>

Contact Information).Opanowanie wykorzystania tej kontrolki 

znakomicie ułatwia nawigację na stronie.

Ciekawie prezentują się także odświeżone kontrolki obsłu-

gi źródeł danych. Visual Studio 2005 pozwala na zdefiniowa-

nie  kilku  nowych  typów  danych  źródłowych  (ang.  data  sour-
ces
). Automatyczne wsparcie od środowiska otrzymamy dzię-

ki  kontrolce 

AccessDataSource

,  która  umożliwia  bezpośrednie 

podłączenie  i  wykorzystywanie  plików  Access'a.  Dzieki  kre-

atorowi,  który  uruchamia  się  po  wybraniu  kontrolki 

Object-

DataSource

 możemy stworzyć źródło danych bazujące na  de-

finicji danych pochodzącej z własnoręcznie zdefiniowanej klasy. 

Doświadczonych  w  bojach  z  .NET'em  vie  zaskoczą  zapewne 

kontrolki 

DataSetDataSource

 i 

XmlDataSource

 usprawniające pracę 

z tymi dwoma najpopularniejszymi formatami reprezentacji da-

nych w większości aplikacji web. W budowaniu struktury strony 

pomaga natomiast 

SiteMapDataSource

 – kontrolka służąca do bu-

dowania struktury stron naszego portalu (niestety plik z układem 

stron należy wygenerować samodzielnie).

Rysunek 3. 

Różnice w modelach kodu pomiędzy ASP.NET 1.* i 2.0

Listing 1. 

Przykładowy kod w ASP.NET 1.1

  

public

 

class

 

WebForm1

 

:

 

System

.

Web

.

UI

.

Page

  

{

    

protected

 

System

.

Web

.

UI

.

WebControls

.

Label

 

Label1

;

    

private

 

void

 

Page_Load

(

object

 

sender

                           

System

.

EventArgs

 

e

)

 

{

    

}

    #region Web Form Designer generated code

      

override

 

protected

 

void

 

OnInit

(

EventArgs

 

e

)

      

{

        

InitializeComponent

();

        

base

.

OnInit

(

e

);

      

}

      

private

 

void

 

InitializeComponent

()

      

{

    

        

this

.

Load

 

+=

 

new

 

System

.

EventHandler

(

                                           

this

.

Page_Load

);

      

}

    #endregion

    

void

 

Page_Load

(

object

 

sender

EventArgs

 

e

)

    

{

      

Label1

.

Text

 

=

 

"Przykład z ASP.NET 1.1"

;

    

}

  

}

}

background image

11

www.sdjournal.org

Software Developer’s Journal Extra   19

Listę i opis nowych kontrolek można kontynuować jeszcze 

dość długo, lecz przydatniejsze niż pojedyncze komponenty, 

będą dla Ciebie całkiem nowe koncepcje – kompleksowe po-

dejście do rozwiązywania standardowych problemów związa-

nych z tworzeniem aplikacji web.

Nowości ASP.NET 2.0

Projektanci ASP.NET 2.0 postawili sobie za zadanie wyodręb-

nienie grupy najczęściej poważających się problemów, na ja-

kie  natrafiają  programiści  tworzący  nowe  rozwiązania.  Roz-

mowy z programistami spowodowały, że oprócz bardzo boga-

tego i funkcjonalnego środowiska .NET 2.0 wraz z ASP.NET 

2.0  otrzymamy  także  szeroki  wachlarz  dodatkowych  funkcji. 

Wszystko  po  to,  aby  pisać  jak  najmniej  kodu  i  aby  aplikacje 

web powstawały jak najszybciej. Kolejno postaram się przybli-

żyć kilka z najważniejszych koncepcji:

Master Pages

W większości przypadków jeśli potrzebowałeś stworzyć por-

tal, na którego każdej stronie pojawiał się dokładnie ten sam 

element, wykorzystywałeś zapewne ramki lub własne rozwią-

zanie odpowiednio wypełniające szablon strony treścią. Z te-

go typu problemem borykało się więcej programistów, dlate-

go wprowadzone zostało dziedziczenie na poziomie projektu 

strony web.

Rozwiązanie  jest  na  tyle  ciekawe,  że  nie  polega  na  pro-

stym  podziale  strony  na  fragmenty  statyczne  i  zmienne. 

W przypadku tego rozwiązania tworzymy pojedynczą stronę – 

szablon. Szablon taki zapewnia, że wszystkie strony dziedzi-

czące jego ustawienia wyglądają identycznie. Tak, tak – jeśli 

ustawisz szablon dla nowo tworzonych podstron witryny, wów-

czas uzyskasz niezwykle wydajny system zarządzania wyglą-

dem strony. Wszelkie elementy wspólne np. tło lub marginesy 

strony ustawiasz tylko w jednym miejscu. Jeśli tworzyłeś apli-

kacje  Windows  Forms,  wiesz  dokładnie,  jak  bardzo  ułatwia 

życie taka opcja. Szczególnie, jeśli klient na dzień przed od-

daniem projektu przyśle nową specyfikację wyglądu.

Stronę szablonu edytuje się dokładnie tak samo jak poje-

dynczą stronę web (różni się ona jedynie rozszerzeniem). Aby 

móc sterować zawartością strony, należy dodać i odpowied-

nio  rozmieścić  elementy 

<asp:ContenPlaceHolder>

.  Kontrolka 

ta pozwala na wstawienie treści na stronach dziedziczących 

ustawienia szablonu.

Użytkownik  odwołując  się  do  zawartości  strony  w  pierw-

szej kolejności odwołuje się do zawartości tejże kontrolki, na-

stępnie wywołanie jest przetwarzane przez stronę – szablon.

Jeżeli  budujesz  zaawansowany  portal  składający  się 

np. z wielu stron konkretnych departamentów firmy, przydat-

ne będzie rozszerzenie standardowego szablonu o elementy 

specyficzne tylko dla pewnej grupy  stron. Tego typy drzewia-

Rysunek 4. 

GridView w widoku projektu.

Rysunek 5. 

Przykład zagnieżdżonej struktury stron – szablonów.

Listing 2. 

Ten sam efekt w ASP.NET 2.0

namespace

 

Test1

 

{

  

public

 

partial

 

class

 

Webform1_aspx

  

{

    

void

 

Page_Load

(

object

 

sender

EventArgs

 

e

)

    

{

      

Label1

.

Text

 

=

 

"Przykład z ASP.NET 2.0"

;

    

}

  

}

}

background image

12

Visual Studio 2005

www.sdjournal.org

Software Developer’s Journal Extra   19

sta  struktura  budowania  wyglądu  strony  jest  możliwa.  Wów-

czas  w  jednym  szablonie  należy  osadzić  kolejny  szablon 

i otrzymasz rozwiązanie opisanego powyżej problemu, który 

dodatkowo ilustruje Rysunek 6.

Dodatkową  funkcjonalnością  jest  możliwość  nadpisa-

nia szablonu w podstronie. Jednak w tym celu należy odpo-

wiednio, udostępnić poprzez zmienne publiczne szablonu po-

la, które będą nadpisane  lub udostępnić odpowiednią metodę 

zmieniającą zachowanie strony, której metodę działania chce-

my przesłonić. Prawie pełna obiektowość na poziomie stron 

WWW, prawda ?

Personalizacja wyglądu strony

Użytkownicy  przyzwyczajeni  do  tego,  iż  niemal  każdy  pro-

gram można dostosować do własnych potrzeb, w co wchodzi 

także możliwość stworzenie własnej „skórki” – często spodzie-

wają  się  takiej  funkcjonalności  także  po  portalach  interneto-

wych. Także tą tendencję zauważyli projektanci ASP.NET 2.0

i  opracowali  mechanizm  tematów  (ang.  themes)  oraz  skórek 

(ang. skins).

Oba mechanizmy pozwalają osiągnąć dość trudne do za-

programowania i złożone w testowaniu i utrzymaniu rozwiąza-

nie umożliwiające personalizację. Początkowo myślałem, że te-

maty, to nic więcej jak tylko mechanizm automatycznego pod-

mieniania styli kaskadowych (CSS). Myliłem się jednak, ponie-

waż dzięki stworzeniu pliku z odpowiednią konfiguracją tema-

tu pozwalają one na zmianę ustawień kontrolek samej strony. 

Dzięki stworzeniu osobnego folderu zawierającego kopię usta-

wień dla serwisu można podmieniać dynamicznie nawet takie 

zasoby jak grafika czy dźwięki na stronie. Niestety, każdy te-

mat musi być stworzony podczas projektowania witryny jako fi-

zyczny folder projektu. Ogranicza to nieco możliwość tworze-

nia przez użytkownika własnej kompozycji. Chyba, że zdecydu-

jemy się oddać mu do dyspozycji jeden z istniejących tematów 

i stworzyć logikę udostępniającą odpowiednie ustawienia.

Skórki umożliwiają odpowiednie zdefiniowanie pewnej gru-

py ustawień w celu ich późniejszego wykorzystania. Osobiście 

przypominają mi trochę definiowanie klas w CSS. W skład de-

finicji  skórki  danej  kontrolki  mogą  wejść  zarówno  ustawienia 

stylu jako i właściwości tejże kontrolki. Przykład skórki zawie-

ra Listing 3, natomiast jej wykorzystanie wymaga ustawienia 

konkretnej wartości dla kontrolki którą chcemy w ten sposób 

sparametryzować.

Bardzo  ważnym  elementem  dostosowywania  strony  do 

potrzeb użytkownika jest zapewnienie logowania oraz odpo-

wiedniego mechanizmu identyfikacji na potrzeby logiki każdej 

ze stron naszego serwisu.

Najczęściej  tego  typu  logikę  należy  stworzyć  samodziel-

nie.  Oczywiście  zgodnie  z  ideą,  iż  wszędzie  gdzie  można 

uniknąć  pisania  kodu  tworzy  się  odpowiednie  rozwiązanie, 

także tutaj mamy do czynienia z odpowiednio przygotowaną 

infrastrukturą.

Logowanie i rejestrowanie użytkownika na stronie umożli-

wiają kontrolki takie jak:

l

 

<asp:login>

 – standardowa kontrolka logowania

l

 

<asp:loginname>

 – kontrolka wyświetlająca nazwę zalogo-

wanego użytkownika

l

 

<asp:loginstatus>

 – kontrolka pozwalająca sprawdzić, czy 

użytkownik jest autoryzowany

l

 

<asp:passwordrecovery>

  –  standardowa  obsługa  wysłania 

maila z hasłem

l

 

<asp:CreateUserWizard>

 – kontrolka zakładania konta (od-

powiednio konfigurowalna)

l

 

<asp:ChangePassword>

 – kontrolka zmiany hasła

W połączeniu z obsługą profili otrzymujemy dość prostą, ale 

wydajną  bazę  do  stworzenia  spersonalizowanej  strony  inter-

netowej.

Profile  polegają  na  stworzeniu  struktury  danych  w  pliku 

konfiguracyjnym  aplikacji  web.config.  Struktura  tak  jest  na-

stępnie  automatycznie  wykorzystywana  w  kodzie  aplikacji. 

Przykładowy profil może wyglądać tak jak na Listingu 4.

Jak łatwo zauważyć tego typu definicja może się rozrastać 

w miarę naszych potrzeb. Bardzo mile zaskoczyło mnie nowe 

środowisko – otóż IntelliSense działa także w pliku web.config. 

Edycja pliku konfiguracji nareszcie stała się łatwiejsza.

Aby spiąć dane o profilu z danymi użytkownika wykorzy-

stywanymi w kodzie został opracowany specjalny zestaw klas 

odpowiadających  za  zapewnienie  pewnego  poziomu  trwa-

łości  danych  oraz  uzyskania  dostępu  do  tychże  danych.  Te-

mat  wyspecjalizowanej  warstwy  pośredniczącej  (ang.  provi-
ders
) jest mocno związany z nowinkami w ADO.NET 2.0 i nie-

stety wykracza poza łamy tego prostego przeglądu. Wystar-

czy  wspomnieć,  iż  z  punktu  widzenia  programisty  ASP.NET 

2.0  do  wykorzystania  “prosto  z  półki”  są  warstwy  odpowia-

dające za wsparcie identyfikacji i zarządzania użytkownikami 

(

System.Web.Security.MembershipProvider

). Istnieją też specjal-

ne klasy, dzięki którym działa omówiony już mechanizm profili, 

jak i mechanizm personalizacji każdej z kontrolek web-owych 

stworzonych na potrzeby konkretnego użytkownika.

Administracja i konfiguracja

Z  punktu  widzenia  programisty  niezwykle  ważne  jest  żeby 

przekonać administratora jak łatwa w utrzymaniu i bezpiecz-

na jest nasza aplikacja.

Listing 3a. 

Przykładowa definicja skórki dla kontrolki

<!- Przykładowa skórka -->!>

<

asp

:

 

label

 

runat

=

"server"

 

id

=

"foo"

 

skinid

=

"oo7"

      

Font

-

names

=

"verdana, arial"

      

font

 

size

=

"46pt"

 

ForeColor

=

 

"#336699"

      

BackColor

=

"transparent"

 

font

-

bold

=

"false"

      

font

-

underline

=

"true"

/

>

Listing 3b. 

Przykładowy kod w profilu

<

profile

>

   

<

property 

 

     

name=

"AdresEmail"

    

 

     

type=

"System.Collection.Specialized.StringCollection"

 

     

serializeAs=

"Xml"

 

     

allowAnonymous=

"false"

 

     

provider=

"SQL"

/

>

    

<

property name=

"Wiek"

 

type=

"int"

 

defaultValue=

"18"

 /

>

<

/profile

>

background image

Software Developer’s Journal Extra   19

To co pojawia się w ASP.NET 2.0 (a praktycznie w .NET 2.0)

to specjalne API służące do edycji zawartości plików konfi-

guracyjnych, takich jak web.config lub machine.config. Do-

stęp  do  tego  API  zapewnia  specjalna  przystawka  MMC. 

Korzysta z niego także aplikacja Web Administration Tool, 

dzięki której łatwo możemy dotrzeć do konfiguracji aplika-

cji i ją zmienić.

Same zaś pliki konfiguracyjne zostały wzbogacone o moż-

liwość zaszyfrowania części atrybutów. To co dotąd było trud-

no osiągalne – czyli zapis np. parametrów połączenia z bazą 

danych, obecnie można przechowywać w pliku konfiguracyj-

nym w zakodowanej postaci.

Dodatkowo,  co  ważne,  środowisko  Visual  Studio  2005 

może  pracować  bez  serwera  IIS.  Wbudowany  w  nie  serwer 

HTTP umożliwia pracę podczas procesu rozwoju oprogramo-

wania. Ucieszy to z pewnością tych, którzy od miesięcy pro-

szą administratorów o dedykowany serwer IIS. Pliki projektu 

mogą  podczas  prac  developerskich  znajdować  się  na  lokal-

nym dysku, w katalogu serwera FTP, etc. Publikowanie pro-

jektu w sieci zostało uproszczone do granic możliwości. Pro-

gramista  jest  praktycznie  prowadzony  za  rączkę  od  począt-

ku do końca.

O czym nie napisałem?

Bogactwo funkcjonalności oferowanej przez nową platformę, 

to temat na serię artykułów. Każda z poruszonych w artykule 

technologii wymaga dogłębnego poznania.

O wartości ASP.NET 2.0 stanowią także dodatkowe me-

chanizmy  które  nie  zostały  wymienione  w  tym  artykule, 

między innymi: opis nowych funkcji wspierających optymali-

zację pracy środowiska, nowe mechanizmy cache, zaawan-

sowana współpraca z IIS 6.0. Nie wspomniałem o kontrol-

kach dla urządeń mobilnych, automatycznym generowania 

grafiki strony w zależności od możliwości przeglądarki jako 

klienta aplikacji web. Zabrakło także opisu zupełnie nowe-

go cyklu życia jak i możliwości asynchronicznego przetwa-

rzania strony web.

Nie wspomniałem także  możliwościach „cross-page post-

ing” – techniki umożliwiającej przesyłanie danych i żądań po-

między  stronami  tej  samej  aplikacji.  Web  Parts  –  specjalne 

kontrolki  pozwalające  na  bardzo  dokładną  konfigurację  za-

równo  treści,  wyglądu  jak  i  położenia  danych  prezentowa-

nych użytkownikowi. Trudno jest jednak w przeglądowym ar-

tykule omówić wszystkie zagadnienia. Szczególnie, jeśli ma-

my do czynienia z tak zaawansowaną platformą. Polecam za-

tem lekturę ramki – Gdzie szukać informacji.

A zwycięzcą jest?

Podsumowując,  tworzenie  aplikacji  z  wykorzystaniem 

ASP.NET  2.0  i  Visual  Studio  przebiega  sprawnie  –  mimo,  iż 

wciąż mamy do czynienia z wersją przedpremierową. P opra-

wiono  funkcjonalność  kontrolek  i  środowiska  w  stosunku  do 

ASP.NET 1.1.

Chociaż z pewnością każdy w ASP.NET 2.0 znajdzie tak-

że wady i ograniczenia i nie wszystkie elementy są dopraco-

wane  tak,  jak  tego  byśmy  sobie  życzyli,  to  mimo  wszystko 

otrzymaliśmy bardzo potężne narzędzie służące do tworzenia 

aplikacji web. I to my, programiści zyskamy najbardziej korzy-

stając z możliwości oferowanych przez środowisko IDE Visu-

al Studio 2005. 

n