Thursday, February 21, 2008

Friday, January 18, 2008

TFS 2005 installation problems

While installing TFS 2005 you may get many error messages during the system health check. Some of the messages may be quite misleading. To find out more details you can open a file called hcpackage.xml (in the folders at, dt or atdt) and find the error message. The file also has WMI queries that are being executed to determine if an error condition exists. Sometimes there are multiple WMI queries that result in a single error message, so you have a much better chance to troubleshoot the problem and resolve the installation issue. You can also try to edit the file and remove the WMI if your environment cannot conform to the TFS 2005 requirements.

Thursday, January 10, 2008

Unit test generator

Just an idea: what if we had the software that would automatically generate unit tests for all success scenarios? It would work like this:
1. Attach to the running process as a debugger
2. The user would use the application to test all success scenarios
3. The generator program would record all the method invocations with all the parameters.
4. After the application that is being debugged exits the generator program would use the information about methods invocation and generate NUnit tests.

Monday, December 10, 2007

Object-oriented design

The goal of object-oriented design is not only to reduce dependency, but also to remove ambiguity.For example, using DataSet as a universal data transfer object definitely reduces dependency, but increases ambiguity a lot, requiring you to understand the non-documented contract of what data should be in the data set and what do they represent. By using strongly-typed objects you document the contract and reduce ambiguity.

Here is the strong point of the strongly typed languages vs. dynamic languages. The contracts in the strongly typed languages are usually more pronounced. Unit tests can compensate for the missing contract details but cannot themselves become a part of the object contract.

Monday, December 03, 2007

Tuesday, November 20, 2007

Exam 70-529 training kit

The training kit is written quite poorly with a lot of typos and mistakes. Some of the examples are only given in VB.Net. What is most exciting (and funny) are the "words of wisdom" of the book:

"It is nearly impossible to write more than a few lines of code without there being some type of error in the execution of the code" (page 239)

"You should always expect the unexpected" (page 242).

Monday, November 19, 2007

Delayed Load

Cool technique for delay loading is provided at http://www.codeproject.com/Ajax/DelayedContentLoading.asp. Just use UpdatePanel, Timer and MultiView controls.

Saturday, October 27, 2007

PageDefrag

I must admit that PageDefrag does make a lot of difference in omputer performance.

Thursday, September 27, 2007

Tuesday, September 04, 2007

Manage ACL in ADAM

If you want to manage the access in ADAM the documented tool is dsacls. However this command-line tool is not very intuitive and easy-to-learn. There is an undocumented tool ldp in C:\Windows\ADAM directory that provides a GUI for security descriptors, i.e. DACL and SACL.

Thursday, August 30, 2007

Totally backwards!

I just discovered that Upgrading VS 2005 Web Site Projects to be VS 2005 Web Application Projects is a totally backwards procedure, as described in this blog. I just don't understand why this is so hard procedure, and why the "Convert to Web Application" context menu is available when you have already converted the project to web application, and it not an available menu for web sites.

Monday, August 06, 2007

Failed installations

To cleanup after failed installations (especially C:\Windows\Installer) you can use

MsiZap G!

Or alternatively download "Windows Installer Cleanup Utility" to do that using GUI.

Friday, August 03, 2007

MSBuild and Web Site projects

One of the developers found an interesting misfeature of the MSBuild. When you supply Project Name parameter it does not package the web site and does not create PrecompiledWeb folder. However as soon as you remove this parameter the folder gets created. Weird.

Monday, July 30, 2007

AzMan group (2)

Unfortunately the approach I described in the previous post does not really works. The problem is that the AzMan.msc breaks if I do that. Probably it expects the groupType to be exactly 16 or 32 rather than what would be correct behaviour: apply a bitmap.

Friday, July 27, 2007

AzMan groups

AzMan groups ain't security groups. If you check the groupType attribute of the Basic AzMan group it will be 16 (0x00000010). Now the security groupType normally is -2147483646 (0x80000002). This article deciphers the groupType values. Thus 0x80000002 really means global group that is also a security group. So if you want your Basic AzMan group to behave like a security group you should use group type 0x80000012 which will be -2147483630 in decimal.

Monday, June 11, 2007

ASP.NET AJAX performance problems

Look at this Fiddler capture: ScriptManager loads more than 400 MBytes of JavaScript code!

WebResource.axd: 20 KB
ScriptResource.axd: 260 KBytes
ScriptResource.axd: 65 KBytes
ScriptResource.axd: 22 KBytes
ScriptResource.axd: 9 KBytes

This will make people want to come back to plain old HTML.

Monday, April 30, 2007

Microsoft SQL Server management Studio

The management studio is a big disappointment for me, because I expected the tool that has the best features of Enterprise Manager and SQL Query Analyzer. Instead I found the combined tool where EM and SQA exist as independent units, so I don't have any of SQA features when I open the table from the object explorer, and when I use "New Query" I cannot edit results, nor use Query Designer. I can't believe Microsoft is selling the tool as a SQL 2005 "improvement". :(