Poland - Dev Days 2005

40
Tworzenie aplikacji Web przy użyciu Visual Studio 2005 i ASP.NET 2.0 Krzysztof Gawęda Krzysztof Gawęda Tomasz Cieplak Tomasz Cieplak Developers Days 2005 Developers Days 2005

description

 

Transcript of Poland - Dev Days 2005

Page 1: Poland - Dev Days 2005

Tworzenie aplikacji Web przy użyciu Visual Studio

2005 i ASP.NET 2.0

Tworzenie aplikacji Web przy użyciu Visual Studio

2005 i ASP.NET 2.0

Krzysztof GawędaKrzysztof Gawęda

Tomasz CieplakTomasz Cieplak

Developers Days 2005Developers Days 2005

Page 2: Poland - Dev Days 2005

AgendaAgenda

ASP.NET 2.0 - Co chciano osiągnąć?ASP.NET 2.0 - Co chciano osiągnąć?

ASP.NET 2.0 - Co mamy? ASP.NET 2.0 - Co mamy?

Nowości w ASP.NET 2.0Nowości w ASP.NET 2.0

Page 3: Poland - Dev Days 2005

AgendaAgenda

ASP.NET 2.0 - Co chciano osiągnąć?ASP.NET 2.0 - Co chciano osiągnąć?

ASP.NET 2.0 - Co mamy? ASP.NET 2.0 - Co mamy?

Nowości w ASP.NET 2.0Nowości w ASP.NET 2.0

Page 4: Poland - Dev Days 2005

ASP.NET 2.0 - Co chciano osiągnąć?ASP.NET 2.0 - Co chciano osiągnąć?

Wzrost produktywności programistyWzrost produktywności programisty

Uproszczenie konserwacji i Uproszczenie konserwacji i administracji rozwiązańadministracji rozwiązań

Wzrost wydajności i skalowalnościWzrost wydajności i skalowalności

Uproszczenie sposobu tworzenia Uproszczenie sposobu tworzenia rozwiązań mobilnych rozwiązań mobilnych

Page 5: Poland - Dev Days 2005

AgendaAgenda

ASP.NET 2.0 - Co chciano osiągnąć?ASP.NET 2.0 - Co chciano osiągnąć?

ASP.NET 2.0 - Co mamy? ASP.NET 2.0 - Co mamy?

Nowości w ASP.NET 2.0Nowości w ASP.NET 2.0

Page 6: Poland - Dev Days 2005

AgendaAgenda

ASP.NET 2.0 - Co chciano osiągnąć?ASP.NET 2.0 - Co chciano osiągnąć?

ASP.NET 2.0 - Co mamy? ASP.NET 2.0 - Co mamy?

Nowości w ASP.NET 2.0Nowości w ASP.NET 2.0

Page 7: Poland - Dev Days 2005

Serwisy aplikacji dostępne w ASP.NET 2.0

CzłonkostwoCzłonkostwo Zarządzanie rolami

Zarządzanie rolami

PersonalizacjaPersonalizacja

NawigacjaNawigacja Buforowanie danych

Buforowanie danych

KonserwacjaKonserwacja

Developer Stack

Page 8: Poland - Dev Days 2005

Developer StackDeveloper Stack

Providers

Serwisy aplikacji dostępne w ASP.NET 2.0

CzłonkostwoCzłonkostwo

Windows SQL Server Custom

Zarządzanie rolami

Zarządzanie rolami

PersonalizacjaPersonalizacja

NawigacjaNawigacja Buforowanie danych

Buforowanie danych

KonserwacjaKonserwacja

Provider Model Design Pattern

Access MDB

BETA 2

Page 9: Poland - Dev Days 2005

Developer StackDeveloper Stack

Serwisy aplikacji dostępne w ASP.NET 2.0

CzłonkostwoCzłonkostwo Zarządzanie rolami

Zarządzanie rolami

PersonalizacjaPersonalizacja

NawigacjaNawigacja Buforowanie danych

Buforowanie danych

KonserwacjaKonserwacja

