560 likes | 705 Views
2123 ASP.NET 2.0. Dušan Zupančič, KOMPAS Xnet 17.5.2005. Zakaj ASP.NET 2.0?. ASP.NET 1.x je prinesel revolucijo v razvoj spletnih rešitev Odličen programski model, široka izbira programskih jezikov, na voljo celotna funkcionalnost ogrodja .NET
E N D
2123 ASP.NET 2.0 Dušan Zupančič, KOMPAS Xnet 17.5.2005
Zakaj ASP.NET 2.0? • ASP.NET 1.x je prinesel revolucijo v razvoj spletnih rešitev • Odličen programski model, široka izbira programskih jezikov, na voljo celotna funkcionalnost ogrodja .NET • Standardi funkcionalnosti spletnih rešitev so se dvignili, tako da je potrebno veliko, za današnje stanje normalnih funkcionalnosti programirati • Glavne prednosti ASP.NET 2.0 • Vgrajena podpora v obliki grafičnih gradnikov za pogosto uporabljano funkcionalnost – manj kode • Poenostavljeno upravljanje (administracija) • Boljše performance
Visual Web Developer 2005 • Beta različica je brezplačno na voljo: • http://msdn.microsoft.com/express/vwd/ • Osnovne značilnosti: • Namenjen razvijalcem spletnih rešitev • Vključeni programski jeziki: C#, VB.NET, J# • Izboljšan Intellisense (tudi pri pisanju HTML) • Na voljo je vgrajen spletni strežnik
Glava Navigacija Vsebina Noga Spletne strani danes
Default.aspx <%@ Page Master=“moj.Master” %> <asp:Content ContentPlaceHolderId=vsebina /> Glava Navigacija Vsebina strani Default Noga moj.master <%@ Master %> Glava Navigacija <asp:ContentPlaceHolder Id=vsebina /> Noga
Uporaba predlog tabel Layout Insert table
Programiranje s predlogami • S spletne strani lahko dostopamo do predloge • Lastnost Page.Master • Dostop do javnih lastnosti predloge • FindControl za dostop do kontrolnikov • Dinamično določanje predloge • Lastnost Page.MasterFilePath • Dinamično nastavljanje predloge spletne strani
Teme • Mehanizem za določanje vizualnega izgleda strani • Ko spletni strani uporabimo temo se samodejno implementirajo datoteke, ki so del teme (stili in preobleke) • Vsebuje • Preobleko (skin): • Nabor lastnosti, ki jih uporablja eden ali več kontrolnikov nekega tipa • Stil • Datoteke CSS • Sredstva • Slike in ostale datoteke
Teme • Teme aplikacije • Podimenik \App_Themes • Ime teme je določeno z imenom imenika • Kako ustvarimo temo: • Ustvarimo nov podimenik \App_Themes (Web Site Add Folder Theme Folder) • Ustvarimo podimenik z imenom teme • Dodamo datoteke .skin, .css in ostale
Preobleke (skin) • Definirajo izgled enega ali več kontrolnikov • Ustvarjanje preobleke: • V imeniku s temo ustvarimo novo datoteko s končnico .skin (Add new Item Skin File) • Dodamo imena gradnikov in podamo njihove lastnosti: <asp:TextBox BackColor="Orange" ForeColor="DarkGreen" Runat="Server" />
Uporaba teme in preobleke • Na nivoju aplikacije v web.config: <configuration> <system.web> <pages theme=“NTKtema" /> </system.web> </configuration> • Na spletni strani <% @Page Theme=“NTKtema“ … %> • Na kontrolniku • Če je tema definirana na nivoju spletne strani se nastavitev podeduje • Lahko pa temo eksplicitno izberemo preko lastnosti ThemeId
DEMO • Predloge strani • Teme in preobleke • Določitev teme na nivoju aplikacije
Nov model podatkovnih kontrolnikov Podatkovnabaza Podatkovno povezani kotnrolnik <asp:GridView DataSourceId=“MySource” runat=“server”/> <asp:TreeView DataSourceId=“MySource” runat=“server”> … Poslovniobjekt Kontrolnik – podatkovni izvor <asp:SqlDataSource Id=“MySource” ConnectionString=“…” SelectCommand=“select id from authors” runat=“server” /> <asp:ObjectDataSource Id=“MySource” TypeName=“CustomersDB” SelectMethod=“GetCustomersByRegion” runat=“server” /> <asp:XmlDataSource Id=“MySource” DataFile=“Bookstore.xml” XPath=“/bookstore/book[@genre=‘fiction’]” runat=“server” /> XML Dokument
Dve vrsti podatkovnih kontrolnikov • Podatkovni izvori • Kontrolniki se ne prikazujejo • Predstavljajo vez do podatkovnih izvorov • Podatkovne baze, poslovni objekti, XML, spletne storitve • Bogat nabor možnosti dela s podatki • Sortiranje, filtriranje, ostranjevanje (paging), dodajanje, spreminjanje brisanje • Objavljanje podatkov preko tabelaričnih ali hierarhičnih vmesnikov do podatkovno povezanih kontrolnikov • Podatkovno povezani kontrolniki • Kontrolniki, ki prikazujejo podatke • npr., GridView, DetailsView, TreeView, Menu • Samodejno povezovanje s podatki v podatkovnih izvorih (ni dodatne kode – DataBind) • Podatke zajamejo v ustreznem trenutku • Lahko izkoriščajo posebnosti podaktovnih izvorov
Podatkovni izvori • <asp:SqlDataSource> • SqlClient, OleDb, Odbc, Oracle, … • Uporablja nov ADO.NET DbProviderFactory • Podpora za ukaze in shranjene procedure • <asp:ObjectDataSource> • Povezava na poslovne objekte ali podatkovne komponente Visual Studia • <asp:AccessDataSource> • <asp:DataSetDataSource> • <asp:SiteMapDataSource> • <asp:XmlDataSource>
<asp:GridView> <asp:DataGrid> <asp:DetailsView> <asp:TreeView> <asp:Menu> <asp:DataList> <asp:Repeater> <asp:DropDownList> <asp:BulletedList> <asp:CheckBoxList> <asp:RadioButtonList> <asp:ListBox> <asp:AdRotator> Podatkovno povezani kontrolniki
Kontrolnik GridView • Podoben DataGridu ampak enostavnejši za uporabo • Podpira • Paging • Filtering • Updating • Deleting • Inserting • Medpomnenje (caching) preko podatkovnega izvora <asp:GridView DataSourceId=“MySource” AllowSorting=“true” AllowPaging=“true” runat=“server”/> <asp:SqlDataSource ID=“MySource” ConnectionString=“…” SelectCommand=“select pid, name, price from products” runat=“server”/>
DEMO • Konfiguriranje podatkovnih virov • Kontrolnik GridView
Izdelava spletnega projekta Uporaba predlog strani, tem in preoblek Trajanje: 15 minut Delo s podatki Kontrolnik GridView Kontrolnik DetailsView Trajanje: 10 minut VAJA 1 in VAJA 2 Po opravljenih vajah sledi odmor za kosilo, po kosilu pa vas čaka še več zanimivih tem
VPRAŠALNIKI VPRAŠALNIKI VPRAŠALNIKI VPRAŠALNIKI VPRAŠALNIKI IZPOLNITE VPRAŠALNIK Z MALO SREČE DO BOGATIH NAGRAD
ASP.NET 2.0 “opeke” Ponudniki ASP.NET 2.0 Razvijalsko ogrodje Role Manager Personalization Membership Site Navigation Management Database Caching Provider Model Design Pattern Windows SQL Server Lasten JET (Access)
Navigacija • Enostaven način za upravljanje z navigacijo po spletnem mestu • Site Map • Opis logične strukture strani • Site Map OM • API za interakcijo s SiteMap • Site Map Datasource • Povezava s podatkovnimi kontrolniki • Site Map kontrolniki • Kontrolniki za prikazovanje navigacije
Navigacijski kontrolniki • TreeView • Strežniški kontrolnik za prikaz hierarhije • Skrbi za skripte na odjemalski strani • Poskrbi za prilagodljiv uporabniški vmesnik na mobilnih napravah • Omogoča prilagoditve prikaza • Sličice vozlišč, drevesne strukture, … • Omogoča navigacijo in izbiro po Postback-u • Integrirano s SiteMapDataSource • Ustvarjanje vozlišč deklarativno, iz kode ali s povezavo na podatkovni izvor
Navigacijski kontrolniki • SiteMapPath: • Lienarni pregled od korena • Ne potrebuje podatkovnega izvora • Objektni model • PathDirection: smer v kateri se izrisuje pot. • PathSeparator: Niz, ki ločuje dele poti • ParentLevelsDisplayed: število prikazanih nadrejenih nivojev.
Navigacijski kontrolniki • Menu:
Datoteka web.sitemap <?xml version="1.0" encoding="utf-8" ?> <siteMap xmlns= "http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" > <siteMapNode url="default.aspx" title="Domov" description=""> <siteMapNode url="Prva.aspx" title="Prva stran" description="" /> <siteMapNode url="Druga.aspx" title="Druga stran" description="" /> </siteMapNode> </siteMap>
DEMO • Ustvarjanje datoteke web.sitemap • Uporaba kontrolnika TreeView za navigacijo • Uporaba kontrolnikov Menu in SiteMapPath
Članstvo • Membership • Rešuje probleme z varno hrambo prijavnih podatkov • Nadomešča kompleksno kodo za prijavo • Secure Credential Storage Services • Hash + salt za prijavne podatke • Nadomesti kompleksno kodo potrebno za varno hrambo • Upravljanje uporabniških računov • Validacija uporabnikov / kdo je prijavljen • Ponastavitev gesla s pomočjo vprašanja in odgovora
Kontrolniki za prijavo • Na voljo je bogat nabor kontrolnikov, ki omogočajo izvedbo osnovnih akcij brez pisanja kode
Memberhip - APISystem.Web.Security • Upravljanje uporabnikov: • Preverjanje uporabnikov • Ustvarjanje, popravljanje, brisanje • Iskanje uporabnikov • Po uporabniškem imenu • Prijavljeni uporabniki • Upravljanje gesel • Ponastavitev gesla • Vprašanje/odgovor
Razred MembershipUserSystem.Web.Security • Membership.UpdateUser() • Shrani lastnosti uporabnika • Dostop do uporabniških detajlov • Zadnja prijava • Zadnja sprememba gesla • Preprečevanje avtentikacije • IsApproved
Ponudniki (Providers) • Načrtovalski vzorec Provider • Pluggable Data Access Layer (DAL) • Pluggable Business Logic Layer (BLL) • Vgrajena 2 Membership Providerja • SQL Server – produkcijske rešitve • Access – razvoj / testiranje • Identičen API • Model Provider je razširljiv • Ustvarjanje novih ponudnikov
Role Manager • Role Manager • Rešuje mapiranje uporabnika v vloge • Nadomešča kompleksno avtorizacijsko kodo • Gradi na ASP.NET 1.X Role APIji • Ni vezan na Membership • Skupaj delujeta odlično, ampak… • Role Manager je lahko ločen
Razred RolesSystem.Web.Security.Roles • Upravljanje vlog: • Ustvarjanje, popravljanje, brisanje • IsUserInRole / Roles • Dodajanje / brisanje • individualno • Dodajanje večih • iskanje • Vseh uporabnikov v vlogi • Vseh vlog za uporabnika
DEMO • Vgrajena administratorska stran • Konfiguriranje varnosti spletnega mesta • Uporaba kontrolnikov za prijavo
ASP.NET spletni gradniki • Gradniki dinamičnih spletnih strani • Uporaba v različnih spletnih scenarijih • Portal, vsebina, intranet, internet • Widnows ali Forms avtentikacija • Integracija z modelom ASP.NET kontrolnikov • Vsak strežniški kontrolnik je lahko spletni gradnik • Uporaba storitev ASP.NET • Personalizacija, upravljanje vlog, Membership, Profili, itd. • Vizualna podpora v času načrtovanja
Kaj so zone? EditorZone WebPartZone