240 likes | 380 Views
Wstęp do ASP.NET. Arkadiusz Popa Serwery Aplikacji. Co na wykładzie …. Omówienie a rchitektur y platformy .NET CLR … wspólne środowisko uruchomieniowe Różnica … statyczne a dynamiczne www ASP.NET … omówinie ogólne ASP.NET … wymagania Developerskie Klienckie
E N D
Wstęp do ASP.NET Arkadiusz Popa Serwery Aplikacji Arkadiusz Popa, WMiI, UŁ
Co na wykładzie … • Omówienie architektury platformy .NET • CLR … wspólne środowisko uruchomieniowe • Różnica … statyczne a dynamiczne www • ASP.NET … omówinie ogólne • ASP.NET … wymagania • Developerskie • Klienckie • ASP.NET … omówienie działania • Gotowe komponenty … Web forms • Obsługa zdarzeń … Event Handling • Jak odciążyć serwer … Validators • Użycie Arkadiusz Popa, WMiI, UŁ
Omówienie architektura platformy .NET • Czym jest platforma .NET? • Oprogramowaniem łączącym informacje, ludzi, systemy, urządzenia (def. Microsoft) • Platforma programistyczna opracowana przez Microsoft, obejmująca środowisko uruchomieniowe (CLR) oraz biblioteki klas dostarczające standardowej funkcjonalności dla aplikacji. (def. Wikipedia) • 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 • cd … Czym jest platforma .NET? • Środowisko wspierające różne języki programowania: C++, C#, VB i inne, z zestawem bibliotek do wykorzystania na różnego typu platformach systemowych, • Środowisko posiadające rozbudowanenowe API (Application Programming Interface) Arkadiusz Popa, WMiI, UŁ
Omówienie architektura platformy .NET • Różnice w API • Stare API • aplikacje kompilowane do kodu maszynowego, komunikujące się z systemem poprzez zestaw funkcji (WIN32) • problem z przenośnością między różnymi procesorami, albo nie wykorzystanie ich możliwości • problem z przenośnością między różnymi wersjami systemów Windows • Nowe API • kod pośredni – CIL • kompilacja metod klasy w momencie pierwszego wywołania. Zmiana w budowie bibliotek klas. Arkadiusz Popa, WMiI, UŁ
Architektura.NET Framework • Cechy platformy .NET(czyli co zrobiono dla developerów) • Programowanie obiektowe – pełne wsparcie • Garbage Collector - zarządzanie czasem życia obiektów • C++, C#, J#, VB, … -możliwość programowania w wielu językach … nawet w ramach jednej aplikacji!! • .NET Class Library - zbiór dostarczanych klas podstawowych Arkadiusz Popa, WMiI, UŁ
Architektura platformy .NET .NET Framework - Budowa C# C++ VB C++ … Web Forms Web Sercices Windows Forms ADO .NET + XML ClassLibrary CLR Message Queueing IIS WMI COM + WIN 32 Arkadiusz Popa, WMiI, UŁ
CLR • 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) • Ś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 Pierwsze uruchomienie Użytkownik Kompilacja, uruchomienie CLR Arkadiusz Popa, WMiI, UŁ
Strony statyczne a dynamiczne • Strony statyczne • HTML • Treści statyczne • Ograniczenia funkcjonalności • Problemy techniczne, np.: aktualizacje Jak zmieniaćtreść dynamicznie? <html> <head> <title>Statycznastrona 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> Jak zmieniaćilość? Arkadiusz Popa, WMiI, UŁ
Stronydynamiczne • Stronydynamiczne • Funkcjonalność ograniczona aktualnymi technologiami • Treści zmieniane dynamicznie • Asynchronizacja, np.Ajax • HTML jest tylko efektem końcowym Treści zmieniają się z kazdymodswieżeniem strony <html> <head> <title>Dynamicznastrona 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> Wartości generują się automatycznie Arkadiusz Popa, WMiI, UŁ
ASP.NET co to za twór ? • Nowoczesna technologiatworzeniadynamicznychstroninternetowych • Graficzne GUI • Wbudowane i dostosowane do www obiekty • Technologia wykorzystujące platformęMS .NET Framework • Wykorzystujewspólneśrodowisko uruchomieniowe CLR • NastępcaASP - Active Server Pages Arkadiusz Popa, WMiI, UŁ
ASP.NET co to za twór ? • Dwie funkcjonalności: • Web Forms –stronywww • Web Services – rozproszoneusługiinternetowe • Generuje kod niezależny od przeglądarki • Pozwala na tworzenie stron w wielu językach programowania • Posiada wbudowane mechanizmy do debugowanie i profileingu Arkadiusz Popa, WMiI, UŁ
ASP.NET … mechanizmy zaawansowane • Programowaniezdarzeniowe • Akcje • Validacje • Dobre środowisko Developerskie… Visual Studio 2005/2008 Web • Podpowiadani składni • sprawdzeniasyntaktycznejpoprawności • debugowanie Arkadiusz Popa, WMiI, UŁ
ASP.NET … mechanizmy zaawansowane • Bogatyzestawkontrolek • HTML • Web Forms (klasy z wbudowanymi metodami) • Wbudowana obsługamechanizmówuwierzytelniania - bezpieczeństwo • Mechanizmyoptymalizacyjne • Buforowanie • Wsparcie dla programowania urządzeń mobilnych Arkadiusz Popa, WMiI, UŁ
ASP.NET co potrzeba? • Darmowy serwerASP naktórymmożnatestowaćstrony:koddostępu do pobrania z C216 • Developing: • Maszyna z obsługą systemu Windows XP, Vista, Server 2003, Server 2008 • MS Visual Studio 2005/2008 Web Express Edition – darmowy do pobrania ze stron Microsoft • MSD Library – zbiórbibliotek 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 HTML dla przeglądarki <%@ Page Language="C#" %> <%@ Import Namespace="System.IO" %> <html> <head> <title> Przykładstrony…</title> </head> <body> <h2> Witam na mojej stronie</h2> Jesteś<% ... Response.Write(n); %> </body> </html> <html> <head> <title>Przykładstrony… </title> </head> <body> <h1>Witamynamojej stronie</h1> Jesteś 10 … </body> </html> Arkadiusz Popa, WMiI, UŁ
Web forms • Kontrolki: • Serwerowe • HTML • umożliwiajątworzenieprogramowalnychstroninternetowych, służącychjakointerfejsużytkownikaaplikacjiinternetowych • Wszystkieelementy GUI sąobiektami • W ramach obiektów jest dostęp do metod i ich właściwości • ilosc.Text • ilosc.Color … Arkadiusz Popa, WMiI, UŁ
Web forms - przykłady • Label • TextBox • Button • RadioButton • CheckBox • DropDownList • CheckBox List • BulletList abc Arkadiusz Popa, WMiI, UŁ
Web forms - standard • Calendar • HiddenField Arkadiusz Popa, WMiI, UŁ
Web forms – dwa pliki źródłowe w jeden HTML MojPlik MojPlik.aspx MojPlik.aspx.cs Imię: Nazwisko: Imię: Nazwisko: ClassMojPlik { … } • *.aspx – (tryb design i source) Warstwa prezentacji • *.aspx.cs – (tryb source) Warstwa logiki • Te dwa pliki składają się na plik wynikowy, który przesyłany jest do przeglądarki Arkadiusz Popa, WMiI, UŁ
Walidatory - validators • Po co używać: • Walidacja danych wejściowych przez przeglądarkę klienta • Odciążenie działania serwera • Rodzaje: • RequiredFieldValidator – pole wymagane, nie puste • CompareValidator– porównanie • RangeValidator– sprawdzenie przedziału • RegularExpressionValidator – dostosowanie do wyrażenia regularnego • … inne Arkadiusz Popa, WMiI, UŁ
Walidatory - metody • ControlToValidate – Powiązanie kontrolki z kontrolką walidacji • ErrorMessage – Treść komunikatu o błędzie • IsValid – czy walidacia udana (true, false) • Validate – sprawdzenie poprawności danych i powiązanie z IsValid • Display – wyświetlenie komunikatu o błędzie Arkadiusz Popa, WMiI, UŁ