Thursday, August 10, 2006

Use of MVC pattern in ASP.NET Web Appications

Something that I have come across on all ASP.NET projects I have seen is the lack of use of the MVC pattern. Rather the code-behind for each page acts as a kind of front controller. But in applications with complicated flows I recommend against putting controller logic in the code-behind of each page, since it makes it difficult to see how the control flows through the application.

If you want to use MVC style of programming there are some alternatives out there:

- The "User Interface Process Application Block" provided by Microsoft.
- The .NET version of het Maverick MVC framework

I also think that the new Windows Workflow Foundation can be used to implement MVC solutions.

I think that many .NET developers would see the benefits of MVC style programming by checking out one of the many frameworks available for java, even though most of them are not without their problems.

Sunday, April 23, 2006

Software Factories

I recently watched an interview on theserverside.net (A great site for .NET developers, if you are into java, you should check out its siebling .com) about software factories. A sloppy summary below:

- Assumes that there is a need to industrialize software development through reuse of patterns and concepts related to an industry or an area of functionality.

- Essentially a software factory is an advanced IDE that incorporates functionality to create an own modelling language that can be used to generate code, together with patterns and guiding principles for implementation.

- Example from www.softwarefactories.com: "For example, we might set up a Software Factory for thin client Customer Relationship Management (CRM) applications using the .NET framework, C#, the Microsoft Business Framework, Microsoft SQL Server and the Microsoft Host Integration Server. Equipped with this factory, we could rapidly punch out an endless variety of CRM applications, each containing unique features based on the unique requirements of specific customers".

My head has allready started spinning with ideas on how you could grow a business based on the appliance of software factories, such as:

- Have a consultancy geared towards one or more fields that utilize software factories to build high quality applications quickly.

- Use software factories to achieve mass customization in a product company.