Objavljeno: 24.4.2006 18:50 | Avtor: Dušan Zupančič | Monitor April 2006

Microsoftov ASP.NET, drugič

ASP.NET 1.0 je ob izidu razvijalce spletnih rešitev prijetno presenetil z možnostjo pisanja kode v "polnih" različicah programskih jezikov, ki so podprti v .NET, z bogatim ogrodjem, bogatim naborom kontrolnikov in predvsem z ločitvijo predstavitvenega dela (HTML) od kode, kar je omogočilo precej produktivnejši razvoj.

Če novo različico ASP.NET primerjamo s preskokom, ki je bil narejen ob prehodu s prvotnega ASP (brez .NET), se zdijo spremembe med različicami ASP.NET 1.x in 2.0 malenkostne, a več kot dobrodošle. V nadaljevanju si zelo na kratko oglejmo nekaj najpomembnejših novosti.

Razvojno okolje: Visual Web Developer 2005 Express Edition

Spletnim razvijalcem je na voljo brezplačna različica Visual Web Developer 2005 Express Edition, ki je brezplačna za obdobje enega leta, če pa se odločijo za registracijo prek spleta, jo lahko v računalniku, s katerega je bila registrirana, uporabljajo brezplačno za vedno.

Da je orodje namenjeno spletnim razvijalcem, razkrije že prvo pogovorno okno ob odpiranju novega projekta, saj se lahko v njem odločamo samo med spletnimi projekti: spletna stran ASP.NET, spletna storitev ASP.NET, prazna spletna stran ali čarovnik za izdelavo osebne spletne strani. Kot novost tu izstopa zadnja možnost, ki nam v celoti zgradi osebne spletne dveri z uporabo tehnologij, ki jih bomo spoznali v nadaljevanju. Glede na to, da je v tej rešitvi uporabljenih večina novih tehnologij, ki jih prinaša ASP.NET 2.0, je ta projekt najprimernejši za začetno seznanjanje z novimi možnostmi.

Odpiranje novega projekta v VWD 2005

Ob ustvarjanju projekta pri izbiri "Location" opazimo, da lahko nov projekt ustvarimo tudi v datotečnem sistemu (poleg možnosti, da projekt ustvarimo v IIS ali na oddaljenem strežniku prek povezave FTP), tako nam vsaj za razvoj enostavnejših rešitev ni treba nameščati celotnega spletnega strežnika (IIS). Ob zagonu take rešitve se samodejno požene vgrajeni spletni strežnik (Cassini), ki pa je namenjen samo razvoju in se odziva samo na zahtevke iz krajevnega računalnika in tako ne predstavlja dodatne grožnje varnosti.

Ponudniki podatkov

