DotNetNuke 3.3.6 / 4.3.6 was released earlier today. Although this was mainly a stabilization release, there are a number of key concepts which I think deserve a more detailed explanation.
Over the past couple years, one of the common complaints we have heard from the community is that we sometimes take an exceptionally long time between releases. This generally happens when we are busy working on substantial enhancements which have deep ramifications on the architecture and require greater stabilization effort to reach a production-ready state. Unfortunately, the unpleasant side effect of this practice is that the community has to wait an excessively long time for even simple bug fixes. This is really not acceptable for many of the medium to large sized businesses who rely on DotNetNuke as a critical part of their infrastructure. As a result, with this most recent release, we have changed our development model so that we now manage two parallel code branches. One code branch is dedicated to ongoing maintenance and stabilization, while the other is dedicated to research and development. So while work continues to progress on the next major release of DotNetNuke ( 4.4.0 ) which is focussed on application performance enhancements, we were still able to deliver an interim maintenance release ( 4.3.6 ) to deal with outstanding stabilization issues. This model certainly consumes more resources in terms of ongoing code synchronization; however, we feel it is absolutely necessary so that we can provide a higher level of support to the community.
As I mentioned earlier, DotNetNuke 3.3.6 / 4.3.6 is primarily a stabilization release. In particular it addresses some critical issues in file management / download as well as module installation and packaging. It also contains a couple of security patches for issues reported by community members which are published on the Security Policy area of the site.
The release also contains new versions of the Announcements, User Defined Table, and Survey modules. These modules represent the first DotNetNuke Projects to successfully complete the *new* Module Release Process. The Module Release Process is a workflow-oriented system which associates a series of milestones with various project stakeholders to ensure a high quality module release product. An important side effect of the Module Release Process has been the standardization of Project criteria and some excellent educational guidance for our various open source project teams.
In addition to the fixes, the release also contains some minor enhancements which I would like to highlight.
In my last serious business-oriented blog, "DotNetNuke Yin and Yang", I explained our mission statement in terms of adopting a more balanced approach in regards to the open source community and commercial ecosystem. The latest release attempts to take some initial steps to deliver on this promise by including a number of minor enhancements which tap into the synergy of these complementary forces.
DotNetNuke has always been an extensible application framework. However, one of its greatest failures has been making these extensibility options obvious to consumers. The vast majority of consumers do not immediately realize that new functionality can easily be added to their application. And if they are actually clever enough to figure this out, they have no idea where to find high quality add-ons. In the latest release, we have added some visual guidance within the application which helps address this shortcoming. Lets look at some screen shots:
When a user logs into their DotNetNuke application as a Host user, they will now see an "Install New Features" link in their control panel (1). To make the user experience more simple for consumers, we have referred to all extensibility options such as modules, skins, and language packs as "Features".
Clicking on the "Install New Features" link will display the application Module Definitions page (2). At the top of the list of modules you will see some text describing the various extensibility options provided by the application. In addition, you will see an option to instantly navigate to a Site where you can acquire additional Features. So with a couple of simple enhancements, we have been able to educate the consumer about the extensible nature of the application as well as provide a means for them to get new Features. It goes without saying that this new ability to connect consumers with providers opens up some exciting new opportunities in our ecosystem.
Since there is an inherent trust factor involved in acquiring and installing new Features, you should always deal with a reliable source. So although the list of Sites displayed above is extensible; the DotNetNuke application ships with some trusted default options. These options include the "DotNetNuke Projects" ( our various free, open source supported projects ) and the "DotNetNuke Marketplace".
The DotNetNuke Marketplace was launched in September 2006 as a high quality, high confidence, reseller channel for DotNetNuke Features. The quality of extensions is enforced through the requirement that all products must pass Level 1 of the DotNetNuke Review Program in order to be listed in the Marketplace. This minimal barrier of entry provides assurance to consumers that the products they purchase, meet or exceed a well respected quality criteria guideline. The Marketplace currently contains more than 30 quality products and we are getting new Review Program submissions almost every day.
The DotNetNuke Review Program currently applies to Modules and Skins. The Level 1 criteria is focussed on basic quality requirements which can be summarized as "does the product install and uninstall based on standard DotNetNuke techniques?", "does the product have some minimal documentation and support available?", and "does the product have a clear end user license?". There are a number of other criteria which are evaluated as well, some mandatory and some optional, but the general goal is to ensure that a consumer gets the best possible usage experience from the product. The DotNetNuke Review process could have opted to use widely available automated testing software to reduce costs and resources, but in order to adequately measure the "human factor" we decided it was necessary to leverage a manual peer review system. Overall, we are very pleased with the results as we are witnessing both the developer community education as well as the quality level of add-ons improve significantly.
The Module Definitions screen also contains some new text describing the DotNetNuke Update Service (3). The update service provides a visual indication (4) when a new version of a module becomes available. In addition it provides the ability to navigate directly to the external site where you can acquire the update. The update service is managed by DotNetNuke Corporation and currently only maintains upgrade information for the open source DotNetNuke Projects. However, we expect to integrate update information for DotNetNuke Reviewed products in the very near future as well. This means that commercial developers will have the ability to alert customers when a new version of their product becomes available ( for both free and premium upgrades ). Again, direct connections between consumers and providers facilitate a higher level of service and help stimulate the DotNetNuke economy.