February 22, 2009 at 4:45 PM
Ever since setting up this blog which is powered by BlogEngine.NET, I spend a small amount of time everyday at the BE.NET code hosting area at CodePlex. Mostly I participate in the discussions there and have even submitted some bug reports in the issue tracker. It's been a rewarding experience to be able to contribute to an open-source application used by probably thousands of bloggers out there.
However, my time spent at CodePlex has been anything but pleasant. CodePlex is a website built, maintained and run by Microsoft. It's a place anyone can store their open source projects for free. There's other code hosting services out there such as SourceForge and Google Code.
Allow me to vent a bit and list the problems I find with CodePlex.
- SLOW, SLOW, SLOW! CodePlex has to be the slowest website on the face of the internet. Just about anything you do on CodePlex takes 10 times longer than it takes to do the same type of action on other websites. Just pulling up a simple discussion takes 3 seconds for a simple GET request. That 3 seconds is a best case scenario. Almost on a daily basis, CodePlex will start slowing up. Posting a message can take 10 to 20 seconds or even minutes at times. Searching the Discussions takes too much time. Even worse is searching the Issue Tracker. There's been times it takes over 2 or 3 minutes for search results to come back.
- Server side errors. I don't think a day has gone by that I haven't received at least one server side error while on CodePlex. The typical error is an XML parsing error. Sometimes the response from the server takes so long that I just get a general timeout error or page cannot be displayed error.
- Issue Tracker editor. When creating an issue in the tracker or adding a comment to an issue, instead of getting a WYSIWYG editor like you get in the Discussions, all you get here is a plain old textarea. And a pretty small textarea at that. It's a common need to paste some code into the issue tracker -- after all, that's what CodePlex is for! But all leading spaces are lost when saving your post. This means properly indented code is no longer indented, looks crappy and is difficult to follow. You also can't edit anything you posted in the Issue Tracker. I'm not sure why you can edit messages and get a WYSIWYG editor in the Discussions area, but not in the Issue Tracker.
- Spam. For a while, various spammers kept posting spam messages in the Discussions area. CodePlex doesn't seem to have any mechanism to report spammers. The spammers would post messages with some relevance to technology, but the messages had nothing to do with the Discussion at hand. Throw in CodePlex's speed woes, and trying to find the real messages while sifting past the spam equates to a waste of my time.
- Team Foundation Server unavailable. The source code for projects at CodePlex is stored in a TFS database. Every now and then, I get messages stating TFS is unavailable for short to long periods of time. While TFS is unavailable, the Issue Tracker and Source Code areas are completely unavailable.
- RSS Feed Lags. CodePlex uses caching for its RSS feed which is a good idea. New items to be added to the feed seem to normally show up within an hour. There are times, however, that certain items may take several hours before they appear in the feed.
I wouldn't recommend CodePlex to anyone looking for a place to host their code. I've not yet spent any time at Google Code, but I do visit SourceForge on rare occasion. I recall no slowness or errors while browsing through the messages in the discussions at SourceForge.
I'm definitely not the first and certainly won't be the last one to bring up some of these CodePlex problems. Dave Ward had this great blog post where he broke down some of the massive performance inefficiencies in CodePlex with its voting system. It's disturbing too since this isn't the only Microsoft website to suffer from a performance / reliability standpoint. A few years ago when I was spending some time on the www.asp.net forums, forum searches were very slow. Apparently the asp.net website was completely down about a week ago. The Microsoft blogs website is another site where blog posts and paging through the posts often results in long wait times.
I'd love to see BE.NET move and host its codebase elsewhere. I unfortunately haven't seen any sign of Microsoft planning to fix CodePlex and they seem perfectly content with the way CodePlex is now. If they do fix CodePlex, great. I'm just constantly frustrated everytime I'm at CodePlex, and don't think a code hosting website (or any website) should be a hindrance or distraction from the real reason I'm at the site -- to participate in and have fun with a growing open-source project.