WebForms vs
MVC
Stupid Web Technology Moves Too
Damn Fast
*** Web 3.0
• I was brought on board 8/2011
• Discussion/architecture continued until 10/2011
• Our platform consists of
•...
Our Choices
• Localization:
• Uses AJAX ScriptManager and embedded JavaScript files in web part assemblies
• Biz Architect...
Our UI Framework Alternatives Were Not
Ready…
• KendoUI/IgniteUI were both in infancy
• IgniteUI was previously called
Net...
Microsoft Also changed the Web Service
game…
• At the time, WCF or traditional ASPX web services were
the only way to crea...
Microsoft Also changed the Web Service
game…
• Microsoft was very awesome. :-/
• They decided to replace WCF REST API
with...
Other technology that has popped up over
the last two years
• SignalR/WebSockets
• TypeScript
• SASS/LeSS
• NodeJS
• NuGET...
Web Forms vs. MVC
Web Forms
• Great UI encapsulation
• Localization through
RESX/ScriptManager
• Poor web development prac...
In Summation
• I’ve developed a healthy hatred for the Microsoft platform
• I also like some really cool things about the ...
Upcoming SlideShare
Loading in...5
×

Microsoft ASP.NET Webforms vs. MVC

10,866

Published on

Comparing the potential migration of a commercial software application from Webforms to MVC

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
10,866
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
8
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Microsoft ASP.NET Webforms vs. MVC

  1. 1. WebForms vs MVC Stupid Web Technology Moves Too Damn Fast
  2. 2. *** Web 3.0 • I was brought on board 8/2011 • Discussion/architecture continued until 10/2011 • Our platform consists of • Web Forms with Custom Web Parts • Open Source Grid/Layout/Window plugins • Challenges we faced • Localization of client side script • How to take advantage of ***’s awesome biz architecture • How to support licensing/authentication through a state-full architecture • How to organize client side code in a meaningful efficient manner • How to create rich UI widgets in HTML 5 that have “near native” performance
  3. 3. Our Choices • Localization: • Uses AJAX ScriptManager and embedded JavaScript files in web part assemblies • Biz Architecture • Created a Service Oriented Architecture on top of the *** biz layer using Windows Communication Foundation. All client side interactions are handled through AJAX calls to these services. • Authentication/Licensing • Handled by shuffling a cookie containing “auth” object from web application to client side JavaScript and back to web service. User is authenticated via cookie through two separate app domains. • Client Side Code Organization • Each main UI element is encapsulated in it’s own “web part project” in the UI layer under ***.UI.Web.*. Each web part is embedded with it’s own HTML/JavaScript/CSS resources, and injected into the site via the web forms script manager. During injection ScriptManager can handle things like localization. • UI Widget • Used the open source plugins DataTables, AeroWindow, and jQueryLayout
  4. 4. Our UI Framework Alternatives Were Not Ready… • KendoUI/IgniteUI were both in infancy • IgniteUI was previously called NetVantage for jQuery • Neither had a stable grid component that supported the advanced functionality we required. • These features did not yet exist per the Netvantage jQuery 2011.2 document: • Column resizing/reordering • Item previewing • NetVantage’s grid had a list of 27 known bugs, 7 of which had no workaround and were never fixed. KendoUI
  5. 5. Microsoft Also changed the Web Service game… • At the time, WCF or traditional ASPX web services were the only way to create RESTful web services • WCF is a pain in the ass. • WCF REST is an extra hard pain in the ass. • WCF REST with both windows authentication and anonymous authentication is the most unbelievably largest pain in the ass imaginable. • Plus it ruined my Disneyworld trip. • Help was around the corner – Two project promised to simplify RESTful services: • WCF Web API: • http://wcf.codeplex.com/wikipage?title=WCF%20Web %20API%20is%20now%20ASP.NET%20Web%20API • WCF REST Starter Kit: • http://aspnet.codeplex.com/releases/view/24644
  6. 6. Microsoft Also changed the Web Service game… • Microsoft was very awesome. :-/ • They decided to replace WCF REST API with MVC Web API • As always – the story is that WCF REST has very viable use cases blah blah blah… *cough* Silverlight *cough* • Web API was released Aug 2012 – about halfway through our development cycle. • MVC itself was in Version 3 when we started – Version 4 was released Aug 2012, and Version 5 is currently in preview. WEB API WCF
  7. 7. Other technology that has popped up over the last two years • SignalR/WebSockets • TypeScript • SASS/LeSS • NodeJS • NuGET • GitHub • 5 gazillion JavaScript frameworks • Native JS Development (Windows 8, Google Apps) • ShadowDOM • Web Components/Polymer • HTTP 2.0 • SPDY (IE11 supports!) In Use Today Around the Corner
  8. 8. Web Forms vs. MVC Web Forms • Great UI encapsulation • Localization through RESX/ScriptManager • Poor web development practices • ViewState • Single Form per Page • Slows development – very difficult to order JavaScript/CSS/HTML in the most efficient manner. MVC • Ex Ruby staff • UI encapsulated only through JS files – not separate projects • Localization through JSON • Thin HTML – no extra hidden elements/ViewState/random Microsoft garbage • All of the new Visual Studio tooling is being developed with WinForms in mind – i.e. web essentials doesn’t have a way to preview/reference files from an embedded assembly.
  9. 9. In Summation • I’ve developed a healthy hatred for the Microsoft platform • I also like some really cool things about the new Microsoft platforms. • But those really cool things will probably be replaced in a year or two. • MVC is a very cool way to develop • Except for it abandons the way Microsoft has built web software for over 10 years. • And it also does not integrated with Microsoft Web products like SharePoint, which will remain web forms based for years to come. • It is more closely related to every other web platform out there, like PHP, Ruby, Java Server Pages (JSP), etc. • MVC is a faster, more web oriented, and a less bug prone method of developing. • I don’t have to spend time digging around in viewstate • JavaScript isn’t parsed through web handlers • Web toolsets like Google Chrome are easier to use. • We are prepared for the transition – MVC was on the radar, and all of our web parts will built with the concept of one day transitions to MVC in mind. • No server side DOM • No ViewState I ran out of time building this PowerPoint – here’s a picture of a kitten petting a duck
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×