Introducing the Shareware Starter Kit

I’m way, way late on this, but we have officially released the Shareware Starter Kit on Channel9!!

Download: (C# download, VB download).

The Shareware Starter Kit is a sample application of the common features in all shareware applications. You can easily modify, extend and integrate these into your own applications. The Channel9 guys even have a contest where you can write code to use the Shareware Starter Kit and code your way to a free ticket to the PDC.  Michael Lehman also has a video walkthrough of the Shareware Starter Kit.  After installing the application, make sure to read the SSK Developer Documentation for a full overview of everything it can do.  Both Michael, Jed Rose, and I will be at the Shareware Industry Conference in Denver, Colorado later this week (ping me if you’re interested in a nerd dinner).

Key Features

Multi-Threaded Splash Screen
A sample Windows Form that shows how you can use a timer control to create a beautiful fade-in/fade-out effect.

Integrated E-Commerce

This feature makes purchasing a licensed copy of your software just a click away by integrating PayPal’s payment services directly into the client application using Web services.


Product Activation

Many shareware applications enable to try-before-you-buy, and this feature enables developers to control how you want to configure your application trial period. For example, you can explicitly state that your application can only be used for 30 days before activating the product.  While it’s not a bullet proof mechanism, the built-in version provides a sample of how you can configure product activation.


Product Registration

This form makes it dirt simple to enable product registration directly in the product using Web services. Everyone wants to know more information about their customers, heck Visual Studio 2005 is the first version of Visual Studio with in-product registration capabilities. 


Product Feedback

Do you want to know what your customers think about your application? Why not add the ability to send feedback directly in the product? This feature enables them to do just that using Web services.


Exception Handling Reporting

You’ve probably had a Windows application hang on you, where you get a “Send Error Report” message.  That feature is known as Watson, and the error information is sent to Microsoft where if you have a certificate from Verisign, you can actually pull the dumps for your application. The version in the Shareware Starter Kit is the “poor-man’s Watson”, and it captures information about the thrown exception and records it in a database. That way you can report on your application crashes by date, exception type, version, operating system, all using Web services.


You can access all the features directly from the included Sample Application Toolstrip as shown below:

Walkthrough: An unhandled exception is thrown

To show you all the bits and pieces here’s a simplified walkthrough of how the kit works:

  1. Your exception information is forwarded to the ExceptionForm Form.
  2. Information about the exception is loaded into the ExceptionForm textboxes.
  3. The ExceptionForm loads up a DataStore class which loads your application settings from a file “DataStore.dat” in isolated storage to validate if payment information has been received.
  4. When the user clicks “Submit” a new ExceptionInfo class is created and populated with information about the exception.
  5. The ExceptionInfo class is then sent to the ServerProcessing class which handles calling all of the Web services. The ServerProcessing class inspects the incoming type is an ExceptionInfo type, and if so, calls the SubmitException Web service.
  6. The SubmitException WebMethod is a Web Method in the SharewareService WebService class. Below is the declaration of the class, note the Basic Profile compliance attribute for interoperability.

    [WebService(Namespace = “”)]

    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]

    public class SharewareService : System.Web.Services.WebService



  1. The SubmitException Web Service validates the input and checks for SQL injection, then calls the DB classes SubmitException method that uses a DAL to call the SubmitException stored procedure in the SSK Database, which in turn adds the data to the SSK_Exception table. Below is a list of the database tables and stored procedures in the SSK database.

Database Tables

Database Stored Procedures

Here’s a view of the architecture (pics from the included documentation) showing both the client and server architecture.

Client Architecture


Server Architecture

We Want Your Feedback
Send us your feedback! The Shareware Starter Kit is in beta and we want your feedback and comments on the feature design, new features and anything in-between. We are currently also working on a fully unmanaged (at least from the client side) C++ version of the Shareware Starter Kit and an Avalon/Indigo version of the kit.

Special thanks to Personify Design who did the design and development of the kit and Foundstone for the security review.


