Posted by: Ger Rietman | December 23, 2009

NemaStudio open source?

Microsoft .Net Framework

NemaStudio is written on top of the Microsoft .Net Framework. As you may know the .Net Framework includes many libraries with pre-coded solutions including GUI access, data access, database connectivity, algorithms, networking etc.
The .Net Framework comes with all versions of Windows: XP, Vista and Windows 7.

The class libraries in the .Net Framework are used by Windows programmers to produce applications by calling the methods exposed by the Framework.

The code thus produced is called MSIL (Microsoft Intermediate Language). At runtime, the MSIL code is interpreted and executed by the CLR, the Common Language Runtime.

.Net Programming Languages

.Net programmers have different programming languages at their disposal to produce .Net applications. Most used languages are C# and VB.Net but there are also compilers available for other languages like Java and even COBOL.

The language compilers share one common element: they all produce MSIL, Microsoft Intermediate Language. MSIL is not machine code but as the name already suggests, it is intermediate code that is translated to machine code and executed at runtime.

Benefits of the .Net architecture

The architecture offers may benefits: one code base, many languages, portability and is also very easy to reverse engineer.

The latter feature is both a blessing and a curse. A blessing because the source code can be easily reconstructed, and a curse because the source code can be easily reconstructed.

Code obfuscation

To prevent undesired reconstruction of his source code the programmer can apply obfuscation techniques like using crippled method names, cryptic strings etc.

Without obfuscation, MSIL code is like Open Source code but then without any protection, not even by public licenses like the GNU license. It is like leaving your front door wide open and go for holidays. Anybody can take your property and do with it what she wants.

The easiest way to obfuscate your code is by applying a third party obfuscation program. There are several obfuscators for MSIL code on the market. NemaStudio is also protected by a third party obfuscator.

Reason to obfuscate

I obfuscated the code of NemaStudio to protect all the long hours of work I’ve been putting in the development of in the program. Remember, those hours were mostly nightly hours and weekends I rather had spent with my family and grand kids. I would hate to see some rogue abusing my work.

If you believe all this sounds a bit paranoia then read the story of what happened to the small software company called Rebex.

But not without risk!

But obfuscation with third party software is not without any risk as I found. Before the release of NemaStudio I had been successfully testing the obfuscated version on Windows XP and all versions of Vista, but I lacked to do so on Windows 7. I expected – Microsoft claiming Win7 completely compatible with Vista – no problems whatsoever. WRONG!

NemaStudio issues with Windows 7

Right after the release I got many responses from customers complaining NemaStudio did not run correctly on Windows 7. It turned out that the obfuscator unintentionally had corrupted some parts of the code. Luckily the developer of the obfuscator provided great support and the problem was solved in a couple of days.

Loyal customers

How many prospective customers I did loose because of this accident I probably will never know. Fortunately I do have many loyal customers and most of them re-installed the corrected version of NemaStudio without complains.

Lessons learned

Lesson learned: always extensively test your software on all versions of the OS it is supposed to run on!


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s


%d bloggers like this: