April 2004 Entries

Performance and Scalability Guide Released

The patterns and practices team has released the definitive work on performance and scalability for .NET. I can’t help but mention that if you look … really hard … near the bottom of the front page … you’ll see I'm listed as an external reviewer. I had a blast reviewing chapters – this guide is dense with tips and tricks on everything from ADO.NET to XML.

Using Reporting Services GetReportParameters web method

A question today on how to get the valid values for a report parameter via the web service API when a query specifies the valid values. (Whew - clunky sentence). To do this you can use the GetReportParameters web method. First, be wary of a small bug in the documentation where the order of parameters are incorrect. Not a big problem with intellisense, though. Example: ReportingService rService = new ReportingService(); rService.Credentials = System.Net.CredentialCache.DefaultCredentials; string historyID = null; bool forRendering = true; ParameterValue[] values = null; ...

Healthcare IT: Self inflicted wounds

I’ve been in and around quite a number of Hospital IT departments over the last 18 months. I’ve selected one practice that separates the good hospital IT department from the bad: the good ones occasionally hire people from outside the healthcare industry, the bad ones never do. Scoble suggests a visit from the PAG group for one Hospital IT department. This is exactly what some hospitals could use, that’s why it will never happen at the places that need it most. Some industries deem themselves as being significantly different from any other industry and only hire from the pool of...

SQL Server Best Practice Analyzer

I took the SQL Server 2000 Best Practices Analyzer Beta for a spin this evening in a virtual PC. The download and install worked without problems. The installation needs to create a database to store rules and report results – the default name is sqlbpa. After registering a SQL Server to analyze I went to the Best Practices screen, where I selected “Create Best Practice” and began to look through the available rules. Rules fall into the following categories: Backup and Recovery Configuration Options Database Design Database Administration Deprecation Full-Text General Administration Generic T-SQL Yukon Readiness Each category contains a...

FindControl

I know using FindControl in ASP.NET is not always as easy as it would seem on the surface. Particularly when you start looking for controls inside of a DataGrid or a Repeater. This article should help out.

Connections & Assumptions

I never realized you bypass the network protocol stack when connecting to SQL Server on the the same physical machine. At least you CAN bypass the protocol stack if you use the correct settings. I learned this from Ken Henderson's SQL Server Connection Basics on MSDN. Excerpt: You can indicate that the shared memory Net-Library should be used by specifying either a period or (local) as your machine name when connecting. You can also prefix your machine\instance name with lpc: when connecting to indicate that you want to use the shared memory Net-Library. I regularly connect to a SQL instance on my desktop...

Ode To Longhorn

Transmissible data flowing out violet blue ports,My types are all hidden, only schemas export. Pixilated scenes replaced by vertex shaders,My side-bar includes fancy blog aggregators.With left angle brackets I declare gradient fills, We are long past the choice between red or blue pills. Longhorn release: how long will you be?I need to start planning my new hardware spree.

Blackouts and race conditions

Every time I write multithreaded code I worry. Perhaps it is because I read stories like the final report on the U.S. / Canadian blackout of August 2003. The problem was a race condition: "There was a couple of processes that were in contention for a common data structure, and through a software coding error in one of the application processes, they were both able to get write access to a data structure at the same time," says Unum. "And that corruption led to the alarm event application getting into an infinite loop and spinning." Seems simple, but consider: "We text...

Bugs, Brakes, and Reporting Services

I’ve been playing around with the web service API of Reporting Services again and I seem to have stumbled across a little bug. I plan on posting some code soon to show how to programmatically create a subscription – it took much longer to get something to work than I had originally thought and only part of that time was wasted on the bug. While working on this I downloaded the Reporting Service Documentation Update to help out. I’ve noticed a number of documentation updates for 2004 products released this month (Biztalk 2004 has 1, 2, 3 updates this month). I’m...

Wix Nixes Orca

Maybe 10 months ago I downloaded Orca to tinker with an MSI file on a setup and installation project. While it was nice to twiddle inside of the MSI tables with Orca (ever read the story behind Orca?), the experience is nothing like Wix, which can decompile an MSI file into XML. This is great, because I can now check installations into a source repository as a text file and do DIFFs if needed. Of course, you can also compile an XML Wix file into an MSI, which means no more fiddling around in a GUI to make changes in an opaque file for you. For some...