1 / 47

Gliwice 2004

Systemy i Narzędzia Baz Danych z Dostępem Przez Internet. Gliwice 2004. ASP.NET cz.1. Agenda. 1. Wprowadzenie 2. Przegląd ASP.NET 3. Architektura ASP.NET 3.1 ASP a ASP.NET 3.2 VBScript a VB.NET 4. Biblioteki klas bazowych .NET 5. Składnia strony 6. Obiekty ASP.NET 7. Konfiguracja

breena
Download Presentation

Gliwice 2004

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. Systemy i Narzędzia Baz Danych z Dostępem Przez Internet Gliwice 2004 ASP.NET cz.1

  2. Agenda • 1. Wprowadzenie • 2. Przegląd ASP.NET • 3. Architektura ASP.NET • 3.1ASP a ASP.NET • 3.2 VBScript a VB.NET • 4. Biblioteki klas bazowych .NET • 5. Składnia strony • 6. Obiekty ASP.NET • 7. Konfiguracja • 7.1 Global.asax • 7.2 Web.config

  3. Agenda • 8. Wprowadzenie do Web Forms • 8.1 Prosty formularz w ASP i Web Forms • 8.2 Klasa Page • 8.3 Oddzielenie kodu od interefejsu • 9. Zarządzanie stanem

  4. 1 Wprowadzenie ASP.NET następcą ASP • platforma do budowy aplikacji WWW rozbudowana o szereg funkcji i narzędzi ułatwiających pracę programisty • pełna integracja ze środowiskiem .NET • składnia zgodna z ASP, jednak wzbogacona o nowe możliwości • opracowany z myślą o poprawieniu skalowalności i niezawodności

  5. 2 Przegląd ASP.NET Przegląd nowych technologii ASP.NET • wsparcie wielu języków programowania – m.in. C#, C++, Visual Basic.NET, JSCRIPT.NET • korzystanie ze wspólnego środowiska CLR (Common Language Runtime) – zarządzane środowisko wykonania, bezpieczeństwo typów, wspólne typy, dziedziczenie, dynamiczna kompilacja • biblioteki klas bazowych .NET BCL (Base Class Libraries) – dostęp do bibliotek .NET udostępniających wiele funkcji • zaawansowana konfiguracja – plik konfiguracyjny w formacie XML zawierający ustawienia zarządzające środowiskiem • Web Forms – nowe podejście w tworzeniu stron internetowych, zarządzanie i przechwytywanie zdarzeń,kontrolki serwera i użytkownika potrafiące dostosować generowany kod HTML do możliwości klienta • ADO.NET – następna generacja ADO, duże wsparcie i wykorzystanie w strukturach wewnętrznych języka XML

  6. 2 Przegląd ASP.NET • XML – promowanie rozwiązań opartych na XML, główny format transportowy wielu usług • Usługi sieciowe XML (XML Web Services) – model obiektów rozproszonych zastępujący DCOM (Distributed Component Object Model), opiera się na standardach HTTP oraz XML. • Zarządzanie stanem – poprawione zarządzanie stanem, możliwość pracy bez udziału cookie, wydzielenie zewnętrznego magazynu stanu dla zapewnienia współdzielenia stanu w farmach sieci WWW • Buforowanie – poprawione buforowanie, buforowanie żądań dla zwiększenia efektywności i współdzielenia danych na różnych stronach, buforowanie stron, bądź jej fragmentów na podstawie różnych kryteriów • Bezpieczeństwo – duże wsparcie i ułatwienie uwierzytelniania oraz autoryzacji za pomocą różnych technik • Projektowanie urządzeń przenośnych – pakiet do projektowania dla urządzeń przenośnych działających w środowisku WAP i WML

  7. 3 Architektura ASP.NET Architektura trójwarstwowa (n–warstwowa) • warstwa interfejsu użytkownika – przeglądarka internetowa • warstwa logiki aplikacji – Web Forms, XML Web Services, Usługi składników • warstwa dostępu do danych – ADO.NET, RDBMS Interfejs użytkownika Logika aplikacji Dane Web Forms ADO.NET XML Web Services SOAP XML Przeglądarka użytkownika HTTP XML RDBMS XML binar Usługi składników

  8. 3.1 ASP a ASP.NET ASP.NET to coś więcej niż kolejna wersja ASP, całkowicie różne jeśli chodzi o platformę i implementację

  9. 3.1 ASP a ASP.NET • Kod HTML wewnątrz ciała funkcji w klasycznym ASP <% Function mojaFunkcja() %> <table><tr><td> <% Response.Write Now() %> </td></tr></table> <% End Function %> • Analogiczny skrypt w ASP.NET <% Function mojaFunkcja() Response.Write (”<table><tr><td>”) Response.Write (Now()) Response.Write (”</td></tr></table>”) End Function %>

  10. 3.2 VBScript a VB.NET VBScript nie jest już obsługiwany, ale składnia VB.NET jest praktycznie identyczna z drobnymi różnicami

  11. 3.2 VBScript a VB.NET • Składnia właściwości klas w klasycznym ASP Public Property Get mojaWlasciwosc() mojaWlasciwosc=mWartosc End Property Public Property Let mojaWlasciwosc(nowaWartosc) mWartosc=nowaWartosc End Property • Składnia właściwości klas w klasycznym ASP.NET Public Property mojaWlasciwosc as String Get mojaWlasciwosc=mWartosc End Get Set mWartosc=mojaWlasciwosc End Set End Property

  12. 4. Biblioteki klas bazowych .NET Biblioteka klas bazowych BCL (Base Class Library) platformy .NET • zawiera klasy, interfejsy i typy danych optymalizujący proces projektowania • pozwala na dostęp do wielu funkcji i usług systemu • może być wykorzystywana w dowolnym języku, który jest zgodny z CLS (Common Language Specification)

  13. 4. Biblioteki klas bazowych .NET Wybrane funkcje dostępne w ramach biblioteki • Dane • System.Date - zawiera klasy określające strukturę ADO.NET • System.XML - zawiera klasy służące do przetwarzania dokumentów XML • System.XML.Serialization - zawiera klasy służące do serializacji obiektów do XML i odwrotnie • Usługi platformy • System.DirectoryServices - dostęp do Active Directory • System.Messaging - dostęp i zarządzanie MSMQ oraz wysyłanie i odbieranie wiadomości • System.Timers - zgłaszanie wyjątków co pewien czas • Sieć • System.Net - zawiera proste interfejsy popularnych protokołów • Bezpieczeństwo platformy .NET • System.Security - dostęp do podstawowych systemów bezpieczeństwa .NET • System.Security.Cryptography - usługi kryptograficzne, kodowanie, dekodowanie, tworzenie skrótów, generowanie liczb losowych, podpis cyfrowy

  14. 5. Składnia strony Składnia strony • blok odrysowania – kod wykonywany w momencie odrysowywania strony <% kod lub wyrażenie wstawiane %> • blok deklaracji – definiuje zmienne i metody <script runat=”server” language=”kodjezyka” src=”sciezka”> kod... </script> • runat=”server” – informuję, że blok ma zostać przetworzony na serwerze przed przesłaniem strony do przeglądarki • language=”kodjezyka” – dowolny język kompatybilny z .NET, wartość domyślna jest w dyrektywie @page, jeśli i tam nie podano to VB.NET, cała strona musi być napisana w jednym języku • src=”sciezka” – podaje ścieżkę dostępu i nazwę pliku zawierającego kod do wczytania, gdy podana kod między znacznikami jest ignorowany • blok komentarza – pozwalają na umieszczenie komentarza <%– anulowany kod lub komentarz –%>

  15. 5. Składnia strony • Składnia deklaracji kontrolek Web Forms <tagprefix:tagname id=”OpctionalID” attributename=”value” attributename-propertyname=”value” eventname="eventhandlermethod runat=”server” /> • tagprefix - alias pełnej nazwy przestrzeni nazw kontrolki • tagname - nazwa klasy zawierająca kontrolkę • id - unikalny identyfikator umożliwiający odwoływanie się do kontrolki • attributename - nazwa atrybutu • propertyname - nazwa właściwości • value - wartość przypisana • eventname - nazwa zdarzenia kontrolki • runat=”server” – informuję, że kontrolka ma zostać przetworzony na serwerze przed przesłaniem strony do przeglądarki • eventhandlermethod - nazwa metody obsługi zdarzenia Przykład <asp:TextBox id=”MyTextBox” runat=”server”/>

  16. 5. Składnia strony • Składnia deklaracji obiektów serwera <object id=”ID” runat=”server” class=”.NET Framework Class Name” /> <object id=”ID” runat=”server” class=”COM ProgID” /> <object id=”ID” runat=”server” class=”COM ClassID” /> • id - unikalny identyfikator umożliwiający odwoływanie się do obiektu • .NET Framework Class Name - identyfikuje nazwę klasy .NET • COM ProgID - identyfikuje komponent COM • COM ClassID - identyfikuje komponent COM Przykład <object id=”MyDataBase” class=”Microsoft.OleDBAdaptor” runat=”server”/> • Składnia dyrektywy dołączania po stronie serwera <!-- #include pathtype=filename --> • pathtype - virtual bądź filename • filename - pełna wirtualna ścieżka bądź plik w bieżącym katalogu

  17. 5. Składnia strony Dyrektywy • @page - <%@Page attribute=value [attribute=value]...%> definiuje atrybuty stosowane przez parser i kompilator strony ASP.NET • @Control - <%@Control attribute=value [attribute=value]...%> służy do definicji atrybutów nowotworzonej kontrolki użytkownika • @Import - <%@Import namespace=”nazwa przestrzeni”%> jawne importowanie przestrzeni nazw, elementy strony mają dostęp do klas z tej przestrzeni • @Register -<%@Register Tagprefix=”tagprefix” NameSpace=”tagname” %> lub <%@Register Tagprefix=”tagprefix” Tagname=”tagname” Src=”pathname” %> określenie aliasów dla własnych kontrolek użytkownika • @Assembly -<%@Assembly Name=”name” %>lub<%@Assembly Src=”pth”%> definiuje połączenie między stroną a zbiorem skompilowanym lub przeznaczonym do skompilowania, elementy strony mają dostęp do klas i interfejsów zdefiniowanych w zbiorze. Zbiory w katalogu /bin są automatycznie łączone ze stronami aplikacji

  18. 6. Obiekty ASP.NET Podstawowe obiekty ASP.NET odpowiadają obiektom ASP • Application • Request • Response • Server • Session

  19. 6.1 Obiekt Application (klasa HttpApplication) Obiekt Application zawiera wiele właściwości, które udostępniają obiekty innych klas. • Właściwości • Application – referencja do instancji HttpApplicationState • Context – umożliwia dostęp do obiektu HttpContext • Request – umożliwia dostęp do obiektu HttpRequest • Response – umożliwia dostęp do obiektu HttpResponse • Server – umożliwia dostęp do obiektu Server • Session – umożliwia dostęp do obiektu Session • Zdarzenia • OnStart – zdarzenie występuje gdy aplikacja jest uruchamiana • OnEnd – zdarzenie występuje podczas zamykania aplikacji • Error – zdarzenie zgłaszane w momencie wystąpienia błędu • BeginRequest – zgłaszane, gdy aplikacja otrzyma żądanie • EndRequest – zgłaszane, gdy kończy przetwarzanie żądania • AuthenticateRequest – zgłaszane, gdy aplikacja przystępuje do uwierzytelniania • AuthorizeRequest – zgłaszane, gdy aplikacja przystępuje do autoryzacji

  20. 6.2 Obiekt Application (kl. HttpApplicationState) Obiekt Application może być używany jako zbiór zmiennych, obiektów i komponentów o zasięgu aplikacji. Aplikacja ASP.NET to suma wszystkich stron, plików, procedur obsługi w katalogu wirtualnym i w jego podkatalogach. • Właściwości • AllKeys – zwraca tekstową tablicę z wartościami kluczy przechowywanych el. • StaticObjects – zawiera wszystkie obiekty dodane za pomocą tagu <OBJECT> • Count – liczba elementów w zbiorze przechowywanych elementów • Item – umożliwia pobranie elementu poprzez nazwę lub indeks, Application.Item(12), Application.Item(”nazwa”) • Contents – umozliwoa pobranie elementów, dodane dla kompatybilności z ASP • Metody • GetKey – zwraca nazwę obiektu przechowywanego pod podanym indeksem • Remove(nazwa|indeks) – usuwa element z kolekcji Contents • RemoveAll – usuwa wszystkie elementy z kolekcji Contents • Add – dodaje nowy obiekt do zbioru • Lock – uniemożliwia innym klientom modyfikację właściwości obiektu Application. • Unlock – umożliwia innym klientom modyfikację właściwości obiektu Application.

  21. 6.3 Obiekt Request (klasa HttpRequest) Obiekt Request pobiera wartości, które przeglądarka klienta przekazała do serwera w czasie żądania HTTP oraz pobiera inne informacje z serwera WWW. • Właściwości • AcceptTypes – tablica łańcuchów znaków obsługiwanych przez klienta typów MIME • ApplicationPath – ścieżka do katalogu głównego wirtualnej aplikacji • Browser – informacje na temat przeglądarki klienta • ClientCertificate – wartości pól przechowywane w certyfikacie klienta, który jest przesyłany w żądaniu HTTP • ContentType – typ zawartości MIMIE odebranego żądania • FilePath – wirtualna ścieżka bieżącego żądania • Files – zbiór plików przekazanych przez klienta (MIME multipart) • HttpMethod – metoda transferu danych przez klienta (GET,POST) • Cookies – wartości plików cookie przesłane w żądaniu HTTP • Form – wartości elementów formularza w zawartości żądania HTTP • IsAuthenticated – czy nastąpiło uwierzytelnienie połączenia • IsSecureConnection – czy połączenie jest bezpieczne HTTPS • RequestType – metoda transferu danych przez klienta (GET,POST)

  22. 6.3 Obiekt Request (klasa HttpRequest) • URL – informacja o bieżącym adresie URL żądania • URLReferrer – adres URL poprzedniego żądania, które doprowadziło do tego • QueryString – wartości zmiennych w ciągu kwerendy HTTP • ServerVariables – wartości wstępnie ustalonych zmiennych środowiska • TotalBytes – całkowita liczba bajtów przesłana do serwera, tylko do odczytu • UserHostAddress – zwraca adres IP klienta • UserHostName – zwraca nazwę DNS klienta • UserLanguages – zwraca tablicę z preferencjami językowymi klienta • Metody • BinaryRead – stosuje się do pobierania danych bajtowych • MapPath – przekłada wirtualną ścieżkę na fizyczną ścieżkę na serwerze • SaveAs – zapisuje żądanie HTTP na dysku

  23. 6.4 Obiekt Response (klasa HttpResponse) Obiekt Response może być używany do wysyłania wyników do klienta. • Właściwości • BufferOutput – wskazuje, czy wyniki strony są buforowane • Cache – ustala informacje o buforowaniu strony • Charset – dołącza nazwę zestawu znaków do nagłówka typu zawartości • ContentEncoding – ustala zestaw znaków zawartości HTTP • ContentType – określa typ zawartości HTTP dla odpowiedzi • Cookies – zbiór cookie wysłanych z bieżącą odpowiedzią • Expires – określa długość czasu przed wygaśnięciem strony buforowanej w przeglądarce • IsClientConnected – wskazuje, czy klient rozłączył się z serwerem • StatusCode – wartość kodu stanu zwrócona przez serwer • StatusDescription – ustala komunikat stanu zwrócony przez serwer

  24. 6.4 Obiekt Response (klasa HttpResponse) • Metody • AppendToLog – dodaje ciąg na końcu wpisu dziennika Web dla tego żądania. • BinaryWrite – zapisuje dane informacje w bieżącym wyniku HTTP bez żadnej konwersji zestawu znaków. • Clear – usuwa wszelkie buforowane wyniki HTML. • ClearContent – usuwa zawartość z bufora • ClearHeaders – usuwa nagłówki z bufora • End – zatrzymuje przetwarzanie pliku .asp i zwraca bieżący wynik. • Flush – natychmiast wysyła buforowany wynik. • Redirect – wysyła do przeglądarki komunikat o readresowaniu, co skłania ją do próby połączenia się z innym adresem URL. • Write – zapisuje zmienną jako ciąg w bieżącym wyniku HTTP. • WriteFile – zapisuje plik bezpośrednio do strumienia wyjściowego

  25. 6.5 Obiekt Server (klasa HttpServerUtillity) Obiekt Server umożliwia dostęp do użytecznych metod i właściwości na serwerze. • Właściwości • ScriptTimeout – limit czasu przetwarzania skryptu • MachineName – nazwa serwera WWW • Metody • CreateObject – tworzy wystąpienie składnika serwera COM • Execute – wykonuje inną stronę wstrzymując z wykonaniem bieżącą • GetLastError – zwraca ostatni odnotowany błąd lub wyjątek na stronie • HTMLEncode – stosuje kodowanie HTML do określonego ciągu bez znaczników HTML • HTMLDecode – operacja odwrotna • MapPath – mapuje określoną ścieżkę wirtualną, albo ścieżkę bezwzględną na bieżącym serwerze albo ścieżkę względną w stosunku do bieżącej strony, na ścieżkę fizyczną • Transfer – zatrzymuje wykonywanie bieżącej strony i wysyła wszystkie informacje bieżącego stanu do innej strony • URLEncode – stosuje do ciągu zasady kodowania URL • URLDecode – operacja odwrotna

  26. 6.6 Obiekt Session (klasa HttpSessionState) Obiekt Session może być używany do przechowywania informacji potrzebnych do konkretnej sesji użytkownika. Zmienne przechowywane w obiekcie Session nie są usuwane, kiedy użytkownik przechodzi między stronami w aplikacjiWłaściwości • CodePage – strona kodowa bieżącej strony • LCID – identyfikator regionalny • SessionID – zwraca identyfikację sesji dla tego użytkownika. • TimeOut –limit czasu dla stanu sesji dla tej aplikacji, w minutach. • Count – liczba elementów w zbiorze przechowywanych elementów • Item – umożliwia pobranie elementu poprzez nazwę lub indeks, Session.Item(12), Session.Item(”nazwa”) • Contents – umozliwoa pobranie elementów, dodane dla kompatybilności z ASP • IsCookieless – informacja, czy sesja odbywa się z udziałem cookie • IsNewSession – informacja, czy rozpoczyna się nowa sesja • Keys – zwraca wartości kluczy przechowywanych elementów • Mode – tryb zarządzania sesją, 0-off, 1-InProc, 2-StateServer, 3-SQLServer • StaticObjects – zawiera wszystkie obiekty dodane za pomocą tagu <OBJECT>

  27. 6.6 Obiekt Session (klasa HttpSessionState) • Metody • Abandon – niszczy obiekt Session i zwalnia jego zasoby. • Remove – usuwa element ze zbioru sesji • RemoveAll – usuwa wszystkie elementy ze zbioru sesji • Zdarzenia • Session_OnEnd – zdarzenie wywoływane przy zakończeniu sesji • Session_OnStart – zdarzenie wywoływane przy tworzeniu sesji

  28. 7. Konfiguracja Konfiguracja aplikacji ASP.NET odbywa się poprzez dwa mechanizmy, oparte na plikach konfiguracyjnych • global.asax - plik globalnych ustawień aplikacji • web.config - plik konfiguracji aplikacji w formacie XML

  29. 7.1 Konfiguracja global.asax Plik global.asax • umożliwia definiowanie zmiennych i obiektów o zasięgu aplikacji i sesji • umożliwia definiowanie procedur obsługi zdarzeń wywoływanych dla aplikacji i sesji • plik global.asax musi znajdować się w katalogu bazowym • aplikacja ASP.NET może posiadać tylko jeden plik global.asax • wszelkie zmiany w pliku są wykrywane i wprowadzane przez serwer automatycznie, jednak wiąże się to z restartem aplikacji - wszystkie połączenia są zrywane • bezpośrednie pobranie pliku global.asax poprzez przeglądarkę nie jest możliwe • użycie dyrektyw @assembly, @import rejestrują skompilowane zbiory i importują przestrzeń nazwa dla całej aplikacji • użycie <object> deklaruje obiekty o zakresie dla aplikacji lub sesji w zależności od parametru scope równym session lub application

  30. 7.1 Konfiguracja global.asax Przykładowy plik global.asax <script language=”vb” runat=”server”> Sub Application_OnStart() ‘kod wykonywany przy starcie aplikacji, np.. Application(”ZmiennaAplikacji”)=”zmienna aplikacji” Session(”ZmiennaSesji”)=”zmienna sesji” End Sub Sub Application_OnEnd() ‘kod wykonywany przy zakończeniu aplikacji End Sub Sub Session_OnStart() ‘kod wykonywany przy starcie sesji End Sub Sub Session_OnEnd() ‘kod wykonywany przy zakończeniu sesji End Sub </script>

  31. 7.2 Konfiguracja web.config Plik web.config • zazwyczaj znajduje się w katalogu głównym • jeśli znajduje się także w podkatalogach to ustawienia są łączone bądź nadpisywane w przypadku dublowania się • to standardowy plik tekstowy w formacie XML • zawiera cztery główne sekcje • <configSections> - używana do definiowania procedur obsługi, które interpretują kod XML w web.config, tylko gdy jest potrzeba definiowania własnych procedur obsługi pliku konfiguracyjnego • <appSetting> - stosowana do przechowywania zdefiniowanych elementów konfiguracyjnych dla aplikacji, szeroko stosowane np.. do przechowywania łańcucha połączenia z bazą danych • <location> - to alternatywna metoda dla stosowania wielu plików web.config w przypadku potrzeby określenie innych ustawień dla podkatalogów, atrybut path określa podkatalog, którego dotyczą ustawienia, w tej sekcji mogą powtarzać się wszystkie sekcje pliku web.config • <system.web> - główna i najważniejsza część pliku web.config, zawierająca ustawienia określające sposób pracy środowiska ASP.NET

  32. 7.2 Konfiguracja web.config Sekcja <system.web> - składa się z wielu podsekcji • Ogólna konfiguracja • <compilation> - definiowania języka użytego do kompilacji strony • <customErrors> - włączanie i wyłączanie błędów oraz przekierowania na strony obsługi odpowiednich błędów • <trace> - włączanie i wyłączanie śledzenia • Konfiguracja środowiska • <globalization> - określenie ustawień specyficznych dla lokalizacji i kultury, kodowanie • <pages> - określenie domyślnych właściwości wszystkich stron • Konfiguracja bezpieczeństwa • <authentication> - określenie metody uwierzytelniania użytkowników; Windows, Forms, Passport, None • <authoryzation> - definiowanie ustawień autoryzacji dla aplikacji; podskekcje allow, deny • <identity> - ustawienia tożsamości aplikacji WWW przy użyciu techniki personifikacji • Konfiguracja IIS • <proccesModel> - ustawienia odnośnie działania IIS, timeouty, limity • <sessionState> - w jaki sposób przechowywany jest stan sesji

  33. 7.2 Konfiguracja web.config Przykładowy plik web.config <configuration> <system web> <compilation defaultLanguage=”vb” debug=”true” /> <customErrors defaultRedirect=”defaultError.aspx” mode=”remoteOnly” /> <trace enabled=”false” requestLimit=”10” pageOutput=”false” traceMode=”SortByTime” localOnly=”true” /> <sessionState mode=”InProc” cookieless=”false” timeout=”30” /> </system.web> </configuration>

  34. 8. Wprowadzenie do Web Forms Web Forms • nowy model programistyczny ASP.NET, za pomocą którego tworzymy programowalne strony internetowe • pozwalają na implementację logiki aplikacji i wysyłanie na wyjściu znaczników HTML • oparte na CLR, możliwość korzystania z wszystkich zalet tej technologii • można tworzyć za pomocą zwykłego edytora tekstowego

  35. 8.1 Prosty formularz w ASP i Web Forms • Obsługa prostego formularza logowania w klasycznym ASP, plik z formularzem – login.htm <html><body> <form action=checklogin.asp method=post> <table> <tr> <td>użytkownik:</td> <td><input type=text name=User></td> </tr> <tr> <td>hasło:</td> <td><input=password name=Pass</td> </tr> <tr> <td colspan=2><input type=submit value=”Wyślij”></td> </tr> </table> </body></html>

  36. 8.1 Prosty formularz w ASP i Web Forms • Obsługa prostego formularza logowania w klasycznym ASP, skrypt weryfikujący nadesłane dane – checklogin.asp <%Option Explicit%> <html> <body> <% if Request.Form(”User”)=”kowalski” and Request.Form(”Pass”)=”hasło” then Response.Write ”Poprawne logowanie” else Response.Write ”Logowanie nieudane” end if %> </body> </html>

  37. 8.1 Prosty formularz w ASP i Web Forms • Obsługa prostego formularza logowania w Web Forms ASP.NET jeden skrypt – login.aspx <html> <head> <script language="vb" runat="Server"> Sub Button1_Click(source as Object, e As EventArgs) If User.Value.Equals("kowalski") And Pass.Value.Equals("haslo") Then tekst.InnerHtml="Poprawne logowanie" Else tekst.InnerHtml=" Logowanie nieudane" End If End Sub </script> </head> <body>

  38. 8.1 Prosty formularz w ASP i Web Forms <form runat=server> <table> <tr> <td>użytkownik:</td> <td><input id=User runat=server></td> </tr> <tr> <td>hasło:</td> <td><input id=Pass type=password runat=server></td> </tr> <tr> <td colspan=2><input type=submit OnServerClick="Button1_Click" value="Wyślij" runat=server></td> </tr> </table> </form> <p><span id="tekst" runat=server /> </body></html>

  39. 8.1 Prosty formularz w ASP i Web Forms Porównanie obu rozwiązań • w Web Forms realizowane jest rozwiązanie za pomocą jednej strony, nie jak w ASP gdzie zazwyczaj są oddzielne skrypty, po których się nawiguje • nie ma określonego atrybutu action, dane po zatwierdzeniu formularza są kierowane na tę samą stronę • zamiast atrybutu name każdy element ma id • para atrybut–wartość runat=server oznacza, że element będzie przetwarzany przed wysłaniem do przeglądarki • uzupełniane są atrybuty action, method oraz elementy otrzymują także name • po przesłaniu danych wywoływana jest procedura Button1_Click w zawiązku z atrybutem OnServerClick w kodzie

  40. 8.2 Klasa Page Każda strona domyślnie dziedziczy po klasie Page z przestrzeni nazw System.Web.UI • Właściwości • Request • Response • Server • Application • Session • IsPostBack - zwraca false jeśli bieżące żądanie jest pierwszym żądaniem • Metody • MapPath - zastępuję tę samą metodę obiektu Server • Validate -wymusza na wszystkich kontrolkach walidacyjnych weryfikacje danych • Zdarzenia • Page_Load - zgłaszane gdy strona się ładuje • Page_UnLoad - można używać do zamykania plików i jawnego zwalniania obiektów

  41. 8.2 Klasa Page Przykład zastosowania <html> <script language=”vb” runat=”server”> Sub Page_Load() if Not IsPostBack then informacja.InnerHtml=”Witamy na stronie” end if end Sub Sub Button1_Click(source as Object, e as EventArgs) informacja.InnerHtml=”Właśnie przesłałeś dane” End Sub </script> <body> <form runat=”server”> Nazwa: <input id=”nazwa” runat=”server”> <input type=submit runat=”server” OnServerClick=”Button1_Click”> </form> <p><span id=”informacja” runat=”server”> </body> </html>

  42. 8.3 Oddzielenie kodu od interfejsu Oddzielenie kodu od interfejsu • dobra praktyka programistczna • klasa w pliku kodu stanowi rozszerzenie klasy Page • jeśli kod jest skompilowany używamy atrybutu Codebehind • jeśli kod jest kodem źródłowym używamy atrybutu Src Przykład - plik test.aspx <%@page language="vb" Src="logika.vb" Inherits="Logika"%> <html> <body> <form runat="server"> Nazwa: <asp:TextBox id=Nazwa runat="server"></asp:TextBox> <asp:Button id=Button1 Text="Wyślij" runat="server" OnClick="Button1_Click"></asp:Button> </form> <p><asp:Label id=Informacja runat="server"></asp:Label> </body> </html>

  43. 8.3 Oddzielenie kodu od interfejsu Oddzielenie kodu od interfejsu Imports System Imports System.Web.UI.WebControls Public Class Logika Inherits System.Web.UI.Page Protected Informacja as label Protected Nazwa as TextBox Protected Button1 as Button Sub Page_Load() if Not IsPostBack then Informacja.Text="Witamy na stronie" end if end Sub Public Sub Button1_Click(source as Object, e as EventArgs) Informacja.Text=Nazwa.Text End Sub End Class

  44. 8.4 Proste przykłady • Proste przykłady Web Forms • Przesłanie danych formularza (proste logowanie) przykład, źródła • Stan sesji przykład, źródła • Stan aplikacji przykład, źródła

  45. 9. Zarządzanie stanem Problem zarządzania stanem aplikacji • protokół HTTP jest protokołem bezstanowym tzn. przy przechodzeniu poprzez strony nie ma przekazywania i przechowywania informacji • zarządzanie stanem to zdolność do przechowywania informacji • w ASP.NET możliwe jest utrzymywanie i zarządzanie danymi na poziomie całej aplikacji dzięki obiektowi Application • w ASP.NET możliwe jest utrzymywanie i zarządzanie danymi na poziomie sesji pojedynczego użytkownika dzięki obiektowi Session • zarówno nieumiejętne wykorzystanie stanu aplikacji jak i stanu sesji może doprowadzić do zmniejszenia wydajności aplikacji, w związku ze zużyciem zasobów serwera, do przechowywania dużych danych zaleca się stosować mechanizm zarządzaniem buforowania ASP.NET • sekcja sessionState pliku web.config służy do konfigurowania stanu: • mode - off - wyłącza stan sesji, InProc - zarządzanie stanu sesji przez IIS, StateServer - zarządzanie przez usługę Windows, SQLServer - przechowywanie w bazie SQLServer • cookieles - czy wykorzystywać cookie, czy kodować identyfikator w URL żądania • timeout - ilość minut po której nieaktywna sesja jest usuwana • connectionString - adres IP lub DNS serwera z włączoną usługą StateServer • sqlConnectionString - łańcuch łączenia z bazą danych SQLServer

  46. 10. Literatura • http://msdn.microsoft.com – MSDN Microsoft • http://asp.net • Scot Worley, ASP.NET Vademecum Profesjonalisty, Helion, 2003 • Robert B. Dunaway, Visual Studio .NET, Mikom, 2003

  47. Kontakt • Piotr Kuźniacki piotr.kuzniacki@polsl.pl Politechnika Śląska, Instytut Informatyki, ul. Akademicka 16, 44‑101 Gliwice, Polska Dziękuję za uwagę...

More Related