You generally remember…
@toddanglin
Todd AnglinChief Evangelist, TelerikMicrosoft MVPASPNET InsiderNHDNUG President & O’Reilly Authortelerikwatch.com@toddanglin
TelerikOne-stop provider for .NET tools & UI componentsUI	  DATA	        PRODUCTIVITY     TESTING	      TFS	             CMS.NET Developer ProductivityUI: ASP.NET AJAX, MVC, WinForms, Silverlight, WPFDATA: Telerik Reporting, OpenAccess ORMCMS: Sitefinity CMSPRODUCTIVITY: JustCodeTESTING: WebUI Test StudioTFS: Work Item Manager, Project Dashboard
Today’s Road Map
What are the technologies of the web?
jQuery
Memory LaneASP 1.0CSS
At the time of ASP.NET 1…JavaScript was a painBut, IE6 held 96% browser share.NET was brand newWinForms was new, VB6 was popularYet to be invented:AJAX*jQueryWeb 2.0Silverlight/XAMLTwitter
MobileMVCHTML5CloudREST Web ServicesAJAXRIAJSONVideoCSS3WebMatrixBrowser War IISocial Media
4
What is “ASP.NET”?
ASP.NETCore ServicesWebFormsMVCDynamic DataAJAX
AbstractedHTML + JSasp.net webformsasp.net mvcOn the Metal
introduction to asp.net 4.0putting you in control
AbstractedHTML + JSasp.net webformsasp.net mvcOn the Metal
*important notesSide-by-side enabledBackwards & Upwards compatiblecontrolRenderingCompatibilityVersionVS 2010 only
ViewStateViewStatecan be opt-inViewStateModeEnabled/Disabled/Inherit
Control IDs4 Mode:AutoIDStaticInheritPredictable (*default)(+ ClientIDRowSuffix)<!--Set client ID--><asp:ListViewDataSourceID=“odsYourData"ClientIDRowSuffix="ID"ClientIDMode="Predictable"<!--Global config-><system.web>     <pages clientIDMode="Predictable">    </pages> </system.web>
RoutingImproved in 4.0Global.asaxpublic class Global : System.Web.HttpApplication{    protected void Application_Start(object sender, EventArgs e)    {RouteTable.Routes.Add("Product",            new Route("Products/{category}",new PageRouteHandler("~/Products.aspx")));    }}<asp:Literal Text="<%$ RouteValue:Category %>" runat="server" />
New APIsPage Meta InfoPage.MetaDescription = "this is meta description";Page.MetaKeywords = "this is a meta keyword";Permanent RedirectResponse.RedirectPermanent(url); //issues HTTP 301Browser Capabilities (updated for new browsers + mobile)HttpRequest.Browser.HttpBrowserCapabilities
Output CachingProvider-based<!--web.config--><caching>   <outputCachedefaultProvider="AspNetInternalProvider"> <providers>       <add name="DiskCache"           type="Test.OutputCacheEx.DiskOutputCacheProvider, DiskCacheProvider"/>     </providers>   </outputCache> </caching> <%--Configure cache provider per page/control--%><%@ OutputCache Duration="60" VaryByParam="None"  providerName="DiskCache" %>?
ExtensibilityNewly extensible:Object CachingSystem.Runtime.CachingInvalid Path CharactersRequest ValidationEncoding<httpRuntimeencoderType="Samples.MyCustomEncoder, Samples"  /> Browser Capabilities
ControlsNewQueryExtenderImprovedListViewFormViewPagingOuter tablesHidden DIV CSS
Client-side librariesMicrosoft Ajax Libraries are dead*Long live jQueryWhat does it mean?For new client-side development, use jQuery*NOTE: jQuery ships with ASP.NET 4
Dynamic DataCore benefits:Model-driven validationField Templates//Enable via CodeGridView1.EnableDynamicData(typeof(Product), 			new { ProductName = "DefaultName" });<!--OR Enable declaratively on page-%><asp:DynamicDataManager ID="DynamicDataManager1" runat="server"  AutoLoadForeignKeys="true">   <DataControls>     <asp:DataControlReferenceControlID="GridView1" />   </DataControls> </asp:DynamicDataManager> Now more flexible!
jQuery & MVCBaked-in to ASP.NET
What’s NextRazor & WebMatrix
For your research…Changes to control renderingNew control featuresClient controls & Ajax librariesIIS changesVS 2010 changesASP.NET MVC 2Windows Azure
It’s too much!
thanks!telerikwatch.com@toddanglinanglin@telerik.com

What’s New in ASP.NET 4

Editor's Notes

  • #2 Getting the Most of Out of What&apos;s New in ASP.NET 4.0With the recent release of ASP.NET 4.0, there are many new tools in the WebForms developer toolbox that make it possible to build faster, more standards-compliant web applications. In this session, you&apos;ll be introduced to all of the new major features in ASP.NET 4.0 and shown how these features can be leveraged to build better WebForms applications. From improved ViewState handling to powerful control over client IDs and caching, this session is your primer for making the upgrade to 4.0.
  • #3 Bogus chart – based on “research” by Wiman &amp; Meirhenry, and Edgar Dale 1960Research since proven to be made-up. Still, fun slide…
  • #9 jQuery is increasingly the “baseline” JavaScript experience
  • #10 TBL Server Info: http://thelongestlistofthelongeststuffatthelongestdomainnameatlonglast.com/first242.html(Cost: $6500, Type: NeXTcube, Online: Aug 1991)Mosaic: http://www.ncsa.illinois.edu/Projects/mosaic.htmlIE3 introduces first real support for CSS (1996): http://en.wikipedia.org/wiki/Internet_Explorer_3
  • #17 Focus: giving web forms developers more controlFormView: RenderTable=FalseListView: No longer requires LayoutTemplateViewSateMode: Enabled,Disabled,Inherit(default)ClientIdMode: Legacy (tmpName),Static,Predictable,Inherit(default)URLs: Routing engine, Page.RouteData, RouteParameter for data source controlsSEO: Page.Description, Page.Keywords, Response.RedirectPermanentQueryExtender: New control for Iqueryable filtersBrowser Capabilities Extensibilty: better targeting for devicesOut-of-proc Session State compressionFeature highlights:Increased control over ViewStateImproved cachingClient-side focusTemplatesControlsDataContext
  • #21 http://www.west-wind.com/weblog/posts/54760.aspx (Good discussion of ClientIDMode on Rick’s blog)
  • #24 Extensible output cachinghttp://www.4guysfromrolla.com/articles/061610-1.aspx (Disk Cache Example Code)DEMOS: Custom cache provider, AppFabric distributed cache
  • #25 Extensible output cachingDEMOS: Custom cache provider, AppFabric distributed cache
  • #26 Talk about backwards compat: &lt;system.web&gt;  &lt;pages controlRenderingCompatibilityVersion=&quot;3.5&quot;/&gt;&lt;/system.web&gt;
  • #28 Custom field templateUsing declaratively in WebFormsMUST USE Dynamic control (DynamicField, DynamicControl, etc.)http://weblogs.asp.net/davidfowler/archive/2009/05/06/dynamic-data-preview-4.aspx (David Fowler on Dynamic Data)