Wprowadzenie do ASP.NET

Slides:



Advertisements
Podobne prezentacje
Decyzje projektowe w .NET Framework
Advertisements

Tworzenie ASP.NET Web Form
Rozwój aplikacji przy wykorzystaniu ASP.NET
Witold Bołt Wprowadzenie do .NET Witold Bołt
Arkadiusz Twardoń ZTiPSK
ASP.NET Dostęp do bazy danych z poziomu kodu Elżbieta Mrówka-Matejewska.
Aplikacje Baz Danych ASP.NET
Zarządzanie stanem w aplikacjach ASP.NET Elżbieta Mrówka-Matejewska
 Podstawowy składnik.NET Framework  Technologia tworzenia w pełni dynamicznych stron internetowych działających po stronie serwera  Zorientowanie na.
InMoST, Analiza architektury metodą ATAM Jerzy Nawrocki
PRACA Z APLIKACJAMI SYSTEM PRZEMIESZCZANIA oraz NADZORU WYROBÓW AKCYZOWYCH EMCS PL 1.
Warstwa biznesowaWarstwa techniczna ??? To przejście jest połączone z innym procesem To przejście wywołuje samowyzwalacz To przejście jest warunkowe.
Monitorowanie pracy systemów bezpieczeństwa w infrastrukturze IT – produkty Tufin.
© 2014 IBM Corporation COMMON POLSKA 2014 JDBC z IBM System i Tomasz Piela & Marcin Wilk Global Technlonogy Services, IBM.
Wyższa Szkoła Informatyki i Zarządzania w Bielsku-Białej Wydział Informatyki Kierunek: Informatyka Specjalność: Systemy Informatyczne PRACA DYPLOMOWA INŻYNIERSKA.
 Moduł walidacji płatności z systemem e-CARD  Moduł aktualizacji listy komorników sądowych EPU-EEKS  Automatyczne przesyłanie wniosków o weryfikację.
