MVC Now A Microsoft Thing

by Jon Davis 7. October 2007 14:55

A week or so ago (??) I learned at, with Phil Haack's news that he was joining Microsoft, that Microsoft has been paying attention to the recent successes people have been reporting with MVC/MVP with ASP.NET. I'm still scratching my head wondering what how on earth you can string these two models together, but I'm glad to learn that Microsoft has been paying attention to what has been going on at the Castle Project with MonoRail, et al, among other things.

What had me most concerned about MVC/MVP was that, on the web, everything starts with that @#$% URL which infers a reference to some applicaton state in some point in time, or else a specific pointer to some data, and with ASP.NET a URL generally maps to a Web Form, with some predetermined template with some tricks up its sleeve to allow for things to show and hide and move around based on postbacks and/or AJAX calls. In other words, classically, on the web, the view is predetermined, and it already controls everything, rendering MVC/MVP a concept limited to the lifetime of the rendering of specific controls that happen to be on a template (an ASPX page).

It looks, though, like HTTP handlers are being put into place so that URLs don't map to a Web Form but rather an action to perform so that the MVC controller controls the output rather than some file-mapped template.

While I haven't peeked enough into MonoRail to know whether it does something similar, I must say that I now officially don't know what I'm talking about when I pooh pooh MVC for the web. I'm really looking very much forward to seeing what Microsoft ends up with. Jeffrey Palermo's blog indicates that this new initiative has these goals: 

  • Natively support TDD model for controllers.
  • Provide ASPX (without viewstate or postbacks) as a view engine
  • Provide a hook for other view engines from MonoRail, etc.
  • Support IoC containers for controller creation and DI on the controllers
  • Provide complete control over URLs and navigation
  • Be pluggable throughout
  • Separation of concerns
  • Integrate nicely within ASP.NET
  • Support static as well as dynamic languages

I'm impressed. So much of this is so .. non-Microsoft-like .., it's like they were working in a box for so long. I had grown so accustomed to Web Forms with all its constraints, now I have to re-learn everything all over again. I hope there will be a special certification track for this ...

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags: , ,

Web Development

Paying Attention to MVP, Presenter First, Castle, MonoRail, Igloo, et al

by Jon Davis 23. July 2007 00:34

In order to be an excellent software developer, one must be able to communicate and interoperate with others' software excellently. Lately, deafening chatter has been overwhelming the software communities about MVC, MVP, Presenter First, Castle, Spring, MonoRail, and so on. To my shame, I was so focused for so long on embracing OOP and the C# language and the .NET Framework and general Microsoft APIs and technologies that I overlooked these essential patterns, practices, and tools used by software professionals the world over. If I had only swallowed MVC and XP years ago, I would not be struggling so badly to play catch-up.

So far I haven't actually written a single line of code yet based on these patterns. I have looked over the shoulder of our team architect who was trying to get into it, and in so doing got a snapshot of what MVP code "looks like" (lots of interfaces and event handlers). After listening to Atomic Object's ArcCast podcast interviews, I've read Atomic Object's PDF presentation on Presenter First. I've realized the value of mock objects, and I've heard about Rhino Mocks. I've learned about Inversion of Control and dependency injection, and implementation tools for these in Spring.Net and in the Castle Project. I've been looking around for how MVP is supposed to work correctly in a web-based environment, where view state is already URI-controlled (unlike a GUI app, where the controller / presenter can push a view change more immediately). I've come across MonoRail and Igloo, but except for coding shortcuts I still don't see a solution to this problem.

But I haven't actually started using any of them.

I still haven't figured out whether these processes, patterns, and tools are directly related to those of Agile and XP. I do know that all of these are directly tied to unit testing and testable software--a critical process of software development I have tended to abhor, to my awful, disgusting shame.

I have an "Agile Princples, Patterns, and Practices in C#" book sitting on my lap, and I'm trying to figure out whether I should delve into this book, or if I should start tinkering with Castle to lead to MonoRails, or tinker with NUnit, or with NMock, or Rhino Mocks, or what. Maybe it doesn't matter, as long as I delve into one of these and progress myself.

I am certain, however, that by the end of this year, I had better know and be practicing all of the essentials of the above, or I will not feel confident in calling myself "excellent".

Update: After reading the forewords and the prefaces of Agile Principles, Patterns, and Practices in C#, I am pursuaded, this is the path I should take right now. This should be a book I should try to read end-to-end. While the subject is not related to MVC/MVP/PF, etc., I'm pursuaded that XP / Agile programming is a skill that is mandatory to understand as a software professional. It is about working with people, test-driven development, changeable software, and core values. MVP is just one technique for process and pattern, but it does not fit all. XP/Agile knowledge, however, might actually be one-size-fits-all. We'll see.

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags: , , , , , , , , , , , ,

Software Development


Powered by BlogEngine.NET
Theme by Mads Kristensen

About the author

Jon Davis (aka "stimpy77") has been a programmer, developer, and consultant for web and Windows software solutions professionally since 1997, with experience ranging from OS and hardware support to DHTML programming to IIS/ASP web apps to Java network programming to Visual Basic applications to C# desktop apps.
Software in all forms is also his sole hobby, whether playing PC games or tinkering with programming them. "I was playing Defender on the Commodore 64," he reminisces, "when I decided at the age of 12 or so that I want to be a computer programmer when I grow up."

Jon was previously employed as a senior .NET developer at a very well-known Internet services company whom you're more likely than not to have directly done business with. However, this blog and all of have no affiliation with, and are not representative of, his former employer in any way.

Contact Me 

Tag cloud


<<  May 2021  >>

View posts in large calendar