October 2002 Blog Posts
Alan Cooper Interview.

Visual Studio Magazine has an interview with Alan Cooper. An excellent read, Alan talks about the differences between engineers vs. craftsmen, the role of software architects, XP vs. RUP, and his opinions of the .NET platform. Highly quotable:

  • The role of architects: "Architects synthesize people, purpose, and technology. If you just take people and technology, you have art—entertainment. If you just take technology and purpose, it's engineering. And people and purpose without technology is psychology."
  • On complexity & components: "Software construction has often resembled digging the Panama Canal with a teaspoon. You can make the walls of the canal perfectly straight, but it takes forever."
  • How .NET provides portability: "... by providing cleavage planes. It's like cutting a diamond. You can't just cut one; you search for the natural cleavage planes in the diamond's crystalline structure. Likewise, you have to find the cleavage planes in the software and break it in two. Those cleavage planes, of course, are APIs and the CLR."
  • On competition: "A Microsoft API such as the CLR allows an opening for other language vendors, as does offering Web services through XML. It means the days of getting all your services from one vendor—or even a single app—are numbered."

[Peter Drayton's Radio Weblog]

This most certainly is a very interesting and thoughtful article. I've been struggling with the contradictory approaches of RUP/UML vs. Extreme/Agile Programming over the last few weeks. This week I've gone back to basics with UML and started relearning and redeveloping this skill set anew. Some things that didn't really seem to sit well before are making a lot more sense now. What Alan Cooper says about the two approaches makes sense, but I wonder about a happy medium where RUP takes care of a good general "big project" design approach, but XP/AP solve some of the smaller sub-problems that they're good at too. Maybe that's not practical and would lead down a road of problematic boundaries. Don't know.

"Where is it carved in stone that we have to use the same method for all projects? A carpenter can build a house just fine, but you can't use carpenter skills on an aircraft carrier. On the other hand, if you're used to building aircraft carriers, with giant metal shops building giant subassemblies, then you'll try to build a small house using giant slabs assembled in a welding shop. This doesn't mean what we know about building houses or aircraft carriers is wrong."

This applies to more things in life than programming. Choose your tools carefully (as well as your battles ;o) ).

HOW TO: Use the ASP.NET Utility to Encrypt Credentials and Session State Connection Strings

This step-by-step article describes how to use the Aspnet_setreg.exe utility to encrypt credentials and session state connection strings.

Essential .NET Security. Keith Brown, fellow DM instructor and security geek, is writing Essential .NET Security online - a draft ASP.NET chapter kicks things off. [Peter Drayton's Radio Weblog]

A great overview of IHttpModule/IHttpHandler and ASP.NET authentication.

ADO.NET DataSet Helper Articles: a sequence of MSKB articles describing how to code a variety of DataSet operations using a helper class.

I've been moving my site to a different provider over the last couple of days. I'm using webhost4life.com because they include ASP.NET hosting and a SQL Server 2000 database, which I want for some current projects. Prices seem reasonable too. Anyhow, if this works then I've got it set-up and working with Radio.

DOTNET-WEB [Drew Marsh]: Server.Transfer in ASP.NET

> Is there a way to pass an object reference through the request object,
> or some other way, to an ASP.NET page you are transferring control to
> through Server.Transfer?

Yup, by using the Items collection on the current HttpContext like so:

<codeSnippet language="C#">
HttpContext.Current.Items["myKey"] = "myValue";

How To Make Google Your Browser Default Search Engine

I spent some time looking for this - it isn't the complete solution: I still don't know how to make Internet Explorer search Google using autosearch - there is some mention on Usenet of selecting "Google Sites" in the customise box, but I don't have that option.

Acronym Shortage Threatens Web Services Community

Web services developers across the globe pounded keyboards in frustration today over the increasing scarcity of cool acronyms. Mirroring the domain name gold rush of the nineties, each passing week sees the number of funky and clever acronyms reduced. Several leading Web services companies have called in trauma counsellors to assuage the fears of skittish architects.

To store "hidden" data between ASP.NET page invocations:

public string SomeProperty
    get { return (string) ViewState["myprop"]; }
    set { ViewState["myprop"] = value; }

[ Adam Sills - DOTNET-WEB]

Topical Reference. Douglas Adams. "I love deadlines. I like the whooshing sound they make as they fly by." [Quotes of the Day] [Peter Drayton's Radio Weblog]
Regular expression library - a library of commonly used regular expressions.

ASP.NET Default Buttons

This non-visual control allows you to assign a button to the "enter-pressed" clientside event of input controls. This makes it so that when the user presses Enter while in a textbox, the form will postback, and the serverside click event of your button is fired. The is done on a per-input-control basis. In a visual designer like Visual Studio or Web Matrix, this control will add a "DefaultButton" property to the properties window of the other input controls on the form. There are sample files showing how to set it up with a text editor.

Particularly useful within user controls where you may end up with multiple user controls per page, each preferring a different default action.