We at IOTAP have worked with numerous Software Solution Providers and ISVs. Our work involves the development of software solution ideas developed by clients and productizing them.
We’ve used this plethora of knowledge to deploy and create installation files for add-ons and solutions created in Dynamics CRM and Sharepoint.
In a recent assignment our team was repeatedly asked to help in building and deploying a CRM solution that would help our clients to sell using the internet. The problems in doing so are apparent,
1. Once the product is downloaded people could reverse engineer and build the same functionality with some modifications to exploit the copyright patent laws.
2. Once a product is sold, the buyers need to be informed periodically when there is a version upgrade or a enhancement has been release by the vendor.
We looked and evaluated many different approaches to overcome the problems mentioned above, and finally were able to build a strong solution to help our clients sell with some sort of assurance. We used a combination of two technologies mentioned in detail below
ClickOnce (www.microsoft.com) : ClickOnce is a Microsoft technology that lets you easily deploy your Windows application, whether it's a Windows Form or Windows Presentation Foundation (WPF) application, via a web page. Applications deployed in this manner are sometimes called smart clients. This application is installed within a sandbox on the client machine and has fewer rights than a normally installed application. One limitation is that the application has no access to local files. It is not installed in the Program Files folder but in the private folder of the user that installs the application. The advantage of ClickOnce deployment is that whenever a new version of the application is available on the Web site, the user can decide whether or not to install the upgrade. This approach can be easily incorporated it into your CI process and make the new version available after every check in.
Obfuscated (http://www.preemptive.com/): Obfuscated code is source or machine code that has been made difficult to understand. Programmers may deliberately obfuscate code to conceal its purpose or its logic to prevent tampering, deter reverse engineering or as a puzzle or recreational challenge for readers. It is a form of security through obscurity. Programs known as obfuscators transform readable code into obfuscated code using various techniques that might induce anti-debugging, anti-decompilation and anti-disassembly mechanism. Code obfuscation is different in essence from hardware obfuscation, where description and/or structure of a circuit are modified to hide its functionality.
We were one of the first to use both these technologies to achieve the desired functionality for clients, just another piece of innovation in the quest to help our clients in productizing solutions. To understand more about this please send us an email at email@example.com.