Page 10: Poland - Dev Days 2005

Developer StackDeveloper Stack

Serwisy aplikacji dostępne w ASP.NET 2.0

CzłonkostwoCzłonkostwo Zarządzanie rolami

Zarządzanie rolami

PersonalizacjaPersonalizacja

NawigacjaNawigacja Buforowanie danych

Buforowanie danych

KonserwacjaKonserwacja

Cechy ASP.NET 2.0 “Page Framework”

Master Pages

Master Pages

TematyTematyInterfejs

użytkownika

Interfejs użytkownika

LokalizacjaLokalizacja

Page 11: Poland - Dev Days 2005

Developer StackDeveloper Stack

Cechy ASP.NET 2.0 “Page Framework”

Master Pages

Master Pages

TematyTematyInterfejs

użytkownika

Interfejs użytkownika

LokalizacjaLokalizacja

Serwisy aplikacji dostępne w ASP.NET 2.0

CzłonkostwoCzłonkostwo Zarządzanie rolami

Zarządzanie rolami

PersonalizacjaPersonalizacja

NawigacjaNawigacja Buforowanie danych

Buforowanie danych

KonserwacjaKonserwacja

ASP.NET 2.0 “Bukiecik Kontrolek” (50+)

Bezpieczeń-stwo

Bezpieczeń-stwo

Web PartsWeb PartsDaneDane NawigacjaNawigacja

Page 12: Poland - Dev Days 2005

Co mamy? - Wzrost produktywności programistyCo mamy? - Wzrost produktywności programisty

Zmniejszenie ilości wprowadzanego Zmniejszenie ilości wprowadzanego kodu – w niektórych przypadkach o kodu – w niektórych przypadkach o 2/32/3

Kod HTML wprowadzony przez Kod HTML wprowadzony przez programistę nie jest w żaden sposób programistę nie jest w żaden sposób modyfikowany przez środowiskomodyfikowany przez środowisko

Ułatwienie sposobu wyświetlania Ułatwienie sposobu wyświetlania danych:danych:

np. kontrolki GridView, DetailsViewnp. kontrolki GridView, DetailsView

Deklaratywne „przybijanie danych”Deklaratywne „przybijanie danych”

Page 13: Poland - Dev Days 2005

Co mamy? - Wzrost produktywności programistyCo mamy? - Wzrost produktywności programisty

Nie jest już konieczne FPSE do Nie jest już konieczne FPSE do tworzenia rozwiązań. Projekt tworzenia rozwiązań. Projekt dostępny jako: dostępny jako:

System plikówSystem plików

Lokalizacja FTPLokalizacja FTP

Nie jest już wymagany IIS na Nie jest już wymagany IIS na maszynie deweloperskiejmaszynie deweloperskiej

Page 14: Poland - Dev Days 2005

Co mamy? - Uproszczenie konserwacji i administracjiCo mamy? - Uproszczenie konserwacji i administracji

Nowa wtyczka do MMC ułatwiająca Nowa wtyczka do MMC ułatwiająca zarządzanie aplikacją internetową – zarządzanie aplikacją internetową – zapomnij o wprowadzaniu zmian do zapomnij o wprowadzaniu zmian do plików machine.config lub plików machine.config lub web.configweb.config

Nowe narzędzie konfiguracyjne Web Nowe narzędzie konfiguracyjne Web Administration ToolAdministration Tool

Możliwość szyfrowania elementów Możliwość szyfrowania elementów plików konfiguracyjnychplików konfiguracyjnych

Page 15: Poland - Dev Days 2005

Co mamy? - Wzrost wydajności i skalowalnościCo mamy? - Wzrost wydajności i skalowalności

To co lubimy najbardziej – czyli cash To co lubimy najbardziej – czyli cash (cache) – w połączeniu z MS SQL (cache) – w połączeniu z MS SQL Server 2005 – SQL cache invalidationServer 2005 – SQL cache invalidation

Wsparcie dla platformy 64-bitWsparcie dla platformy 64-bit

