Wstęp do ASP.NET
Arkadiusz Popa, WMiI, UŁ
Arkadiusz PopaSerwery Aplikacji
Co na wykładzie …o Omówienie architektury platformy .NETo CLR … wspólne środowisko uruchomienioweo Różnica … statyczne a dynamiczne wwwo ASP.NET … omówinie ogólneo ASP.NET … wymagania
o Developerskie
o Klienckie
o ASP.NET … omówienie działaniao Gotowe komponenty … Web formso Obsługa zdarzeń … Event Handlingo Jak odciążyć serwer … Validatorso Użycie
Arkadiusz Popa, WMiI, UŁ
Omówienie architektura platformy .NET
o Czym jest platforma .NET?
o Oprogramowaniem łączącym informacje, ludzi, systemy, urządzenia (def. Microsoft)
o Platforma programistyczna opracowana przez Microsoft, obejmująca środowisko uruchomieniowe (CLR) oraz biblioteki klas dostarczające standardowej funkcjonalności dla aplikacji. (def. Wikipedia)
o Zintegrowane środowisko do tworzenia, kompilowania, testowania, zarządzania i utrzymania aplikacji spełniających wymagania klienta
Arkadiusz Popa, WMiI, UŁ
Arkadiusz Popa, WMiI, UŁ
o cd … Czym jest platforma .NET?
o Środowisko wspierające różne języki programowania: C++, C#, VB i inne, z zestawem bibliotek do wykorzystania na różnego typu platformach systemowych,
o Środowisko posiadające rozbudowane nowe API (Application Programming Interface)
Omówienie architektura platformy .NET
Arkadiusz Popa, WMiI, UŁ
Omówienie architektura platformy .NETo Różnice w API
o Stare APIo aplikacje kompilowane do kodu maszynowego, komunikujące się z systemem poprzez zestaw funkcji (WIN32)
o problem z przenośnością między różnymi procesorami, albo nie wykorzystanie ich możliwości
o problem z przenośnością między różnymi wersjami systemów Windows
o Nowe APIo kod pośredni – CIL
o kompilacja metod klasy w momencie pierwszego wywołania. Zmiana w budowie bibliotek klas.
Architektura.NET Frameworko Cechy platformy .NET
(czyli co zrobiono dla developerów)
o Programowanie obiektowe – pełne wsparcie
o Garbage Collector - zarządzanie czasem życia obiektów
o C++, C#, J#, VB, … -możliwość programowania w wielu językach … nawet w ramach jednej aplikacji!!
o .NET Class Library - zbiór dostarczanych klas podstawowych
Arkadiusz Popa, WMiI, UŁ
Architektura platformy .NET
Arkadiusz Popa, WMiI, UŁ
WIN 32
MessageQueueing IIS WMI COM +
CLR
Class Library
ADO .NET + XML
Web Forms Web Sercices Windows Forms
C# C++ VB C++ …
.NET Framework - Budowa
CLRCLR
o Wspólne środowisko uruchomieniowe (Common Language Runtime, w skrócie CLR) to podstawa całego systemu .NET Framework. Wszystkie języki środowiska .NET (na przykład C# czy Visual Basic .NET), a także wszystkie biblioteki klas obecne w .NET Framework (ASP.NET, ADO.NET i inne) oparte są na CLR. Ponieważ nowe, tworzone przez Microsoft oprogramowanie, także oparte jest na .NET Framework, każdy, kto chce korzystać ze środowiska Microsoft, prędzej czy później będzie musiał zetknąć się z CLR.
(def: wikipedia)
o Środowisko CLR kompiluje i wykonuje zapisany w standardowym języku pośrednim Microsoft (CIL) kod aplikacji zwany kodem zarządzanym (ang. managed code), zapewniając wszystkie podstawowe funkcje konieczne do działania aplikacji. Podstawowym elementem CLR jest standardowy zestaw typów danych, wykorzystywanych przez wszystkie języki oparte na CLR, a także standardowy format metadanych, służących do opisu oprogramowania wykorzystującego te typy danych. CLR zapewnia także mechanizmy umożliwiające pakowanie kodu zarządzanego w jednostki zwane podzespołami.
Arkadiusz Popa, WMiI, UŁ
Architektura platformy .NET
Arkadiusz Popa, WMiI, UŁ
CIL
Zbudowanie(Build)
PLIK
CLR
Pierwsze uruchomienie
Developer
Użytkownik
Kompilacja do CIL
Kompilacja,uruchomienie
Strony statyczne a dynamiczneo Strony statyczne
o HTML o Treści statyczneo Ograniczenia funkcjonalnościo Problemy techniczne, np.: aktualizacje
<html><head> <title>Statyczna strona html</title></head><body> <h1>Dzień dobry i dobrywieczór</h1> Obecnie, jak i w przyszłości jesteś zawsze 1 odwiedzającym</body>
</html>Arkadiusz Popa, WMiI, UŁ
Jak zmieniaćtreść
dynamicznie?
Jak zmieniaćilość?
Strony dynamiczneo Strony dynamiczneStrony dynamiczne
o FFunkcjonalnośćunkcjonalność ograniczona aktualnymi ograniczona aktualnymi technologiamitechnologiami
o TTreścireści zmieniane dynamicznie zmieniane dynamicznieo Asynchronizacja, np.AjaxAsynchronizacja, np.Ajaxo HTML jest tylko efektem końcowymHTML jest tylko efektem końcowym
Arkadiusz Popa, WMiI, UŁ
<html><head> <title>Dynamiczna strona html</title></head><body> <h1>Dzień dobry, mamy dokładnie 7:00,
dziś jest 10.10.2008. Miłego dnia</h1> Jesteś 12345 odwiedzającym, a dziś jesteś 3.</body>
</html>
Treści zmieniają się z kazdym odswieżeniem
strony
Wartości generują się
automatycznie
ASP.NET co to za twór ?
o Nowoczesna technologia tworzenia dynamicznych stron internetowycho Graficzne GUIo Wbudowane i dostosowane do www obiekty
o Technologia wykorzystujące platformę MS .NET Framework
o Wykorzystuje wspólne środowisko uruchomieniowe CLR
o Następca ASP - Active Server Pages
Arkadiusz Popa, WMiI, UŁ
Arkadiusz Popa, WMiI, UŁ
o Dwie funkcjonalności:o Web Forms –strony wwwo Web Services – rozproszone usługi
internetowe
o Generuje kod niezależny od przeglądarki
o Pozwala na tworzenie stron w wielu językach programowania
o Posiada wbudowane mechanizmy do debugowanie i profileingu
ASP.NET co to za twór ?
ASP.NET … mechanizmy zaawansowaneo Programowanie zdarzeniowe
o Akcjeo Validacje
o Dobre środowisko Developerskie… Visual Studio 2005/2008 Webo Podpowiadani składnio sprawdzenia syntaktycznej
poprawności o debugowanie
Arkadiusz Popa, WMiI, UŁ
Arkadiusz Popa, WMiI, UŁ
o Bogaty zestaw kontroleko HTMLo Web Forms (klasy z wbudowanymi
metodami)o Wbudowana obsługa mechanizmów
uwierzytelniania - bezpieczeństwoo Mechanizmy optymalizacyjne
o Buforowanie o Wsparcie dla programowania urządzeń
mobilnych
ASP.NET … mechanizmy zaawansowane
ASP.NET co potrzeba?
o Darmowy serwer ASP na którym można testować strony: kod dostępu do pobrania z C216
o Developing:o Maszyna z obsługą systemu
Windows XP, Vista, Server 2003, Server 2008
o MS Visual Studio 2005/2008 Web Express Edition – darmowy do pobrania ze stron Microsoft
o MSD Library – zbiór bibliotek Arkadiusz Popa, WMiI, UŁ
ASP.NET mix z HTML
Arkadiusz Popa, WMiI, UŁ
<%@ Page Language="C#" %><%@ Import Namespace="System.IO" %><html>
<head> <title>Tytuł strony – dynamiczna strone</title> </head><body>
<h2> Witam na mojej stronie</h2>Jesteś <%//Odczytanie wartości odwiedzin z plikuFileStream s = new FileStream("c:\\Licznik\\Odwiedzin.dat",
FileMode.OpenOrCreate);int n;try {
BinaryReader r = new BinaryReader(s);n = r.ReadInt32();
} catch { n = 0; } n++; //Podbicie wartości licznikas.Seek(0, SeekOrigin.Begin);BinaryWriter w = new BinaryWriter(s);//zapisanie nowej wartości do pliku i zamknięcie plikuw.Write(n); s.Close();//Wyświetlenie ilości użytkowników na stronieResponse.Write(n); // %> odwiedzającym. Witam.
</body></html>
ASP.NET Jak to działa?
Counter.aspxCounter.aspx HTML HTML dla dla
przeglądarkiprzeglądarki
Arkadiusz Popa, WMiI, UŁ
<%@ Page Language="C#" %><%@ Import Namespace="System.IO" %><html> <head> <title> Przykład strony …</title> </head>
<body> <h2> Witam na mojej
stronie</h2> Jesteś <%
... Response.Write(n); %>
</body></html>
<html> <head> <title> Przykład strony … </title> </head> <body> <h1>Witamy na mojej
stronie</h1> Jesteś 10 …
</body></html>
Web formso Kontrolki:
o Serweroweo HTML
o umożliwiają tworzenie programowalnych stron internetowych, służących jako interfejs użytkownika aplikacji internetowych
o Wszystkie elementy GUI są obiektamio W ramach obiektów jest dostęp do metod i
ich właściwościo ilosc.Texto ilosc.Color …
Arkadiusz Popa, WMiI, UŁ
Web forms - przykłady
o Labelo TextBoxo Button o RadioButtono CheckBoxo DropDownList
o CheckBox Listo Bullet List
abc
Arkadiusz Popa, WMiI, UŁ
Web forms - standard
o Calendar
o HiddenField
Arkadiusz Popa, WMiI, UŁ
Web forms – dwa pliki źródłowe w jeden HTML
o *.aspx – (tryb design i source) Warstwa prezentacji
o *.aspx.cs – (tryb source) Warstwa logikio Te dwa pliki składają się na plik wynikowy,
który przesyłany jest do przeglądarki
Arkadiusz Popa, WMiI, UŁ
Imię: Nazwisko:
Class MojPlik {…
}
MojPlik.aspx
MojPlik.aspx.cs
Imię: Nazwisko:
MojPlik
Walidatory - validators
o Po co używać:Po co używać:o Walidacja danych wejściowych przez Walidacja danych wejściowych przez
przeglądarkę klientaprzeglądarkę klientao Odciążenie działania serweraOdciążenie działania serwera
o Rodzaje:Rodzaje:o RequiredFieldValidatorRequiredFieldValidator – pole wymagane, – pole wymagane,
nie pustenie pusteo CompareValidator CompareValidator – porównanie– porównanieo RangeValidator RangeValidator – sprawdzenie przedziału– sprawdzenie przedziałuo RegularExpressionValidatorRegularExpressionValidator – –
dostosowanie do wyrażenia regularnegodostosowanie do wyrażenia regularnegoo … … inneinne
Arkadiusz Popa, WMiI, UŁ
Walidatory - metody
o ControlToValidate – Powiązanie kontrolki z kontrolką walidacji
o ErrorMessage – Treść komunikatu o błędzie
o IsValid – czy walidacia udana (true, false)
o Validate – sprawdzenie poprawności danych i powiązanie z IsValid
o Display – wyświetlenie komunikatu o błędzie
Arkadiusz Popa, WMiI, UŁ