Technologia ASP.NET

69
Technologia ASP.NET

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 of Technologia ASP.NET

Page 1: Technologia ASP.NET

Technologia ASP.NET

Page 2: 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ść

Page 3: Technologia ASP.NET

Kontrolki serwera

Pełnią podobne zadania jak kontrolki HTML

Wykonywane są jednak po stronie serwera co eliminuje problemy niezgodności z przeglądarkami internetowymi

Page 4: Technologia ASP.NET

Tworzenie nowej prostej aplikacji

Page 5: Technologia ASP.NET

Zmieniamy nazwę strony startowej

Page 6: Technologia ASP.NET

Kontrolka i jej obsługa

Page 7: Technologia ASP.NET

Struktura aplikacji

Pliki z rozszerzeniem aspx są projektami stron zawierającymi odwołania do plików z kodem wykonywanym w tle (Code Behind)

Aplikacja generuje stronę wysyłaną do klienta w kodzie html

Page 8: Technologia ASP.NET

Uruchamianie w w trybie debuggowania

Page 9: Technologia ASP.NET

Źródło strony dla klienta

Page 10: Technologia ASP.NET

Składniki aplikacji – strona startowa aspx

Page 11: Technologia ASP.NET

Strona startowa - źródło

Page 12: Technologia ASP.NET

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

Page 13: Technologia ASP.NET

Pozostałe składniki

Skompilowany kod aplikacji ***.dll DLL (z ang. Dynamic Link Library lub

Dynamic Linked Library - biblioteka łączona dynamicznie) - w środowisku Windows biblioteka współdzielona (z ang. shared library), która przechowuje implementacje różnych funkcji (podprogramów) programu i/lub zasoby programu. Biblioteka DLL sama nie może wywoływać swoich funkcji (wykorzystywać zasobów w niej zawartych), może to zrobić jedynie program EXE.

Page 14: Technologia ASP.NET

Pozostałe składniki

Plik konfiguracyjny Web.config Inne pliki projektu nie wymagane do

uruchomienia aplikacji

Page 15: Technologia ASP.NET

Wygenerowanie aplikacji wymaga uruchomienia serwera IIS

Serwis Internet Information Services – IIS jest składnikiem systemu Windows ale musi być specjalnie zainstalowany

Jeżeli nie zmieniono ustawień IIS jego macierzystym katalogiem jest C:\Inetpub\wwwroot

Strona startowa aplikacji musi być umieszczona w katalogu macierzystym lub w podkatalogu z nazwą aplikacji

Page 16: Technologia ASP.NET

Zasoby niezbędne do uruchomienia

Strona startowa ***.aspx Plik ***.dll zawierający wszystkie pliki

niezbędne do uruchomienia aplikacji Składniki te mogą być umieszczone w

rzeczywistym katalogu w ścieżce c:\Inetpub\wwwroot

lub w katalogu wirtualnym

Page 17: Technologia ASP.NET

Uruchamianie aplikacji z rzeczywistego katalogu

W katalogu c:\Inetpub\wwwroot tworzymy katalog DzienDobry i umieszczamy w nim plik Start.aspx

Page 18: Technologia ASP.NET

Budujemy aplikację (Build) i publikujemy ją w katalogu macierzystym

Page 19: Technologia ASP.NET

Uruchamiamy aplikację z adresu localhost

Page 20: Technologia ASP.NET

Tworzenie katalogu wirtualnego

Przed utworzeniem pliku dll ustawiamy serwer we właściwościach aplikacji na serwerze IIS

Następnie tworzymy katalog wirtualny (Create Virtual Directory)

Konfigurujemy IIS (Panel sterowania -> Narzędzia administracyjne -> Internetowe usługi informacyjne)

Page 21: Technologia ASP.NET

Właściwości aplikacji

Page 22: Technologia ASP.NET

Konfigurowanie IIS

Page 23: Technologia ASP.NET

Konfigurowanie IIS - cd

Page 24: Technologia ASP.NET

Aplikacja jest uruchamiana z katalogu wirtualnego

Page 25: Technologia ASP.NET

Składniki niezbędne do uruchomienia aplikacji z dowolnego serwera Na komputerze musi funkcjonować

odpowiednio skonfigurowany serwer IIS W przypadku katalogu rzeczywistego - w

katalogu macierzystym IIS w podkatalogu bin musi być zapisany plik dll i w miejscu wywoływania z localhost plik startowy aspx

W przypadku katalogu wirtualnego katalog aplikacji w miejscu skoordynowanym z adresem tego katalogu

środowisko .NETFramework

Page 26: Technologia ASP.NET

Łączenie aplikacji internetowych z bazą danych

W trybie debuggowania aplikacje webowe łączą się z bazą danych podobnie jak aplikacje windowsowe

Aplikacja webowa uruchamiana z sieci jest widziana przez serwer baz danych jako użytkownik ASPNET

Jeżeli w serwerze taki użytkownik nie jest widoczny to należy go uaktywnić

Page 27: Technologia ASP.NET

Tworzenie nowego użytkownika w SQL MS Express

Page 28: Technologia ASP.NET
Page 29: Technologia ASP.NET
Page 30: Technologia ASP.NET
Page 31: Technologia ASP.NET

