Transcript Slajd 1

Wstęp do ASP.NET
Arkadiusz Popa
Serwery Aplikacji
Arkadiusz Popa, WMiI, UŁ
Co na wykładzie …
o Omówienie architektury platformy .NET
o CLR … wspólne środowisko uruchomieniowe
o Różnica … statyczne a dynamiczne www
o ASP.NET … omówinie ogólne
o ASP.NET … wymagania
o Developerskie
o Klienckie
o ASP.NET … omówienie działania
o Gotowe komponenty … Web forms
o Obsługa zdarzeń … Event Handling
o Jak odciążyć serwer … Validators
o 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Ł
Omówienie architektura platformy .NET
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)
Arkadiusz Popa, WMiI, UŁ
Omówienie architektura platformy .NET
o Różnice w API
o Stare API
o 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 API
o kod pośredni – CIL
o kompilacja metod klasy w momencie pierwszego
wywołania. Zmiana w budowie bibliotek klas.
Arkadiusz Popa, WMiI, UŁ
Architektura.NET Framework
o 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
.NET Framework - Budowa
C#
Web Forms
C++
VB
C++
Web Sercices
Windows Forms
ADO .NET + XML
Class Library
CLR
Message
Queueing
IIS
WMI
…
COM +
WIN 32
Arkadiusz Popa, WMiI, UŁ
CLR
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
Developer
Kompilacja
do CIL
CIL
Zbudowanie
(Build)
PLIK
Użytkownik
Pierwsze
uruchomienie
Kompilacja,
uruchomienie
CLR
Arkadiusz Popa, WMiI, UŁ
Strony statyczne a dynamiczne
o Strony statyczne
o HTML
o Treści statyczne
o Ograniczenia funkcjonalności
o Problemy techniczne, np.: aktualizacje
Jak zmieniać
treść
dynamicznie?
<html>
<head>
<title>Statyczna strona html</title>
</head>
Jak zmieniać
ilość?
<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Ł
Strony dynamiczne
o Strony dynamiczne
o Funkcjonalność ograniczona aktualnymi
technologiami
o Treści zmieniane dynamicznie
o Asynchronizacja, np.Ajax
o HTML jest tylko efektem końcowym
<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
Arkadiusz Popa, WMiI, UŁ
ASP.NET co to za twór ?
o Nowoczesna technologia tworzenia
dynamicznych stron internetowych
o Graficzne GUI
o 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Ł
ASP.NET co to za twór ?
o Dwie funkcjonalności:
o Web Forms –strony www
o 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
Arkadiusz Popa, WMiI, UŁ
ASP.NET … mechanizmy zaawansowane
o Programowanie zdarzeniowe
o Akcje
o Validacje
o Dobre środowisko Developerskie…
Visual Studio 2005/2008 Web
o Podpowiadani składni
o sprawdzenia syntaktycznej
poprawności
o debugowanie
Arkadiusz Popa, WMiI, UŁ
ASP.NET … mechanizmy zaawansowane
o Bogaty zestaw kontrolek
o HTML
o Web Forms (klasy z wbudowanymi
metodami)
o Wbudowana obsługa mechanizmów
uwierzytelniania - bezpieczeństwo
o Mechanizmy optymalizacyjne
o Buforowanie
o Wsparcie dla programowania urządzeń
mobilnych
Arkadiusz Popa, WMiI, UŁ
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
<%@ 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 pliku
FileStream 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 licznika
s.Seek(0, SeekOrigin.Begin);
BinaryWriter w = new BinaryWriter(s);
//zapisanie nowej wartości do pliku i zamknięcie pliku
w.Write(n); s.Close();
//Wyświetlenie ilości użytkowników na stronie
Response.Write(n); //
%> odwiedzającym. Witam.
</body>
</html>
Arkadiusz Popa, WMiI, UŁ
ASP.NET Jak to działa?
Counter.aspx
<%@ 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 dla
przeglądarki
<html>
<head>
<title> Przykład strony … </title>
</head>
<body>
<h1>Witamy na mojej
stronie</h1>
Jesteś 10 …
</body>
</html>
Arkadiusz Popa, WMiI, UŁ
Web forms
o
Kontrolki:
o Serwerowe
o HTML
o
umożliwiają tworzenie programowalnych
stron internetowych, służących jako
interfejs użytkownika aplikacji
internetowych
o
o
Wszystkie elementy GUI są obiektami
W ramach obiektów jest dostęp do metod i
ich właściwości
o ilosc.Text
o ilosc.Color …
Arkadiusz Popa, WMiI, UŁ
Web forms - przykłady
o Label
abc
o TextBox
o Button
o RadioButton
o CheckBox
o DropDownList
o CheckBox List
o Bullet List
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
MojPlik.aspx
Imię:
Nazwisko:
MojPlik.aspx.cs
Class MojPlik {
…
}
MojPlik
Imię:
Nazwisko:
o *.aspx – (tryb design i source) Warstwa prezentacji
o *.aspx.cs – (tryb source) Warstwa logiki
o Te dwa pliki składają się na plik wynikowy, który
przesyłany jest do przeglądarki
Arkadiusz Popa, WMiI, UŁ
Walidatory - validators
o Po co używać:
o Walidacja danych wejściowych przez
przeglądarkę klienta
o Odciążenie działania serwera
o Rodzaje:
o RequiredFieldValidator – pole wymagane,
nie puste
o CompareValidator – porównanie
o RangeValidator – sprawdzenie przedziału
o RegularExpressionValidator –
dostosowanie do wyrażenia regularnego
o … inne
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Ł