technologia asp.net

Click here to load reader

Post on 03-Jan-2016

44 views

Category:

Documents

2 download

Embed Size (px)

DESCRIPTION

Technologia ASP.NET. Zalety ASP.NET (ASPX). Kodowanie po stronie serwera Skrypty działające po stronie klienta Kompilacja kodu zapewniająca bezpieczeństwo i skalowalność. Kontrolki serwera. Pełnią podobne zadania jak kontrolki HTML - PowerPoint PPT Presentation

TRANSCRIPT

  • Technologia ASP.NET

  • Zalety ASP.NET (ASPX)Kodowanie po stronie serweraSkrypty dziaajce po stronie klientaKompilacja kodu zapewniajca bezpieczestwo i skalowalno

  • Kontrolki serweraPeni podobne zadania jak kontrolki HTMLWykonywane s jednak po stronie serwera co eliminuje problemy niezgodnoci z przegldarkami internetowymi

  • Tworzenie nowej prostej aplikacji

  • Zmieniamy nazw strony startowej

  • Kontrolka i jej obsuga

  • Struktura aplikacjiPliki z rozszerzeniem aspx s projektami stron zawierajcymi odwoania do plikw z kodem wykonywanym w tle (Code Behind)Aplikacja generuje stron wysyan do klienta w kodzie html

  • Uruchamianie w w trybie debuggowania

  • rdo strony dla klienta

  • Skadniki aplikacji strona startowa aspx

  • Strona startowa - rdo

  • Kod aplikacji wykonywany w tle ***.aspx.cs

  • Pozostae skadnikiSkompilowany kod aplikacji ***.dllDLL (z ang. Dynamic Link Library lub Dynamic Linked Library - biblioteka czona dynamicznie) - w rodowisku Windows biblioteka wspdzielona (z ang. shared library), ktra przechowuje implementacje rnych funkcji (podprogramw) programu i/lub zasoby programu. Biblioteka DLL sama nie moe wywoywa swoich funkcji (wykorzystywa zasobw w niej zawartych), moe to zrobi jedynie program EXE.

  • Pozostae skadnikiPlik konfiguracyjny Web.configInne pliki projektu nie wymagane do uruchomienia aplikacji

  • Wygenerowanie aplikacji wymaga uruchomienia serwera IISSerwis Internet Information Services IIS jest skadnikiem systemu Windows ale musi by specjalnie zainstalowanyJeeli nie zmieniono ustawie IIS jego macierzystym katalogiem jest C:\Inetpub\wwwrootStrona startowa aplikacji musi by umieszczona w katalogu macierzystym lub w podkatalogu z nazw aplikacji

  • Zasoby niezbdne do uruchomieniaStrona startowa ***.aspxPlik ***.dll zawierajcy wszystkie pliki niezbdne do uruchomienia aplikacjiSkadniki te mog by umieszczone w rzeczywistym katalogu w ciece c:\Inetpub\wwwrootlub w katalogu wirtualnym

  • Uruchamianie aplikacji z rzeczywistego kataloguW katalogu c:\Inetpub\wwwroot tworzymy katalog DzienDobry i umieszczamy w nim plik Start.aspx

  • Budujemy aplikacj (Build) i publikujemy j w katalogu macierzystym

  • Uruchamiamy aplikacj z adresu localhost

  • Tworzenie katalogu wirtualnegoPrzed utworzeniem pliku dll ustawiamy serwer we waciwociach aplikacji na serwerze IISNastpnie tworzymy katalog wirtualny (Create Virtual Directory)Konfigurujemy IIS (Panel sterowania -> Narzdzia administracyjne -> Internetowe usugi informacyjne)

  • Waciwoci aplikacji

  • Konfigurowanie IIS

  • Konfigurowanie IIS - cd

  • Aplikacja jest uruchamiana z katalogu wirtualnego

  • Skadniki niezbdne do uruchomienia aplikacji z dowolnego serweraNa komputerze musi funkcjonowa odpowiednio skonfigurowany serwer IISW przypadku katalogu rzeczywistego - w katalogu macierzystym IIS w podkatalogu bin musi by zapisany plik dll i w miejscu wywoywania z localhost plik startowy aspxW przypadku katalogu wirtualnego katalog aplikacji w miejscu skoordynowanym z adresem tego katalogurodowisko .NETFramework

  • czenie aplikacji internetowych z baz danychW trybie debuggowania aplikacje webowe cz si z baz danych podobnie jak aplikacje windowsoweAplikacja webowa uruchamiana z sieci jest widziana przez serwer baz danych jako uytkownik ASPNETJeeli w serwerze taki uytkownik nie jest widoczny to naley go uaktywni

  • Tworzenie nowego uytkownika w SQL MS Express

  • Uprawnienia ASPNETUtworzony uytkownik ASPNET nie ma adnych uprawnieNie mona uprawnie nada programowo, gdy uytkownik sam sobie uprawnie nie moe nadaUprawnienia moe nada waciciel bazy danych

  • Prba poczenia z baz danych bez odpowiednich uprawnie

  • Nadawanie uprawnie przy pomocy EnterpriseManager

  • Nadawanie uprawnie w SQLGRANT SELECT ON [dbo].[Studenci] TO [ASPNET]

  • GridView w aplikacji webowej

  • Kod wykonywany w tleusing System.Data;using System.Data.SqlClient;namespace Baza{ public partial class _Default : System.Web.UI.Page { DataSet Studia = new DataSet(); DataTable Studenci = new DataTable(); protected void Page_Load(object sender, EventArgs e) { SqlDataAdapter Adapter = new SqlDataAdapter ("Select * From Studenci", "Data Source=STACJONARNY\\SQLEXPRESS;Integrated Security=True;Initial Catalog=Test"); Studia.Tables.Add(Studenci); Studia.Clear(); Adapter.Fill(Studia, "Studenci"); }

  • Kod wykonywany w tle - cd protected void Button1_Click(object sender, EventArgs e) { GridView1.DataSource = Studia.Tables["Studenci"]; GridView1.DataBind(); }

  • Tryb debugg

  • Aplikacja w sieci lokalnej

  • Przesyanie danych pomidzy klientem i serweremDo dynamicznego umieszczania na stronie klienta danych suy obiekt ResponseMetoda Write obiektu Response umieszcza acuch w dokumencie uytkownika

  • Wykorzystanie obiektu Response do odczytu danych z bazy

  • Kod wykonywany w tle DataSet Studia = new DataSet(); DataTable Studenci = new DataTable(); protected void Page_Load(object sender, EventArgs e) { SqlDataAdapter Adapter = new SqlDataAdapter ("Select * From Studenci", "Data Source=STACJONARNY\\SQLEXPRESS;Integrated Security=True;Initial Catalog=Test"); Studia.Tables.Add(Studenci); Studia.Clear(); Adapter.Fill(Studia, "Studenci"); }

  • Kod wykonywany w tle protected void Button2_Click(object sender, EventArgs e) { int i =1; foreach(DataRow _r in Studia.Tables["Studenci"].Rows) { Response.Write(i.ToString() + ". "); Response.Write(_r["Imie"].ToString().Trim() + " "); Response.Write(_r["Nazwisko"].ToString().Trim()); Response.Write(""); i++; } }

  • Wynik

  • Strona wysana do klienta

  • Umieszczanie ciasteczek na dysku klientaCiasteczka (ang. cookies) to niewielkie informacje tekstowe, wysyane przez serwer WWW i zapisywane po stronie uytkownika (zazwyczaj na twardym dysku). Domylne parametry ciasteczek pozwalaj na odczytanie informacji w nich zawartych jedynie serwerowi, ktry je utworzy. Ciasteczka s stosowane najczciej w przypadku licznikw, sond, sklepw internetowych czy stron wymagajcych logowania.

  • Wykorzystanie polecenia Response i RequestKlienci zapisani s w bazie Test w tabeli Klienci z autonumerowanym indeksemKademu nowemu klientowi wysyamy ciasteczko z jego identyfikatoremW momencie dania strony sprawdzamy czy klient mia wysane ciasteczko

  • Projekt i rdo strony startowej

  • Kod w tle dla adowania strony

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load Dim Ide As String LadujKlientow() Try Ide = Request.Cookies("Klient")("Identyfikator").ToString() Catch Nowy = False Response.Write("Jeste nowym klientem!") Response.Write("") Response.Write("Podaj nazw i adres.") Response.Write("") End Try

  • Kod w tle dla adowania strony - cd

    If Nowy Then Nazwa.Text = ZnajdzKlienta(Ide)(0)("Nazwa") Label2.Visible = False Adres.Visible = False Button1.Visible = False End If End Sub

  • Otwieranie bazy i adowanie tabeli Private Sub LadujKlientow() SQLConn.ConnectionString = _ "Data Source=STACJONARNY\sqlexpress;Initial Catalog=Test;Integrated Security=True" SQLConn.Open() Dim Adapter As New SqlDataAdapter("Select * From Klienci", _ SQLConn) Sklep.Tables.Add(Klienci) Adapter.Fill(Sklep, "Klienci") End Sub

  • Nowy klientJeeli prba znalezienia ciasteczka zgosi wyjtek pojawi si na stronie odpowiedni tekst i nie zostan wyczone etykiety, pola tekstowe i przyciskUytkownik wprowadza dane i naciska przycisk

  • Nie znaleziono ciasteczka

  • Klient wprowadzi dane

  • Klient zosta zapisany do bazy

  • Kod w tle dla przycisku LogowanieProtected Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click DodajKlienta() End Sub Private Sub DodajKlienta() Dim Polecenie As New SqlCommand Polecenie.Connection = SQLConn Polecenie.CommandType = CommandType.StoredProcedure Polecenie.CommandText = "DopisanieKlientow"

  • Kod w tle dla przycisku Logowanie - cd Polecenie.Parameters.Add(New SqlParameter("@Nazwa", SqlDbType.Char)) Polecenie.Parameters("@Nazwa").Direction = ParameterDirection.Input Polecenie.Parameters.Add(New SqlParameter("@Adres", SqlDbType.Char)) Polecenie.Parameters("@Adres").Direction = ParameterDirection.Input Polecenie.Parameters.Add(New SqlParameter("@Identity", SqlDbType.Char)) Polecenie.Parameters("@Identity").Direction = ParameterDirection.ReturnValue Polecenie.Parameters("@Nazwa").Value = Nazwa.Text Polecenie.Parameters("@Adres").Value = Adres.Text

  • Kod w tle dla przycisku Logowanie - cd Dim rezultat, wynik As Integer wynik = Polecenie.ExecuteNonQuery rezultat = Polecenie.Parameters("@Identity").Value Response.Cookies("Klient")("Identyfikator") = rezultat.ToString Response.Write("Zostae zapisany do bazy") Response.Write("") Response.Write("Otrzymae numer: " & rezultat.ToString) End Sub

  • Procedura skadowana uyta do zapisania nowego rekorduUSE [Test]GO/****** Object: StoredProcedure [dbo].[DopisanieKlientow] Script Date: 01/14/2008 18:14:30 ******/SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOCREATE PROCEDURE [dbo].[DopisanieKlientow] @Nazwa char(50), @Adres char(50)AS INSERT INTO Klienci (Nazwa, Adres) VALUES (@Nazwa, @Adres)RETURN SCOPE_IDENTITY()

  • Wynik aktualizacji

  • Jeeli ciasteczko zostao odnalezione

    If Nowy Then Nazwa.Text = ZnajdzKlienta(Ide)(0)("Nazwa") Label2.Visible = False Adres.Visible = False Button1.Visible = False End If End Sub

  • Odszukiwanie klienta Private Function ZnajdzKlienta(ByVal ide As String) Dim Query As String Query = "IdKlienta = " & ide ZnajdzKlienta = Klienci.Select(Query) End Function

  • Wynik

  • Zastpienie polecenia Response kontrolkami serwera

  • Zmiany w kodzie ' Response.Write("Jeste nowym klientem!") ' Response.Write("") ' Response.Write("Podaj nazw i adres.") ' Response.Write("") Tekst1.Text = "Jeste nowym klientem!" Tekst2.Text = "Podaj nazw i adres." ' Response.Write("Zostae zapisany do bazy") ' Response.Write("") ' Response.Write("Otrzymae numer: " & rezultat.ToString) Tekst1.Text = "Zostae zapisany do bazy" Tekst2.Text = "Otrzymae numer: " & rezultat.ToString

  • Brak ciasteczka

  • Potwierdzenie zapisania klienta