ASP.NET 2.0 temelji na komunikaciji med ponudniki podatkov in spletnimi gradniki, ki te podatke uporabljajo. Med ponudniki najdemo:

  • Membership - ponuja podporo upravljanju uporabnikov in njihovo overovljanje
  • Profile - omogoča hrambo podatkov, ki so vezani na posamezen profil uporabnika
  • Personalization - omogoča trajno hrambo podatkov o spletnih gradnikih (Web Parts)
  • Site Navigation - omogoča preslikavo med fizičnimi spletnimi stranmi in njihovimi logičnimi povezavami za poenostavljeno krmiljenje po spletnih straneh
  • Data Provider - združuje več objektov ADO.NET tako, da je uporaba podatkov kar najbolj poenostavljena, na voljo pa je v več oblikah, odvisno od tega, do kakšnih podatkov imamo dostop
  • Poleg ponudnikov, ki nam jih daje na voljo ogrodje, pa lahko seveda razvijemo svoje ponudnike podatkov.

    Predloge strani, teme in navigacija

    Pri vsakem malo obsežnejšem spletnem projektu naletimo na problem poenotenega videza spletnega mesta in navigacije. Včasih smo to reševali z vključevanjem datotek v vsako spletno stran (serverside include) ali pa s pomočjo uporabniških spletnih kontrolnikov (ASCX v ASP.NET 1.x).

    Predloge strani (Master pages) omogočajo, da določimo videz osnovne strani in s kontrolnikom ContentPlaceholder določimo prostor, na katerem bo vsaka stran dodala svojo vsebino (vizualno dedovanje). Tako je osnovni videz vsebovan na enem mestu in je poznejše spreminjanje kar najbolj poenostavljeno.

    Nova stran na podlagi predloge

    K poenotenemu videzu strani spadajo tudi definicije, ki jih zapisujemo v datoteke CSS. Zaradi enostavnejšega preklapljanja med različnimi nabori datotek CSS so v ASP .NET 2.0 uvedene teme, ki so izvedene kot podimeniki v okviru imenika "App_Themes". Ime takega podimenika je hkrati ime teme, ki ga lahko pozneje določimo posamezni strani, celotni rešitvi, omogočeno pa je seveda tudi dinamično preklapljanje med temami v času izvajanja.

    <%@ Page Language="C#"

    MasterPageFile="~/Default.master" Theme="White" %>

    Ostane nam še izdelava menujev, ki nam bodo omogočili enostavno navigacijo po spletnem mestu. V ta namen sta nam na voljo spletna kontrolnika "SiteMapPath", ki nam prikazuje pot do trenutne strani, in "Menu", ki nam omogoča prikazovanje hierarhičnih menujev (slika 3). Hierarhijo spletnega mesta opišemo v zunanji datoteki XML "web.sitemap", ki jo uporablja ponudnik podatkov SitemapDatasource in jih ponudi menujskemu kontrolniku.

    Navigacijske kontrolnike dodamo na predlogo strani

    Varnost

    Na večini spletnih mest želimo vedeti, kdo je uporabnik, ki brska po spletni strani. Doslej smo morali vse dejavnosti, povezane z ustvarjanjem uporabnikov, njihovo prijavo, pošiljanjem pozabljenih gesel, programirati sami. Z ASP.NET 2.0 dobimo bogat nabor kontrolnikov, ki omogočajo, da večino omenjenih dejavnosti izvedemo ob pomoči grafičnih kontrolnikov, ki jih seveda lahko prilagodimo po svojih željah.

    Uporaba kontrolnika za prijavo

    Seveda je poskrbljeno za enostavno urejanje uporabnikov, tudi dodeljevanje vlog in upoštevanje le-teh pri prikazovanju strani. Če naša spletna rešitev teče v IIS, pa najdemo med lastnostmi spletnega mesta v upravljavski konzoli IIS še dodaten zavihek, ki nam omogoča nadzor nad overovljanjem uporabnikov in izbiro načina shranjevanja le-teh (privzeto se podatki o uporabnikih hranijo v zbirki podatkov SQL Express).

    Nastavitve overovljanja uporabnikov

    Uporaba zbirk podatkov

    Delo s podatki v zbirkah podatkov je osrednji del skoraj vsake sodobne spletne rešitve. ASP.NET 2.0 ponuja kontrolnike, ki nam to omogočijo brez pisanja kode, vsaj za najpogostejše scenarije (sortiranje, filtriranje in urejanje podatkov).

    Podatkovni izvori omogočajo uporabo podatkov, ki so v zbirkah podatkov (SqlDataSource, AccessDataSource, DatasetDataSource), v objektih na srednjem sloju (ObjectDataSource) ali v datotekah ali spletnih storitvah XML (XMLDataSource).

    Za prikaz podatkov lahko želeno tabelo z metodo povleci-spusti odvlečemo iz raziskovalca zbirk podatkov (Database Explorer) na formo, razvojno okolje pa samodejno doda ustrezen podatkovni izvor, ustrezen prikazovalni kontrolnik (GridView). Vse, kar je treba storiti, je to, da izberemo želene lastnosti tabele, na primer: prikaz podatkov na več straneh, sortiranje, urejanje itd. Izdelano rešitev lahko poženemo in vse izbrane funkcije delujejo brez pisanja dodatne kode.

    Nastavljanje lastnosti tabele za prikaz podatkov

    In kaj se je zgodilo z DataSetom, DataAdapterjem in drugimi kontrolniki, ki so nam v prejšnji različici ASP.NET omogočali nadzor nad izvajanjem stavkov SQL? Kot je bilo že omenjeno, so vsi omenjeni objekti združeni v DataSource, kjer lahko na enem mestu upravljamo želeno funkcionalnost. Izkušeno oko zlahka prepozna gradnike za povezavo, ki so v DataSource združeni v en objekt.

    Izbira vrste podatkovnega vira

    Personalizacija s spletnimi gradniki

    Spletne dveri uporabnikom omogočajo, da osebno stran oblikujejo po svojih potrebah in željah. Osnovna enota funkcionalnosti tako ni več spletna stran, temveč spletni gradnik (Web Part), kar nam je znano iz izdelkov, kot je npr. SharePoint Portal. Tak pristop je ugodnejši tako za razvijalce, saj omogoča distribuiran razvoj, kot tudi za skrbnike dveri, ki jim omogoča lažjo uporabo že izdelanih gradnikov v različnih dverih.

    V ASP.NET 2.0 lahko ob pomoči gradnikov katerokoli spletno stran spremenimo v vsebnik spletnih gradnikov z vso funkcionalnostjo, ki jo ob tem pričakujemo. Tako se izognemo zahtevi, da mora imeti stranka nameščen SharePoint Portal, hkrati pa bodo lahko isti gradniki uporabljeni v SharePoint Portalu (v prihajajoči različici) pri strankah, ki ga že uporabljajo v okviru svojih informacijskih sistemov.

    Spletni gradnik lahko postane vsak kontrolnik v ASP.NET 2.0 (Label, Calendar...), kontrolnik ki ga napišemo sami (ascx), ali pa razred, ki deduje od nadrazreda WebPart.

    Orodjarna za delo s spletnimi gradniki (Web Parts)

    Druge novosti

    Poleg naštetih najdemo v novi različici ASP.NET še precej novosti, za katere v tem kratkem sestavku ni dovolj prostora. To pa ne pomeni, da so manj pomembne. Najprej se seveda poraja vprašanje, kaj bo z rešitvami, ki smo jih napisali v ASP.NET 1.x? Na srečo ASP.NET 2.0 ohranja polno združljivost z gradniki, uporabljenimi v prejšnjih različicah, poleg tega pa nam je na voljo Visual Studio Conversion Wizzard, ki opravi večino potrebnih sprememb.

    Prav gotovo ne moremo niti mimo rešitve za lokalizacijo, ki omogoča samodejno zaznavanje jezika, ki ga uporablja spletni brskalnik in omogoča poenostavljeno povezavo z datotekami .resx, v katerih so krajevno prilagojene različice uporabljenih sredstev (besedila, sličice...). V imeniku App_LocalResources so datoteke s sredstvi posameznih strani, v App_GlobalResources pa hranimo sredstva, ki so uporabljana v celotni rešitvi.

    Precej izboljšav je doživel tudi sistem predpomnjenja (Caching), ki nam prek objektov CacheDependency omogočajo vpliv na trajnost predpomnjenih podatkov. Zelo zanimiv je SqlCacheDependency, ki omogoča nastavitev odvisnosti podatkov v medpomnilniku od podatkov v tabeli zbirke podatkov (če je prišlo do spremembe vsebine tabele, bo ob naslednjem zahtevku vsebina medpomnilnika osvežena z novimi podatki).

    Vtisi

    V ASP.NET 2.0 je največji korak narejen na področju povečanja produktivnosti programerja, saj so za večino nalog, ki jih je treba izvesti v vsaki spletni rešitvi, že na voljo ustrezni kontrolniki. Hvalevredna je enostavna podpora spletnim gradnikom in drugim rešitvam, ki poenostavljajo delo z uporabniki in personalizacijo spletnih strani. Pri izboljšavah gre bolj ali manj za skupek malenkostnih izboljšav, ki združene v celoto postavljajo razvoj spletnih rešitev na povsem drugo raven.

    Seveda bi lahko bila podpora v določenih primerih boljša. Pri predlogah strani je omogočeno, da lahko več predlog strani gnezdimo drugo v drugo. To je lahko zelo koristno, vendar se moramo v tem primeru odpovedati delu v načrtovalskem (Design) načinu, to pa precej zmanjša uporabnost. Malce boljša bi lahko bila tudi podpora internacionalizaciji spletnih rešitev. Za osnovne potrebe je solidna, ko pa gradimo kompleksnejše strani, je marsikaj treba postoriti ročno. Vsekakor seznam želja, ki jih bomo morda našli v naslednji različici z delovnim imenom Orcas.

    Naroči se na redna tedenska ali mesečna obvestila o novih prispevkih na naši spletni strani!

    Komentirajo lahko le prijavljeni uporabniki

     
    • Polja označena z * je potrebno obvezno izpolniti
    • Pošlji