Kompatybilność z ASP.NET 1.0 i 1.1Kompatybilność z ASP.NET 1.0 i 1.1

<%@ outputcache duration = "3600” varybyparam = "ProdID” sqldependency = "MyDatabase:Products” %>*

*atrybut sqldependency musi wskazywać na źródło danych skonfigurowane w pliku web.config

Page 16: Poland - Dev Days 2005

Co mamy? - Dynamiczne generowanie grafikiCo mamy? - Dynamiczne generowanie grafiki

Przetwarzanie jednego Przetwarzanie jednego formatu graficznego w formatu graficznego w inny, rozpoznawany inny, rozpoznawany przez urządzenieprzez urządzenie

Kontrolka Kontrolka DynamicImage DynamicImage stosuje serwis stosuje serwis Image Image Generation Service, Generation Service, dostępny przez dostępny przez .axd .axd uchwyt uchwyt HTTPHTTP

Ładne?Ładne?

Page 17: Poland - Dev Days 2005

LangustaLangusta

To skorupiak wielkością To skorupiak wielkością dorównujący homarowi, ale dorównujący homarowi, ale pozbawiony szczypiec. pozbawiony szczypiec. Jadalne mięso znajduje się w Jadalne mięso znajduje się w odwłoku. Jest ono białe, odwłoku. Jest ono białe, delikatne i bardzo smaczne. delikatne i bardzo smaczne. Langustę przyrządza się Langustę przyrządza się podobnie jak homara. podobnie jak homara. Homary i langusty podaje się Homary i langusty podaje się przecięte na pół wzdłuż przecięte na pół wzdłuż korpusu.korpusu.

Page 18: Poland - Dev Days 2005

Co mamy? - Uproszczenie sposobu tworzenia rozwiązań mobilnych

Co mamy? - Uproszczenie sposobu tworzenia rozwiązań mobilnych

Plany są. Widzieliśmy je w ASP.NET Plany są. Widzieliśmy je w ASP.NET 2.0 beta 1:2.0 beta 1:

Dynamiczne generowanie grafikiDynamiczne generowanie grafiki

Brak odrębnych kontrolek mobilnychBrak odrębnych kontrolek mobilnych

Nowe kontrolki PhoneCall i Nowe kontrolki PhoneCall i ContentPagerContentPager

W beta 2 znajdziemy… „zwrot w tył”W beta 2 znajdziemy… „zwrot w tył”

RTM i sprawa mobilna? – kto to wie?RTM i sprawa mobilna? – kto to wie?

Page 19: Poland - Dev Days 2005

AgendaAgenda

ASP.NET 2.0 - Co chciano osiągnąć?ASP.NET 2.0 - Co chciano osiągnąć?

ASP.NET 2.0 - Co mamy? ASP.NET 2.0 - Co mamy?

Nowości w ASP.NET 2.0Nowości w ASP.NET 2.0

Page 20: Poland - Dev Days 2005

AgendaAgenda

ASP.NET 2.0 - Co chciano osiągnąć?ASP.NET 2.0 - Co chciano osiągnąć?

ASP.NET 2.0 - Co mamy? ASP.NET 2.0 - Co mamy?

Nowości w ASP.NET 2.0Nowości w ASP.NET 2.0

Page 21: Poland - Dev Days 2005

Nowości w ASP.NET 2.0Nowości w ASP.NET 2.0

Atrybuty stronyAtrybuty strony

ZdarzeniaZdarzenia

Zarządzanie rolami i członkostwemZarządzanie rolami i członkostwem

Cross-page PostingCross-page Posting

Dostęp do danychDostęp do danych

Master PagesMaster Pages

Page 22: Poland - Dev Days 2005

Nowości w ASP.NET 2.0 c.d.Nowości w ASP.NET 2.0 c.d.

Tematy, personalizacjaTematy, personalizacja

NawigacjaNawigacja

Nowy system kompilacjiNowy system kompilacji

Web PartsWeb Parts

Kontrolki serweroweKontrolki serwerowe

