Application Framework for Enterprise Applications






3.38/5 (9 votes)
A description of various frameworks to develop a complete enterprise .NET applications easier
Introduction
In my current job task, I must find a good base framework for developing an Enterprise Solution. Never before have I tried to work on this kind of project. I wanted to find a framework that offers some functionality such as MVC Model, Layer Abstraction and GUI facilities, so I can reduce development time.
Background
In this project, we have a lot of services already built, and the major objective we have is to integrate existent services with custom development. In detail, we have some webservices and databases, and we want to develop a new WebUi that can communicate with them. The new WebUi must be user-friendly and easy to use for the final user. Ideally we also want a set of controls that can make some functions for us. The tools and framework visited during my search are:
- ASP.NET 3.5 MVC Framework
- Castle Project - Mono Rail
- Spring.Net
- DotNetNuke
- Iron Speed
- ASP.NET Maker
- Code Smith
ASP.NET 3.5 MVC Framework
On October 6, 2007, Scott Guthrie officially unveiled the ASP.NET MVC Framework at the AltNetConf in Austin, TX. While you'll find several MVC frameworks in the Java space, ASP.NET has provided Web Forms as the default model. For .NET developers, MonoRail (discuss later), to date, has been the only MVC alternative to Web applications. But what is MVC? Mode-View-Controller is a mature, proven architecture for the presentation layer. It’s applicable in fat client applications as well as Web applications. When applied to Web applications, the twist is that the controller lives for a single HTTP request and then goes away. But what’s wrong with Web Forms? Many developers agree that the Postback and ViewState model employed by Web Forms causes pain and heartache. With event handlers and the page lifecycle, the developer falls into managing state with ViewState and Postbacks, and when employed in the reality of the stateless Web, the model becomes fragile and has problems scaling with complexity.
Castle Project - Mono Rail
Castle is a collection of projects that includes database access layers (using NHibernate to power an ActiveRecord implementation), templating engines (of which NVelocity and Brail are but two examples), and a series of other services geared to rapid application development. MonoRail, a component of the Castle Project, is an open source web application framework built on top of the ASP.NET platform. Inspired by Ruby on Rails Action Pack, MonoRail differs from standard ASP.NET WebForms development by enforcing separation of concerns using a model-view-controller (MVC) architecture. The framework is commonly used in conjunction with Castle ActiveRecord, an ORM layer built on NHibernate.
Pros | Cons |
|
|
Spring.NET
Spring.NET is an open source application framework that makes building enterprise .NET applications easier. Providing components based on proven design patterns that can be integrated into all tiers of your application architecture, Spring helps increase development productivity and improve application quality and performance.
Pros | Cons |
|
|
DotNetNuke
DotNetNuke is an open source web application framework written in VB.NET for the ASP.NET Framework. The application's content management system is extensible and customizable through the use of skins and modules.
Pros | Cons |
|
|
IronSpeed
Iron Speed Designer is a Rapid Application Development (RAD) tool developed by Iron Speed Inc.
Pros | Cons |
|
|
ASP.NET Maker
ASP.NET Maker 3 is a powerful yet easy-to-use ASP.NET code generator for ASP.NET 2.0. It can create a full set of ASP.NET 2.0 pages quickly from Microsoft Access, Microsoft SQL Server, MySQL, Oracle and other ODBC data sources. You can instantly create Web sites that allow users to view, edit, search, add and delete records on the Web.
ASP.NET Maker 3 offers numerous useful features, including 3-Tier Architecture, ASP.NET AJAX, Extended Quick Search, Drill-down Master/Detail, Advanced Security, User Registration System, Custom View, Report, Export, File uploading, etc. It is a tool that can save you tons of time and is suitable for both beginners and experienced developers alike.
Pros | Cons |
|
|
CodeSmith
CodeSmith is a software development tool to help you get your job done faster. Technically speaking, it is a template driven code generator that automates the creation of common application code for any language (C#, Java, VB, PHP, ASP.NET, SQL, etc.).
CodeSmith includes many useful templates as well as entire sets of templates for generating proven architectures (.netTiers, CSLA, NHibernate, PLINQO, Wilson's ORMapper, APOSA, and more). You can easily modify any templates or write your own to generate your code exactly the way you want it.
CodeSmith can help you produce higher-quality, more consistent code in less.
NetTiers Template
.netTiers is a set of open source code generation templates that simplify the tasks of creating customized Application Tiers for your Microsoft.NET applications in just a few minutes and is FREE.
Pros | Cons |
|
|
Conclusion
Making a good choice of frameworks shown is very difficult.
The better choice is the framework that better maps your problem and resolves it. Some frameworks propend GUI facilities, others Abstracting Layer, yet others then for DI.