<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: So why exactly do we want to move away from Controls to MVC?</title>
	<atom:link href="http://sitecore.alexiasoft.nl/2008/09/23/so-why-exactly-do-we-want-to-move-away-from-controls-to-mvc/feed/" rel="self" type="application/rss+xml" />
	<link>http://sitecore.alexiasoft.nl/2008/09/23/so-why-exactly-do-we-want-to-move-away-from-controls-to-mvc/</link>
	<description>All about Sitecore, .NET and the daily life of a Solution Architect.</description>
	<lastBuildDate>Wed, 10 Mar 2010 01:24:29 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Ben Scheirman</title>
		<link>http://sitecore.alexiasoft.nl/2008/09/23/so-why-exactly-do-we-want-to-move-away-from-controls-to-mvc/comment-page-1/#comment-112731</link>
		<dc:creator>Ben Scheirman</dc:creator>
		<pubDate>Fri, 26 Sep 2008 16:05:44 +0000</pubDate>
		<guid isPermaLink="false">http://sitecore.alexiasoft.nl/2008/09/23/so-why-exactly-do-we-want-to-move-away-from-controls-to-mvc/#comment-112731</guid>
		<description>@Simon:

MVC is an apt pattern for the web.  It fits it much more nicely than the leaky abstraction of a stateful platform on a decidedly stateless protocol.  This breaks down quickly, and you spend more time dealing with issues relating to this leaky abstraction than actually writing for the web, which is what I think we should be doing.  

ASP.MVC doesn&#039;t support server controls, but it does have a ton of flexibility in how you compose a view.

The web isn&#039;t the desktop.  We shouldn&#039;t pretend that it is, and we shouldn&#039;t write applications as if we were running on the desktop.  Program to your platform, and you&#039;ll reap the benefits that it has to offer.  Put on rose colored glasses and pretend that you&#039;re writing for the desktop and be certain that you will face performance and/or usability problems along the way.

ASP.NET MVC is a back-to-basics platform that takes a few key things right to its core:
* testability
* single responsibility
* full control over URLs, HTML, CSS, Javascript integration
* easier ajax integration

