October 2005 - Posts
PromptSQL is one of those products that you see and say to yourself, "If Damian Mehers can create Intellisense for Query Analyzer and Visual Studio for SQL code entry, how come Microsoft can't?" Don't even worry about the reason, just be thankful that someone built it! Damian Mehers is the Database Geek of the week. From my interview:
Doug: What do you think about using VB.NET or C# for stored procedures, functions and triggers? How do you think CLR stored procedures will fit in?
Damian: I’m with those who say there is a lot of room to use C# for the things SQL is not good at; string manipulation is a primary example. I don’t think we should look to replace SQL stored procedures wholesale with C#.
Read the entire inteview here.
(Posted from the Patient Library of Memorial Sloan-Kettering Cancer Center in NYC - Isn't technology grand?)
So, I have a strange complication from last year's surgery (which was a Whipple Procedure - not for Pancreatic Cancer, for a pre-cancerous condition). It is Chylous Ascites. I have fat (Chyle) leaking from my lymph system, probably due to some injury the lymphatic system took during the surgery.
Those who have seen me recently will find this amusing/ironic: I need to eat totally no fat. None. Since I have lost lots of weight from the surgery, I need to get IV feedings while I give the lymph system time to heal, so that is what I am doing over the next week - being admitted to the hospital to establish TPN (Total Parenteral Nutrition).
The good news is that these days, even in the hospital, if you want, you can get access to email and the Web. I have my Pocket PC Phone, as well as a PC in the recreation area. Also fortunately, I will not be having any surgery or other procedures that would wipe me out, and so I will likely have a chance to catch up on all the reading I have been falling behind on. I have Chris Sells' new book Programming Windows Presentation Framework (AKA Avalon), as well as a number of other books.
Its always something...
Linchi Shea is an author as well as a SQL Server MVP specializing in SQL Server administration in the enterprise. Here is one of the questions from the interview:
Doug: What do you think about possibly using VB.NET or C# for stored procedures, functions and triggers? Especially in the enterprise, how do you think CLR stored procedures will fit in?
Linchi: I think it’s an exciting feature. People may misuse it, but that should not stop us from using it properly to do great things. Knowing how powerful regular expressions can be from Perl, I’d welcome the disappearance of all those hellishly messy T-SQL expressions for parsing even simple strings. A lot of DBAs are worried about what this may do to their production servers, and they may not have the time or skill to prevent crappy stored procedures from slipping onto their production servers. But resistance is futile!
My guess is that CLR procedures will march into enterprise data centers no matter what. If they are not from internally developed applications, they’ll get there via vendor packages. If a critical business needs a package to make money, who’s going to say no if the package happens to use some CLR procedures in SQL Server? If you can’t fight them, join them! That’s what I’ll do.
Here is the complete interview.
Kent Tegels is this week's Database Geek of the Week. Kent is the Geek's Geek in many respects. He takes part actively in the community, especially with his blog, Enjoy Every Sandwich. Here is Kent's take on Blogging:
Doug: Why do you blog, and do you think blogging has changed the face of software development?
Kent: Another boss I had now signs his email with a quote from Aaron Copland: “…the composer who is frightened of losing his artistic integrity through contact with a mass audience is no longer aware of the meaning of the word art.” It is no different for developers. The public performance of our art is our programs, but the back channel of critics and growth is the community.
Blogging is a powerful channel that has a deep influence on the art. But it is not the only one. There are also user groups, mailing lists, news groups, forums, instant messaging, code camps, instructor lead training, and so on. So you can’t trivialize it as “surface effect.” All channels have an influence at many levels.
A more recent mentor of mine nailed it when he said there are two types of bloggers: reflectors and generators. Reflectors refer to the works of others and maybe add some value by commenting on the referred-to posts. Reflectors influence by amplifying the work of generators, who publish their works and ideas as exemplars for others. Nobody who blogs is exclusively one or the other.
I blog to generate new discussions that are propagated through the reflections of my readers. I still read more than 1,000 blogs a day and frequently point out things that should be reflected to the community. That’s not why I started, though. My original reason for blogging was to practice writing when I wasn’t writing books or articles. It takes daily practice to grow as a writer, just like you have to write code every day to grow as a developer.
My former boss, Ted Kooser, and my mentor, Dan Sullivan, have proven themselves right. I hope to achieve a similar degree of success by implementing the same patterns.
The whole interview is here.
I am testing a Beta 2 application in a much more recent build. Turns out there were a number of problems. First, a user control that is dynamically loaded caused a compilation problem, saying the class the user control is based upon was not found. Part of this problem is related to how an ASP.NET 2.0 application is compiled. Rather than building the application into a single DLL dropped into the \bin folder, ASP.NET 2.0 compiles one or more pages into DLL's in a non-deterministic way. So, if the UserControl class ended up being compiled into the same DLL as the page using it, all is well. However, if the user control ends up being compiled into a different dll than the page, the page will not see it. I thought I had resolved this (and in fact, the app did compile in Beta 2) by adding a @ Reference directive for the user control. There was no declarative use of the user control on the page, so initially I did not have an @ Reference directive (and foolishly, had not registered the user control in Web.Config).
So, why did the @ Reference directive not work in the latest version of ASP.NET I am using? Apparently, my anal-retentive need to organize directives, placing the @ Register directive below the @ Page directive, was the cause. Moving the @ Register directives above the @ Page directive fixed the problem, and the compile proceeded further.
The final problem (one that I shake my head at) is that the casing of the name of the class needed to change. My declaration for the class is this:
public partial class EditLookupData : System.Web.UI.UserControl
However, I needed to reference it on a page as follows:
Note the case difference. I got the all lower case casing from Intellisense.
The code now compiles, though I have not run it yet (I am traveling and have not installed the database on the machine I am playing with). More to follow as I actually run the application, likely tomorrow.