# Tuesday, 24 July 2007

Microsoft® Visual Studio® 2005 Team Edition for Database Professionals Service Release 1

Microsoft® Visual Studio® 2005 Team Edition for Database Professionals Service Release 1 has been released. This is must have tool for people that develop using Visual Studio Team System!

Go to: http://www.microsoft.com/downloads/details.aspx?FamilyID=9810808c-9248-41a5-bdc1-d8210a06ed87&displaylang=en

#    Comments [0] |
# Sunday, 22 July 2007

Visual Studio 2008

Microsoft just keeps 'em coming. Expected release date for Visual Studio 2008, SQL Server 2008 and Windows Server 2008 is now February 27th, 2008.

Read more: http://entmag.com/news/article.asp?EditorialsID=8800

#    Comments [0] |
# Friday, 15 June 2007

HTTP Debugging

I reinstalled a tool today which I used years ago and was impressed by how, and how easy, it worked in the current version: Fiddler HTTP Debugging Proxy.

The tool allows you to analyse all requests and responses from your browser. Works great and very usefull for AJAX debugging.

More on: http://www.fiddlertool.com

#    Comments [0] |
# Tuesday, 12 June 2007

Sometime you just don't want to know...

While playing around with SOS a little today I took two looks at the output of the command:

!dumpheap -stat

First I ran.

static void Main(string[] args)
}  //breakpoint here

Next I added a Console.Writeline.

static void Main(string[] args)
}  //breakpoint here

Output of the dumpheap of the first bit of code:

!dumpheap -stat
PDB symbol for mscorwks.dll not loaded
total 2074 objects
      MT    Count    TotalSize Class Name
790fdd5c        1           12 System.Security.Permissions.SecurityPermission
790fd5b4        1           24 System.OperatingSystem
790fc79c        1           24 System.Reflection.Assembly
790fb668        1           28 System.SharedStatics
790fce28        1           32 Microsoft.Win32.Win32Native+OSVERSIONINFO
79124544        1           36 System.Int64[]
790fd444        1           40 Microsoft.Win32.Win32Native+OSVERSIONINFOEX
790fbcfc        1           40 System.AppDomainSetup
790fdc3c        1           44 System.Security.FrameSecurityDescriptor
790fd4ec        2           48 System.Version
790f9c18        4           48 System.Object
790fc308        3           60 System.RuntimeType
790fa800        3           60 System.Text.StringBuilder
790fca24        1           64 System.IO.UnmanagedMemoryStream
790fd824        2           72 System.Security.PermissionSet
790fac70        1           72 System.ExecutionEngineException
790fabcc        1           72 System.StackOverflowException
790fab28        1           72 System.OutOfMemoryException
00153d48        6           84      Free
790fb8c8        1          100 System.AppDomain
790fad14        2          144 System.Threading.ThreadAbortException
79124670        6          356 System.Char[]
79124228        4         8288 System.Object[]
790fa3e0     2028       130364 System.String
Total 2074 objects

The output for the second bit of code:

!dumpheap -stat
PDB symbol for mscorwks.dll not loaded
total 4451 objects
      MT    Count    TotalSize Class Name
