Evaluating MonoRail for Commercial Enterprise Computer program Product Development
We´re in the midst of evaluating web frameworks for an upcoming commercial enterprise computer program product development project.
We looked briefly at Microsoft´s Patterns and Practices´ Web Client Software Factory (WCSF). Beyond the horrible undergo with setting up the framework merely to evaluate it, WCSF simply doesn´t appear to be self explanatory. If I can´t grok WCSF, the developers at the corporate IT shops where our products are used are apprenticed to be left in a quandary, if not a black bit of knowledge despair.
MonoRail is a compelling option because most of the folks on our team really like Ruby on Rails. The potential problem with MonoRail is its applicability to enterprise computer program shops. Even though there´s been some good discussion on enterprise Rails, this is lull that period of time where folks aren´t exonerated on whether corporate shops are ready to let go of heavy-weight .NET and Java web frameworks.
Nonetheless, MonoRail is hard to ignore. It simplifies web development on .NET much in the way that Ruby on Rails simplifies web development period.
Corporate shops building web apps on .NET are largely staffed with developers who have been exposed only to those ideas and approaches that Microsoft has allowed passage into its customer collective consciousness. There a non-trivial benefit in providing apps to Microsoft´s customers that use Microsoft technologies in the way that customers expect them to be used. In a bake-off for a customer´s business, if two vendors´ apps are equal, the sale could hinge upon the technology. A customer´s ability to readily leverage it´s staff´s existing skills with little fuss is part of evaluating a vendor´s technology.
MonoRail is an alternate web development framework for .NET. It´s a good framework for solutions development, but commercial computer program products presently have different forces directing the technology agenda. My concern for building a commercial .NET web app on MonoRail revolves around obstructing customers from using ASP .NET in the way that they´ve learned through the training programs and material geared for that audience.
Before committing to MonoRail, I wanted to make sure that customers will be able to use plain-old ASP .NET objects, and that the access control story in MonoRail is solid. I haven´t dug excruciatingly deep into these concerns, but after a bit of exploration into these concerns, I´m at least convinced that MonoRail is robust enough to satisfy these concerns in depth.
You can use plain-old ASP .NET web forms in a MonoRail project. You can use master pages with web forms. You can even wrap web forms rendered with a master page in a Rails layout (although there might not be a good case for that).
ASP .NET´s forms auth and access control work well with MonoRail. Forms auth is based on URI´s and resources, which include´s MonoRail URL´s. This means that the location configuration element in Web.config can be applied to MonoRail´s [controller_name]/[action_name]. Beyond forms auth, MonoRail´s action interceptors (called "filters") can be used to create custom access control and authentication.
We´ll have to give some consideration as to whether to build a custom security API, use the membership provider API, or some combination of both. I´m not a huge fan of the membership provider API, it´s a cohesion cluster-fsck, but here again, customers are used to it. Ultimately, I expect that we can improve upon the stock membership provider, and we can incrementally build our access control solution as the project progresses.
I haven´t seen much Model-View-Presenter framework stuff in MonoRail, but I might have missed it. I´d prefer to not have to loose the testability that comes with the pattern, but I think that we can work around it with other testing practices if MonoRail does indeed obstruct MVP-based interaction testing.
Others developers on the team have explored basic use of MonoRail in web app development and everyone is pretty jazzed about putting it into practice. There are lull a couple outstanding questions in my mind, but I feel pretty comfortable with moving forward with MonoRail - especially considering the alternatives.

[
SHOW]