Comments (48)

  1. Best

    CMS/SharePoint Blog [Via: arpans ]

    Check it

    out [Via: trobbins ]



  2. Best

    CMS/SharePoint Blog [Via: arpans ]

    Check it

    out [Via: trobbins ]



  3. This is an interesting project, why not build a complete application that use the blocks? I think that also an autoupdate feature could be really nice to have on the kits. Keep up the great work.

  4. Introducing the Shareware Starter Kit


  5. Ignat Andrei says:

    Can be done a version for .NET 1.1 ?

    What features from .NET 2.0 requires ?

  6. Nicolas says:

    Why not having as well an Open Source Starter Kit ? 😉

  7. 我的网摘 – 7/12/2005

  8. A few days ago, Dan Fernandez, Microsoft’s C# Product Manager, announced the release of the Shareware Starter Kit in his blog. The Shareware Started Kit is a sample application that contains common shareware features, such as e-commerce integration and a

  9. Interesting but when I download it I see it requires .NET 2.0? Isn’t 2.0 still in beta?

    I’m developing the next version of kBilling using .NET and would *love* to have this functionality but don’t want to use .NET 2.0 until it is a bit more solid.

  10. "follow me" says:

    Oh, I am so ripping this apart and keeping the pieces…

  11. Matin emailed me to let me know about the new shareware shaker kit.

    If you’ve been thinking about writing…

  12. Matin emailed me to let me know about the new shareware starter kit.

    If you’ve been thinking about writing…

  13. Dan got picked up by Mary Jo.

    This project has been a total labor of love for Dan, whose full time…

  14. Ignat Andrei says:

    Very good

    Any "translation" for .Net 1.1 ?

  15. Apparebntly there is a new kit available from Microsoft, the Shareware Developers Kit which integrates…

  16. Apparently there is a new kit available from Microsoft, the Shareware Developers Kit which integrates…

  17. furjaw says:

    I tried these two host names, but, it says that they are not valid host names!

  18. furjaw says:

    How about starting a forum for the Shareware Starter Kit?

  19. Me says:

    I am wondering if Shareware Starter Kit is still an ongoing project?

    the only version they have now is the c#.  looks like the version is not supporter.

    I cant get it to work with my program now.  Anyone able to successfully integrate the Shareware starter kit and be able to accept real payments?

    Please post.  Thanx

  20. DJohnson says:


    this is a great starter kit.

    Will it ever be released in its entirety, as a "Starter Kit" or will it always depend on the hosted (proprietary) services portion that you provide?

    It seems that the project has had intentions towards a business model, yet it has been VERY slow to materialize.

    I would prefer a self hosted service, therefore I can own the debugging, but either way, many of us have been patient for many months.

    can you shed some light on the timeline/intentions of the project?

  21. Keith S. says:

    Great product — just so you know, im using IE7 and i cannot view most of the posts above.. they are cut off with no scrolling ability!

  22. Henry says:

    Is it possible to activate without using the webserviec. Some packages have the option to activate by phone if there is not internet connection

  23. Mitchell Vincent says:

    2 years and this still isn’t out of beta? HAs this been abandoned?

  24. eppyjerk says:

    Does anyone know if there is a product available that does the same thing?

  25. tt says:

    What happened!!!!!!!! Only Beta ??????????

  26. fried says:

    will it support express editions?

  27. anonymous says:

    Wow 3 years later and not even a release candidate yet? Time to open source it, let the people who want it, develop it, even the hosted side.

  28. anonymous says:

    No kidding. The documentation and functionality are all broken and there doesn’t seem to be any recent activity or support. That sucks.

  29. boussarsar says:

    i have a problem with the registration :

    "Please enter a valid host name. Alpha Numeric characters only. (0-9 and a-z)"

    I m sure that the entering name is valid but i have always this error

  30. An update on this would be great.

    Anyone know what is happening with this?

  31. Jakash3 says:

    These starter kits are too advanced for beginners, in fact it’s scary. You can’t even get one for Visual Basic anyways, they’re all for C# now.

    I wish I could get the Shareware Starter Kit in VB.

  32. jeff says:

    thank you

    i am just  a beginner

  33. Dependra Yadav (Nepal) says:

    Need for backup system and register key type installation for my software. Plz. (

  34. page not found…..error

    when i try to download..