A few years ago, I had decided that I was going to go full-speed into building my own products. Do not get me wrong, I still have that dream and continue to try, but other like everything else in adulthood, other priorities constantly get in the way. One of the first things that I thought about was how to implement copy protection and do license enforcement for my products. Most off-the-shelf products that we use today involve the user receiving some sort of license code or unlock key that the customer is required to enter into the program in order to unlock features. I originally went with a third-party solution to implement this type of functionality, but after a bad customer experience, I dropped that vendor and decided to roll my own. Yes, I know that approach is full of danger, but that is what I decided after looking at the options. In this first post, I tackle the first part of a software licensing solution: generating the product license keys.
Desert Code Camp 2011: Introduction to Metro Applications
Thank you to everyone who attended my Introduction to Metro Applications presentation at Desert Code Camp last Saturday. As promised, I have posted the audio and screencast from the presentation.
Desert Code Camp 2011: WCF REST Services Using the WCF Web API
Thank you to everyone that could attend my Desert Code Camp presentation on building RESTful web services using the WCF Web API. For those who would like to review the presentation, or for anyone who missed the presentation, I have posted the screencast and audio online for you to review.
Desert Code Camp 2011 Presentation: Windows 8 for .NET Developers
First, I would like to thank everyone that attended my presentation on Windows 8 for .NET Developers. I enjoyed being back at Desert Code Camp presenting and am very thankful that I had the opportunity to present this topic to you. I have posted the recorded audio and screencast from the session for you to review.
Coming Up For Air
It is hard to believe that we are approaching the end of 2011. When this year started, there was a lot that I wanted to accomplish. I still plan on accomplishing those goals, but it will most likely be 2012 for that to happen. I have also been away from my blog for far too long and have not published much technical content lately. I will try to catch up in the two months that I have left so that 2011 can go out in a coding blaze of glory. But as I wrap up 2011 and get ready for 2012, I am also getting ready for a bunch of changes. Here is an update of my life as of the end of 2011.
Maintenance in Progress
Excuse my mess. I’ve been away from my mess. I have been focusing on work for a while and am finally getting my blog back in order. I am in the middle of moving my blog to a new hosting account and restoring everything. I will hopefully be done in a few days.
Mercurial Plug-in Updated for OnTime 2011
Sorry everyone for the long delay between releases. I’ve been extremely busy with my professional life, which has made doing side projects a little difficult. A few weeks ago, Axosoft released OnTime 2011. A user kindly reported to me this morning that the plug-in didn’t work with OnTime 2011, so I updated it this morning and released the update on CodePlex.
Mercurial Plug-in for Axosoft OnTime 2010 Updated
This morning I released version 1.1 of the Mercurial OnTime plug-in for Mercurial. It is posted on CodePlex and ready for download and installation.
Changing Your Razor View Layout for Themes and Devices
In a previous post, I showed off some source code that I had written to customize the ASP.NET MVC view engines to support themes and mobile devices. In this post, I’m going to build on my updated view support a bit to discuss how to customize the layout of Razor-based views for different themes and mobile devices.
ASP.NET MVC Views Gone Crazy
I love ASP.NET MVC. It took me a little while to warm up to it with MVC 1.0, but the way that the framework was built has made each version really exciting to work with. One of my favorite pieces is the view engine architecture. In ASP.NET MVC, view engines are pluggable components that can be replaced with other view engines. Traditionally, ASP.NET MVC came with support for ASPX-based “web form” views. With ASP.NET MVC 3, Microsoft introduced the Razor view engine that added a much easier syntax for building sites. As a view engine user, creating a new view engine isn’t something that I really care about doing, but what I do want is to have the flexibility to implement some advanced scenarios to implement features such as themes or mobile device support. Fortunately, the ASP.NET MVC view engines are also built for extensibility, and in this post, I’ll show you how.