Fabrice's weblog
Tools and Source
-
Visual Studio 2005 is out!
VS 2005 and .NET 2.0 are finally released today!
Microsoft realized it wouldn't be possible to meet the deadlines and get full versions out before the end of the year, and so give a sense to the 2005 moniker. They decided to release NOW lighter versions with all the basic features we all need and that are ready, and postpone advanced features and all the extra stuff for a later release next year Q1 2006.
Go to the download page. -
SharpToolbox is two-year-old
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.
-
Tool to share single mouse and keyboard between multiple computers
Here comes a useful tool if you are working with multiple computers at the same time:
-
Recursive fun and desktop reality
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...
-
Windows Forms designer and DesignMode property issues
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:
public MyClass()
{
if (!DesignMode)
{
_Connection = new DatabaseConnection("aceofbase");
_Connection.Open();
}
}
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).
-
Targeted text ads are getting big!
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. -
Visual Studio 2005 beta 2 delayed
Microsoft Visual Studio 2005 beta 2 delayed
Nothing to add. We're getting used to this...
-
Searching in the SharpToolbox from RSS Bandit
Note that if you want to perform a search on descriptions, you can use the following URL:
http://sharptoolbox.com/Search.aspx?Query=Description%3d{0} -
New game: Tag The Tools
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...
-
Advanced debugging with SOS.dll
I've just discovered advanced debugging in Visual Studio using SOS.dll. It can be used to get information about the garbage collector, objects in memory, threads and locks, call stacks and more.
See how to use mixed-mode debugging and SOS.dll.
See also Using SOS in the SDK and this article from MSDN Magazine.