Środowisko programistyczneŚrodowisko programistyczne

Page 23: Poland - Dev Days 2005

Nowości - atrybuty stronyNowości - atrybuty strony

EnablePersonalizationEnablePersonalization

LinePragmasLinePragmas

MasterMaster

PersonalizationProviderPersonalizationProvider

ThemeTheme

Page 24: Poland - Dev Days 2005

Nowości – Architektura – cykl życia stronyNowości – Architektura – cykl życia strony

ConstructorConstructorConstructConstruct

TestDeviceFilterTestDeviceFilterAddParsedSubObjectAddParsedSubObjectDeterminePostBackModeDeterminePostBackMode

OnPreInitOnPreInitLoadPersonalizationDataLoadPersonalizationDataInitializeThemesInitializeThemesOnInitOnInitApplyControlSkinApplyControlSkinApplyPersonalizationApplyPersonalization

OnInitCompleteOnInitCompleteLoadPageStateFromPersistenceMedium(LoadPageStateFromPersistenceMedium(

PB)PB)LoadControlStateLoadControlState (PB) (PB)LoadViewState (PB)LoadViewState (PB)

ProcessPostData1

OnPreLoadOnLoadProcessPostData2 (PB)RaiseChangedEvents (PB)RaisePostBackEvent (PB)

OnLoadCompleteOnPreRender

OnPreRenderCompleteSavePersonalizationData

SaveControlStateSaveViewStateSavePageStateToPersistenceMediumRenderOnUnloadAbortTransactionAbortTransactionCommitTransactionCommitTransaction

PB = Post Back

Page 25: Poland - Dev Days 2005

Nowości – członkostwo, kontrola logowaniaNowości – członkostwo, kontrola logowania

Członkostwo pozwala na Członkostwo pozwala na uproszczenie zadań związanych z uproszczenie zadań związanych z bezpieczeństwem:bezpieczeństwem:

CreateUserCreateUser

DeleteUserDeleteUser

Kontrolki serwerowe pozwalają na Kontrolki serwerowe pozwalają na obsługę następujących zdarzeń:obsługę następujących zdarzeń:

loginlogin

loginviewloginview

passwordrecoverypasswordrecovery

Page 26: Poland - Dev Days 2005

Nowości - „Cross-page Posting”Nowości - „Cross-page Posting”

Reguła w Reguła w ASP.NET 1.xASP.NET 1.x – formularz – formularz może przesłać dane „z powrotem” może przesłać dane „z powrotem” tylko do strony, która stworzyła tylko do strony, która stworzyła formularzformularz

ASP.NET 2.0 ASP.NET 2.0 pozwala na to aby pozwala na to aby formularz z jednej strony przesyłał formularz z jednej strony przesyłał dane do innej stronydane do innej strony

Page 27: Poland - Dev Days 2005

Nowości - „Cross-page Posting”Nowości - „Cross-page Posting”<%@ page %><html><head runat="server"> </head><body> <form id="form1" runat="server"> <asp:TextBox ID="TextBox1" Runat="server"></asp:TextBox> <asp:Button ID="Button1" PostBackUrl="~/Page2.aspx“ Runat="server" Text="Button" /></form></body></html>

<!– Page2.aspx ->void Page_Load(object sender, EventArgs e){ Label1.Text = ((TextBox)PreviousPage.FindControl("TextBox1")).Text;}

Page 28: Poland - Dev Days 2005

Nowości - „Przybijanie danych”Nowości - „Przybijanie danych”

ASP.NET 1.xASP.NET 1.x<asp:DataGrid ID="MyDataGrid" RunAt="server" /> ...<script language="C#" runat="server">void Page_Load (Object sender, EventArgs e){ SqlConnection connection = new SqlConnection ("server=localhost;database=pubs;integrated security=true"); try { connection.Open (); SqlCommand command = new SqlCommand ("select title_id, titles, price from titles"); MyDataGrid.DataSource = command.ExecuteReader (); MyDataGrid.DataBind (); } finally { connection.Close (); }}</script>

