ASP.NET MVC for Live Applications
ASP.NET MVC has got big attention in the community and lot
of people are looking to develop production ready
applications with ASP.NET MVC. When can we start production
ready applications with ASP.NET MVC? Since ASP.NET MVC Beta
version is available, I think this is time to start live
application with ASP.NET MVC. There is already lot of live
applications build with ASP.NET MVC.
Stackoverflow
is really a killer web application build with ASP.NET MVC.
If you are an Architect, this is the right time to develop
infrastructure frameworks for ASP.NET MVC. The RTM version
will be in Q4 2008 or Q1 2009. I hope that the RTM version
will be release on this December. The changes from Beta to
RTM version will be very minimum and the Beta release comes
with an explicit "go-live" license that allows you to deploy
it in production environments. Scott Guthrie wrote in his
bog post
ASP.NET MVC Beta Released
“Today's ASP.NET MVC Beta release comes with an explicit
"go-live" license that allows you to deploy it in production
environments. The previous preview releases also allowed
go-live deployments, but did so by not denying permission to
deploy as opposed to explicitly granting it (which was a
common source of confusion). Today's release is clearer
about this in the license. The beta release is getting close
to V1 feature complete, although there are still a few more
features that will be added before the final "V1" release
(including several VS tooling enhancements). The team
decided to call this release a "beta", though, because the
quality and testing of it is higher than the previous
previews (a lot of bug fixes and performance tuning work
went into it), and they feel that the core features that are
in it are now "baked enough" that there won't be major
changes from this release to the final product”.
I
believe that breaking changes and new features will be
available after the release of V1. When I asked about the
SubController infrastructure, Scott Guthrie replied that
“The team currently has that penciled in for the release
immediately following V1. The reason for not having it in
V1 are: 1) there are a couple of approaches that could be
used for it, and we want to spend a little more time
investigating and exploring them (and not bake something
prematurely into V1), and 2) there is a subcontroller
implementation currently in the MVCContrib project that be
used with the V1 release. I'd recommend looking at using
that one if you need a subcontroller pattern, and then we'll
bake one into the core binary once we feel confident on a
final design”.
Our Development Attitude
ASP.NET MVC is a great technology and you can
build powerful and highly maintainable web applications with
ASP.NET MVC. But please keep in mind that you can build good
and bad applications with same technology. So our attitude
and development approaches are very important for building
great software and the most important things is that we
should have a good architecture for good software. I
strongly believe that the .Net developer community should be
more focus on object oriented principles and practices. I
believe that the ALT.NET movement is a good sign and the
ALT.NET Criterion
is good for building better software. The ASP.NET MVC
technology is based on a loosely coupled architecture and
the framework is highly testable so that it enables to build
great software. When we build applications with ASP.NET MVC,
we should focus on object-oriented principles and practices
and take this time to change our attitude towards
object-oriented way. In the past, applications have been
data-centric and this has been gradually changing to
object-oriented way. I would like to suggest using an ORM
for data persistence, Persistence Ignorance (PI) objects for
domain layer, Repository pattern, Inversion of Control
(IoC) container for dependency injection (DI) along with
your ASP.NET MVC application. And I believe that Test Driven
Development (TDD) gives you lot of values to your
application development process.
Learning Resources to start applications
Stephen Walther’s blog post
A Guide to Learning ASP.NET MVC Beta 1
contains lot of links that provides to learn and develop
applications with ASP.NET MVC. For validations, Emad
Ibrahim’s blog post
Client & Server Side Validation in ASP.NET MVC
is an excellent one. For dependency injection, my blog
post
ASP.NET MVC Tip: Dependency Injection with StructureMap
provides step by step instructions to apply dependency
injection into an ASP.NET MVC application using
Structuremap. My blog post ASP.NET MVC Tip: Ajax and Validations using jQuery demonstrates how we can use jQuery for Ajax and validation
as well as demonstrating partial rendering using user
control. Steve Sanderson's ( Author of Apress' ASP.NET MVC
Book)
Blog is damn worth to read. And I strongly recommend to visit
Rob Conery’s blog
for his storefront series. He has been building an entire
ecommerce application with ASP.NET MVC