A while back when asking for input on blog postings a very common question was recommended as the topic. That question was "How do I determine which module package I should purchase?". Within the DotNetNuke Eco-System there are a number of different purchase options for third-party modules, however, in the end it boils down to two different package types. Install packages and Source packages. Which is right for you? This answer isn't quite as clear as one might expect, and the following blog posting will walk through the different things that need to be considered before making that purchase choice.
First I want to start off by level setting my generalization of module packages to ensure that everyone is reading from the same general base of information.
The most common package types available for purchase are Installation packages. These packages are simply installation versions of the modules, designed to be directly installed to a DotNetNuke installation. In most commercial module scenarios the source code for the module is compilied into DLL files and is NOT visible by looking at the code included in the package.
Source packages are typically an "added option" item to a modules purchase. The source package may simply be a modified installation package, something that you can install to a DotNetNuke installation and all source files will additionally be deployed. A source package might also exist as a separate zip file that contains the entire project source. The key is that the source package includes all code and project files necessary for your to build and deploy the module.
What is right for me?
A good majority of individuals purchasing modules come to a purchase decision by coming to a conclusion similar to the following: "I'm not a developer, I'm not going to be modifying the source". At first review this thought really seems to identify the proper decision, only buy the source if you are a developer. Well I'm going to argue and recommend that EVERYONE should be purchasing the source version of modules, even if they are not developers. This isn't a ploy to improve source package sales or anything, but a simple professional recommendation to help buyers protect themselves from future loss. The following sub points illustrate WHY I think it is important that you purchase the source versions of modules.
One of the biggest reasons to purchase the source code for a module is to ensure that you are planning for the future. It is never something we want to wish upon someone, but developers do come and go. You don't want to get a few years down the road using a module to just find out that they have gone out of business and you can no longer get upgrades to the module. This type of situation can literally stop a site from being able to upgrade to newer versions of the DotNetNuke framework.
With the source code it is at least possible to get a consultant to help make a module work with newer DNN versions should an issue arise.
Ability to Enhance
Another big reason that leads me to recommend the purchasing of source code for modules is that once you have the source code it is possible to enhance the product, should it be needed, to fit your specific business implementation. With access to source versions of a product it is possible for you to then expand the functionality to meet your specific business needs. These enhancements can be completed with an internal development team if you have one, or via a consultant that has experience working with DotNetNuke modules.
Ability to Review Code
Depending on the specific environment you are working in it might also be a requirement that you have all source code to a system for security reviews, or internal/external audits of computing systems. This audit trail might be of special importance to those working in professional environments.
Overall, The point of this article is to simply shed light on a few reasons why one might want to consider buying the Source version of a module. Is it necessary in all times? No it isn't, but it is a decision that should be properly evaluated with each and every module purchase. As with all other decisions when it comes to building a website the entire picture must factor into the purchase decisions.
Please feel free to share you comments below. If you have specific directed questions please use the forum to discuss.