In my opinion this is a constant struggle in the DotNetNuke ecosystem not just for customers, but also for developers.
As a module developer myself, I have avoided going the route of offering commercial modules as I just can't guarantee that i could support the incredibly wide user base. However, with providing free modules like I do, I end up spending more time supporting things that I could ever have imagined, (about 10 hours a week, on items with no incoming cash flow). That considered, I couldn't put something out there if I couldn't support it in some fashion, and I couldn't roll up and leave.
Since I don't really publish commercial modules, I spent a large percentage of my time building custom modules for clients, these I have to fully support, AND every time the client is given full source code for all modules. I've also been contracted many times to modify third-party modules that the orig. developer either stopped supporting it or were not fast enough to respond.
Therefore as the first poster mentioned I think there are a few common "rules" that are best practices to protect your business interests
- Review the company to see if they provide good support, contact them and see how quick they respond
- If you are not happy with the results of 1, find another person that would be willing to support you if needed
- ONLY buy source versions of modules, this way, if the developer goes away, or doesn't support you can branch out on your own
- form a relationship with a developer that would be willing to modify other peoples code if the situation comes up if you don't have an internal development team.
I find this the really only viable solution as custom building everything isn't practical or cost effective, but leaving yourself open if a developer closes up is not really an option either. I find that for my clients this gets the best of both worlds.