Using a web application framework (such as DotNetNuke) has a ton of benefits to help you get up and running faster and do less work when creating custom functionality.
However, you have to realize that you're basically incorporating tons of code into your project that you may not be familiar with. No matter how good the code is and how easy the framework is to learn, there's still going to be a significant learning curve for you and your team.
Your decision making process (if you're still deciding whether or not to use DotNetNuke), should include (in addition to reading, talking and other general investigation):
- Downloading the application from Codeplex and checking out the source.
- Investigating the third party modules that are out there.
- Downloading a free module or two that comes with source, and try to reverse engineer the creator's development process. How did she integrate with the framework, what features did she take advantage of, what was written from scratch?
One place where DotNetNuke (or any other framework with tons of extensions) available can really shine is taking existing extensions that are available and customize them. If you need to implement a given feature, check out the solutions in the third party extension community first. You can probably find one that gets you a good percentage of the way there and use it as a foundation for your feature.
For example, if you want a photo gallery on your site, you probably don't want to write it from scratch. There are three major photo galleries out there that sell the source code. The core gallery module is free, simple gallery is cheap, and the source for ultra media gallery is available for a reasonable amount compared to writing it yourself. Any of these could give you a good head start in implementing your features.