I could (and will and do) go on and on about the merits of using DotNetNuke as the base web application framework for Enterprise Development. I have developed several 'Enterprise' class modules, including a pharmaceutical prepackaging and labeling system for one client, a commercial shopping cart module sold on Snowcovered.com, a series of student registration, enrollment, and management modules for Polk County Public Schools in central Florida, and several free modules I host on my web site including a remix of the WROX Press book Building an ASP.NET Intranet document management system module for DNN 2 & 3 (source code free for download). All told, I probably have somewhere on the order of 4000-5000 hours of billed time building custom DotNetNuke Modules. Prior to discovering DotNetNuke, I billed a total of about a thousand hours developing two large ASP.NET applications, which would have taken significantly less time to develop had I known of DotNetNuke. I also recently completed a contract programming assignment on a web application based upon the C# IBuySpy Portal framework, where I spent ~300 hours on the actual Portal/Module code.
I have recently started a new position in which my employer has yet to see the benefits of DotNetNuke, so I am writing this in part for my own powers-that-be.
I believe DotNetNuke is ideal for deploying Web-based Enterprise Applications because:
1) DotNetNuke is developed and continuously maintained by the very best and brightest .NET Development Professionals: this means DotNetNuke provides a rock-solid, community supported framework from which solid applications are built. DotNetNuke provides sophisticated content management & navigational capabilities making it very simple to rapidly configure a site according to one's needs.
2) Extensive API & "White Box" Solutions: DotNetNuke ships with something like eighteen modules including a full-fledged, fully functional ecommerce store with multiple payment providers, forums, blog, and numerous other simpler modules. These modules provide an extensive library of code from which an average developer like myself can build new solutions. Additionally, DotNetNuke provides extensive logging capabilities for logging user actions and exceptions. When you build a monolithic application, do you also factor in an elegant Log Viewer like that included with DotNetNuke? Logging also falls under the next category, Security:
3) Security: Role Based Security: Out of the box, DotNetNuke provides User and Role Management tools enabling the management of at least several thousand users before customization becomes necessary (see forums for more information on this). Have you factored in User & Role Management Tools for your monolithic applications? Built in Forms Authentication: I developed several 'monolithic' applications prior to discovering DotNetNuke, and I can't tell you how many unbilled hours went to discovering all of the ins and outs of Forms Authentication using the Issue Tracker Starter kit's methods. All in all, I think I spent about 20-30 hours getting that right. DotNetNuke has this built in. Take on the ADSI Module which is now built into the core, and I can't say enough about how much time is saved not having to deal with these issues. Granted, ASP.NET 2.0 alleviates much of this, but ASP.NET 2.0 can't do Site Virtualization like DotNetNuke can, and with DotNetNuke 3.3 and above, it is now possible to have Single Sign On across daughter portals on the same URL (a critical intranet capability of DNN 2.0 lost with the M$ provided Membership Provider). Also of note, DotNetNuke automatically logs all security violations, module & page events, etc. How many hours have you factored into your monolithic application for this functionality?
4) Configuration Management: You can search theses forums and the old forums at http://forums.asp.net for my own posts on the subject: DotNetNuke modules lend themselves very nicely to most change management systems and processes. Each module can be independently versioned, promoted, and tracked without having to track an entire site or framework. Additionally, depending upon the environment, you may have a need for a configuration management team to pull your code from source, build the production binaries, and upload those to a production server. Again, with DotNetNuke, this process is much more manageable as each module is packaged as a private assembly. Again, I have written about my own experiences at Polk County on the old forums.
5) Community Support: There are literally thousands if not tens of thousands of DotNetNuke developers: if you have a question, most likely you will get an answer.
6) Third Party Modules: There are hundreds if not thousands of third party modules for DotNetNuke: everything from Flash media galleries to Site management tools are available on Snowcovered.com. This blurb could be longer, but I assure you, having the ability to go to snowcovered and plop 40 or 50 bucks down for a simple module with source code that performs a function you didn't think about when you started your project is priceless.
7) Third Party Themes: Again, assuming you are comparing DotNetNuke to ASP.NET 2.0 which supports similar themes, everything is skinnable on DotNetNuke, and thousands of skins are available on Snowcovered.com.
8) Licensing: DotNetNuke uses a BSD style license which you can read about on the DotNetNuke site which essentially states you can do whatever you please with the code. There are branding restrictions so as not to tarnish the DotNetNuke brand, image, logo, etc, but the code is free.
In this post, I have tried to summarize the major benefits for using DotNetNuke as my enterprise application framework, I will most likely follow up with some of the lessons I have learned (which I have already posted on the old forums) regarding Enterprise module development architecture which don't necessarily conform to that which is written in the 'Module Developer's Guide' or the Core Team's DotNetNuke 3.0 book.
Good luck whichever direction you choose, and happy coding!