I know I’ve been teasing you for weeks about this contest, but it’s really here now.

Adam Calderon and Joel Rumerman have generously provided three copies of Advanced ASP.NET AJAX Server Controls to give away.

Given the topic of the book, building an ASP.NET AJAX server control seemed like the perfect way to give the book away. So, that’s what we’re going to do. We’re going to build a free, open source server control on CodePlex.

About the control

The server control that we’re going to build is a username availability validation control. That’s a mouthful, but the premise is simple. As a new user completes a registration form, our control will asynchronously validate that their chosen username is available and provide inline indication.

Features will include:

  • Automatic validation of the username’s availability as the user types it.
  • Custom styling of the validation message through CSS.
  • Based on BaseValidator, so Page.IsValid and the ValidationSummary control function correctly.
  • Choice of validating against either the ASP.NET MembershipProvider or any custom authentication store, via user customized web service.

Win by writing code

The first way to win is also the most obvious. Write some code.

To get things started, there’s a skeleton project on CodePlex. I’ve made a few basic design decisions, but it’s mostly a blank slate.

To flesh out the specifics, let’s use the discussions and issue tracker on CodePlex.

To submit code contributions, use the upload patch feature on CodePlex. I’ll merge your patches and check-in on a daily basis.

Instead of trying to strike a balance between LoC and a dozen code quality metrics, I’m going to make this a subjective judgment. Whoever makes the best overall code contribution(s) to the project will win a copy of the book.

To keep me honest, Adam and Joel have both agreed to join me in judging the code contributions.

Win by contributing documentation

If that sort of coding isn’t your strength, that’s okay.

For this project to be successful, great documentation will be essential. So, one copy of the book will be awarded to whoever makes the best contribution(s) in that aspect.

Usage examples, documentation, live demos, screencasts, and diagrams would all be beneficial contributions. Focus on quality here, especially when it comes to grammar and spelling.

As with the code contributions, Joel, Adam, and I will be judging the winner of this book, based on both quantity and quality.

Win by participating at all

To make sure that everyone has a chance to win, I’m also going to randomly choose one contributor to give a copy of the book to. By contributor, I mean anyone who submits code or documentation or anyone who participates on the discussion or issue tracker.

Additionally, you can enter the contest by writing a short piece about the contest on your blog or website. If you do that and link to this page and the CodePlex project page, I’ll enter you five times in this category.

Rule #7: The contest will go on as long as it has to

The contest will end when the control is fully functional and there have been no accepted contributions for 24 hours.

I want to make sure everyone has a reasonable chance to make their contributions.

Let’s get started

If you have any questions about the contest, feel free to ask here in the comments.

For any discussion pertaining to the control itself, use the project’s discussions section or the issue tracker.

I’ll see you on CodePlex soon!