Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ


Choose your language

InfoQ Homepage News Serial Key Generating for .NET

Serial Key Generating for .NET


While many applications are now being sold through app stores, mid-sized and big-ticket software is still offered directly to customers via web sites. For these kinds of projects, out-of-band licensing is still a major concern. One way to manage licenses is via serial keys using libraries such as SKGL.

InfoQ: Can you explain how SKGL works?

Artem Los: In SKGL, the serial key is the central piece of information. All data such as when the key was created, how long it should be valid, and additional features are just some of the examples of types of information that are being stored in a 20 letter long serial key.


Let’s take a look at a typical scenario where an app developer and a user are involved. The app developer constructs a program with many features, for example A, B, C. If it is a multimedia software, A, B, C can be a sound recorder, a video recorder and a converter, for example.

Since the serial key contains all of the information, the app developer can shape the software for different groups of users without actually changing the application. That is, there is no need to create separate packages for A (sound recorder), B, or C. Instead, this is handled by SKGL.

In addition, the app developer can restrict the time the application can be used. This is particularly good if you plan to distribute your software on subscription basis or if you want to offer a discount for students to use your software in one semester.

You can try out this particular example by downloading the project here:

InfoQ: Ostensibly the whole point of this library is to make it easier to sell commercial software. So why did you choose to offer it free under an open source license?

Artem: This is a good question. By searching the web for terms like “licensing system” or “software protection”, we will soon come to the conclusion that many solutions are not free of charge, but rather opposite, very expensive.

For many developers in the early stage of software distribution, it can be quite hard to choose whether to consider purchasing one of these systems or creating one on their own.

To be honest, I was in a similar situation some years ago. The lowest price for a serial key system was $200, as far as I remember.

I didn’t find that my hobby projects required a licensing system for $200, so instead, I decided to create one on my own.

It would take a lot of time to describe all of my attempts, but as a summary, I developed two systems before I started to develop SKGL. For those who are interested, please see this article:

Well, back to the actual question. Why did I decide to release SKGL as open source? The first reason is that at the time that I started working on SKGL, I was 16 years old. Selling things seemed to be very complicated and time consuming; I wanted to focus more on the actual code and the theory behind it rather than keeping track of all invoices and do the accounting related things.

The second reason that I did not have in mind then but have realised during the years is promotion of innovation. The good thing about open source is that developers can look at the code, see the pros and cons and suggest improvements. Thanks to feature suggestions and concrete improvements, SKGL has changed quite a lot over time since it was first released.

Finally, and most importantly, it allows people to learn and possibly develop a similar system in the future. SKGL is certainly not the first and not the last licensing system on the market, and I think it is important to construct a foundation that people can build on top of. To do so, I have spent some time on writing articles about meta-SKGL and meta-licensing system. You can see the latest one here:

To suggest other open source projects that should be highlighted on InfoQ, contact Jonathan Allen at

Rate this Article