Top 5 Favorite CodePlex Projects

I’ve been looking around CodePlex lately and there’s some really cool stuff there. For example, the source code to ASP.NET MVC.

That got me thinking, what else is out there? Here are my (current) top 5 favorite CodePlex projects.

#1. ASP.NET MVC
http://www.codeplex.com/aspnet
This project gives you access to the source code for upcoming releases that the Microsoft ASP.NET team is working on, starting with the ASP.NET MVC Framework. The project gives you a look at the design and lets you have a voice in it. You can send us feedback for the ASP.NET MVC framework through the ASP.NET MVC forums on the ASP.NET site.

#2 Script#
http://www.codeplex.com/scriptsharp
Script# enables more productive Ajax application development by allowing you to compile your C# source code into JavaScript. It allows you to use standard .NET tools like msbuild projects, Visual Studio and IDE intellisense, reflector, refactoring tools, amongst various others.

#3 AJAX Control Toolkit
http://www.codeplex.com/AtlasControlToolkit
The AJAX Control Toolkit is a joint project between the community and Microsoft. Built upon the ASP.NET 2.0 AJAX Extensions, the Toolkit aims to be the biggest and best collection of web-client components available.

#4 .NET Mass Downloader
http://www.codeplex.com/NetMassDownloader
Mass Downloader For .Net Framework which allows you do download .Net Framework source code in batch.
The tool which enables offline debugging of .Net Framework in VS2008(including Express Editions) , VS2005 (including Express Editions), and Codegear Rad Studio.

#5 MVC Contrib – MvcContrib.org
http://www.codeplex.com/MVCContrib
This project will be a series of assemblies that add functionality to Microsoft’s ASP.NET MVC Framework and make the framework easier to use. *Download the MVC Framework CTP here: http://asp.net/downloads/3.5-extensions/. Download here: http://go.microsoft.com/fwlink/?LinkID=105029. Some of the items to be included are …

#5+1 ASP.NET Upload Utility: Big Mailer
http://www.codeplex.com/bigmailer
Email something huge: The big mailer project allows you to upload large files to your website and then retrieve a convenient url for email and other uses.

#5+2 Visual Studio Most Recent Files Utility
http://www.codeplex.com/vsrecentfiles
Manage your recent projects and solutions list for Visual Studio. Supports VS 2003, 2005, and 2008.

[OK, those last two are projects are mine, but they are pretty cool.]

Did I miss something spectacular? Add it to the comments below!

- Michael Kennedy

Visual Studio Recent Files Utility Now OpenSource on CodePlex

If you’v been using my Visual Studio Recent Files Utility, then you may be interested to find out that I just released it as open source on CodePlex here.

Visual Studio Recent Files Utility on CodePlex

Enjoy!

Email Something Huge: Introducing the Big Mailer Utility

I often have to send large files around by email. For example, I had to email a colleague a 10 MB file. It seems a little rude to hit him out of the blue with a 10 MB email. I wanted something cleaner and less intrusive.

So I created a simple utility I called “Big Mailer”. I figured I’d blog about it and share it with the world. Feel free to use it as you see fit. This program consists of both a client and server piece that simplifies uploading content to your web site. Then the program gives you a regular web link you can send via email.

Here’s a screen shot:

BigMailer

Continue reading

Follow up on .NET 2.0 SP1 ThreadPool Bug

Here’s a followup post on the .NET ThreadPool bug that I described here:

Breaking Changes in the ThreadPool: The Movie

I have been in touch with the guys who are in charge of the ThreadPool and they have both confirmed that this is a bug and that they are planning on fixing it in .NET 2.0 SP2 – but they are not sure of the timeline for its release.

In the meantime, Vance Morrison, a .NET Runtime Performance Architect at Microsoft, has given me this work-around.

Take this “broken” code:

 private static void UseThreadPool(int count)
        {
            for ( int i = 0; i < count; i++ )
            {
                ThreadPool.QueueUserWorkItem(
                    delegate { SlowMethod(); } );
            }
        }

And add a strategic Thread.Sleep and it’s fixed:

 private static void UseThreadPool(int count)
        {
            for ( int i = 0; i < count; i++ )
            {
                ThreadPool.QueueUserWorkItem(
                    delegate { SlowMethod(); } );
 Thread.Sleep(1);
            }
        }