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