<asp:SqlDataSource ID="Titles" RunAt="server" ConnectionString="server=localhost;database=pubs;integrated security=true" SelectCommand="select title_id, title, price from titles" /><asp:DataGrid DataSourceID="Titles" RunAt="server" />

ASP.NET 2.0ASP.NET 2.0

Page 29: Poland - Dev Days 2005

Nowości - „Master Pages”Nowości - „Master Pages”

Umożliwia stworzenie projektu Umożliwia stworzenie projektu „strony bazowej”„strony bazowej”

Plik Plik .master .master zawiera szablon zawiera szablon wykorzystywany przez wszystkie wykorzystywany przez wszystkie strony aplikacjistrony aplikacji

Inne strony zawierają się jako Inne strony zawierają się jako kontrolki kontrolki w stronie „Master Page”w stronie „Master Page”

VS.NET 2005 umożliwia VS.NET 2005 umożliwia projektowanie „strony bazowej”projektowanie „strony bazowej”

Page 30: Poland - Dev Days 2005

Nowości - TematyNowości - Tematy

Umożliwia na ustawienie domyślnych Umożliwia na ustawienie domyślnych właściwości dla kontrolek właściwości dla kontrolek serwerowychserwerowych

Pliki (.skin) tematów umieszczane są Pliki (.skin) tematów umieszczane są w katalogu w katalogu ThemesThemes

Strona posiada właściwość ThemeStrona posiada właściwość Theme

Właściwość Theme może być Właściwość Theme może być zmieniana zmieniana w kodziew kodzie

Page 31: Poland - Dev Days 2005

Kontrolki nawigacyjneKontrolki nawigacyjne

Zastosowanie dostawcyZastosowanie dostawcyDomyślnie dostawca ładuje plik o nazwie Domyślnie dostawca ładuje plik o nazwie web.sitemapweb.sitemap

Dostawca może być stosowany do Dostawca może być stosowany do wypełnienia kontrolekwypełnienia kontrolek Menu Menu i i NavigationNavigation<siteMap><siteMapNode title="Home" url="default.aspx">

<siteMapNode title="Tab1" url="subdir/default.aspx"><siteMapNode title="SubPage" url="subdir/foo.aspx" />

</siteMapNode><siteMapNode title="Tab2" url="Tab/default.aspx">

<siteMapNode title="SubPage" url="Tab/foo.aspx“/></siteMapNode>

</siteMapNode></siteMap>

Page 32: Poland - Dev Days 2005

Web PartsWeb Parts

Pozwala na edycje układu elementów Pozwala na edycje układu elementów strony (strony (a la SharePointa la SharePoint))

Zastosowanie Zastosowanie ContentWebPart, User ContentWebPart, User Control Control lublub Custom Controls Custom Controls

WebPartManagerWebPartManager decyduje w jaki decyduje w jaki sposób sposób Web Parts Web Parts mogą być mogą być przemieszczane na stronieprzemieszczane na stronie

Page 33: Poland - Dev Days 2005

Nowości - Model kompilacjiNowości - Model kompilacji

Nowa struktura katalogów aplikacjiNowa struktura katalogów aplikacjiApp_BrowsersApp_Browsers

App_CodeApp_Code

App_DataApp_Data

App_GlobalResourceApp_GlobalResource

App_LocalResourcesApp_LocalResources

App_ThemesApp_Themes

App_WebReferencesApp_WebReferences

BinBin

Page 34: Poland - Dev Days 2005

Nowości - Model kompilacji stronyNowości - Model kompilacji strony

Wykorzystywana koncepcja z CLR 2.0 Wykorzystywana koncepcja z CLR 2.0 „partial code” i „code-behind” „partial code” i „code-behind” kompilacji do jednego plikukompilacji do jednego pliku

Pliki .aspx oraz plik „code-behind” Pliki .aspx oraz plik „code-behind” mogą być kompilowane do jednej mogą być kompilowane do jednej prekompilowanej klasy (bazowa klasa prekompilowanej klasy (bazowa klasa strony)strony)

