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 10, 2007
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).
"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
Thursday, September 27, 2007
Friday, September 21, 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.
Tuesday, August 07, 2007
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.
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.
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.
Tuesday, May 08, 2007
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". :(
Tuesday, March 13, 2007
New syntax for NUnit 2.4
Check out the new syntax for NUnit 2.4 in this blog entry. Nunit will have more object-oriented syntax for assertions, allowing to encapsulate the complexity of unit tests in nice object model. I guess this is another reason to stick with NUnit rather than going to VSTS unit testing framework.
Tuesday, February 20, 2007
Unofficial Windows 2000 DST patch
http://www.intelliadmin.com/blog/2007/01/unofficial-windows-2000-daylight.html
I'll try to apply it today.
I'll try to apply it today.
Wednesday, January 31, 2007
QuickCounters
QuickCounters is a library that will make it easier to instrument your .Net code with performance counters. It still requires you to instrument the code through, which could make it quite messy.
Tuesday, January 02, 2007
Agile Google
Well, this blog says that Google represents good Agile, while other agile processes are bad agile. I agree with some points of the post, like if you have super developers the process does not help as much as if you have a mix of junior and medium level developers. But my personal experience does not confirm that no process is better than an agile process.
An eye-opening experience report by Mark Striebeck on Agile 2006 conference confirmed my suspicions. His area of work is Ad Words system, which is different from other stuff Google develops in that it is quite complex and requires a release cycle and commitments (as a B2B system). When he joined he found a few problems that can be attributed to a lack of a process. First of all the development was always late. Worse off, the developers did not know how late they are until the last moment. The scope creep was more than 30%. Mark was invited to add a process into the Ad Words development, to help solve these problems. Now, according to Steve Yegge this is like adding bad agile to good agile. Probably smart people at Google think differently.
An eye-opening experience report by Mark Striebeck on Agile 2006 conference confirmed my suspicions. His area of work is Ad Words system, which is different from other stuff Google develops in that it is quite complex and requires a release cycle and commitments (as a B2B system). When he joined he found a few problems that can be attributed to a lack of a process. First of all the development was always late. Worse off, the developers did not know how late they are until the last moment. The scope creep was more than 30%. Mark was invited to add a process into the Ad Words development, to help solve these problems. Now, according to Steve Yegge this is like adding bad agile to good agile. Probably smart people at Google think differently.
Subscribe to:
Posts (Atom)