Praca dyplomowa inżynierska Temat: Informatyczny system edukacyjny do przedmiotu „Podstawy Kryptologii” Dyplomant: Ewelina Bogusz Promotor: prof. zw.,
Sieci komputerowe. Podział sieci. Podstawowe pojęcia związane z sieciami. Internet - określenia podstawowych terminów. Komunikacja w sieci.
Python. Języki Programistyczne Microcode Machine code Assembly Language (symboliczna reprezentacja machine code) Low-level Programming Language (FORTRAN,
Wprowadzenie do baz danych. Terminologia Specyfika baz danych (1) 1.Trwałość danych –Długi czas życia – kilka, kilkadziesiąt, kilkaset lat –Niezależność.
PROGRAM SZKOLENIA kurs komputerowy opracował mgr Eugeniusz Janeczek System operacyjny MS Windows XP i aplikacje biurowe pakietu OpenOffice Naciśnij F5.
Urządzenia i technologie mobilne. Tablet Mobilny komputer większy niż telefon komórkowy, którego główną właściwością jest posiadanie dużego ekranu z zastosowaną.
Moduł SDI – zasilanie węzłów IIP oraz wykorzystanie danych. Wprowadzenie. Szkolenie przeprowadzone w ramach projektu „TERYT 3 – Rozbudowa systemów do prowadzenia.
EFaktury Organizacje. Księgowość. Usprawnienie. Obieg faktur. Opis. Rozliczanie. Weryfikacja. Zatwierdzanie.
Microsoft Azure Usługi chmurowe dla nowoczesnej firmy ModernBiz 1 Firmy z sektora małych i średnich przedsiębiorstw (MŚP) potrzebują odpowiednich zasobów.
Dziedziczenie, polimorfizm, Interfejsy
BVMS 5.5 Blok2- Moduł 8: Użytkownicy i grupy
Cloud computing Bezpieczeństwo.
Przeglądarka stron WWW
T. 16 e Proces DGA - opis ogólny.
Symulacja procesu BPMN
Podstawowe polecenia systemu
Prezentacja o Ubuntu Jakub Kociemba 2TI.
Full Text Finder Przegląd Publication Finder
Quick Tips Tutorial Jak uzyskać dostęp do raportów EBSCOhost i EBSCO Discovery Service w EBSCOadmin support.ebsco.com.
Akademia C# lab. 9 Zdarzenia i delegaty.
Który system wybrać?.
Budowa, typologia, funkcjonalność
Przewodnik Udoskonalanie listy wyników w wyszukiwarce naukowej
Lekcja 1 – Hello World! Visual Studio, coś łatwego na początek 
Wstęp do Informatyki - Wykład 8
- Krajowe Repozytorium Obiektów Nauki i Kultury
Wykorzystanie aplikacji użytkowych do przeprowadzenia cyberataku
Systemy CMS Fabian Szydłowski 3f.
PROGRAMY DO KONTROLI RODZICIELSKIEJ
System operacyjny cz.2.
Git - system kontroli wersji
Bezpieczeństwo dostępu do danych w systemie Windows
Języki programowania.
Mateusz Bergolc – pracuje w firmie Marken Systemy Antywirusowe, pomagając klientom dostosować rozwiązania Bitdefender do ich potrzeb. Doradza zarówno.
Dynamics 365 CE i język TypeScript
Multicast Visualization Tool
Tworzenie bezpiecznych aplikacji
Zarządzanie licencjami – jak robić to dobrze?
Sun Java Application Server
Konfiguracja aplikacji sieciowej
SYSTEM KONTROLI FREKWENCJI
Podstawy programowania
Podstawy informatyki Zygfryd Głowacz.
Microsoft Office Project 2003 Professional
Strukturalne wzorce projektowe
SKJ Serwer WWW Michail Mokkas.
Dodatek – Technologie internetowe
Damian Urbańczyk Edytory WYSIWYG.
POZNAJEMY PULPIT Opracowanie: mgr Barbara Benisz SP nr 20 w Rybniku
Język C++ Preprocesor Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania Prezentacja przygotowana w oparciu o materiały Danuty Szeligi i Pawła.
Obsługa bazy danych z poziomu phpMyAdmin
dr Danuta Kajrunajtys BUSINESS PROCESS MANAGEMENT ROBOTIC PROCESS
Łatwa obsługa Prosta instalacja Wieczysta licencja Praca w sieci
Autor: Magdalena Linowiecka
Zapis prezentacji:

Wprowadzenie do ASP.NET Dariusz Grzesiński

Agenda Ewolucja technologii tworzenia aplikacji webowych Charakterystyka ASP.NET Konfiguracja aplikacji Przechowywanie stanu Cachowanie w ASP.NET Tracing Debugging

Ewolucja technologii webowych HTML (HyperText Markup Language) CGI (Common Gateway Interface) ISAPI (Internet Server API) ASP (Active Server Pages) Idealny do stron statycznych Nie zapewnia zawartości dynamicznej Wykonywalne programy uruchamiane na web serwerze Problemy – wydajność i skalowalność Nie pliki wykonywalne, a DLL Problemy – trudne w pisaniu, zmiany wymagały restaru serwera Skryptowe środowisko programistyczne Problemy – brak skalowalnego środowiska, „spagetti code”, utrudniona konfiguracja

.NET Framework Komponenty VB C++ C# JScript … Visual Studio.NET Common Language Specification ASP.NET: Web Services and Web Forms Windows Forms ADO.NET: Data and XML Base Class Library Common Language Runtime

Common Language Specification Common Language Runtime .NET Framework ASP.NET VB C++ C# JScript … Visual Studio.NET Common Language Specification ASP.NET: Web Services and Web Forms Windows Forms ADO.NET: Data and XML Base Class Library Common Language Runtime

ASP.NET - cechy Łatwy model programistyczny tworzenia aplikacji webowych Obługa wielu języków programowania Bogaty model obiektowy Kontrolki serwerowe Rozbudowane opcje zabezpieczeń Olbrzymia skalowalność aplikacji Web Services Łatwa konfiguracja i deployment Wreszcie kod kompilowany… znaczy szybszy - wzrost wydajności

Kompilacja i wykonywanie HTML Just In Time Pierwszy request do strony .aspx MSIL Kompilator

Kompilacja i wykonywanie HTML Just In Time Kolejne zapytania o stronę .aspx MSIL

Kompilacja i wykonywanie HTML Just In Time Zmiana zawartości strony .aspx .aspx MSIL MSIL Kompilator

Jak to działa, czyli HTTP Runtime IIS 5.0 aspnet_isapi.dll IIS Inetinfo.exe .html Przeglądarka AppDomain .aspx ASP.NET Worker Process HttpRuntime Application HTTP HTTP Pipline aspnet_wp.exe

Modele programowania kod <tagi> kod <tagi> Inline Code behind kod <tagi> kod <tagi> Form1.aspx Form1.aspx Form1.aspx.cs Tylko strona ASPX zawierająca, HTML, tagi kontrolek i kod <script runat=„server”> Odseparowanie wyglądu strony od kodu Umożliwia jednoczesną pracę nad stroną programiście i projektantowi stron łatwiejsze ponowne wykorzystanie

Web Forms Model programistyczny ASP.NET Główne cechy: Kontrolki serwerowe Model obiektowy oparty na zdarzeniach Możliwość programowania w C#, Visual Basic .NET, Jscript .NET… Łatwe tworzenie stron webowych!

Kontrolki serwerowe Runat="server" Posiadają wbudowaną funkcjonalność <asp:Button id=„Button1” runat=„server” Text=„Submit” /> Runat="server" Zdarzenia wykonują się po stronie serwera Posiadają wbudowaną funkcjonalność Bazują na Common Object Model Programiści mogą tworzyć własne kontrolki Dziedzicząc z istniejących! Generują HTML specyficzny dla przeglądarki <asp:TextBox id="TextBox1" runat="server" Width="238px" Height="25px">Wprowadź hasło</asp:TextBox> <input name="TextBox1" type="text" value= "Wprowadź hasło" id= "TextBox1" style= "height:25px;width:238px" />

Tworzenie prostej aplikacji DEMO Tworzenie prostej aplikacji ASP.NET

Dostęp do źródeł danych ADO.NET Różne możliwości dostępu do danych DataAdapter / DataSet Dane z różnych zródeł: relacyjne bazy danych, xml Niezależnie od źródła danych oferuje tę samą funkcjonalność Disconnected !!! DataReader Forward-only

ASP.NET Security Rozbudowana architektura zabezpieczeń Autentykacja Wiele opcji autentykacji / autoryzacji Dowolne repozytorium informacji o użytkownikach Autentykacja Windows Authentication Forms-based Authentication Passport Authentication Obsługa autoryzacji Nowa bazująca na rolach

Agenda Ewolucja technologii tworzenia aplikacji webowych Charakterystyka ASP.NET Konfiguracja aplikacji Przechowywanie stanu Cachowanie w ASP.NET Tracking Debugging

Konfiguracja aplikacji ASP.NET Przy wykorzystaniu plików xml-owych Wykorzystywane są dwa typy plików konfiguracyjnych machine.config - służy do konfigurowania ustawień globalnych dla wszystkich aplikacji .NET na komputerze web.config - wykorzystywany do nadpisywania ustawień domyślnych, zawiera również wiele ustawień specyficznych dla aplikacji webowych.

Anatomia plików CONFIG Struktura plików konfiguracyjnych Hierarchiczne dziedziczenie ustawień Scentralizowane ustawienia konfiguracyjne Każdy plik web.config obowiązuje w swoim katalogu oraz podkatalogach Ustawienia w podkatalogach mogą zostać nadpisane, bądź nie allowOverride = „false” Request do strony http://myserver/myapplication/mydir/page.aspx – w jaki sposób odbywa się sprawdzanie uprawnień: Ustawienia globalne w machine.config Ustawienia konfiguracyjne web.config aplikacji myapplication Ustawienia konfiguracyjne w web.config w podkatalogu aplikacji mydir

Rozszerzenie funkcjonalności plików konfiguracyjnych Definiowanie własnych danych konfiguracyjnych W sekcji <appSettings/> We własnej sekcji konfiguracyjnej Wykorzystanie custom configuration handler Wykorzystanie istniejących handlerów NameValueFileSectionHandler SingleTagSectionHandler Zdefiniowanie własnej skomplikowanej struktury xml’owej Stworzenie własnego handlera, który będzie obsługiwał tę sekcję Klasa implementująca interfejs IConfigurationSectionHandler using System.Configuration; ConfigurationSettings.AppSettings[„CompName”];

Zabezpieczanie plików konfiguracyjnych Zapezpieczone przed dostępem poprzez przeglądarkę Zwraca błąd HTTP 403 Forbidden HttpForbiddenHandler może posłużyć do zabezpieczania innych prywatnych plików Możliwość szyfrowania części pliku konfiguracyjnego przy użyciu DPAPI <processModel/>, <sessionState/>, <identity/> przy użyciu aspnet_setreg.exe

Zalety plików konfiguracyjnych Przechowywane razem z projektem Wykorzystanie standardu XML Łatwe przenoszenie konfiguracji Elastyczne rozwiązanie – własne sekcje Automatyczne zastosowanie zmian Bezpieczeństwo

Agenda Ewolucja technologii tworzenia aplikacji webowych Charakterystyka ASP.NET Konfiguracja aplikacji Przechowywanie stanu Cachowanie w ASP.NET Tracking Debugging

Przechowywanie stanu Problem: HTTP protokołem bezstanowym  ASP.NET zapewnia na kliku poziomach Aplikacji – HttpApplicationState Sesji – HttpSessionState Strony – ViewState Przechowywanie stanu aplikacji Kolekcja par – klucz/wartość Kłopotliwa synchronizacja danych – Application.Lock()/UnLock() Warto rozważyć zmienne globalne w global.asax Potencjalna utrata danch np. recycling procesu ASP.NET

Przechowywanie stanu sesji InProc Out-of-Proc State Server Usługa Windows ASP.NET State Service Instalowana domyślnie, ale nie uruchomiona Niezależne od IIS – proces aspnet_state.exe Konfiguracja IP i portu stateConnectionString=„tcpip=127.0.0.1:42424” SQL Server Dane sesyjne przechowywane w SQL Server Wymaga stworzenia baz danych InstallSqlState.sql / InstallPersistantSqlState.sql Największa niezawodność – możliwość klastrowania Przechowywane w przestrzeni adresowej ASP.NET worker process Bardzo szybkie – brak overheadu serializacyjnego Dane są tracone gdy proces jest recycled 1.1

Wybranie właściwej metody Zależy od wymagań dotyczących wydajności, skalowalności i niezawodności aplikacji In-Proc najszybszy Ograniczony przez pamięć Utrata danych przy restarcie procesu ASP.NET State Service Średnia wydajność. Niska, gdy serwer zdalny Single point of failure Przetrwa restart aplikacji – lokalnie Przetrwa restart maszyny - zdalnie SQL Server Szybki Niezawodny – możliwość klastrowania Bardzo skalowalne

Sesje Cookieless Mogą być wykorzystane do zapewnienia stanu sesji gdy klient nie akceptuje cookies. <sessionState Cookieless=„true„ /> http://server1/(vkuv2k55ebcpzg452q1fdp45)/page.aspx Ograniczenia URL wykorzystywane w aplikacji nie mogą być absolutne Niektóre przeglądarki akceptują ograniczoną długość URL

ViewState Ukryte pole w formularzu Dostępny jedynie dla stron <input type=”hidden” name=”__VIEWSTATE”/> Dostępny jedynie dla stron <form runat=„server”/> Istotne zagadnienia Wydajność - przydatny do przechowywania typów podstawowych – inne typy wymagają serializacji Bezpieczeństwo - nie należy w nim umieszczać istotnych informacji – można wykorzystać EnableViewStateMac = „true”

Agenda Ewolucja technologii tworzenia aplikacji webowych Charakterystyka ASP.NET Konfiguracja aplikacji Przechowywanie stanu Cachowanie w ASP.NET Tracking Debugging

Caching Caching jest krytycznym czynnikiem tworzenia wydajnych i skalowalnych aplikacji webowych W ASP.NET istnieją trzy rodzaje cachowania: Output caching Fragment caching Cache API (Data caching)

Output caching Strony są wykonywane tylko raz, a wyniki są cachowane dla .aspx, .ascx, .asmx Włączany <%@ OutputCache Duration="600“ Location="Any“ VaryByParm=“none” %> bądź Response.Cache.SetExpires(DateTime.Now.AddSeconds(600)); Response.Cache.SetCacheability(HttpCacheability.Public); Możliwość cachowania wielu wersji strony VaryByParm=“employeeID” VaryByHeader=”Accept-Language” VaryByCustom=”browser”

Fragment caching …cachowanie całej strony nie zawsze jest optymalne Część stron jest cachowana, reszta jest rekompilowana za każdym żądaniem dla .ascx <%@ OutputCache Duration=„10“ VaryByControl=„s1;s2” VaryByParm=“*” %> user controls mogą być zagnieżdżone Dostęp do kontrolek z pamięci zakończy się błędem! Kontrolki cachowane nie są dodawane do control tree

Data caching (Cache API) Cache znacznie skuteczniejszy niż przetrzymywanie w HttpApplicationState Właściwości obiektu Cache: Zależności – zwalnianie pamięci na podstawie warunków Automatyczne usuwanie nieużywanych obiektów Callback – informowanie aplikacji o usunięciu obiektu z pamięci

Agenda Ewolucja technologii tworzenia aplikacji webowych Charakterystyka ASP.NET Konfiguracja aplikacji Przechowywanie stanu Cachowanie w ASP.NET Tracking Debugging

ASP.NET Tracing <trace enabled=„true” pageOutput=„true|false” /> Umożliwia uzyskiwać informacje o wykonywaniu stron aplikacji webowych Śledzi tworzenie kontrolek serwerowych Wyświetla wielkość kontrolek Prezentuje wartości zmiennych środowiskowych

DEMO ASP.NET Tracing

Agenda Ewolucja technologii tworzenia aplikacji webowych Charakterystyka ASP.NET Konfiguracja aplikacji Przechowywanie stanu Cachowanie w ASP.NET Tracking Debugging

DEMO ASP.NET Debugging

Podsumowanie ASP.NET Stworzone aby ułatwić pracę programiście Możliwości Visual Studio, bogaty zestaw kontrolek serwerowych Umożliwia pisanie kodu w dowolnym języku .NET Obszerna biblioteka klas Rozbudowane opcje tracingu i debuggowania Wydajność, skalowalność Kod skompilowany oznacza szybkość Cache APIs w celu wzrostu wydajności Możliwość wykorzystania Web Farm

Podsumowanie ASP.NET Łatwy deployment Kopiowanie aplikacji Dynamiczne akutalizacje bez potrzeby restartu serwera Zapominamy o rejestrach! – konfiguracja w xml Zaawansowane opcje bezpieczeństwa Warianty autentykacji Autoryzacja Rozbudowany dostęp do źródeł danych Elastyczne zarządzanie stanem