Freigeben über


Modern ASP.NET WebForms 4.5–DevIntersection 2012

Thank you all who came for my talk on ASP.NET WebForms 4.5 at DevIntersection(https://devintersection.com/)

Please find the slides and the samples as follows

Slides

Web forms- DevIntersection from rustd

 

Samples

 

 

I have also included my talk walkthrough so you can relate to all the concepts I talked about

Talk Walkthrough

- Outline
-- Not the usual flow of features but some interesting things you can do with the webforms framework
-- Pattern based development
-- Cleaner code
-- Extensibility    

- Templates rendering
    -- Standards compliant

- OAuth/Open Id Login
     -- Uncomment AuthConfig
     -- Login using Google

- Web Optimization
     -- Debug=true(all files)
    -- Debug=false(bundled files)
     -- Framework scripts
         ---- Bundled as nuget packages
- Tips & tricks
     -- Script Manager
         --- Remappings
             ---- Originally come from aspnet ajaxcdn but you can change it
         -- CDN support(enable cdn=true)
             ---- Even the bundles
         -- LoadSuccessExpression
             ---- If the network goes out then you can load the scripts locally

- Patterns/Tips & Tricks
     -- Model Binding
         ---- Basics
        ---- Model Binding
        ---- Routing
        ---- PRG
         ---- Repository
         ---- Unit Testability
         ---- Dynamic data
         ---- Model Binding Extensibility
         ------  Aggregate Value Providers and an attribute
                 Similar to mvc
          ----- AdHoc Model Binding
                 No data controls
                 Anonymous types cannot be constructed

    - Control Builder Interceptor
         -- Customize the compilation system
         -- Change what kind of code gets generated
         -- Great of custom control developers
         -- Edit the codedom of the existing control - not possible before
             ---- Sub class the control
             ---- Reimplement the control builder
         -- To use this put it in the config
         -- Layer of indirection between UI/code something like MVP. Little code talking to UI
         -- Layer of indirection between code and markup
         -- Take this idea further along
             ---- Advanced control builder interceptor
             ---- Earlier written using custom controls but with the new feature in v4.5 you can do it more easily

     -- Command Bubbling
         ---- WPF/Silverlight
         ---- Rather than event handlers to do business logic - command interface
         ---- Remove as much code as I can
          ---- Code interacts with controls - separation of concerns
          ---- Declarative statements to wire up server controls to data
          ---- Imperative logic factored out into different classes
        ---- Webforms has bubbling event(

Controls like gridview work like this)
---- Separation of concern/Clean code behind
---- Event bubbling to update UI when an event happens(click/button)
---- Component driven/event driven

--  Tag Mapping
-- Code to modify control…do not put it in the code behind
-- Remapping controls
-- Custom Templates
-- User voice item
-- Load them from database/file etc

  -- Imperative vs declarative
             -- Declarative - more maintainable - you know everything statically
             -- Imperative - set stuff dynamically
   
- Async Support
     -- Async=false
     -- Async=true
    --Async/await usage
       

- FriendlyURLs
     -- Cleaner Urls which are easy to use
     -- Show the async demo on a mobile device

- Scaffolding
     -- Person class
     -- Scaffold using UI
     -- CRUD on desktop
     -- Default on mobile