Two years ago, I started collecting development tools for .NET on this weblog. This list quickly became a web site: SharpToolbox.com.
Two years after, it references 680 tools including 186 libraries in 49 categories. To date, 33 tools have been flagged as discontinued.
I believe SharpToolbox is a comprehensive directory of the available tools for .NET. Let's hope its sister site, JavaToolbox, will have the same future.
I continue to add improvements to the sites. Soon I will improve the search and filter functions.
Here comes a useful tool if you are working with multiple computers at the same time:
Some fun and real geek attitude for the week-end:
- The Infinite Cat Project - a story about a cat watching a cat watching a cat watching a cat...
- Transparent Screens - time to bring some reality into your desktop wallpaper, and some void to your monitor. Via Roy via Mike via Scott...
It's interesting to know how the Windows Forms designer in Visual Studio loads forms. Did you ever wonder how it is possible for you to design an instance of a form while the underlying class is not completed and compiled? Raghavendra Prabhu explains how it works.
One problem that remains unanswered is how to detect a form is in design mode, to avoid accessing to run-time resources. One would think the DesignMode property is the solution.
Let's consider the following constructor for example:
_Connection = new DatabaseConnection("aceofbase");
The small problem with the DesignMode property is that it is not always telling the full truth!
The DesignMode property isn't set to true in the constructor.
Remember, there's no real magic here.
Visual Studio .NET creates your object as it parses the InitializeComponent() method. Once the object is constructed, Visual Studio .NET keeps track of the objects it creates, and simply says: newlyCreatedObject.DesignMode = true
There is no definitive solution to this problem.
All kinds of workarounds are used.
- We could call GetService(typeof(IDesignerHost)) and see if it returns something.
- Other option: test System.ComponentModel.LicenseManager.UsageMode == System.ComponentModel.LicenseUsageMode.Designtime
- Some are comparing System.Diagnostics.Process.GetCurrentProcess().ProcessName to "devenv" to see if the form is hosted in Visual Studio. But I don't like this one because in many cases it won't work (like with VS add-ins).
Google has just added new features to its AdSense program. Some are very cool like the ability to get money in your currency and directly on your bank account. Goodbye change rates and check deposit expenses!
Another feature is Ad Links units, which display a list of topics that are relevant to a page. Each topic, when clicked, brings the user to a page of related advertisements.
You can see how they look like and test them on this weblog. Look on the right. We'll see how they perform money-wise...
Google also updated its Terms and Conditions to allow users to reveal how much they make out of AdSense. A lot of people already started to release some figures. And then we realize that contextualized text ads are becoming quite a big opportunity, and a full-time job for some.
New players are starting to challenge Google and its AdSense and AdWords programs: Kanoodle, MSN, Overture/Yahoo!...
Definitely something to follow and that will heat up in the near future.
Microsoft Visual Studio 2005 beta 2 delayed
Nothing to add. We're getting used to this...
Note that if you want to perform a search on descriptions, you can use the following URL:
I've just made an update to the SharpToolbox (and JavaToolbox): you can now tag the tools to help categorizing them.
This works like del.icio.us. After tags have been added to tools, people can use these tags with the search function to find the tools.
This should enable a looser classification, which could be better than the current category-based one.
To tag a tool, go to its page and click on the "Add tags" link. That's all!
Tags are words used to categorize tools and help people searching for them. Please only add tags that make sense for a specific tool.
The next step will be to have a Google Suggest-like drop-down list to help using the tags...