Stary model (ASP.NET 1.x) kompilacji Stary model (ASP.NET 1.x) kompilacji wciąż wspieranywciąż wspierany

Page 35: Poland - Dev Days 2005

Nowości - Model kompilacji aplikacjiNowości - Model kompilacji aplikacji

Cała aplikacja może być Cała aplikacja może być prekompilowanaprekompilowana

aspnet_compiler –v /WebApp c:\web\aspnet_compiler –v /WebApp c:\web\WebAppWebApp

lub w przeglądarcelub w przeglądarce url + url + /precompile.axd/precompile.axd

Page 36: Poland - Dev Days 2005

DEMODEMO

Page 37: Poland - Dev Days 2005

PodsumowaniePodsumowanieNowe cechy ułatwiające Nowe cechy ułatwiające wykonywanie powtarzających się wykonywanie powtarzających się zadań programistycznych zadań programistycznych (SmartTasks)(SmartTasks)

Nowy model pozwalający na Nowy model pozwalający na skalowalność rozwiązańskalowalność rozwiązań

Nowy model kompilacji stron i Nowy model kompilacji stron i aplikacjiaplikacji

Nowe cechy środowiska Nowe cechy środowiska programistycznego pozwalające na programistycznego pozwalające na łatwiejsze tworzenie aplikacji łatwiejsze tworzenie aplikacji internetowych (IntelliSense w internetowych (IntelliSense w plikach .aspx)plikach .aspx)

BETA

Page 38: Poland - Dev Days 2005

CiekawostkiCiekawostki

Lista serwerów hostujących ASP.NET 2.0 beta 2 Lista serwerów hostujących ASP.NET 2.0 beta 2 http://msdn.microsoft.com/asp.net/beta2/hosters/http://msdn.microsoft.com/asp.net/beta2/hosters/

Lista zmian wprowadzonych w ASP.NET 2.0 beta 2Lista zmian wprowadzonych w ASP.NET 2.0 beta 2http://msdn.microsoft.com/asp.net/beta2/beta2changes.asphttp://msdn.microsoft.com/asp.net/beta2/beta2changes.aspxx

http://msdn.microsoft.com/asp.net/beta2/beta2update.aspxhttp://msdn.microsoft.com/asp.net/beta2/beta2update.aspxInterfejs użytkownika Interfejs użytkownika http://msdn.microsoft.com/asp.net/beta2/ui/default.aspxhttp://msdn.microsoft.com/asp.net/beta2/ui/default.aspxDostęp do danychDostęp do danych

http://msdn.microsoft.com/asp.net/beta2/data/default.aspxhttp://msdn.microsoft.com/asp.net/beta2/data/default.aspx

Infrastruktura Infrastruktura http://msdn.microsoft.com/asp.net/beta2/infrastructure/defahttp://msdn.microsoft.com/asp.net/beta2/infrastructure/default.aspxult.aspx

Migracja Migracja http://msdn.microsoft.com/asp.net/beta2/migrating/default.http://msdn.microsoft.com/asp.net/beta2/migrating/default.aspxaspx

Bezpieczeństwo Bezpieczeństwo http://msdn.microsoft.com/asp.net/beta2/security/default.ashttp://msdn.microsoft.com/asp.net/beta2/security/default.aspxpx

Page 39: Poland - Dev Days 2005

Dziękujemy za uwagę!Dziękujemy za uwagę!

„Dzisiaj nigdzie nie idziemy!”

Tomasz [email protected]

Krzysztof Gawę[email protected]

Page 40: Poland - Dev Days 2005

Zmiany pliku web.configZmiany pliku web.config

<configuration> <connectionStrings> <add name="Northwind" connectionString="server=localhost; database=Northwind; uid=sa;pwd="password" /> </connectionStrings> <system.web> <caching> <sqlCacheDependency enabled="true"> <databases> <add name="MyDatabase" connectionStringName="Northwind" pollTime="500" /> </databases> </sqlCacheDependency> </caching> </system.web></configuration>