79110e94        1           12 System.Resources.FastResourceComparer
79107f40        1           12 System.RuntimeTypeHandle
79102f48        1           12 System.__Filters
79102ef8        1           12 System.Reflection.Missing
79101ca8        1           12 System.RuntimeType+TypeCacheQueue
790fdd5c        1           12 System.Security.Permissions.SecurityPermission
79178564        1           16 System.IO.MdaHelper
79126bd8        1           16 System.Collections.ObjectModel.ReadOnlyCollection`1[[System.Reflection.CustomAttributeData, mscorlib]]
79126710        1           16 System.Collections.ObjectModel.ReadOnlyCollection`1[[System.Reflection.CustomAttributeTypedArgument, mscorlib]]
79111010        1           16 System.Resources.ResourceReader+TypeLimitingDeserializationBinder
7910fe28        1           16 System.Globalization.GlobalizationAssembly
7910646c        1           16 System.Reflection.Cache.InternalCache
79168874        1           20 System.Diagnostics.StackTrace
79126824        1           20 System.Reflection.CustomAttributeTypedArgument[]
7910fbdc        1           20 System.Environment+ResourceHelper
7910031c        1           20 Microsoft.Win32.SafeHandles.SafeFileMappingHandle
791002c0        1           20 Microsoft.Win32.SafeHandles.SafeViewOfFileHandle
790ff26c        1           20 System.Text.InternalEncoderBestFitFallback
790fdf38        1           20 Microsoft.Win32.SafeHandles.SafeFileHandle
7910f690        1           24 System.Collections.Stack
791009f0        1           24 System.IO.TextWriter+SyncTextWriter
790ff2c4        1           24 System.Text.InternalDecoderBestFitFallback
790fd5b4        1           24 System.OperatingSystem
790fc79c        1           24 System.Reflection.Assembly
790f8648        1           24 System.Runtime.CompilerServices.RuntimeHelpers+ExecuteWithLockHelper
79125330        1           28 System.Reflection.Cache.InternalCacheItem[]
791008f0        1           28 System.Text.EncoderNLS
790fe4b0        1           28 System.IO.Stream+NullStream
790fde94        1           28 Microsoft.Win32.Win32Native+InputRecord
790fb668        1           28 System.SharedStatics
791064d8        1           32 System.Reflection.Cache.ClearCacheHandler
79100760        2           32 System.Text.DecoderReplacementFallback
79100700        2           32 System.Text.EncoderReplacementFallback
790fce28        1           32 Microsoft.Win32.Win32Native+OSVERSIONINFO
79124544        1           36 System.Int64[]
790fe280        1           36 System.IO.__ConsoleStream
790f992c        1           36 System.Resources.RuntimeResourceSet
79110f4c        1           40 System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
790fd444        1           40 Microsoft.Win32.Win32Native+OSVERSIONINFOEX
790fbcfc        1           40 System.AppDomainSetup
790fdc3c        1           44 System.Security.FrameSecurityDescriptor
79193fa4        1           48 System.RuntimeMethodHandle[]
7910fc38        2           48 System.Environment+ResourceHelper+GetResourceStringUserData
79107714        1           48 System.Reflection.Module
790ffbe4        4           48 System.UInt16
791687fc        1           52 System.Diagnostics.StackFrameHelper
79126534        1           52 System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Resources.ResourceLocator, mscorlib]]
790fb238        1           52 System.Threading.Thread
790f96e8        1           52 System.Resources.ResourceManager
7912545c        1           56 System.LogLevel[]
791005d4        2           56 System.Text.UTF8Encoding
791003f8        1           56 System.IO.StreamWriter
790ffb28        3           60 System.Globalization.CultureTableItem
79110c2c        2           64 System.Text.UTF8Encoding+UTF8Decoder
7910feec        2           64 System.Globalization.CompareInfo
79126398        1           72 System.Collections.Generic.Dictionary`2+Entry[[System.String, mscorlib],[System.Resources.ResourceLocator, mscorlib]][]
790ffa34        1           72 System.Globalization.CultureTable
790fd824        2           72 System.Security.PermissionSet
790fac70        1           72 System.ExecutionEngineException
790fabcc        1           72 System.StackOverflowException
790fab28        1           72 System.OutOfMemoryException
790ff138        1           76 System.Text.SBCSCodePageEncoding
79110b54        2           80 System.IO.BinaryReader
7910fcec        1           80 System.Resources.ResourceReader
79102fac        3           96 System.Reflection.MemberFilter
79102e10        3           96 System.Runtime.CompilerServices.RuntimeHelpers+CleanupCode
791079cc        1          100 System.Reflection.MetadataArgs+SkipAddresses
790fb8c8        1          100 System.AppDomain
00153d48        7          100      Free
79125594        1          108 System.SwitchStructure[]
79102cec        4          128 System.Runtime.CompilerServices.RuntimeHelpers+TryCode
790ffe6c        1          128 System.Globalization.NumberFormatInfo
790f9c18       11          132 System.Object
790fad14        2          144 System.Threading.ThreadAbortException
79109a4c        4          240 System.Reflection.AssemblyName
790ff6dc        5          240 System.Globalization.CultureTableRecord
790fed1c       20          240 System.Int32
790fd4ec       10          240 System.Version
790fca24        4          256 System.IO.UnmanagedMemoryStream
791689a4        9          288 System.Diagnostics.StackFrame
791251f8        1          288 System.Reflection.CustomAttributeRecord[]
790fa800       20          400 System.Text.StringBuilder
7912747c       23          552 System.Collections.Generic.List`1[[System.Reflection.FieldInfo, mscorlib]]
79127200       23          552 System.Collections.Generic.List`1[[System.Reflection.RuntimeFieldInfo, mscorlib]]
791270bc       23          552 System.Collections.Generic.List`1[[System.Reflection.PropertyInfo, mscorlib]]
790ff4c4        8          576 System.Globalization.CultureInfo
79124958       25          600 System.Collections.Generic.List`1[[System.Reflection.RuntimeConstructorInfo, mscorlib]]
791240f0       12          608 System.Int32[]
79127404       23          644 System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[[System.Reflection.RuntimeFieldInfo, mscorlib]]
79127044       23          644 System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[[System.Reflection.RuntimePropertyInfo, mscorlib]]
79124b5c       24          672 System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[[System.Reflection.RuntimeConstructorInfo, mscorlib]]
791273a8       46          736 System.Reflection.CerArrayList`1[[System.Reflection.RuntimeFieldInfo, mscorlib]]
79126fe8       46          736 System.Reflection.CerArrayList`1[[System.Reflection.RuntimePropertyInfo, mscorlib]]
79124418       14          780 System.Byte[]
79125c30       28          784 System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[[System.Reflection.RuntimeMethodInfo, mscorlib]]
79124b00       49          784 System.Reflection.CerArrayList`1[[System.Reflection.RuntimeConstructorInfo, mscorlib]]
791100e4       23          828 System.Reflection.CustomAttributeData
7910b170       26         1144 System.Reflection.RtFieldInfo
7910aaf4       25         1200 System.Reflection.RuntimeConstructorInfo
790fc308       60         1200 System.RuntimeType
791036b0       51         1224 System.Collections.ArrayList
79125a94       90         1440 System.Reflection.CerArrayList`1[[System.Reflection.RuntimeMethodInfo, mscorlib]]
791256cc       62         1488 System.Collections.Generic.List`1[[System.Reflection.RuntimeMethodInfo, mscorlib]]
791275c8       23         1620 System.Reflection.CustomAttributeCtorParameter[]
79124670       20         1756 System.Char[]
79126e40       74         1776 System.Collections.Generic.List`1[[System.Reflection.RuntimePropertyInfo, mscorlib]]
790fea70       34         1904 System.Collections.Hashtable
79124d0c      156         2120 System.RuntimeTypeHandle[]
7910ae58       39         2340 System.Reflection.ParameterInfo
7910b778       51         2856 System.Reflection.RuntimePropertyInfo
79101be8       40         3200 System.RuntimeType+RuntimeTypeCache
79101e90       62         3472 System.Reflection.RuntimeMethodInfo
791242ec       34         4896 System.Collections.Hashtable+bucket[]
7910adcc      107         5136 System.Signature
79126d08       23         5512 System.Reflection.CustomAttributeNamedParameter[]
79124228      649        25308 System.Object[]
790fa3e0     2251       144908 System.String
Total 4451 objects

So 2000+ objects to do... "nothing" and then 2400 additional classes to output one string to the Console.

Seems a lot, but it illustrates how much management it takes to have a managed environment.

#    Comments [0] |

TechEd Web Development category winner... Strangeloop AppScaler!

AppScaler won the TechEd 2007 award for...

Web Development category winner: Strangeloop Networks' Strangeloop AppScaler Appliance for ASP.NET/AJAX

#    Comments [0] |
# Tuesday, 05 June 2007

Strangeloop AppScaler finalist for the Best of Tech·Ed 2007 Awards

Strangeloop AppScaler for Microsoft ASP.NET and AJAX has been selected as a finalist for the Best of Tech·Ed 2007 Awards in the Web Development and Infrastructure category.

Read more on: http://www.strangeloopnetworks.com/news_newsrelease_0531_teched_best_final.html

#    Comments [0] |
# Friday, 01 June 2007

More on Strangeloop AppScaler

Richard Campbell has posted a detailed blog entry describing the challenges and (part of the) innerworkings of the Strangeloop AppScaler.


#    Comments [0] |

Visual Studio Team Edition for Database Professionals - Power Tools

Recently I've started using VSTS for DB Pro. I've installed CTP 2 of Service Release 1, and it's been great.

The VSTS DB Pro team plans to release power tools for VSTS DB Pro as well. These are tools that will be released as soon as possible, without having to wait for a major release.

The Power Tools are listed on the Future Release page of VSTS: http://msdn2.microsoft.com/en-us/teamsystem/bb407307.aspx

Team Edition for Database Professionals Power Tools

Feature Description
“Move Schema” Refactoring Allows a user to right click on an object and move it to a different but existing schema
SP Rename Generation Generate a new script that will contain sp_renames for all rename refactored objects that the user can then execute.
Data / Schema Compare Build Tasks MSBuild tasks that can generate scripts as if the user had run the Data / Schema compare UI
Script Preprocessor Expand SQLCMD variables and include files and command line version (sqlspp.exe) & an MSBuild version ( wraps the command line version )
API Access to Schema View Insert / Update / Delete to schema View and list schema objects and their associated files
Data / Schema Compare Build Tasks MSBuild tasks that can generate scripts as if the user had run the Data / Schema compare UI
Dependency Tree Show the dependencies ( incoming / outgoing ) for selected objects in a new tool window
Static Code Analysis A precursor to the functionality that will be in future versions of VSTS that will allow you to perform Static Code Analysis on T-SQL code.
Wildcard Expansion Automatically expand the wildcard in a select to the appropriate columns.
Fully-Qualified Name Support Automatically inject fully-qualified names when absent in a script
Schema Reporting DBSpecGen functionality for the project system allows you to easily document your database schema.



#    Comments [1] |

Enthousiasm for Microsoft technology

Rocky has an interesting post responding to something Martin wrote about.

I'm afraid I do have to agree with Martin a little.

I've run a huge usergroup for the last couple of years (2500+ developers, www.sdn.nl) with members from all corners of development world and the enthousiasm displayed by a Delphi or FoxPro developer is much larger than a .NET developer. Don't get me wrong, there are people out there who are very enthousiastic about all Microsoft technologies, I'm one of them, but if I'd have to throw a ball park number out there, then I'd say that 50% of the Delphi programmers are active in communities whereas only 5% of the Microsoft developers do more than 'just show up for work'.

I always like to say that in any profession you have workers and you have craftsmen. Workers come in for the paycheck. Craftsmen take pride in their work, love it and go the extra mile. The Microsoft arena perhaps has ratio wise a larger % of workers. Why? Anyones guess. Perhaps the whole certification processes and quality of tooling make it easier to be a worker in Microsoft land then in other products..

Anyway, that's my 2 cents.

#    Comments [0] |
# Thursday, 31 May 2007

Another Blomsma venture: PetroNomics

I just discovered that my uncle, Evert Blomsma, has put up a brand new website for his company: PetroNomics.

#    Comments [0] |

Team Foundation Server Comparison by Forrester

Forrester has published a report called Software Change And Configuration Management, Q2 2007.

Interesting read for anyone looking at ALM tooling.

#    Comments [0] |

Amazon Web Services

I've been doing some technical writing for Amazon Web Services, so now I'm trying to keep an eye on what's going on at their shop.

They've just announced a price cut got their Amazon S3 service.

Read more on: http://www.amazon.com/gp/browse.html?node=16427261


#    Comments [0] |
# Wednesday, 30 May 2007

Microsoft Surface

I ran across this on Bink.nu. It's amazing! I want one!!!

Go to: http://www.microsoft.com/surface/

#    Comments [1] |
# Tuesday, 29 May 2007

WANScaler Client Delivers LAN-Like Application Performance to Mobile Users

"Citrix Systems, Inc. (Nasdaq: CTXS), the global leader in application delivery infrastructure, today announced the availability of a new software-based WAN optimization client that extends LAN-like application performance to mobile employees, even when they are working outside of branch office locations. In an industry first, Citrix will also demonstrate the new Citrix WANScaler™ client working seamlessly with its market-leading Citrix Access Gateway™ SSL VPN solution at Interop Las Vegas 2007 this week, eliminating the traditional trade off between fast application performance and secure application access for mobile employees."

Read more: http://citrix.com/English/NE/news/news.asp?newsID=657501

#    Comments [0] |

More on SQL Server Service Broker

In earlier posts I already blogged about creating some simple queuing solutions with SQL Server Service Broker. Last week I spend some time actually implementing my research in a customer project and of course ran into two 'interesting' issues.

  1. It is possible for the Service Broker to somehow die on you, whilst appearing to be up and running and with RETENTION=ON sent message appear to be in the queue.

    When using the SQL Profiler it becomes clear that messages don't get processed because the Service Broker is not enabled.

    You can use the following statement to enable Service Broker:

    alter database PFA_DATA set ENABLE_BROKER

    I had to do it on two machines and on of them gave me the following error:

    Msg 9772, Level 16, State 1, Line 2
    The Service Broker in database "PFA_DATA" cannot be enabled because there is already an enabled Service Broker with the same ID.
    Msg 5069, Level 16, State 1, Line 2
    ALTER DATABASE statement failed.

    So instead I used:

    alter database PFA_DATA set NEW_BROKER


    After this the Service Broker was up and running and message started getting delivered.

    If the query takes extremely long to complete restart SQL Server and try again.

    One potential cause for this is when you restore a database.

  2. In my earlier post I just blatantly used WITH CLEANUP to avoid getting EndDialog messages.
    The documentation however states:

    Remove all messages and catalog view entries for this side of the conversation without notifying the other side of the conversation. Microsoft SQL Server drops the conversation endpoint, all messages for the conversation in the transmission queue, and all messages for the conversation in the service queue. Use this option to remove conversations which cannot complete normally. For example, if the remote service has been permanently removed, you use WITH CLEANUP to remove conversations to that service.

    So use this sparingly.

    I've discovered a much cleaner way to handle it.
    When sending a message you can use "END CONVERSATION @dialog" to specify that as far as the sender is concerned the dialog is over. In other words: a fire and forget message.
    When the receiving side of the conversation receives the messages and performs its "END CONVERSATION" statement, Service Broker will detect that no acknowledgement (EndDialog) needs to be send.

#    Comments [1] |
# Wednesday, 23 May 2007

Beta 1 of Team Development with Visual Studio Team Foundation Server Guide

Today Microsoft released the Beta 1 of Team Development with Visual Studio Team Foundation Server Guide.  It's the Microsoft playbook for TFS.  This is the guide to help show you how to make the most of Team Foundation Server.  It's a distillation of many lessons learned.  It's a collaborative effort among product team members, field, industry experts, MVPs, and customers.

Contents at a Glance

  • Part I, Fundamentals
  • Part II, Source Control
  • Part III, Builds
  • Part IV, Large Project Considerations
  • Part V, Project Management
  • Part VI, Process Guidance
  • Part VII, Reporting
  • Part VIII, Setting Up and Maintaining the Team Environment


  • Introduction
  • Ch 01 - Introducing the Team Environment
  • Ch 02 - Team Foundation Server Architecture
  • Ch 03 - Structuring Projects and Solutions
  • Ch 04 - Structuring Projects and Solutions in Team Foundation Server
  • Ch 05 - Defining Your Branching and Merging Strategy
  • Ch 06 - Managing Source Control Dependencies in Visual Studio Team System
  • Ch 07 - Team Build Explained
  • Ch 08 - Setting Up Continuous Integration with Team Build
  • Ch 09 - Setting Up Scheduled Builds with Team Build
  • Ch 10 - Large Project Considerations
  • Ch 11 - Project Management Explained
  • Ch 12 - Work Items Explained
  • Ch 13 – MSF Agile Projects
  • Ch 14 - Process Templates Explained
  • Ch 15 - Reporting Explained
  • Ch 16 - Team Foundation Server Deployment
  • Ch 17 - Providing Internet Access to Team Foundation Server
#    Comments [0] |
# Tuesday, 22 May 2007

In and Out of Orcas

A very interesting read which gives a nice overview of Orcas and beyond. Go to: http://reddevnews.com/features/article.aspx?editorialsid=722.

#    Comments [0] |

Office 2007 documents in Office XP and 2003

If you haven't upgraded to Office 2007 yet and have started to receive Office 2007 documents in the mail, then you will probably want to download the "Microsoft Office Compatibility Pack for Word, Excel, and PowerPoint 2007 File Formats".

This will allow you top Open, edit, and save documents, workbooks, and presentations in the file formats new to Microsoft Office Word, Excel, and PowerPoint 2007.

Go to: http://www.microsoft.com/downloads/details.aspx?FamilyId=941b3470-3ae9-4aee-8f43-c6bb74cd1466&displaylang=en

#    Comments [1] |

Strangeloop - ASP.NET on steroids

As software developers we strive to build our webapplications as robust and performant as possible. Given a server and proper bandwith connection you know all the tricks to make the application handle an optimum load of users. More often than not the server and available bandwith are a delimiting factor. Strangeloop has analysed a number of performance problems when running ASP.NET sites and offers a non-intrusive hardware solution to make your site run fast: the Strangeloop AppScaler.

So if you're interested in improving the performance of your ASP.NET site, without having to dig into the code, then the AppScaler is worth a look.

#    Comments [0] |