Uprawnienia ASPNET

Utworzony użytkownik ASPNET nie ma żadnych uprawnień

Nie można uprawnień nadać programowo, gdyż użytkownik sam sobie uprawnień nie może nadać

Uprawnienia może nadać właściciel bazy danych

Page 32: Technologia ASP.NET

Próba połączenia z bazą danych bez odpowiednich uprawnień

Page 33: Technologia ASP.NET

Nadawanie uprawnień przy pomocy EnterpriseManager

Page 34: Technologia ASP.NET

Nadawanie uprawnień w SQL

GRANT SELECT ON [dbo].[Studenci] TO [ASPNET]

Page 35: Technologia ASP.NET

GridView w aplikacji webowej

Page 36: Technologia ASP.NET

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"); }

Page 37: Technologia ASP.NET

Kod wykonywany w tle - cd

protected void Button1_Click(object sender, EventArgs e) { GridView1.DataSource = Studia.Tables["Studenci"]; GridView1.DataBind(); }

Page 38: Technologia ASP.NET

Tryb debugg

Page 39: Technologia ASP.NET

Aplikacja w sieci lokalnej

Page 40: Technologia ASP.NET

Przesyłanie danych pomiędzy klientem i serwerem

Do dynamicznego umieszczania na stronie klienta danych służy obiekt Response

Metoda Write obiektu Response umieszcza łańcuch w dokumencie użytkownika

Page 41: Technologia ASP.NET

Wykorzystanie obiektu Response do odczytu danych z bazy

Page 42: Technologia ASP.NET

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"); }

Page 43: Technologia ASP.NET

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("<BR>"); i++; } }

Page 44: Technologia ASP.NET

Wynik

Page 45: Technologia ASP.NET

Strona wysłana do klienta

Page 46: Technologia ASP.NET

Umieszczanie ciasteczek na dysku klienta Ciasteczka (ang. cookies) to niewielkie

informacje tekstowe, wysyłane przez serwer WWW i zapisywane po stronie użytkownika (zazwyczaj na twardym dysku). Domyślne parametry ciasteczek pozwalają na odczytanie informacji w nich zawartych jedynie serwerowi, który je utworzył. Ciasteczka są stosowane najczęściej w przypadku liczników, sond, sklepów internetowych czy stron wymagających logowania.

Page 47: Technologia ASP.NET

Wykorzystanie polecenia Response i Request

Klienci zapisani są w bazie Test w tabeli Klienci z autonumerowanym indeksem

Każdemu nowemu klientowi wysyłamy ciasteczko z jego identyfikatorem

W momencie żądania strony sprawdzamy czy klient miał wysłane ciasteczko

Page 48: Technologia ASP.NET

Projekt i źródło strony startowej

Page 49: Technologia ASP.NET
Page 50: Technologia ASP.NET

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("<BR>") Response.Write("Podaj nazwę i adres.") Response.Write("<BR>") End Try

Page 51: Technologia ASP.NET

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

Page 52: Technologia ASP.NET

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

Page 53: Technologia ASP.NET

Nowy klient

Jeżeli próba znalezienia ciasteczka zgłosi wyjątek pojawi się na stronie odpowiedni tekst i nie zostaną wyłączone etykiety, pola tekstowe i przycisk

Użytkownik wprowadza dane i naciska przycisk

Page 54: Technologia ASP.NET

Nie znaleziono ciasteczka

Page 55: Technologia ASP.NET

Klient wprowadził dane

Page 56: Technologia ASP.NET

Klient został zapisany do bazy

Page 57: Technologia ASP.NET

Kod w tle dla przycisku „Logowanie”

Protected 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"

Page 58: Technologia ASP.NET

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

Page 59: Technologia ASP.NET

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("Zostałeś zapisany do bazy") Response.Write("<BR>") Response.Write("Otrzymałeś numer: " & rezultat.ToString) End Sub

Page 60: Technologia ASP.NET

Procedura składowana użyta do zapisania nowego rekordu

USE [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()

Page 61: Technologia ASP.NET

Wynik aktualizacji

Page 62: Technologia ASP.NET
Page 63: Technologia ASP.NET

Jeżeli ciasteczko zostało odnalezione

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

Page 64: Technologia ASP.NET

Odszukiwanie klienta

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

Page 65: Technologia ASP.NET

Wynik

Page 66: Technologia ASP.NET

Zastąpienie polecenia Response kontrolkami serwera

Page 67: Technologia ASP.NET

Zmiany w kodzie ' Response.Write("Jesteś nowym klientem!") ' Response.Write("<BR>") ' Response.Write("Podaj nazwę i adres.") ' Response.Write("<BR>") Tekst1.Text = "Jesteś nowym klientem!" Tekst2.Text = "Podaj nazwę i adres."

' Response.Write("Zostałeś zapisany do bazy") ' Response.Write("<BR>") ' Response.Write("Otrzymałeś numer: " & rezultat.ToString) Tekst1.Text = "Zostałeś zapisany do bazy" Tekst2.Text = "Otrzymałeś numer: " & rezultat.ToString

Page 68: Technologia ASP.NET

Brak ciasteczka

Page 69: Technologia ASP.NET

Potwierdzenie zapisania klienta