580 likes | 815 Views
ASP.NET 2.0. Dušan Zupančič KOMPAS Xnet d.o.o. Vozni red. Uvod Kaj potrebujemo za delo Novosti, ki jih prinaša ASP.NET 2.0 Predloge strani in teme Delo s podatki ASP.NET 2.0 podporni razredi Navigacija Članstvo in vloge. Zakaj ASP.NET 2.0?.
E N D
ASP.NET 2.0 Dušan ZupančičKOMPAS Xnet d.o.o.
Vozni red • Uvod • Kaj potrebujemo za delo • Novosti, ki jih prinaša ASP.NET 2.0 • Predloge strani in teme • Delo s podatki • ASP.NET 2.0 podporni razredi • Navigacija • Članstvo in vloge
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
Kaj potrebujemo za delo • Kot v prejšnjih različicah je dovolj internetni strežnik, .NET Framework 2.0 in Notepad • Za resno delo: • Visual Studio .NET 2005 • Na voljo v več različicah • Za razvoj spletnih rešitev je na voljoVisual Web Developer 2005 – VWD 2005
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
Predloge strani (Master Pages) • Enostavna uporaba predlog uporabniškega vmesnika • Vsebuje: • Postavitev strani (HTML) • Vsebina (glava, noga, HTML, ASP.NET gradniki) • Področje kjer se bo izrisala vsebina izvedenih strnai • Prednosti: • Poenoten design spletnega mesta • Dobra podpora za vizualno načrtovanje v VWD 2005
V času načrtovanja moj.master Default.aspx <%@ Master %> <%@ Page Master=“moj.Master” %> Glava <asp:Content ContentPlaceHolderId=vsebina /> Navigacija <asp:ContentPlaceHolder Id=vsebina /> Noga
V času izvajanja Glava Navigacija Vsebina strani Default Noga • Vsebina strani Default.aspx zamenja contentPlaceholder definiran na predlogi
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 • Vsebuje • Preobleko (skin): • Nabor lastnosti, ki jih uporablja eden ali več kontrolnikov nekega tipa • Stil • Datoteke CSS • Sredstva • Datoteke • Predloge (Master Pages)
Teme • Teme aplikacije • Podimenik \themes • Ime teme je določeno z imenom imenika • Globalne teme • Privzeto nameščene • V imeniku ogrodja .NET • <WINDIR>\ASPNET_Client\system_web\2_0_*\themes • Vgrajene teme • Basic Blue – enostavna tema brez CSS • Smoke and glass – z uporabo CSS
Kako ustvarimo temo • Ustvarimo podimenik “themes” • V okviru prejšnjega ustvarimo podimenik z imenom teme • Dodamo datoteke .skin in ostale potrebne datoteke
Kako ustvariti datoteko .skin • V imeniku s temo ustvarimo novo besedilno datoteko s končnico .skin • Dodamo definicije na nivoju kontrolnikov • Lastnosti • Predloge • Zbirke • Za določen kontrolnik lahko ustvarimo alternativne izglede • Definiramo lastnost SkinId <asp:TextBox BackColor="Orange" ForeColor="DarkGreen" Runat="Server" />
Uporaba teme in preobleke • Na nivoju aplikacije v web.config: <configuration> <system.web> <pages theme=“Car" /> </system.web> </configuration> • Na spletni strani • <% @Page Theme="Car“ … %> • Na kontrolniku • Če je tema definirana na nivoju spletne strani se nastavitev podeduje • Lahko pa temo eksplicitno izberemo preko lastnosti ThemeId
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
Vrste podatkovnih kontrolnikov Podatkovnabaza Podatkovno povezani kotnrolik <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
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> Data-Bound Controls
Kontrolnik GridView • Podoben DataGridu ampak enostavnejši za uporabo • Podpira • Paging • Filtering • Updating • Deleting • Inserting • Caching via DataSource <asp:GridView DataSourceId=“MySource” AllowSorting=“true” AllowPaging=“true” runat=“server”/> <asp:SqlDataSource ID=“MySource” ConnectionString=“…” SelectCommand=“select pid, name, price from products” runat=“server”/>
DetailsView Control • Similar to Form View UI in Microsoft Access • Useful as details portion of a Master-Details page • Renders a single data item at a time • Can also page over multiple items • Similar object model to GridView • Supports Updating, Deleting • Supports Inserting <asp:DetailsView DataSourceId=“MySource” AllowPaging=“true” HeaderText=“Current Customer” runat=“server”/> <asp:ObjectDataSource Id=“MySource” TypeName=“CustomersComponent” SelectCommand=“GetCustomers” runat=“server”/>
New ASP.NET Whidbey “Building Block” APIs Providers ASP.NET 2.0 Developer Stack Role Manager Personalization Membership Site Navigation Management Database Caching Provider Model Design Pattern Windows SQL Server Custom 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
Navigacija po spletnem mestu User Interface SiteMapPath Data Bound controls <asp:treview /> SiteMapPathDataSource Application Programming Interface Site Map Provider Model Design Pattern Data Storage User Defined XML File App.Sitemap
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
Site Navigation Controls • TreeView
Navigacijski kontrolniki • SiteMapPath: • Lienarni pregled od korena • Ne potrebuje podatkovnega izvora • Objektni model • PathDirection:vrstni trd v katerem se izrisuje pot. • PathSeparator:Niz, ki ločuje dele poti • ParentLevelsDisplayed:število prikazanih nadrejenih nivojev.
Navigacijski kontrolniki • Menu:
Č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
Članstvo - 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
Kontrolniki Login • Enostavna integracija <asp:login /> <asp:loginname /> <asp:loginstatus /> <asp:loginview /> <asp:passwordrecovery /> <asp:createuserwizard /> <asp:changepassword />
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
Zone: Layout EditorZone WebPartZone
Zone: Layout Zone ToolZone WebPartZoneBase Edit mode Catalog mode Connection mode All modes CatalogZone EditorZone ConnectionZone WebPartZone
Part: Content • Any ASP.NET server side control or user control behaves as a Web Part • System.Web.UI.WebControls.WebPart base class provides common code for Web Part behavior • Define on how the user interact with the Web Part • Add custom verbs • Define Icon for the title and catalog • Built-In part controls to enable functionality in a zone
Part: Content Part WebPartZone “All Modes” EditorZone “Edit Mode” WebPart EditorPart CatalogZone “Catalog Mode” CatalogPart BehaviorEditorPart GenericWebPart AppearanceEditorPart ImportCatalogPart PropertyGridEditorPart PageCatalogPart LayoutEditorPart TemplateCatalogPart