1 / 50

.NET web szolgáltatások

.NET web szolgáltatások. ASP .NET m á sodik rész Bilicki Vilmos bilickiv@inf.u-szeged.hu www.inf.u-szeged.hu/~bilickiv. Az előző előadás tartalma:. ASP .NET Web űrlapok Vezérlés, megjelenítés elkülönítése Követés, hibakeresés Felhasználói bevitel ellenőrzése. A mai előadás tartalma.

lamya
Download Presentation

.NET web szolgáltatások

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. .NET web szolgáltatások ASP.NET második rész Bilicki Vilmos bilickiv@inf.u-szeged.hu www.inf.u-szeged.hu/~bilickiv

  2. Az előző előadás tartalma: • ASP.NET • Web űrlapok • Vezérlés, megjelenítés elkülönítése • Követés, hibakeresés • Felhasználói bevitel ellenőrzése

  3. A mai előadás tartalma • ASP.NET • Saját vezérlők gyártása • Állapot kezelés • Alkalmazás állapot • Viszony állapot • Állapot mentés • Süti • URL • Gyorstár kezelés • Cache objektum • Kimeneti gyorstár • Web alkalmazás telepítése

  4. Források • Microsoft 2310B official curriculum • http://www.gotdotnet.com/

  5. Vezérlők • Web felhasználó vezérlő • ASP.NET oldal (csak form típusú vezérlőket tartalmazhat) • Web szerver vezérlő • C# osztály • System.Web.UI.WebControls.WebControl • ID, UniqueID, Parent, ViewState, Controls • ForeColor, BackColor, Font, BorderStyle, Height,Width • protected override void RenderContents(HtmlTextWriter writer)

  6. Felhasználó által létrehozott vezérlők • Segítségükkel újrahasználható UI objektumokat definiálhatunk • A felhasználó által definiált vezérlőt .ascx kiterjesztésű fájlban lehet definiálni • Tartalmazhat HTML elemeket kivéve: <HTML>, <BODY>, vagy <FORM> elemeket • Eseménykezelést is támogaja • Control direktíva (Trace nincs támogatva): • Csak beágyazva használhatóak • Beágyazva az esménykezelésben is megjelenik (Page_Load) <%@ Control Language="c#" %> <%@ Control Language="c#" Codebehind="WebUserControl1.ascx.cs" Inherits="test.WebUserControl1" %>

  7. Control1.ascx Page1.aspx Page2.aspx Miért érdemes használni • Kód és felület újrafelhasználás (egy web alkalmazáson belül) • Külön névtér • Egy oldalon többször is használhatjuk • Csoportmunka Application A Application B Page3.aspx

  8. Használata • Fejléc, Navigációs panel • Adatbázis megjelenítő • Beviteli mező ellenőrzéssel • Komplex beviteli összeállítás

  9. Felh. Vez. használata • A @ Register direktívával lehet regisztrálni az ASP.NET oldalon • Beszúrás megfelelő helyre • A tulajdonságok beálítása <%@ Register TagPrefix="demo" TagName="validNum" Src="numberbox.ascx" %> <demo:validNum id="num1" runat="server"/> num1.pNum = 5; //uses Set x = num1.pNum; //uses Get

  10. Felh. vez. létrehozása • Két módszer: • Új vezérlő létrehozása • Meglévő ASP.NET oldal átalakítása • Az oldal a tulajdonságokon kersztül kommunikál a vezérlővel • Az oldalnakfolyamatos elrendezést kell használnia public int pNum { get { return Convert.ToInt32(txtNum.Text); } set { txtNum.Text = Convert.ToString(value); } }

  11. Demó • Felhasználói vezérlő • Létrehozása • Paraméterezése • Használata

  12. Állapot kezelés • Állapot kezelés • Kliens oldali • Szerver oldali • Alkalmazás és viszony változók • Sütis és süti mentes viszonyok

  13. Állapot menedzselés Állapot menedzselés nélkül Állapot menedzseléssel Login.aspx Login.aspx Please enter your logon information: Please enter your logon information: First Name First Name John John Last Name Last Name Chen Chen Web Server Submit Submit Web Server Greetings.aspx Greetings.aspx Hello Hello John Chen Elfelejtettem, ki is vagy?

  14. Állapot mendzselés típusai

  15. Szerver oldali állapot kezelés • Az alkalmazás állapot egy globális tároló melyhez mindenki hozzáfér (HttpApplicationState) • Viszony állapot a böngésző viszonyra vonakozik (HttpSessionState) • Az értékek alkalmazás és viszony változókba mentődnek • Skálázhatóság • ASP.NET viszony azonosító: SessionID (120 bit) Web Szerver Kliens Alkalmazásésviszony változók SessionID

  16. Kliens oldali állapot kezelés • Sütiket használ az állapot menedzselésre • Állandó sütik • Ideiglenes sütik • Kevésbé megbízható mint a szerver oldali • A felhasználó törölheti • Kevésbé biztonságos (username@domainname.txt) • Korlátozott információ menyiség • Kliens oldali korlátozás Kliens Computer Web Szerver Sütik

  17. A Global.asax Fájl • Alkalmazás és viszony eseményeket kezel • Inicializálás, … • Csak egy lehet belőle Web alkalmazásonként • A Web alkalmazás virtuális gyökér könyvtárában van • Események: • Oldal kérés • Oldal küldés • Feltételes alkalmazás események • Használata opcionális

  18. A Global.asax Fájl Client Request Response ASP.NET Web Server IIS ASP.NET HTTP Runtime Application_BeginRequest Application_AuthenticateRequest Application_AuthorizeRequest Application_EndRequest Application_ResolveRequestCache Application_UpdateRequestCache Application_AquireRequestState Application_ReleaseRequestState Application_PreRequestHandlerExecute Application_PostRequestHandlerExecute Page execution

  19. Alkalmazás és viszony változók • Inicializálás • Használatuk • Időtartamuk • Skálázhatóság • Adatbázis használata

  20. Inicializálás • A változók a Global.asax fájlban vannak inicializálva • AzAlkalmazásobjektum a Web alkalmazás minden felhasználójának használható • AViszonyobjektum egy-egy felhasználói viszonyra vonatkozik protected void Application_Start(Object sender,EventArgs e) { Application["NumberofVisitors"] = 0; }

  21. Használatuk • Változók beállítása • Változók kiolvasása Session["BackColor"] = "blue"; Application.Lock(); Application["NumberOfVisitors"] = (int)Application["NumberOfVisitors"] + 1; Application.UnLock(); strBgColor = (string)Session["BackColor"]; lblNbVisitor.Text = Application["NumberOfVisitors"].ToString();

  22. Demó • Letöltés számláló • Viszony • Alkalmazás

  23. Időtartamuk • A viszony változók az utolsó használat után • Alapértelmezésben 20 másodprecig használhatóak • A viszony hossza Web.config fájban állítható: • Az alkalmazás változók az Application_End eseményig használhatóak <configuration> <system.web> <sessionState timeout="10" /> </system.web> </configuration>

  24. Változók skálázható tárolása • A viszony változóval a processz foglalkozik • Hátránya: • Nem skálázható • Az ASP.NET Két proceszen kívüli tárolót támogat: • SQL Szerver adatbázis vag állapot szerver Állapot szerver Web farm Viszony és alkalmazás változók -Vagy- SQL Kliens Viszony, alkalmazás állapotváltozók

  25. Adatbázis használata • A Web.config fájlban • Az SQL szerver beállítása • OSQL létrehozza a megfelelő tárolt eljárásokat és adatáblákat 1 <sessionState mode="SQLServer" sqlConnectionString="data source=SQLServerName; Integrated security=true" /> 2 c:\> OSQL –S SQLServerName –E <InstallSqlState.sql

  26. Sütis és sütimentes viszonykövetés • Süti használata állapotmentésre • Információ kiolvasás sütiből • Sütimentes viszonykövetés • Beállítása

  27. Sütik használata • Új süti létrehozása • A süti ismeri a tartomány nevet HttpCookie objCookie = new HttpCookie("myCookie"); DateTime now = DateTime.Now; objCookie.Values.Add("Time", now.ToString()); objCookie.Values.Add("ForeColor", "White"); objCookie.Values.Add("BackColor", "Blue"); Response.Cookies.Add(objCookie); HttpCookie objCookie = new HttpCookie("myCookie"); DateTime now = DateTime.Now; objCookie.Values.Add("Time", now.ToString()); objCookie.Values.Add("ForeColor", "White"); objCookie.Values.Add("BackColor", "Blue"); objCookie.Expires = now.AddHours(1); Response.Cookies.Add(objCookie); A tartós sütihez ezt be kell állítani Set-Cookie: Username=John+Chen; path=/; domain=microsoft.com; Expires=Tuesday, 01-Feb-05 00.00.01 GMT

  28. Adatok kiolvasása • Süti kiolvasása • Értékek kiolvasása HttpCookie objCookie = Request.Cookies["myCookie"]; lblTime.Text = objCookie.Values["Time"]; lblTime.ForeColor = System.Drawing.Color.FromName (objCookie.Values["ForeColor"]); lblTime.BackColor = System.Drawing.Color.FromName (objCookie.Values["BackColor"]);

  29. Sütimentes állapotkövetés • Minden aktív viszonyt viszony azonosítóval azonosítanak • Ezeket az azonosítókat sütiben vay URL-ben kommunikálják • Sütimentes viszony • Az IDaz URL-ben van • Nem használhatunk abszolút URL-t • A legtöbb böngésző 255 karakterre korlátozza az URL-t http://server/(h44a1e55c0breu552yrecobl)/page.aspx

  30. Sütimentes állapotkövetés beállítása • A Web.config fájl viszony állapot szekciójában <SessionState> • Set cookieless = true <sessionState cookieless="true" />

  31. Demó • Süti írás • Sütimentes állapotkövetés

  32. A Cache Objektum használata • Mi a Cache Objektum? • Előnyei • Használata • Objektumok törlése

  33. A Cache Objektum • Egy információ tárolására szolgáló objektum • EgyCacheobjektum Web Alkalmazásonként • Az alkalmazás változók egy alternatívája • Viszony változók tárolására nem használják • Kulcs-érték párokkal használhatjuk Cache["myKey"] = myValue;

  34. Előnyei • Gyorsabb mint minden kérésre létrehozni egy objektumot • Támogatja a zárolást • Automatikuserőforrás menedzsment • Támogatja a callback függvényeket • Támogatja a függőségek használatát

  35. Hogyan használjuk? • Írás: • Olvasás: //Implicit method Cache["myKey"] = myValue; //Explicit method Cache.Insert("myKey", myValue, Dependency, AbsoluteExpiration, SlidingExpiration, CacheItemPriority, CacheItemRemovedCallBack); myValue = Cache["myKey"];

  36. Elemek eltávolítása • Abszolút lejárati idő • Csúszó lejárati idő • Más változótól függő • Prioritás DateTime.Now.AddMinutes(5) TimeSpan.FromSeconds(20) AddCacheItemDependency("Variable.Value") CacheItemPriority.High

  37. Kimeneti gyorstárak

  38. Kimeneti gyorstár típusok • Lap tárolás • Lap részlet tárolás • XML Web szolgáltatás tárolás

  39. Hogyan használjuk? • A gyorstár tartalma dinamikus oldalakból származik • A teljes Web oldal hozzáférhető a gyorstárban • A gyorstár időtartama beállítadó • A VaryByParam paraméterrel tudjuk szabályozni a gyorstárban lévő variációk számát <%@ OutputCache Duration="900" VaryByParam="none" %>

  40. Rész tárolás • Az oldal részt felhaszálói vezérlővé kell konvertálni • Be kell állítani Duration és varyByParam paramétereket <%@ OutputCache Duration="120" VaryByParam="none" %>

  41. ASP.NET Web alkamazás konfigurálása • A konfigurációs módszerek bemutatása • Web szerver kofigurálása Machine.config fájllal • Az alkalmazás konfigurálása Web.config fájllal • Konfigurációs öröklődés • Adat mentése és kiolvasása a Web.config fájlból • Dinamikus tulajdonságok

  42. Konfigurációs módszerek áttekintés • Machine.config fájl • Gép szintű beállítások • Web.config fájlok • Alkalmazás és könyvtár szintű beállítások • Mindkét fájl: • Jól formázott XML • camelCase-t használó • Bővíthető

  43. Machine.config • A Machine.config fájl tartalma minden alkalmazásra hat • Csak egy van belőleegy webszerveren • A legtöbb beállítás a Web.config fájlokkal átírható

  44. Alkalmazás konfigurálása Web.config használatával • Egy vagy több Web.config fájl web alkalmazásonként • Az alkalmazáshoz szükséges minden infomráció itt van • Az ASP.NET funkcionalitás minden tulajdonságát itt beállíthatjuk • Biztonság • Mód • Általános alkalmazás beállítások • Követés

  45. Konfiguráció hierarchia • Az alkalmazsá szintű Web.config fájl a Machine.config fájltól örökli beállításit • Minden egyes könyvtár tartalmazhat Web.config fájlt CONFIG Machine.config VirtualDir Web.config SubDir Web.config

  46. Adatok olvasása, írása Web.config-ból • Beállítsok mentése • Hozzáférés: <configuration> <appSettings> <add key="pubs" value="server=localhost; integrated security=true; database=pubs"/> </appSettings> </configuration> AppSettingsReader App = new AppSettingsReader(); string strPubs = (string)App.GetValue("pubs", typeof(string));

  47. Dinamikus tulajdonságok • Inkább a Web.config fájlban mint a kódba tartsuk változóink értékeit • Újrafordítás nélkül módosíthatóak • Objektum tulajdonságokon keresztül hozzáférhetőek

  48. Web alkalmazás telepítése • A Web alkalmazás lefordítása • Csak a szükségesfájlokat: • Visual Studio .NET solution files (.vbproj, .vbproj.webinfo, .csproj, .csproj.webinfo, etc.) • Resource (.resx) files • Code-behind pages (.vb, .cs) • Bemásolás

  49. A mai előadás tartalma • ASP.NET • Saját vezérlők gyártása • Állapot kezelés • Alkalmazás állapot • Viszony állapot • Állapot mentés • Süti • URL • Gyorstár kezelés • Cache objektum • Kimeneti gyorstár • Web alkalmazás telepítése

  50. A következő előadás tartalma • ASP.NET biztonság + XML kezelés • ASP.NET biztonság • .NET XML kezelés • XML kezelés • XSD • Objektumok és XML

More Related