Lastly, also consider that ASP.NET MVC is still in its infancy.  There are rough edges, sure.  But it&#039;s a breath of fresh air in comparison to WebForms, in my opinion.</description>
		<content:encoded><![CDATA[<p>@Simon:</p>
<p>MVC is an apt pattern for the web.  It fits it much more nicely than the leaky abstraction of a stateful platform on a decidedly stateless protocol.  This breaks down quickly, and you spend more time dealing with issues relating to this leaky abstraction than actually writing for the web, which is what I think we should be doing.  </p>
<p>ASP.MVC doesn&#8217;t support server controls, but it does have a ton of flexibility in how you compose a view.</p>
<p>The web isn&#8217;t the desktop.  We shouldn&#8217;t pretend that it is, and we shouldn&#8217;t write applications as if we were running on the desktop.  Program to your platform, and you&#8217;ll reap the benefits that it has to offer.  Put on rose colored glasses and pretend that you&#8217;re writing for the desktop and be certain that you will face performance and/or usability problems along the way.</p>
<p>ASP.NET MVC is a back-to-basics platform that takes a few key things right to its core:<br />
* testability<br />
* single responsibility<br />
* full control over URLs, HTML, CSS, Javascript integration<br />
* easier ajax integration</p>
<p>Lastly, also consider that ASP.NET MVC is still in its infancy.  There are rough edges, sure.  But it&#8217;s a breath of fresh air in comparison to WebForms, in my opinion.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Dan</title>
		<link>http://sitecore.alexiasoft.nl/2008/09/23/so-why-exactly-do-we-want-to-move-away-from-controls-to-mvc/comment-page-1/#comment-112710</link>
		<dc:creator>Dan</dc:creator>
		<pubDate>Fri, 26 Sep 2008 13:36:49 +0000</pubDate>
		<guid isPermaLink="false">http://sitecore.alexiasoft.nl/2008/09/23/so-why-exactly-do-we-want-to-move-away-from-controls-to-mvc/#comment-112710</guid>
		<description>If you want to make a desktop application, maybe Winforms or even Silverlight, Flash and the Java Applet would be better suited.

WebForms does a reasonable job of abstracting the Web away for development, and that&#039;s it&#039;s strength and weakness. To make to best of the web you really have to embrace it.

MVC allows for TDD, WebForms is a pain to test. Even desktop apps could benefit from an MVC approach.</description>
		<content:encoded><![CDATA[<p>If you want to make a desktop application, maybe Winforms or even Silverlight, Flash and the Java Applet would be better suited.</p>
<p>WebForms does a reasonable job of abstracting the Web away for development, and that&#8217;s it&#8217;s strength and weakness. To make to best of the web you really have to embrace it.</p>
<p>MVC allows for TDD, WebForms is a pain to test. Even desktop apps could benefit from an MVC approach.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Simon Edwards</title>
		<link>http://sitecore.alexiasoft.nl/2008/09/23/so-why-exactly-do-we-want-to-move-away-from-controls-to-mvc/comment-page-1/#comment-112693</link>
		<dc:creator>Simon Edwards</dc:creator>
		<pubDate>Fri, 26 Sep 2008 11:01:11 +0000</pubDate>
		<guid isPermaLink="false">http://sitecore.alexiasoft.nl/2008/09/23/so-why-exactly-do-we-want-to-move-away-from-controls-to-mvc/#comment-112693</guid>
		<description>MVC is terrible for web applications. By applications I don&#039;t mean websites which contain a form or two, I mean applications which are organised like normal desktop GUI applications and behave like desktop applications. For web applications you need support for components/controls and you want all of the HTTP/HTML stuff between the browser and your application to be handled automatically as much as possible. You want state management and events and the same programming model as normal desktop applications. This is the model which makes sense for programming applications. This is the model which has evolved since the early 80s to where it is now. Work using GUI components and events, that is the right level to be working on, not HTML and HTTP.

That being said, MVC is a reasonable way of organising your project if:

* You must follow a graphic design from a designer which is delivered as HTML+CSS.
* Your forms are simple and don&#039;t need complex UI controls.
* You are creating a page based form for a web site.
* You just want a step up from the tradional PHP/ASP/CGI style of request/response programming.

But don&#039;t try to make applications using MVC. It doesn&#039;t offer the support you need.</description>
		<content:encoded><![CDATA[<p>MVC is terrible for web applications. By applications I don&#8217;t mean websites which contain a form or two, I mean applications which are organised like normal desktop GUI applications and behave like desktop applications. For web applications you need support for components/controls and you want all of the HTTP/HTML stuff between the browser and your application to be handled automatically as much as possible. You want state management and events and the same programming model as normal desktop applications. This is the model which makes sense for programming applications. This is the model which has evolved since the early 80s to where it is now. Work using GUI components and events, that is the right level to be working on, not HTML and HTTP.</p>
<p>That being said, MVC is a reasonable way of organising your project if:</p>
<p>* You must follow a graphic design from a designer which is delivered as HTML+CSS.<br />
* Your forms are simple and don&#8217;t need complex UI controls.<br />
* You are creating a page based form for a web site.<br />
* You just want a step up from the tradional PHP/ASP/CGI style of request/response programming.</p>
<p>But don&#8217;t try to make applications using MVC. It doesn&#8217;t offer the support you need.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Alex de Groot</title>
		<link>http://sitecore.alexiasoft.nl/2008/09/23/so-why-exactly-do-we-want-to-move-away-from-controls-to-mvc/comment-page-1/#comment-112691</link>
		<dc:creator>Alex de Groot</dc:creator>
		<pubDate>Fri, 26 Sep 2008 10:57:31 +0000</pubDate>
		<guid isPermaLink="false">http://sitecore.alexiasoft.nl/2008/09/23/so-why-exactly-do-we-want-to-move-away-from-controls-to-mvc/#comment-112691</guid>
		<description>Hello Alexey, Nelson and Jukka-Pekka,

I still do believe controls are great. Why? They are as complex as any Markup Language is. An old colleague of me ever told me that a Domain Specific Language such as ASP.NET is as complex as the domain itself. 
I don&#039;t see how this could be made easier with the MVC model. I only see a lot of work for getting used to the pattern, a lot of less readable code(be honest, stuff like attributes above methods are not pretty and easy to understand). And beside of that, MVC is only interesting to use when you&#039;ve to reuse the data very often. Otherwise writing or generating Model, Controllers and Views are just to many steps. The form support itself is ridiculous, for those circumstances you need a control model. Or maybe you should generate a Model for this once again?! That would mean that instead of making stuff easier, you&#039;re just generating more and more code. Which does make your codebase more complex. Especially because the generated code is the place where you want to add your business logic.
Beside of that, how do you guys think about generating forms on the fly? Ever heard of a changing Model on the fly?

Jukka-Pekka makes it even more interesting. Yes I&#039;m sure there will be a future for CMS&#039;s. In the world of CMS&#039;s there&#039;s a general bigger challenge then just techniques. This challenge is called &#039;organizations&#039;. Simplifying processes, making marketing people more effective, etc.
When you look at it from a technical perspective, so far MVC has only been working with database date. Typically Microsoft. MOSS is also only database data. Texts and blob. But there&#039;s way more in this world. For example relations between content, either impliciet(taxonomies) or expliciet(e.g. links in content). And as long as we&#039;ve to help people in making technical stuff usable for the end-customer, there will be a challenge for CMS Vendors. :)

- Alex</description>
		<content:encoded><![CDATA[<p>Hello Alexey, Nelson and Jukka-Pekka,</p>
<p>I still do believe controls are great. Why? They are as complex as any Markup Language is. An old colleague of me ever told me that a Domain Specific Language such as ASP.NET is as complex as the domain itself.<br />
I don&#8217;t see how this could be made easier with the MVC model. I only see a lot of work for getting used to the pattern, a lot of less readable code(be honest, stuff like attributes above methods are not pretty and easy to understand). And beside of that, MVC is only interesting to use when you&#8217;ve to reuse the data very often. Otherwise writing or generating Model, Controllers and Views are just to many steps. The form support itself is ridiculous, for those circumstances you need a control model. Or maybe you should generate a Model for this once again?! That would mean that instead of making stuff easier, you&#8217;re just generating more and more code. Which does make your codebase more complex. Especially because the generated code is the place where you want to add your business logic.<br />
Beside of that, how do you guys think about generating forms on the fly? Ever heard of a changing Model on the fly?</p>
<p>Jukka-Pekka makes it even more interesting. Yes I&#8217;m sure there will be a future for CMS&#8217;s. In the world of CMS&#8217;s there&#8217;s a general bigger challenge then just techniques. This challenge is called &#8216;organizations&#8217;. Simplifying processes, making marketing people more effective, etc.<br />
When you look at it from a technical perspective, so far MVC has only been working with database date. Typically Microsoft. MOSS is also only database data. Texts and blob. But there&#8217;s way more in this world. For example relations between content, either impliciet(taxonomies) or expliciet(e.g. links in content). And as long as we&#8217;ve to help people in making technical stuff usable for the end-customer, there will be a challenge for CMS Vendors. <img src='http://sitecore.alexiasoft.nl/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>- Alex</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jukka-Pekka Keisala</title>
		<link>http://sitecore.alexiasoft.nl/2008/09/23/so-why-exactly-do-we-want-to-move-away-from-controls-to-mvc/comment-page-1/#comment-112674</link>
		<dc:creator>Jukka-Pekka Keisala</dc:creator>
		<pubDate>Fri, 26 Sep 2008 08:37:16 +0000</pubDate>
		<guid isPermaLink="false">http://sitecore.alexiasoft.nl/2008/09/23/so-why-exactly-do-we-want-to-move-away-from-controls-to-mvc/#comment-112674</guid>
		<description>I love ASP.NET MVC  that is the best thing from Microsoft since .NET was released. I was driven to .NET because it was by far the most powerful XML/XSLT transformation engine together with C#. But I simply never understood what is so great about ASP.NET. I understand that for the application programmer especially for Windows programmer controls are easy and nice but it sucks to be a webdesigner in ASP.NET world because you don&#039;t have full control over html. It has got a lot better in .NET 2.0 but it is still bad. 
I think MVC solves this. But like ScottGu and Hanselman says MVC is not for everyone and it is not here to replace ASP.NET. 
But for me MVC is a natural step from XML/XSL transformations especially since I can still use XSL for templating engine in MVC.

One thing is intresting though, if MVC on .NET has remotely same effect as Django and Rails is forming on the &quot;other side&quot;. What will be the future of CMS like Sitecore? 
I don&#039;t see how MVC and Sitecore (or any other CMS) can work together do you?</description>
		<content:encoded><![CDATA[<p>I love ASP.NET MVC  that is the best thing from Microsoft since .NET was released. I was driven to .NET because it was by far the most powerful XML/XSLT transformation engine together with C#. But I simply never understood what is so great about ASP.NET. I understand that for the application programmer especially for Windows programmer controls are easy and nice but it sucks to be a webdesigner in ASP.NET world because you don&#8217;t have full control over html. It has got a lot better in .NET 2.0 but it is still bad.<br />
I think MVC solves this. But like ScottGu and Hanselman says MVC is not for everyone and it is not here to replace ASP.NET.<br />
But for me MVC is a natural step from XML/XSL transformations especially since I can still use XSL for templating engine in MVC.</p>
<p>One thing is intresting though, if MVC on .NET has remotely same effect as Django and Rails is forming on the &#8220;other side&#8221;. What will be the future of CMS like Sitecore?<br />
I don&#8217;t see how MVC and Sitecore (or any other CMS) can work together do you?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Nelson Montalvo</title>
		<link>http://sitecore.alexiasoft.nl/2008/09/23/so-why-exactly-do-we-want-to-move-away-from-controls-to-mvc/comment-page-1/#comment-112462</link>
		<dc:creator>Nelson Montalvo</dc:creator>
		<pubDate>Wed, 24 Sep 2008 20:39:18 +0000</pubDate>
		<guid isPermaLink="false">http://sitecore.alexiasoft.nl/2008/09/23/so-why-exactly-do-we-want-to-move-away-from-controls-to-mvc/#comment-112462</guid>
		<description>It seems as though a seperation of concerns is also paramount in the design of an MVC based approach. Take, for example, the page and control based lifecycles of ASP.NET. Pretty much, look at how much do you go through before you can execute one line of business logic.

Not to mention having to memorize the lifecycles to begin with. ;)

This seperation also allows for a more REST based approach, where resources are available in different formats (think SOA and web services) and the requested view drives what is delivered to the requesting client. Routes are also clearly seperated. You know longer hit &quot;pages,&quot; you hit routes.

The focus on the model (even more so, the domain model if you take a DDD approach) over pages and controls is important to me. It&#039;s tough to dig through lots of page cycle events before finally being able to request something from the domain. 

And yes, testability, but more so TDD and BDD where you start with the tests (or specifications) and drive your implementations from those &quot;requirements&quot;.

As far as controls based argument, I think ASP.NET probably has MVC beat currently, but that might change soon enough?

2 cents. Thanks.</description>
		<content:encoded><![CDATA[<p>It seems as though a seperation of concerns is also paramount in the design of an MVC based approach. Take, for example, the page and control based lifecycles of ASP.NET. Pretty much, look at how much do you go through before you can execute one line of business logic.</p>
<p>Not to mention having to memorize the lifecycles to begin with. <img src='http://sitecore.alexiasoft.nl/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>This seperation also allows for a more REST based approach, where resources are available in different formats (think SOA and web services) and the requested view drives what is delivered to the requesting client. Routes are also clearly seperated. You know longer hit &#8220;pages,&#8221; you hit routes.</p>
<p>The focus on the model (even more so, the domain model if you take a DDD approach) over pages and controls is important to me. It&#8217;s tough to dig through lots of page cycle events before finally being able to request something from the domain. </p>
<p>And yes, testability, but more so TDD and BDD where you start with the tests (or specifications) and drive your implementations from those &#8220;requirements&#8221;.</p>
<p>As far as controls based argument, I think ASP.NET probably has MVC beat currently, but that might change soon enough?</p>
<p>2 cents. Thanks.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Alexey Rusakov</title>
		<link>http://sitecore.alexiasoft.nl/2008/09/23/so-why-exactly-do-we-want-to-move-away-from-controls-to-mvc/comment-page-1/#comment-112396</link>
		<dc:creator>Alexey Rusakov</dc:creator>
		<pubDate>Wed, 24 Sep 2008 08:31:02 +0000</pubDate>
		<guid isPermaLink="false">http://sitecore.alexiasoft.nl/2008/09/23/so-why-exactly-do-we-want-to-move-away-from-controls-to-mvc/#comment-112396</guid>
		<description>MVC is great for web applications. Control&#039;s strength is also their weakness - they&#039;re isolated little islands, that have their own markup, own understanding of web best practices, etc. 

Controls make great demos - Microsoft has been demoing dragging the database and displaying the Northwind database before I even knew I wanted to program. However in real applications you always end up hating that dragged datatable.

This might not be the best argument, but look at the popular web frameworks in other languages: php, python, ruby, java - they&#039;re on to something.</description>
		<content:encoded><![CDATA[<p>MVC is great for web applications. Control&#8217;s strength is also their weakness &#8211; they&#8217;re isolated little islands, that have their own markup, own understanding of web best practices, etc. </p>
<p>Controls make great demos &#8211; Microsoft has been demoing dragging the database and displaying the Northwind database before I even knew I wanted to program. However in real applications you always end up hating that dragged datatable.</p>
<p>This might not be the best argument, but look at the popular web frameworks in other languages: php, python, ruby, java &#8211; they&#8217;re on to something.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
