300 likes | 439 Views
Moderni web-kehitys ASP.NETillä. Jouni Heikniemi Offbeat Solutions 18.1.2012. Agenda. ASP.NET-kehittäjät, webin osaajat. Kenelle?. Modernien web-tekniikoiden eri osa-alueiden palvelintoteutusta. Sisältö?. Niksejä, linkkejä, y leiskäsitys toteutustavoista. Mitä jää käteen?. ASP.NET.
E N D
Moderni web-kehitys ASP.NETillä Jouni Heikniemi Offbeat Solutions 18.1.2012
Agenda ASP.NET-kehittäjät, webin osaajat Kenelle? Modernien web-tekniikoiden eri osa-alueiden palvelintoteutusta Sisältö? Niksejä, linkkejä, yleiskäsitys toteutustavoista Mitä jää käteen?
ASP.NET <asp:HyperLink ID="hyperLinkBack" runat="server"/> <asp:GridView id="MyGridView" DataSourceID="MyDataSource1" Runat="Server"/> <asp:SqlDataSource ID="MyDataSource1" runat="server" ConnectionString="Server=YourServer;uid=YourUID;pwd=YourPWD;database=YourDB" ProviderName="System.Data.SqlClient" SelectCommand="SELECT ID, Name FROM Customer"> </asp:SqlDataSource> <asp:GridView id="MyGridView" DataSourceID="MyDataSource1" AllowSorting="True" AllowPaging="True" Runat="Server"/> <input type="submit" name="ctl00$body$ctl00$navigation$ctl00$buttonFormSubmit" value="Hae" id="ctl00_body_ctl00_navigation_ctl00_buttonFormSubmit" /> <input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPZCgpWFN5c3RlbS5H...” /> <a href="javascript:__doPostBack('ctl00$body$ctl00$main$ctl00$listAnnou ncements$repeaterPaging$ctl06$linkButtonPage','')" ... </a>
ASP.NET 1.0 4.5 1.1 2.0 3.5 4.0 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012
ASP.NET 1.0 4.5 1.1 2.0 3.5 4.0 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 1.0 2.0 3.0 4.0 ASP.NET MVC
ASP.NET MVC Perussiisti toteutus Model-View-Controller –mallista Erittäin hyvin laajennettavissa Lähdekoodi saatavilla
Öö, se HTML:hän menee sinne clientille? Mitä siellä serverillä nyt oikein tarvitaan?
Modernizr • JavaScript-kirjasto • Saatavilla NuGetilla • ... Tai www.modernizr.com • Mahdollistaa HTML5- ja CSS3-ominaisuuksien tuen tunnistamisen tehokkaasti • Sekä CSS:ssä että JavaScriptissä • Mahdollistaa puuttuvien ominaisuuksien korvaamisen muilla ratkaisuilla
OData • REST-pohjainen tietolähde, jossa monipuolinen kyselykieli • www.odata.org • Serveripää • .NET-ympäristössä WCF Data Services • Helpoiten edmx:stä tai omista olioista • Muille alustoille omia implementaatioitaan • Client-pää • JavaScriptissä helposti ihan vain JSONilla • SDK:t saatavilla useimmille merkittäville alustoille
Perinteinen pollaustekniikka Palvelin Selain Selaintekeepyynnön ainamäärätyinväliajoin Latenssi!
”long polling” Palvelin Selain Palvelinvastaapyyntöön vasta kun dataa on tullut. Selaintekeehetiuudenpyynnön.
Websockets Palvelin HTTP/1.1 101 Switching Protocols Upgrade: websocketConnection: Upgrade Selain GET /ws HTTP/1.1 Upgrade: websocket Connection: Upgrade
Websockets Palvelin Selain
Websockets – standardoinnin tila Palvelin RFC 6455 Selain W3C API
Websockets - selaintuki caniuse.com + Flash 10!
Websocketit Microsoft-alustalla IE 10 tai muu hyvin uusi selain Oma rajapinta Oma rajapinta WCF 4.5 ASP.NET 4.5 IIS 8 Windows 8
... Vai vielä vähän korkeammalla tasolla? IE 10 tai muu hyvin uusi selain vanhempikin käy SignalR / JS WebSockets / long polling WebSockets SignalR Oma rajapinta Oma rajapinta WCF 4.5 ASP.NET 4.5 IIS 8 Windows 8
WebSockets-yhteenveto • Uusi, standardi kommunikaatiotapa webin yli • Nopea • Käyttää http/https-yhteyksiä • Ei tietoliikenteellisesti täysin ongelmaton, mutta pieksee perussocketit 6-0 • Microsoftin palvelinpäässä kolme toteutusarkkitehtuuria: • WCF (matalamman tai korkeamman tason) • ASP.NET (matalamman tai korkeamman tason) • SignalR (kaikkein korkeimman tason)
Opettele... • JavaScript-ohjelmointi • DOM • jQuery • Tiedon välittäminen (JSON, OData) • HTTP • Avoimen lähdekoodin projektien käyttö: GitHub, CodePlex, NuGet ym.
Kiitos! jouni@offbeat.fi www.heikniemi.net/hardcoded @jouniheikniemi