Dave Burke - A freelance .NET Developer specializing in Online Communities

A freelance .NET Developer
Posted: by

Comments

Bill Rodenbaugh said:

Heres a fun way to make sure you are actually using what you instantiate.

private UtilsDB _UtilsDB;

protected UtilsDB oUtilsDB
{
get
{
if ( _UtilsDB; == null )
_UtilsDB = new UtilsDB();

return _UtilsDB;
}
}

--bill
bill@gamespy.com
# June 21, 2003 12:40 AM

Dave Burke said:

Whoa! Beauty in simplicity. Never woulda thought of it. Thanks, Bill.
# June 21, 2003 8:27 AM

julie said:

Holy Crap dave! First you actually used the comment function instead of emailing me directly. Next thing I know you're here on the blogs! You didn't even tell me you were gonna do it. Geeze. Very cool.
julie
# June 21, 2003 9:16 AM

Roy Osherove said:

huh?
# June 21, 2003 3:14 PM

Daniel Nolan said:

Being from "quaint" old england I generally spend all day drinking tea. With the occasional coffee thrown in. I've taken a liking to the lemon/vanilla cola's they've just released over here though, mmmm.
# June 21, 2003 4:05 PM

Phil Scott said:

Best bet for me is the ol' stand bye, Mountain Dew. I don't like the flavor and sometimes it gives me an upset stomache.

I can drink Kool Aid way to fast. I would spend 10% of my time filling up my cup and the other 10% using the facilities. Mountain Dew on the other hand is a little too tough to just chug like kool aid.

As for food, you cannot beat chex mix. Mmmmmmm chex mix.
# June 21, 2003 4:06 PM

Ken said:

All about the Ritz Bitz and either Barqs Root Beer or Dr. Pepper. This isn't especially health though, so sometimes I just drink a bunch of water... and water makes for a lot of potty breaks which are good to recollect your thoughts on the problem at hand.
# June 21, 2003 8:51 PM

TrackBack said:

Jim Meeker
# June 22, 2003 12:07 AM

TrackBack said:

Dave Burke
# June 22, 2003 12:07 AM

julie said:

styrofoam cups - GROSS. I work at home too. Nearest Dunkin' Donuts is 12 miles. If I need to get outta the house we have the best bakery in Vermont in our town (foothills bakery in Fairfax) and I bring my yuppy VPR (vermont public radio) travel mug and fill it up and get a yummy scone. Otherwise, we use our groovy Chemex coffee pot to brew up some Green Mountain Coffee which I drink out of one of the many beautiful hand made pottery mugs I have collected (or made myself) over the years. Really Dave! Styrofoam. Blecch!!
# June 22, 2003 9:57 AM

Neil said:

I have been hearing the occasional complaints about web apps like this for the last couple of years. I too believe that for complex applications, rich clients are far better than web clients. Unfortunately the majority of the industry appears to think otherwise.

Neil
# June 23, 2003 11:55 AM

Darren Neimke said:

Dave, that pretty much mirrors my own experiences :-)

I think that I've always been a big fan of server controls - and in particular the databinding behaviour - since reading the early Dino Esposito books.

The big thing for my development over the past 12 months has been the emergence of a clear "style" of architecture. As such, there's a much cleaner separation of logic throughout the layers of my applications.

Thanks for the post; it's always good to read about shared experiences :-)
# June 24, 2003 1:17 AM

Darren Neimke said:

I should add... one area where our paths have diverged is that 12 months ago I was writing in C# and VB, whereas today I've dropped C# altogether. What was the catalyst for your move away from VB? Was it employer induced or self-regulated?
# June 24, 2003 7:14 AM

Dave Burke said:

Its funny, really. I started writing web apps in 1995 using PHP2, then PHP3. PHP is very C-like. Even in the 80's I had an interest in the more economic syntax of C, but could not get over the malloc/printf/--> hump.

I started in VB.NET because VB syntax was familiar and I needed as much help as possible getting a handle with .NET. After a year I made the switch. I have no prejudice against VB.NET. I LOVE the VS.NET editor support for VB.NET compared to C#.NET support (which is still okay, but not as good as VB.NET to me.) I am also impressed by how many cool developer studs continue to work in VB.NET.

I do like the lesser code factor in C#, if only for aesthetic reasons. Its...uh, prettier. I really don't have any stronger feelings about the differences than that.

I work for a smaller company, so I have the privilege of making those decisions. I'd be interested in why you stayed with VB.NET. (You don't have to be as wordy as my comment here!)

Good talkin' to you.
# June 24, 2003 8:19 AM

Darren Neimke said:

My reason for choosing VB was probably due mostly to the fact that my employer decreed it :-)

Once that choice was made for me I decided that I'd devote myself 100% to that language rather than splitting my learning across 2,3 or more languages.

To borrow a concept from Ben Elton... I think that, for many developers, VB is the language that they love to hate, then they learn to live with it, finally they hate themselves for loving it. :-)

For me, it just feels good to have the knowledge that you are able to use your language of choice to do anything that you want -- unrestricted. I'm just now starting to feel that sensation myself with VB!
# June 24, 2003 6:22 PM

Dave Burke said:

"...devote myself 100% to that language." Absolutely, Zen and the art of VB.NET. "...hate themselves for loving it." Good one! "[getting to the place as a developer]...to do anything that you want -- unrestricted." Man, I want to remember that, as there are always the ongoing choices to be made: to do what I have no experience doing, requiring google, msdn, junkies, code project, etc, etc., or to take the familiar approach, get the job done, and not grow. Thus the d.o.t.d. mentality and why this blog stuff is such a motivator. "What did I LEARN today that I can record on my blog?" or "What did I take time away from banging out code for my employer to learn today for ME?" When there's no d.o.t.d., chances are good there's been just typing going on. Then you die.
# June 24, 2003 9:59 PM

Darren Neimke said:

> to do what I have no experience doing,
> requiring google, msdn, junkies, code
> project, etc, etc.,

I think that you omitted the most significant (IMHO) resource - the Starter Kits. If I had a single message for developers it would be, forget the shotgun approach of Google and Co. *until* you've uncovered the jewels from the StarterKits.
# June 24, 2003 10:45 PM

Dave Burke said:

When I say "Google, MSDN, etc" I wouldn't use a shotgun approach as a description. It's always a very narrow, focused search, which I've found to be unique to .NET. In the past I could read chapters on a subject, say, MSMQ, or, in the case of COM+, several books before getting dirty and have to use the information. In .NET everything has speeded up and I need information on this very particular issue today. Then I code for a while and need a particular bit of info on a particular issue again. This is why Google's Advanced Groups Search Page is my home page.

Would you please be so good to tell me what you referring to in "the Starter Kits." Do you mean the Walkthroughs and Getting Started guides in VS.NET? Thanks.
# June 24, 2003 11:58 PM

Darren Neimke said:

The StarterKits that I'm referring to are the ASP.NET Starter Kits here:

http://www.asp.net/Default.aspx?tabindex=9&tabid=47

I can guarantee (actual guarantee may not be valid) that any of the fundamental, standard features that a developer would need to develop in a *normal* modern web application can be learned by studying the architecture and tips-n-tricks in those applications.

Features of those apps that make them a good learning tool are:

- they have been developed and scrutinized by experts
- they come in C#, VB and JScript
- they come in either VS (code-behind) or inline version
- they come with 30 page architecture documents
- they have forums to discuss issues

Somehow people are missing the Starter Kits and I'm not really sure why. Too often I see a developer travel down the path of developing a complex solution for something that is abundantly covered in the Starter Kits.

I can say - in all honesty - that I rarely, if ever have to google a solution for 95% of my dynamic, data-driven web application needs because I can fall back on the knowledge that I've gained by having a deep understanding of how the StarterKit applications were built. That's the truth!

What I can agree with though, is that for an MSMQ, COM+ etc., solution, I most certainly would need to ask Mr. Google. But, the StarterKits cover all of my ADO, Server Controls, and report building needs.
# June 25, 2003 12:46 AM

Dave Burke said:

Well I certainly cut my .NET teeth (like thousands of other guys) on IBuySpy over a year ago. I've seen these particular packages, but never pursued them as an object of study. Definitely good advice though! Thanks, Darren.
# June 25, 2003 12:57 AM

TrackBack said:

ScottW's ASP.NET WebLog
# June 25, 2003 1:06 AM

julie said:

Dave-
check out the Data Access application block and some of the other app blocks here:

http://www.microsoft.com/resources/practices/Audiences.asp#dev
# June 25, 2003 1:38 AM

Dave Burke said:

Now that's a whole bunch of abstracts! :-)

Thanks for the reminder.
# June 25, 2003 8:43 AM

Greg Robinson said:

+1
# June 25, 2003 3:03 PM

Daniel Turini said:

Regular Expressions are not subject to this kind of error...
# June 27, 2003 7:45 AM

Dave Burke said:

Thanks, Daniel. Will definitely spend some quality time with the regex factor.
# June 27, 2003 8:43 AM

Kit George said:

Sorry to see the confusion here. I do personally believe the API is intuitive, but I want to see if writing this slightly differently can help. I am a bit confused that subtracting the position of the start of the number wouldn't work, since it should.

Here's a rewrite:
string year = "2003";
string s = <your http string>;
string search = "/" + year + "/";
int i = s.IndexOf(search) + search.Length;

if (i >= 0) {
string pruid = s.Substring(i, s.IndexOf("-") - i );
}

This should work just fine

Console.WriteLine(pruid);
# June 27, 2003 9:22 PM

Dave Burke said:

Kit, you made that substring method a beautiful thing with the additional two lines of assigning the /year/ string to a variable and determining its length. My "less lines are best" philosophy sometimes prevents me from a more simple approach. Thanks very much for the lesson.
# June 28, 2003 8:05 AM

Alex Hoffman said:

Your opinion is more important than the "top shelf" shakers who have been unable to agree even a simple specification like RSS.

But look at it from a laymans perspective. With all the technology and all the opportunities, all developers can focus on are weblogs?

Rather than be the next big thing, I believe the value of weblogs is likely to diminish as noise overtakes real content. Isn't that happening now?

Yes, RSS will grow in popularity as a mechanism for the syndication of information - but lets keep it in perspective.
# June 28, 2003 6:43 PM

Kjell-Åke Andersson said:

Have you tried .LastIndexOf ?
# June 30, 2003 10:15 AM

Don McNamara said:

I agree with Daniel.. (I am not a regex expert, so there may be a better way...) Regex isn't always the most readable, but I still like it.

private string ExtractPruid(string url)
{
const string pattern = @"http://[a-zA-Z0-9\/]+\/(?<pruid>[0-9]*)\s*-\s*.*";
return Regex.Match(url, pattern).Groups["pruid"].Value;
}

string s = @"http://server/workspace/Documents/Projects/2003/20026969 - Project Description";
MessageBox.Show("(" + this.ExtractPruid(s) + ")");
# June 30, 2003 10:31 AM

Frans Bouma said:

"I for one would rather be responsible for understanding these basic processes and occasionally finding humor in doing something stupid than to use a code generator approach and not have a sound understanding in .net coding principles."
I assume you compile your code with your own C# compiler as well? ;)

Not Invented Here-syndrome all over the place, m8.
# July 2, 2003 3:12 AM

wan mohd afendi said:

I have always using #region . But i'm not put the methods, properties for the region description. I think it's good idea
# July 2, 2003 9:01 AM

Drew Robbins said:

Great idea. I do the same thing with my ASPX files when appropriate.
# July 9, 2003 12:37 AM

Darren Neimke said:

Dave, this is what I came up with last week:

http://weblogs.asp.net/dneimke/posts/9689.aspx
# July 9, 2003 8:44 AM

Chris Frazier said:

"sign from God telling me to get away from curly brackets ..."?

So you'll be using VB.NET then?<g>
# July 11, 2003 11:49 AM

Greg said:

We just got back from 8 days in Salvo, NC...what a joy
# July 11, 2003 12:56 PM

Roy Osherove said:

I don't understand why this has not worked for you. The tables names are generated only to be used later inside the TableMappings colection of the dataset.
I'd love to see the code after you applied the 'fix' that did not work for you. perhpas something was missed? Also, I'd want to see the code that calls the FillDataset Method and failes.
send it over to royo@iserializable.com
# July 30, 2003 4:43 PM

Roy Osherove said:

PS:
Execuse the typos. it's almost midnight:)
# July 30, 2003 4:53 PM

Ben Richardson said:

Could you post your port of the v2.0 application block for v1.0 of the Framework somewhere for those of us that are lazy?
# July 30, 2003 7:20 PM

TrackBack said:

# July 30, 2003 10:06 PM

Ben Richardson said:

Thanks!!
# July 30, 2003 11:10 PM

HumanCompiler said:

AFAIK, it's usually all the history storage and what not getting left around, clipboard items, etc.

Good tip! :)
# July 31, 2003 1:20 AM

Darrell said:

Actually, Photoshop grabs a certain percentage of available RAM when opened to make it work faster. To decrease the amount of RAM used by Photoshop (v6), go to Edit/Preferences/Memory & Image cache, and change the percentage of Used by Photoshop to a more manageable number.
# July 31, 2003 1:14 PM

sirshannon said:

also make sure to install the patch for PS6. It solved the memory leak I was having here.
# July 31, 2003 9:03 PM

TrackBack said:

# August 5, 2003 12:06 PM

TrackBack said:

# August 14, 2003 10:49 AM

Shannon J Hager said:

the free textbox is available at http://revjon.com
# August 30, 2003 12:37 AM

Kris said:

Check also http://www.fredck.com/fckeditor/

Way more features then FTB
# August 30, 2003 2:01 AM

jim blizzard said:

Yikes! No! Do so with care! (Better yet, don't do it at all!) USERNAME="SYSTEM" gives ASP.NET too much power. It runs as a system account (super user in the Unix world), which means that a hacker or a poorly written app could do bad things. If you need more capability, use impersonation, etc. There are better (i.e., much less risky) ways.
# August 30, 2003 2:56 AM

Dave Burke said:

Runs as SA??? I thought it ran as the local ASPNET account. Thanks, Jim! I'll look into it.
# August 30, 2003 10:35 AM

Robert Scoble said:

I'm trying to help you code more! :-)
# August 30, 2003 11:04 AM

G. Andrew Duthie said:

As Jim points out, you most definitely don't want to "solve" your data access problems by running the ASP.NET worker process as SYSTEM. SYSTEM is an administrator-level account (which is why it "solves" your data access problem, because the Administrators group is added to SQL Server by default, and may also solve network access issues as well).

Given that both ASP.NET v1.0 and v1.1 default to "machine" (which is the ASPNET account on Win2K and XP and the NetworkService account for IIS 6...note that when IIS 6 is running in native mode, the <processModel> element is ignored), the problem with your upgrade must lie somewhere else. I would strongly recommend troubleshooting the actual cause of the problem rather than changing the ASP.NET process identity.
# August 30, 2003 12:44 PM

G. Andrew Duthie said:

BTW - During the beta for ASP.NET 1.0, the default process identity *was* SYSTEM...the team decided to change it at the last minute because it presented a significant security risk if the ASP.NET process was ever compromised.
# August 30, 2003 12:45 PM

G. Andrew Duthie said:

As with the process identity setting, changing this default in web.config (or worse, machine.config) is a bad idea. I wrote about this a while back at http://weblogs.asp.net/gad/posts/6496.aspx.

Basically, the problem with what you're doing is that if someone later adds a page to that application that accepts text input, and does not actively filter potentially harmful HTML and/or script input, your application becomes vulnerable to cross-site scripting attacks.

A better practice is to turn off request validation at the *page* level, but only *after* you've implemented filtering on the input fields (including the querystring, etc.). Remember that you should always filter *out* everything but what you want to accept, rather than attempting to filter out only the bad stuff. Writing Secure Code, 2E., by Michael Howard offers great advice on this subject.
# August 30, 2003 1:05 PM

Victor Garcia Aprea said:


If you're planning to turn off the built-in validation you should definitively write your own validation.

Here some detailed info on ValidateRequest:

http://weblogs.asp.net/vga/posts/6329.aspx
http://weblogs.asp.net/vga/posts/7170.aspx
# August 30, 2003 8:17 PM

Brian Desmond said:

I fail to see why this is required. So long as the SMTP virtual server on your Exchange box is configured to allow connections & relaying from the web server's IP, and it allows anonymous authentication, you're good to go. Check the authentication tab of the SMTP virtual server's properties. SMTP on Exchange is IIS.
# August 31, 2003 1:42 AM

Dave Burke said:

This is interesting, Brian. Thanks. My network admin partner handles configuration of the Exchange server and steps in with local server issues, but I will pass this along.
# August 31, 2003 9:51 AM

Roy Osherove said:

Ironically, the link for the ppt you write about seems to be the only one that's broken :(
# September 6, 2003 7:59 AM

TrackBack said:

# September 6, 2003 8:17 AM

TrackBack said:

# September 6, 2003 10:11 PM

HumanCompiler said:

Probably because there's only 24 hours in the day! ;) Those are the two applications that would use it the most. Even the support for .NET in Word and Excel is "hoaky" in how it actually works, IMHO
# September 6, 2003 11:31 PM

TrackBack said:

# September 7, 2003 10:58 PM

Scott Galloway said:

Except, Scott doesn't actually use the DAAB, he seems to use a modified version of the SqlHelper class in .TEXT (0.94) - I have a remodified (is that a word???) avaialble on my site, which lets you use standard DAAB stuff with the class used in .TEXT
# September 7, 2003 11:21 PM

Diego Gonzalez said:

You may want to try the last version (3.0) of the DAAB placed on GDN (http://www.gotdotnet.com/Community/Workspaces/Workspace.aspx?id=c20d12b0-af52-402b-9b7c-aaeb21d1f431)
It does not have static methods, and is prepared to be extended to different ADO.NET provider. And it also defines a couple of new features such as FillDataset, UpdateDataset and a couple of cool overloads.

I can't promess we have removed all the silly comments. :)

DiegoG
# September 8, 2003 3:25 PM

Ali said:

You don't need a while loop. When the background thread completes the operation, the callback is called. The while loop there isn't really doing anything. Also, if the web service calls throws an exception it will be thrown at the EndCoolWebServiceCall, so wrapping the EndCoolWebSericeCall method in a try-catch would be a good idea.
# September 9, 2003 9:10 AM

TrackBack said:

# September 9, 2003 4:03 PM

Steve said:

What do I owe you for the kind words ;)
# September 9, 2003 11:49 PM

Dave Burke said:

Steve, I just tried to send you an email from your dotnetjunkies .text contact page but received a "Mail Not Sent" response message. Don't know why, but the message in a nutshell said that I owe YOU, man.
# September 10, 2003 12:00 AM

Steve said:

I've had a couple people mention that the contact us page isn't working. I'll have to mention it to Donny.

eichert12 at hotmail dot com
# September 10, 2003 1:52 AM

TrackBack said:

# September 10, 2003 4:41 PM

Brian Desmond said:

Yeah, but you can change those drive letters. Just go into Computer Management (start>run>compmgmt.msc or right click my computer, manage), and then go into Disk Management.
# September 10, 2003 9:26 PM

Dave Burke said:

You're right, Brian. It was pretty funny, cause I've got a GREAT server admin guy who as soon as he received me email did just that. I frantically called him to prevent him from doing so, because I knew some things would not work, like SQL Server, for instance, which was configured for OS on one drive and data on another. It didn't. I felt I was too deep into the migration to change the basic configuration of the machine at this point. I wonder what other effects changing the drive letters would have had other than screwing up SQL Server? Thanks for the note!
# September 10, 2003 9:52 PM

John St. Clair said:

I believe this is because the service account that IIS 6 runs under (Network Service) presents an anonymous (NULL) token when accessing network resources. IIS 5 by default ran under System, which presented a machine token. So, even though the URL resources are local, the site's connection will look like an anonymous network user, and be denied. You can get around this by setting the identity on the worker process.

I'd really suggest looking up the "Windows2003 security for developers" article on MSDN, and also the eBook by Microsoft (available in Downloads) on setting up and running IIS6. I think it is part of the IIS6 resource kit, but am not sure. It's about 350 page PDF, and very helpful.
# September 12, 2003 4:15 AM

Dave Burke said:

John, Thanks! I used your advice to explore the service account permissions, assigning "logon as local," and "run as service" in the system user policy. Rebooted and still the permission problems. I again verified the IIS and folder permissions. No dice. In other words, another hour wasted on this. You are probably exactly right and I am missing something. I figure that since it is a ASP-specific issue that for now--until I focus on ASP.NET migration issues--I'll go with the non IIS UNCs which work as a fix. Thanks again. I'll let you know if any breakthroughs occur on this.
# September 12, 2003 4:13 PM

Robert Scoble said:

Oh, have you missed all the hell we're taking for security problems?

http://radio.weblogs.com/0001011/2003/09/12.html#a4608

for instance.
# September 12, 2003 6:00 PM

TrackBack said:

Dave Burke isn't happy with Windows 2003 Server's default security settings...
# September 12, 2003 6:27 PM

Dave Burke said:

Maybe I'm not, Greg. Turn on ASP by default or give me something other than a 404 when its not on, let me write to an IIS folder with a system account (instead of anonymous) if I want to without having to spend hours figuring out how to make it work as it did in W2k, don't make me put quotes around a SLQXML extension mapping and clear the "Verify if File Exists" checkbox to write and XML file with MSXML 4.0, allow me to maintain compatibility with legacy ASP apps by providing CDONTS by default rather than give me a "server object cannot be loaded" error, and so on. I lock my doors at night and I'm sure you do, too. But _I_ lock them, not my landlord.

And Robert, the "hell Microsoft is taking" is, as you well know, for things like yet another buffer overrun security hole, which as Sam was saying, makes it difficult to sell W2K3 to his clients. None of the default security settings I encountered this week have anything to do with the the current poor security perceptions. I want this security climate to pass as much as anyone else, but over-restricting a developer, like over-searching an airline passenger, is inefficient, costly, and a pain. That was the core of my analogy.

Thanks to both of you for your thoughts.
# September 12, 2003 7:37 PM

TrackBack said:

# September 13, 2003 1:31 AM

TrackBack said:

# September 13, 2003 1:32 AM

Vijay said:

Glad to be of help !
# September 14, 2003 3:07 AM

TrackBack said:

# September 14, 2003 9:57 PM

julie said:

Dave-
I applied the latest stuff to my win2k server last night. Besides Friday's critical update, there was one other and another cumulative update for IE as well. Somehow 6 or 8 in all since just a few weeks ago. So when I rebooted, the dos info, where it spins up the bios stuff gave a big red message - something serious was missing. Then I pressed whatever key it said and it asked for a boot disk. Pant pant pant. I powered down thinking "oh great, I trashed my server. This is going to be a long night." Not production server, btw, just my inhouse stuff. So I powered down and started up again and everything started back up normally. End of story. BUt oh god, I know that sinking feeling. And I never trust these things but you just have to bite the bullet. When I updated Rich's Win2K Pro last week it said "back up everything first and do you want to save the old version before the SP is applied". That sure gives you confidence!
# September 15, 2003 8:27 AM

Dave Burke said:

Thanks, Julie. It was good to read your experience to know that the sinking feeling is a shared one.
# September 15, 2003 8:43 AM

julie said:

and I actually had the blue screen of death this mornign on my "daily driver". I have NEVER had a b.s.d on my development box before. I can only think it's these patches.
# September 15, 2003 11:54 AM

Dave Burke said:

Oh, man. That's really ugly. I hope it booted back up for you and you don't see it again!!!

# September 15, 2003 12:27 PM

julie said:

yes, thank goodness
# September 15, 2003 1:30 PM

TrackBack said:

# September 16, 2003 11:58 AM

Onder said:

Hi Dave,

how does it work when i call a stored procedure with more than one SELECT statements?
Does ExecuteDataSet method return more than one table?
I may be doing something wrong but i get an error when i reference the returned dataset's second table!
# September 18, 2003 4:24 AM

Dave Burke said:

Onder, Could you reference the second table prior to using the DAAB? I always thought that a stored procedure could return one table only?... It can execute multiple query statements or execute multiple stored procs, but not return more than one table. Interesting. Maybe I'm wrong about that.
# September 18, 2003 8:10 AM

Onder said:

Dave i solved the problem :)
it was my mistake! It is okay with the daab ExecuteDataSet method returning two tables for a stored proc. with two select statements. No problem.

I my case, it is a good idea for my application to read the contents of two different database tables so i do not read to make two queries to the database.
# September 18, 2003 10:30 AM

Scott Mayfield said:

Absolutely useful... I've been hunting around for this setting off and on for several days now, thinking it would be in the virtual server properties under the application options tab... thanks for the information.
# September 18, 2003 2:13 PM

Logan said:

I've just run into some difficulty with a radio button list - i think it might be a bug, or perhaps i'm missing something. I have a list of 8 buttons all with different text values - but the hidden values of some of the list items are the same. Either 1,2,3,4. When getting the SelectedItem server side, I find that instead of the correct SelectedItem, the SelectedItem is the first Item in the list with the value of the item was selected.
That is to say then that given the list below:

<asp:buttonlist>
1 Dog
2 Cat
1 Bees
3 Drinking
</asp:buttonlist>
If Bees is selected... Server side Dog is returned.

Any ideas?
# September 19, 2003 3:11 PM

Dave Burke said:

I'd love for someone to explain this. I found that once I selected something other than the default, it would never change back to the default on postback. This issue affects listcontrols in general, obviously, so I'd like to "get it" at some point. Sorry I couldn't be more helpful.
# September 19, 2003 3:35 PM

j buxton said:

I was trying to find a way to use NUnit to directly test a .aspx page, and got stumped. Ended up using ASPUnit instead, which seemed to me to be a round-about way of testing my web app.

Looks like theis code might prompt me to revisit NUnit applied directly against a web page. Hmmm... wonder if this calls for a new NUnit-type project on sourceforge?
# September 22, 2003 10:29 AM

Tim Marman said:

"Robusticity"... that's an interesting word :)
# September 22, 2003 10:32 AM

TrackBack said:

# September 24, 2003 1:25 AM

Darren Neimke said:

Dave... you just need to HtmlEncode the output like so:

Label1.Text = "<pre>" + Server.HtmlEncode( sw.ToString() ) + "</pre>
# September 24, 2003 2:30 AM

Oleg Tkachenko said:

Also it's bad idea to use XmlDocument for that - it's pure wasting of memory. Instead create XmlTextReader and give it to XmlWriter - pure streaming pipeline.
# September 24, 2003 5:40 AM

Dave Burke said:

Thank you both for your input. The <pre /> Server.HtmlEncode was exactly what I was missing, and just to get it right, I dropped XmlDocument for XmlTextReader.
# September 24, 2003 9:20 AM

hln said:

I fully agree. Still, if you're trying to learn a standard, having something more intuitive than, say, a text editor that'll build the hierarchy visually to learn - that's a boon.

On writing schema, though, hand-coded and tested with my favorite validator.

hln
# September 25, 2003 12:46 PM

TrackBack said:

# September 26, 2003 8:50 PM

TrackBack said:

# September 26, 2003 9:32 PM

SBC said:

we have to get him down here sometime - http://www.ctmsdev.net/
# September 26, 2003 10:24 PM

Matt Berther said:

Dave,

You can always have VS.NET spit out warnings as errors too. This happens on a per project basis in the Project Properties | Configuration Properties | Treat Warnings as Errors.

This will force you to resovle the warnings prior to a successful compile.
# September 27, 2003 2:03 AM

Roland Weigelt said:

The piece of code you posted is a *good* example for the use of the "With" statement. Unfortunately, each time I read someone's VB source code, I get something like this:

With Foo
.Bar="Hello World"
If (x>y) Then
...
blah blah blah
...
Else
...
blah blah blah
...
End If
DoSomething()
If (y=z) Then
...
DoSomethingElse()
...
End If
.Baz=1234 ' huh, what?
End With

What I'm trying to say: "With" can be a nice feature, but it also tends to be misused. I wouldn't use it anyway, but I also read a lot of other people's code...
I think C# is definitely better off without the "With" statement.

Roland
# September 27, 2003 7:40 AM

Dave Burke said:

Thanks, Roland. I hadn't ever used it like that, but given your example I would certainly agree on the potential for "with" being misused and for muddying up code rather than reducing it.
# September 27, 2003 8:16 AM

Dave Burke said:

Great tip! I'll definitely make the change and see how it goes.
# September 27, 2003 8:17 AM

Scott Galloway said:

You could make a little variation of this as follows:

private void ClearTxtMyboxScript(TextBox theTextBox)
{
theTextBox.Attributes.Add("onFocus","ClearTextbox()");
StringBuilder sb = new StringBuilder();
sb.Append("<script language=\"javascript\">\n");
sb.Append("function ClearTextbox() {\n");
sb.AppendFormat("eval(\"document.forms[0].{0}.value = \\'\\'\");\n", theTextBox.ClientId);
sb.Append("}\n");
sb.Append("</script>");
Page.RegisterClientScriptBlock("ClearTextbox",sb.ToString());
}

Think that *should* work for any textbox in your page (Andy Smith...you reading this - what about a server control :-) ???)
# October 1, 2003 10:54 AM

Scott Galloway said:

Actually, I'm an idiot...an that won't work for more than one textbox...you need to pass the id of the control into the Javascript function...way I've done it will just work for the very first textbox you pass in...umm...any suggestions (apart from rude, derisory ones :-))

# October 1, 2003 10:57 AM

Dave Burke said:

Scott, first of all, HA! Funny. You're no idiot and I have no rude, derisory comments. Scott Guthrie in his ASP.NET blackbelt presentation passes a control and then grabs the clientID of that control Apart from any potential ":" chars in the clientid, this could do the trick. I DO want to be able to generalize this routine, but wasn't up to it this morning. Thanks though!

Here's ScottGu's example on setting focus where he does what I'm describing:

private void SetFocus(Control controlToFocus)
{
StringBuilder sb = new StringBuilder();
string scid;
scid = controlToFocus.ClientID;
sb.Append("<script language='javascript'>");
sb.Append("document.getElementById('" + scid + "').focus();");
sb.Append("</script>");
RegisterStartupScript("focus",sb.ToString());
}
# October 1, 2003 11:18 AM

Emily said:

I have ps6 and it doesnt work anymore. It says "Photoshop could not be initialized beacause it does not have enough memory (RAM)" Can someone help me? Anyways, photoshop is an amzing program
# October 1, 2003 5:27 PM

TrackBack said:

# October 2, 2003 12:21 AM

Andy Smith said:

The big problem with this is that it doesn't specify the button which will be "clicked". Which means that the browser just kinda picks whatever button it wants. Right now, with your current design, apparently the button you want is clicked. But think about this for a second... changing the page design actually has the ability to break the functionality of the page. And when it happens, there's no error message. No notification. Nothing. Your app subtlely breaks.
There are very good reasons I made <a href="http://www.metabuilders.com/tools/DefaultButtons.aspx">DefaultButtons</a> work the way it does. Remember, "For every problem there is one solution which is simple, neat, and
wrong."
# October 2, 2003 2:27 AM

Dennis v/d Stelt said:

# October 2, 2003 6:16 AM

Paul Wilson said:

I still think separate forms are often the best solution, since each one gets a default button automatically when the user is inside one of its controls. Of course this isn't officially supported for some odd reason in ASP.NET, but it works quite well for me:
http://www.WilsonDotNet.com/Controls
# October 2, 2003 8:05 AM

Dave Burke said:

I didn't anticipate any input on this post. (Wow, double pun!) Thanks, guys. You are each absolutely correct. I'm familiar with your Web Controls, Paul, and I've looked at Andy's DefaultButton control. If I had more form elements on the page, I would definitely go the non-<INPUT/> route, but with a single field and one button, hey, this approach could not have been simpler, and, in this case, I think maybe not so wrong. Of course, if I add another field or button and things get screwy I'll look at this issue again. :-)
# October 2, 2003 8:54 AM

Mike Krautstrunk said:

A bit late to the party, but a 4Guys article (http://www.4guysfromrolla.com/webtech/010202-1.shtml) shows a pretty dramatic drop-off in performance when using With.
# October 2, 2003 11:05 AM

Dave Burke said:

Huh! Didn't know it, Mike. Thx! I need to spend more time at 4Guys.
# October 2, 2003 11:25 AM

Jeffrey Randow said:

Actually, I am doing something similar for my company (in my spare time) to allow project blogs for communication....
# October 7, 2003 10:53 PM

Vic said:

Where is Alex Homer these days? I miss his books.

Vic
# October 8, 2003 1:02 PM

Dave Burke said:

Yeah, I know. He kinda dropped off the map. Seems a whole army of young .NET gurus has risen up to take his place though.
# October 8, 2003 1:38 PM

Dave Burke said:

I'm spending a lot of my spare time on the .text customization, too, since its so darn interesting. Bad habit, doing work stuff at night...
# October 8, 2003 1:39 PM

Scott Galloway said:

Because error handling is for wimps! Hmm...I would so wrap that in a try...catch block (even if Joel Spolsky thinks I'm being obscure :-)). Actually, one of my favourite features in DAAB isn't used at all in .TEXT, namely, the SQLHelperParameterCache.GetSpParameterSet...used as follows...

SqlParameter[] sqlParams = SqlHelperParameterCache.GetSpParameterSet(Global.ConnectionString,"pr_Common_GetListItemsWithPermissions");
sqlParams[0].Value = contentType;
sqlParams[1].Value = userName;
sqlParams[2].Value = portalId;
sqlParams[3].Value = sortCriteria;
sqlParams[4].Value = sortDesc ? 1 : 0;
sqlParams[5].Value = startItemId;
sqlParams[6].Value = numItems;

In this way, I save even more typing (oh, and in case you're wondering the performance loss is close to 0.
# October 15, 2003 6:04 AM

Anonymous said:

I think it serves a better example of what *not* to do -- I do my best to never refer to ordinal index positions. I think that's a bad way to write code, even though it is faster than refering to the literal. Steve McConnell in Code Complete refers to people like this as "Bit Chasers" who try to ink out ever last bit of performance over long term maintainability.
# October 15, 2003 6:39 AM

Dave Burke said:

Whoa. Thanks for the example, Scott. I will investigate! That's so great; I post some code that I think is sweet, and you post even better code!

As for anonymous (hey, good point, why no name?), you're right about the index position issue. I spent hours tracking down the fix for my custom .text where I added a parameter to the inparam group which returned the wrong value from the stored proc.
# October 15, 2003 8:15 AM

Scott Watermasysk said:

Scott: Why no error handling?
I want the error to bubble up the layers. No sense in eating the error on this level. In pages/objects where you are using this functionality you will never figure out what is causing the error.

In .95 the only data try's are arround IDataReaders, and it simply uses try/finally to make sure the connection is closed on errors.

Anonymous: "Bit Chasers"
I agree with you. I guess I could build my own command objects instead of using the helper...but in most cases the number of parameters is small and easily managed. I never use positional indexes when working with results...I guess I took the easy way out going in :)

-Scott
# October 15, 2003 8:43 AM

Frans Bouma said:

Hardcoded indexes == best practises? Erm... Did I miss something? :)

Shouldn't that parameter create routine return a parameter instance, which value you can simply return?
# October 15, 2003 8:46 AM

Dave Burke said:

I seem to have mis-named this post...

Scott, I saw the bubbling up effect with the returned param on entering a new post, providing the success/failed message, with the "baseline error occurred" text.

# October 15, 2003 8:51 AM

Ryan Felton said:


Am I missing something? I've been useing the DAAB v2 and I don't see any function For the MakeInParam or MakeOutParam. Is this a custom creation?

# October 15, 2003 12:57 PM

Dave Burke said:

Ryan, I asked ScottW about this through a post to the .text list group, and he said he picked them up along the way, he thinks from the Petshop DAL. They're in the .text .094 source in the SQLHelper class in the SqlDataProvider project.

But from Scott Galloway's comments about, it looks like the daab already has superior parameter handling methods requiring even less typing...
# October 15, 2003 2:38 PM

Scott Galloway said:

ScottW: Fair comment...I have a slightly different approachb - I tend to 'eat' errors and pass up a value which indicates an error (null, 0 or somesuch) - kind of a return code approach...mainly because I expect to have to nitify a user and I like to catch me errors in each layer of the app - so, each higher layer only gets 'clean' data and only has to worry about exceptions from it's own operations. This probably has more to do with my background which is Enterprise development - passing large exception classes between layers is costly (and dangerous if the consuming layer doesn't expect them). But horses for courses I suppose :-).
In the instance where Scott uses an index...umm...yes...you declare an array and refer to a member...that's bad practice how exactly. You're seriously saying you'd rather declare constants or even a enum to indirectly refer to the number '7'?
# October 15, 2003 4:43 PM

Scott Galloway said:

Oh, incidentally, for those who are interested, I posted a version of DAAB 2.0 which is a drop-in replacement for the .TEXT one...means you have access to all the nice 2.0 features (including a couple of bug fixes)...
http://www.mostlylucid.co.uk/posts/497.aspx
# October 15, 2003 4:59 PM

Kris said:

You should also check out http://www.jasonbock.net/whatsnew2003.html and especiallly FileGenerator. Makes life even easier when using Reflector ;)
# October 19, 2003 3:30 AM

Paul Gielens said:

This is why I just spend my saturday night to write a proof of concept prototype. Actually a colleague was supposed to do that, but I figured I could learn a thing or two by doing it myself as well.

1.) yes
2.) definitely
3.) tried it before but never finished it
4.) my company wouldn't be so fond I guess ;)

Perhaps you should read "Your Roadmap for Success". I just can't stop promoting that book enough, eye opener :)
# October 19, 2003 9:03 AM

Carl Franklin said:

You'll see more of me in CoDe Mag soon, and you'll hear Marcus on <a href=http://www.franklins.net/dotnetrocks.asp>.NET Rocks!</a> before too long. Great magazine!
# October 21, 2003 3:17 AM

Dave Burke said:

Always looking forward to seeing (and hearing) more of Carl Franklin! Thanks for the news, Carl.
# October 21, 2003 6:50 AM

julie said:

damn - the pocket pc phones were all $500 when I went to Verizon in July. I was ready to shell it out when I realized they were 100% digital - which isn't the perfect option in Vermont. Why didn't you show it off last night?
# October 21, 2003 11:13 AM

Tom Richards said:

Perfect timing. I was just started looking for just this device from Verizon, my current wireless company.
I'd be anxious to see how it works, although, I'll probably be running off to Verizon to buy it anyway.
Thanks.
# October 21, 2003 11:23 AM

Dave Burke said:

Jules, Last night I was still figuring out how to use the dang thing (which is why I had to leave the room.) And yeah, I thought hard about the Vermont Digital Only issue, but I figured I'm such a stay-at-home nerd that it didn't matter to me.

Tom, just remember, the thing is a full pocket PC and I'm started to get attached to the thing, but if you do a lot of talking, you want to get a REAL phone. The input and output speaker is one and the same, so there is no privacy at all.

What I AM looking forward to exploring is the Text Messaging feature. If I get colleagues and my wife used to sending me text messages, I can easily call them back when I'm in the woods or something.
# October 21, 2003 2:32 PM

Dave Burke said:

Julie, I forgot to mention that the Verizon Sales Guy said that all towers in Vermont (and all towers Vz is putting up) are digital. I suppose that would seem a logical move. So maybe we'll get by with a digital-only phone in VT? I'll keep you posted.
# October 21, 2003 2:36 PM

Jerry Dennany said:

My thoughts exactly!
# October 26, 2003 9:55 PM

Roy Osherove said:

Dave, There's a lot in what you say that I agree with. Heck, god knows I'd write the same things, because I would have been just as excited. But I'd take precautionary measures and made sure my blogging would be done in a separate place where the "noise" would be separate from real content. At least for the "find me at..." posts, there are better ways of dealing with this.
Also, the main point was to try and make out where to get *content* from the sessions. If all the content would be drowned out by all the noise, then all the PDC blog readers would not achieve their ultimate goal - try and get information.
Still, I totally get you. I too like to read the small stories that make up a day in the life of so and so, and It really bothers me that I'm writing against doing these. But my main goal here was just to *redirect* them at a more appropriate place, so that I can wade through them at my *own* time, and not when I want to get real information.
The last thing I wanted to come off as was a "just give me the juice" type of guy.
# October 26, 2003 10:02 PM

Dave said:

Okay Dave, tell me this: _your_ post here... what does it have to do with .NET?

Um, uh.... well.... it has.... NOTHING to do with it, right?

Then why post it on something called .NET weblogs?

One: I mean this with all due respect to you - I'm merely making a point. Two: consider that this post of your is probably more interesting than the bulk of things coming over the wire today. (If I wanted an airport flight delay report I could watch The Weather Channel.)

My complaint has nothing to do with squelching excitment of people 20 years younger than me attending their first conference. It has everything to do with what Roy spoke of.... noise.
# October 26, 2003 10:24 PM

Dave Burke said:

Dave, I guess it has to do with the COMMUNITY of .NET users, the guys I read every day and imagining them getting to know each other better in LA or by extension imagining myself making the trip and hangin' with them as well (though I'm REAL happy I missed a round-trip flight from Vermont to LA to see stuff I'm sure I'll see plenty of in many months to come before I even see a CD.)

The more I think of it, had I gone to the PDC it would have been as much to meet the guys whose blogs I've been reading as it would be to sit in on the sessions. Then again, most of them are in the "20 years younger than me" category so we probably wouldn't have a whole lot in common. :-)

Yeah, there's lots of noise on the wire today. I agree with both you and Roy on this, for sure. But a clear channel in an aggregated feed is hard to come by any day.

I would like to talk more about the noise issue, but it would only result in more noise on the wire, I'm afraid. So for now I'll just say thanks for your comments!
# October 27, 2003 12:43 AM

TrackBack said:

# October 28, 2003 4:29 AM

julie said:

does it really look like that in Burlington right now? it's all brown and sad here! and foggy and rainy. Waaaah <g> I'm coming to town!
# November 4, 2003 10:50 PM

Dave Burke said:

Fall is hanging tough here in the valley. Not many more days left, I'm afraid. Thanks for your comments!
# November 4, 2003 11:11 PM

Shannon J Hager said:

I started playing with CSS overloads in the options page on my blog, this is/was the Marvin 2 skin but I've almost managed to get it to look like my main site. CSS is some powerful stuff.
# November 5, 2003 1:15 AM

Brian Desmond said:

How come this was such a task? Here's a really really easy way to do what you needed to do (AD, DNS, Exchange, & files at least):

Install the new server, patches, etc. Make sure teh DNS Service is installed and running.

1) Start>Run>dcpromo. Join to domain as DC. Once replication is complete, ensure DNS intact. Setup secondary zones for any primaries on the other machine. Transfer the zones, convert the new machine's zones to primaries.

2) Open AD Sites & Services and make the new server a GC. In AD Users & Comps, Transfer PDC Emulator, RID Master, Infrastructure Master FSMOs. Open Schema Management (must start>run>regsvr32 schmmgmt.dll first) and trasnfer Schema Master. Force replicate & ensure good replication

3) Install Exchange 2000 into current Exchange org. Service pack & QFE. Setup public folder replication & replicate the tree. Ensure good replication. Use Move Mailbox wizard in AD users & Comps to move mailboxes. Ideally, open outlook for each mailbox to have new server change take.

4) Ensure folder replicas intact on new server, remove replicas from old server, and finally, remove exchange server from site. Dcpromo the old server out of the domain.

5) Use robocopy to move all the files over:

robocopy c:\SourcePath \\NewServer\NewPath /sec /e /z /eta

6) Migrate IIS, any other apps.

7) Power down old server. All done.
# November 5, 2003 1:42 AM

Brian Desmond said:

On a DC, a long wait at Prepping Network Connections is normal. If its a client machine, you've probably got a DNS snafu. Are your clients pointing at the new IP for the new DNS server?

LMHosts is for WINS. In an AD environment, WINS is not used, so LMhosts should be irrelevant to the situation.
# November 5, 2003 1:44 AM

Merill Fernando said:

Is there any hope of these changes finding their way into the next release of .Text?

I'm setting up .Text on our intranet and would really love to deploy the changes that you've done.

Would it be possible for me to get a copy?
Thanks
# November 5, 2003 4:58 AM

SBC said:

yup.. used it in a ASP.NET project a few months ago. Found out more about it here - http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vsintro7/html/vxtskworkingwithhtmlstyles.asp
# November 5, 2003 5:49 AM

Dave Burke said:

Merill, Any development time I spent on customizing .text are on my company's dime and most changes unique to our environment, but I am more than happy to detail any concepts or answer any questions. To know what's happening with 0.95 (which ScottW says is a couple of weeks out), you need to check out the [opensource-dottext] listserv at http://aspsmith.com/.


# November 5, 2003 8:17 AM

Dave Burke said:

Brian, the problem was cleared up and everything is pointing to the new DNS server. I should have explained about the Lmhosts file: this particular server has two NICs, one pointing to my linksys router and out to the internet, and the other to my LAN. It is the only machine connected to the internet. When it has problems resolving an external address it hits the internal NIC and hangs until I disable the internal NIC, hit an external source, then re-enable the internal NIC again. So I helped it out with some common host IPs to reduce that incident.

TCP/IP is rocket science to me, so I could probably improve my configuration, for sure. I am curious if, were I to install DNS on this server, that other machines on my LAN could use it to hop out onto the internet? Then again, I kind of like the fact that most of my LAN is completely offline.

Thanks!
# November 5, 2003 8:25 AM

Dave Burke said:

Brian: Yeah, like I tell people, life is easy when you know what keys to press. I wouldn't say the sequence you described was "really, really" easy, but I was definitely impressed with your knowledge of the procedure. Cool!
# November 5, 2003 8:29 AM

Merill Fernando said:

I do understand Dave.

Thanks a lot!
# November 5, 2003 9:25 PM

Joris Evers said:

Of course it was the other way around. We talked to Julia first and then thought of all those other folks to interview.
# November 7, 2003 1:13 PM

Dave Burke said:

Joris, that is so great! I'll make sure Julie sees your comments. HAH!
# November 7, 2003 1:51 PM

Michael Grazebrook said:

I use Cooktop and XML Spy. XML Spy is in some ways easier to use - especially for a complete beginner. But it constrains ones style, it makes a lot of useful and legitimate things difficult. So as my skill has improved, I've found myself using Cooktop more and more.
# November 12, 2003 10:30 AM

Darrell said:

What's the spacer image in the first column for? That's not needed to make the sample work, right?
# November 13, 2003 7:46 AM

Dave Burke said:

Sorry, Darrell. I didn't catch that. It served as the left-hand margin. No, its certainly not necessary to make the sample work. Thx.
# November 13, 2003 10:31 AM

Fabrice said:

You could also simply cast you control to a base class which has the property you want to access instead of using reflection.
# November 14, 2003 6:12 AM

Dave Burke said:

That's an excellent point, Fabrice. Thanks. But if I understand correctly, the base class which had the control and its property was the web page, and in this case multiple web pages will use the remote base class which I will only know at runtime (yeah, some duplication at the UI level for simplification, though I should redesign further.) You're right though, the cast to the base web page is definitely cleaner.

# November 14, 2003 9:06 AM

Dave Schwinn said:

Hey,

I know an awesome shareware tool to use to located wasted disk space.

Download and install the eval version of TreeSize Pro from here: http://www.jam-software.com/treesize

Of course, if it solves your problem - purchase it!
# November 16, 2003 1:50 PM

Shannon J Hager said:

I've never actually heard of anyone who used this product before, it always seemed like Microsoft's attempt at Flash in the late 90's, Liquid Motion (I think that is what they called it). Did LiveMotion actually work for you and your needs?
# November 18, 2003 12:14 AM

Dave Burke said:

Shannon, As I said, I just never found a use for it. I use Illustrator quite a bit, Photoshop everyday, and Acrobat every week or two, but LiveMotion, no. I opened it up several times, took a look around, and didn't get it. That, coupled with the fact that I couldn't see how I would use it to impress my employer meant that it went unused permanently.

So in a word, no. I was looking for something similar in functionality to Photoshop that output to .SWF, that was about it. Still, I was hoping for big things from version 3.0 to get me motivated. Guess it ain't gonna happen. Thanks for your comments!

# November 18, 2003 12:24 AM

Matt Berther said:

Or a source control system.

Even for one user, a source control system can prove invaluable, especially in times like this.

I currently run CVS at home, but am seriously contemplating SourceGear's Vault's $49 single user license.
# November 24, 2003 12:04 AM

Dave Burke said:

I've read good things about SourceGear's Vault. While I decide I'll implement a VSProjects folder daily backup. Thanks!
# November 24, 2003 12:16 AM

Gopinath Varadharajan said:

http://www.pcinspector.de/download.htm#file_recovery
this tool to recover deleted files
past recycle bin.. Free and it really cool

exact same prob i faced from VS.NET
this worked like charm..

Gopi
# November 24, 2003 1:06 AM

julie lerman said:

I have not one, but TWO licenses, to SourceGear Vault Single user edition to raffle off at the user group. Sounds like you better be stuffin' the ballot box.
# November 24, 2003 8:15 AM

Dave Burke said:

Thanks to all for your comments! Gopi, that app worked great, but it did not find my VSProjects directory. I can only think it had something to do with the fact that VS.NET renamed it originally, adding a "(2)" to the folder name. It's a complete mystery. Thank you again for the recommendation, Gopi.

Julie, you continue to amaze me. Not one SourceGreat license, but two??????
# November 24, 2003 11:01 AM

Jason Alexander said:

Great to hear that, Dave! That's certainly the intention is to release a quality product that is not only both usable, but a good learning tool.

Though, I must admit, I have to give credit to my other developers on my project:

http://www.ngallery.org/aboutus.aspx

And, of course, let us know if you ever need any help!


Take care,
-Jason
# November 24, 2003 1:29 PM

Steffen Grünwald said:

I´m glad to found this article. I read the SmtpServer from the Web.config file and set it there to "" (string.Empty) and it works fine.

Thanks a lot

Steffen

# November 25, 2003 4:18 AM

Dave said:

I would love to see some integration with .text and nGallery. How about a modules system for .text or at least a common authentication/management interface.

I know, I know....post it on the .text forums.
# November 25, 2003 10:50 AM

Dave Burke said:

Ha! Where do you think I got the idea? From the .text forums chatter, of course!
# November 25, 2003 11:51 AM

Tim Barton said:

I used system because ASPNET could write to the registry for my web app. I tried evrything with no luck
# December 3, 2003 12:40 PM

dshorter said:

Onder,

What does your SP look like?
# December 8, 2003 12:25 PM

Paul B said:

I have an issue where I have IIS set up locally on my machine. I can send an email out via an exe. The issue occurs when I try to run the same code set though an ASP.NET project. It bombs out with the same error as above, even though I set the SMTP server to localhost. Any ideas?
# December 12, 2003 1:37 PM

Rana said:


Hi,
You have a nice blog.
# December 14, 2003 7:59 AM

chris said:

dshorter, you can include statments in your SP like:

CREATE PROCEDURE testproc
AS
SELECT * FROM table1;
SELECT * FROM table2;
GO

This will work with a FillDataSet method similar to:

SqlHelper.FillDataset(cn,CommandType.StoredProcedure,"testproc",ds,new string[] {"table1","table2"});
# December 26, 2003 2:58 AM

TrackBack said:

Dave Burke came across an interesting problem working with VS.NET when trying to compile his project. He likes to use a network share to get to his project folders (as a lot of development teams do). Dave dug through this...
# January 6, 2004 1:17 AM

TrackBack said:

Trusted Shares and VS.NET I dealt with this a while back and re-encountered it tonight while getting things in order on a new W2K3 Server. Blog use #204: record a VS.NET configuration procedure you've used in the past but have
# January 6, 2004 10:17 AM

TrackBack said:

Courtesy of Dave Burke - To W2K3 : Application Pool Identity setting in IIS 6.0 I thought I was over the hump in setting up a website in W2K3 Server IIS 6.0, as several posts in a September 2003 “To
# January 6, 2004 10:26 AM

SBC said:

The W2K3 is a good one, also take a look at the SBS2K3 server(http://weblogs.asp.net/sbchatterjee/archive/2003/12/30/46580.aspx)
# January 6, 2004 10:35 AM

TrackBack said:

David Burke's blog: Trusted Shares and VS.NET dealt with this a while back and re-encountered it tonight while getting things in order on a new W2K3 Server.  Blog use #204: record a VS.NET configuration procedure you've used in the past...
# January 7, 2004 7:35 AM

Addy Santo said:

It sounds simple but there are quite a few technical limitations to solve before you can make this work. The SPSv1 database (Web Storage System, aka WSS) is a semi-structured database, not a relational database. One of the chief drawbacks of such a system is that there is no concept of constraints or foreign keys at the database level. Many of issues with SPSv1 can be traced back to this limitation. For example- changing a profile will affect only new items created after the change, deleted categories remain in an items list of categories, etc.

Your request - enabling changes to a parent to trickle down to children - is not supported for the same reason. In order to implement that, SPS would be forced to programmatically loop over each one of the children, and then loop over each one of the children's children, and so on. That could basically require traversing the whole SPS folder structure and updating all the nodes - something that would be a real perfomance killer.



# January 7, 2004 12:58 PM

James Edelen said:

Unfortuniatly, now that SPS 2.0 is out, I highly doubt Microsoft will be issuing any new features for version 1.

You may want to look into SPS v2 becasue the first beef may be allieviated as SPS document libraries are parsed as UNC paths through the Web Folders client. I don't know that the 100 character limit is imposed, but based on the structure of your sites/libraries, it should be less of a concern. Since there is no central library, there should be less path depth.

As for beef number 2, it becomes a moot point with SPS V2 as document profiles (in the sense you use them) have been depriciated and the Web Storage System will most likely not be part of SPS 3 (I would say right now, there is almost no chance, but you never know with Microsoft.)
# January 7, 2004 1:28 PM

Dave Burke said:

James, that's very interesting information. Thank you so much! I'll think more about this issue and configuration options in moving forward with SPS V2/3...
# January 7, 2004 2:18 PM

Dave Burke said:

I hadn't given the semi-structured nature of WSS enough thought before entering my beef. Good points. Thanks!

The problem is that I LIKE WSS. Maybe more issues like this will make it easier for me to reconsider the new SPS V2/V3 storage methods.
# January 7, 2004 2:22 PM

julie lerman said:

good conclusion. Most of my corporate work these days is winforms against a web service. Of course I used to fret that I would have people telling me "you should be using remoting if you have a .net front end", but now with Indigo coming, I don't have to worry about defending myself any more.
# January 9, 2004 12:56 AM

Shannon J Hager said:

Funny thing is, I had a client complain about an Access-based app because the drop-downs didn't work like she wanted them to. She wanted them to work like html dropdowns...

It's impossible to please everyone, I guess.
# January 9, 2004 1:38 AM

TrackBack said:

# January 12, 2004 10:08 AM

TrackBack said:

# January 13, 2004 1:10 PM

TrackBack said:

# January 13, 2004 1:11 PM

TrackBack said:

# January 13, 2004 4:33 PM

Raymond Chen said:

The Windows 98 message was "Because Windows was not properly shut down, one or more of your disk drives may have errors on it." It didn't specifically accuse you of not shutting down properly. It just said that an improper shutdown occurred and left open the issue as to whose fault it was.
# January 13, 2004 6:32 PM

Dave Burke said:

Thanks, Raymond. Hopefully I'll never see it again, but the message always struck me as inferring that I screwed up, as in "who" shut down Windows? There was also text which followed stating to the effect that the user should take care to always properly shut down the system, wasn't there? Again, implying blame on the user.

Or maybe I was always so pissed when I had to unplug and plug my computer back in to get it to work again that I took the startup messages the wrong way...
# January 13, 2004 9:34 PM

TrackBack said:

# January 14, 2004 2:10 PM

SBC said:

thanks!
# January 16, 2004 8:18 AM

Darrell said:

Maybe they didn't update their anti-virus software? I mean, I know they're waaaay out there in the neutral zone, but come on. The McAfee:The Next Generation software surely comes with an autoupdate feature from the nearest starbase, right?
# January 16, 2004 9:57 AM

Dave Burke said:

Thanks, Darrell. I hadn't thought it through. It's difficult however to accuse Geordi La Forge of not staying current with his anti-virus update procedures.
# January 16, 2004 10:10 AM

grant said:

ran into the same problem setting up a new server... bite me microsoft. i mean, thanks for posting the comment.
# January 22, 2004 2:28 PM

Vijay said:

Dave, the DataView apart from being a bit cumbersome to code, is really heavy in terms of memory consumption. I am not sure whether it is exactly a materialized view over the DataTable kind of thing but it just hogs memory. The DataRow[] got by the Select method returns references of the Rows in the DataTable and you can imagine how fast that will be. There is no object allocation, creation and then disposing stuff ... This is one thing i learnt recently in a project i worked on .. will post about this later !
# January 23, 2004 2:53 AM

TrackBack said:

Economy with XML and DataRows I do not often write a block of code and sit for a few moments to admire it before moving onto the next task, but the economy of using XML with ADO.NET&nbsp;DataRows to generate a...
# January 23, 2004 11:45 PM

Daniel Turini said:

Not to mention that you could speed it up a bit by using a StringBuilder...
# January 28, 2004 10:06 AM

Dave Burke said:

Ha. That's right, Daniel. Thanks for the reminder!
# January 28, 2004 10:18 AM

Julie Lerman said:

crap! I've been googling for an hour to solve a problem. Someone said "change the account for your application pool". I thought "whatever THAT means". So back to google and what do I find... This post!! Hooray.
Let's see if I can do this now. Same problem new win2k3 server and iis6 and can't access my database with the built in account. Aargh
# January 29, 2004 3:08 PM

jerry said:

hello
# January 29, 2004 8:20 PM

Dave Burke said:

Funny, I just ran into this again tonight on a W2K3 server while setting up its first IIS site and application pool. Thanks for the reminder of this post, Julie! I used it to fix my own problem.
# January 29, 2004 8:52 PM

Hoop Somuah said:

I'm flattered, it's not everyday that I gain mention in people's blogs.

Just a quick note, you don't have to allow all unknown ISAPI extensions to get this to work. What you should instead do is add the specific extension mapping that you're using to the Web Service Extensions section. We did it and it worked fine for us (There was no way our IT group was gonna let us allo all extensions)

-HTH

--Hoop
# February 2, 2004 7:53 PM

TrackBack said:

# February 5, 2004 10:42 AM

Julie Lerman said:

its confusing - but Steve actually did not come via INETA last night - he came out of the goodness of his heart!!! (okay, I bribed him with pancakes and snowshoing in the mountains)
# February 10, 2004 12:10 PM

Steven Smith said:

Glad you enjoyed it; thanks for coming!
# February 10, 2004 4:48 PM

Jason Salas said:

Hey Dave! Thanks for the complement to my post! I'm glad you liked my summarization of a very cool year for ASP.NET! Be well. :)

Jas
# February 12, 2004 1:52 AM

Addy Santo said:

If anyone would have told me a few months back that today I would be developing 12 hours a day with infopath while *enjoying it* , I would have replied that they should ease back on the juice.

But, here I am doing just that. The one difference between us is that I have an internal alpha build in which they fixed almost everything anyone could possibly complain about :) I can't go into specifics regarding features or schedules, but rest assured that Infopath WILL ROCK for developers too. Not only for Mr "I'm-an-excel-macro-writer" guy.
# February 16, 2004 12:51 AM

Dave Burke said:

Thanks, Phil. Went through it last week, sample by sample. Some cool and helpful stuff there, for sure, but it didn't change the issues I had with the UI and development support.
# February 16, 2004 8:11 AM

Terrence said:

Hmm... I can never get this to work for me. It seems I always get the overload with the most parameters first. This is the exact opposite of what I want. :-(
# February 19, 2004 1:10 PM

Geof Grooms said:

Wow...thats all I can say. I'm rolling out a 750 user upgrade of office to 2003 via group policy.

I think I'll take a closer look at that push. Nobody wants to see an upgrade but seeing it twice would really hurt.

Thanks,

Geof
# February 22, 2004 12:45 AM

Damian said:

Could not find a solution anywhere on the web for this myself. A reinstallation of .NET framework did the trick
# February 22, 2004 6:42 PM

Dave Burke said:

Wow. That's rough. Sorry! I'll remember that though in case I hit this again. Thx!
# February 22, 2004 6:45 PM

TrackBack said:

# February 22, 2004 6:50 PM

G. Andrew Duthie said:

Sure there are...see my blog at http://weblogs.asp.net/gad/ for an example.
# February 22, 2004 9:59 PM

G. Andrew Duthie said:

Erm...GIF tags, that is. ;-)
# February 22, 2004 9:59 PM

Dave Burke said:

HA! Thanks, Andrew!
# February 22, 2004 10:10 PM

TrackBack said:

# February 24, 2004 12:27 AM

stefan demetz said:

Security by default??
# February 24, 2004 5:26 AM

David Cumps said:

An example of this could be found when you're coding at home, learning something.

To learn some coding subject you should be able to do it yourself, so you have set up a configuration at home with IIS, AD and a SQL server. And while you're setting that up, it gives you more insight in how it works, what options you have, what could go wrong, etc.

I'm coding a little website here with AD and MySQL and webservices. And when it's done it's going to get moved to production in my school. It's really valuable to see problems arise when you're coding and knowing the problem could come from an IIS setting. When it gets moved to production later on, and the error occurs, you can immediately tell the sysadmins where the problem could be.
# February 24, 2004 7:03 AM

Dave Burke said:

David, Exactly my point. Thanks.
# February 24, 2004 7:30 AM

Dave Burke said:

Stefan, I don't know exactly what you mean, unless its the same reason why things are more difficult setting up in W2K3 IIS than on W2K. I have no problem with security when logically enforced; I question the fluctuating bar required to get SMTP to work in any particular environment. If there is a documented single method of configuring SMTP services, I haven't seen it.
# February 24, 2004 7:35 AM

Matías Niño said:

There's a service pack incoming that might address a lot of your UI grievances (which I completely agree with about InfoPath).

Check it out!

http://www.microsoft.com/presspass/press/2004/feb04/02-23EnhancedInfoPathPR.asp
# February 24, 2004 4:35 PM

Dave Burke said:

Thanks, Matias. Once I can get my hands on a non-preview copy, I'm definitely going to check it out!
# February 24, 2004 4:39 PM

TrackBack said:

Take Outs: The Digital Doggy Bag of Blog Bits for 24 February 2004
# February 24, 2004 9:13 PM

Jerry Pisk said:

How about this:

string QuoteListItems(string Actions)
{
return "'" + String.Join("', '", Actions.Replace(" ", "").Split(',')) + "'";
}

A lot faster than a for loop through the array. And of course, SQL injection problem, it seems that nobody who has time to have a blog knows how to write secure code (or doesn't care to).
# February 24, 2004 11:44 PM

Jerry Pisk said:

More code:

If you know that the items are separated by a comma and a space:

return "'" + Actions.Replace(", ", "', '") + "'";

If the items are separated by just a comma:

return "'" + Actions.Replace(",", "','") + "'";

Or you can use regular expressions to replace a comma and optional whitespace - ",\s*" will be the pattern, replace with "', '" and append "'" at the begining and end of the result.
# February 24, 2004 11:55 PM

Jerry Pisk said:

Dave, 1280x1024 on a 19" monitor is probably the standard 96dpi. That's not hi-res. 1024x768 might be something like 72 dpi, which is a very, very low res.
# February 24, 2004 11:58 PM

David Cumps said:

Work some months in 1280*1024 and then try 800*600 once, that's real horror :p
# February 25, 2004 5:47 AM

Dave Burke said:

I knew I'd get suggestions for improvement. Thanks, guys.
# February 25, 2004 6:35 AM

Dave Burke said:

Jerry, 72 dpi very, very low res? Well, I guess I've made my point. And all things being relative, 1280 x 1024 is plenty hi-res as far as my eyes measure. Thanks for your comments! David, agreed!
# February 25, 2004 6:50 AM

Scott Galloway said:

Personally I go for 1600x1200 at 96DPI with full 'tuned' cleartype - has been my standard for about 2 years, I wouldn't go back to 1024x748 @ 72DPI for all the bricks in china (I think the tea thing is getting old...guessing there's quite a few bricks there)
# February 25, 2004 7:52 AM

David Cumps said:

Thanks from me as well :) Usefull piece of code
# February 25, 2004 8:04 AM

TrackBack said:

In the bag tonight: Less bitch'n and whin'n. Counts:Blogging: 8; Dev: 22; Otherwise: 8; SQL: 5; WILY: 8. Line of the night:
# February 25, 2004 11:24 PM

Enigma said:

why even bother to create a .net function

string sql = "SELECT * FROM table WHERE code IN ( + ''''+replace("+code+",',',''',''')+'''' + ")";
# February 26, 2004 1:44 AM

Enigma said:

why even bother to create a .net function

string sql = "SELECT * FROM table WHERE code IN ( + ''''+replace("+code+",',',''',''')+'''' + ")";
# February 26, 2004 1:54 AM

Brian Desmond said:

And then there's the scenario where you're the admin AND the dev. Always an interesting night when something's broken and you've got a go-live date to hit (usually the next day) on some app.
# February 26, 2004 9:23 PM

Dave Burke said:

Brian, Then I'm saying "Thank God for The Line!"--no matter how blurred. :-) No, I wouldn't want to do it both! Regards!
# February 26, 2004 9:27 PM

Bayram Guldibi said:

Hi we are also getting same error message on a SPS 2001 server with Windows XP Prof client and Office 2000 prof installed PC environment.
We have 10 client PCs have same configuration but 2 of them are giving same error message if a user wants to use built in functions (edit, disccuss etc.)

We haven't able to find a solution yet,

Regards,
Bayram Guldibi.
bguldibi@protel.com.tr
# March 2, 2004 10:07 AM

Alexandre Marinho said:

I´ve been trying for days to make infopath, sharepoint and web services work together in windows 2003. When I tried to access the web services from within infopath, even to define the secondary data sources, it came with the message "InfoPath cannot find or access the specified Web service description". Finnaly I found that the cause was that the Application Pool was set to MSSharePointAppPool and it must be set to DefaultAppPool. The problem is that The documentation that explains InfoPath and Sharepoint integration (Enhanced Status Report) says you must set the Application Pool to MSSharePointAppPool. I´ll see what I´ll do from now on, but at least InfoPath is finding the Web Services now.
# March 7, 2004 5:20 PM

Brian Desmond said:

Personally, I think the interfaces for Intuit's stuff are extremely bloated, often unintuitive, and, did I say bloated?

They've got so much extra crap thrown in there - all the web browser stuff, overpriced pay-extra services, etc.
# March 8, 2004 11:47 PM

Dave Burke said:

Brian, I appreciate that opinion, and you're absolutely correct about the bloat. My point is the rich UI for the tasks I perform several times a month which, when compared to the web, are MUCH more efficient and pleasant to use. Thanks!
# March 9, 2004 1:12 AM

Stephanie Sy said:

So how will I resolve this problem if I can't change the permission of my folder? (it's on the host).
# March 9, 2004 9:36 PM

Dave Burke said:

Stephanie, If you can't change permissions on a host site then you need to get a new provider or buy the system admin a box of Krispee Kremes.
# March 9, 2004 9:51 PM

Jim C said:

YEah, I've always used that. Too bad you JUST found out. But, I'm happy for you!

Jim
# March 10, 2004 10:46 PM

Dave Burke said:

Right! It only took me 2-1/2 years to find it!
# March 10, 2004 10:50 PM

ron said:

David,

How did you manage without that feature all this time? How did you go to the definition. Did you use the search? Just curious.

-ron
# March 10, 2004 11:44 PM

Darron Jennings said:

Piece of advice.... go through the rest of the menus. You never know what you might find. I was working with a long-time developer recently that just found the "comment block" buttons on the toolbar. He'd always commented (and uncommented) one line at a time. He sounded like a jackhammer over the cube.
# March 10, 2004 11:58 PM

Dave Burke said:

Ron, typically the definition class is open in VS.NET. If not, I have to open it from the Solution Explorer, of course. From there it was implementing #regions and a lot of C^M^M, C^M^O's to maintain streamlined views of classes. That was important in navigating most quickly. I didn't think of the process as a burden, but the fact that I find the Go To Definitions popup such a timesaver, obviously it was.
# March 10, 2004 11:58 PM

Dave Burke said:

Darron, Yes. Good advice. Thx.
# March 11, 2004 12:00 AM

Moi said:

Relatively new to the VS game, so double thanks for this gem. If you do the same on something like StringBuilder it's even more useful :-) Dave thanx for the comment out button too.
# March 11, 2004 12:53 AM

Fabrice said:

I use the shortcut key for this a lot: it is F12. I use this in combination with View.NavigateBackward and View.NavigateBackward. I use CTRL+NUMPAD- and CTRL+NUMPAD+ for those.
Navigating code this way will be a whole new experience for you :-)

See also http://weblogs.asp.net/fmarguerie/archive/2004/03/05/84398.aspx
# March 11, 2004 5:17 AM

Oddur Magnusson said:

ctrl + k + f = fix indenting
ctrl + m + o = collapse all regions
ctrm + m + m = toggle current region
# March 11, 2004 6:41 AM

Dave Burke said:

Fabrice: great tips! Thanks. I will definitely be navigating at a higher level with those additions. Oddur: Thanks! I've been using those 3-combinations forever. They're bread and butter keystrokes, for sure.
# March 11, 2004 9:24 AM

anon said:

# March 12, 2004 12:21 PM

Dave Burke said:

Anon, thanks for the link. Very informative.
# March 12, 2004 12:47 PM

Jim Arnold said:

Hey, why don't we get rid of objects altogether :-)

I *strongly* disagree with you. Verbosity should not be used as an excuse for nasty code, especially with a predictive and helpful IDE. Static members lead you down a dark alley before smashing you round the head with a brick and stealing your wallet *and* your girlfriend. Proceed with caution.

Jim
# March 14, 2004 4:51 PM

Dave Burke said:

Jim, thanks for your thoughts. I particularly enjoyed the way you expressed your disagreement. I'll proceed with caution. Thanks!
# March 14, 2004 5:11 PM

MartinJ said:

I don't know, but have you tried calling EnsureChildControls() to make sure they are instantiated? It's just a quick thought.

-Martin
# March 14, 2004 5:55 PM

Scott Allen said:

Hi Dave:

Just two quick tips I hope can help:

There is a little snippet here to demonastrate how to loop through all the controls on a page: http://www.odetocode.com/Code/71.aspx

Also, if the control you are trying to find is inside of another control that implements INamingContainer (repeating controls like DataGrids), then the ID of the control is munged to make sure it is unique on the client (changed to something like "ctl0_lblMenu").

HTH,
# March 14, 2004 6:17 PM

AndrewSeven said:

You might only need to walk the tree a bit more. It depends a lot on how you build things up.

You might need SiteNews sitenews = Page.FindControl(sitenewsControl);
or
Parent.FindControl

If you have a commmon base class for all pages using the control, you can cast your control's .Page property as your base page type.
# March 14, 2004 6:44 PM

Dave Burke said:

Thanks everyone. It sounds like its possible and that I should stick with it. Scott, yes I was going to mention the "munging" of the control names. Here's an example:

<span id="_ctl0__ctl2_uc_sitenews_lblNews" class="mredstart"></span>

Martin, I had not heard of EnsureChildControls() before! Will investigate, but from the page source it appears they are. Andrew, I'll re-evaluate the casting in regards to the common base class. Thanks!
# March 14, 2004 8:38 PM

tomcat said:

Dear ALL,

I have a problem that my IIS 6.0 still send message "SERVICE UNAVAILABLE" if my browser request any file on my site's folder.


Best Regards,
- brenk -
# March 15, 2004 1:13 AM

Paul Wilson said:

I've had the same experience, and I'm not even bothering to renew my VS subscription.
# March 15, 2004 8:54 AM

nodeed said:

searching "cs0016" in www.google.com maybe helpful.
# March 15, 2004 9:46 PM

Eric J. Smith said:

Wow! Sounds like you are really off and running! I'm glad to hear that you are finding CodeSmith useful.
# March 20, 2004 12:05 AM

Scott Munro said:

Hi Dave,

I am in the process of building a code generator, (NGenerate), and am focusing on generating .Net code.

I am using a hybrid of raw string manipulation and CodeDom in my 'templating language' as opposed to CodeSmith's xml based language. This means that templates are written using .Net code such as VB.Net or C#.

I am supplying object oriented building blocks such as class and method definitions and intellisense is also available.

I was wondering how comfortable you found the xml style and if you can see any advantages with the technique I am describing?

I would also be interested to know how much background you had with xml technologies such as XSLT prior to using CodeSmith.
# March 22, 2004 10:34 AM

Dave Burke said:

Scott,

I read about nGenerate. Best regards with that!

To me, CodeSmith IS using .Net languages in writing templates, which is why it has come so naturally for me.

I've used XML for years, used XSLT but never written from scratch for an application. So as you are suggesting, my comfort level with a product like CodeSmith with a .NET scripting approach to templates would be greater than a more XML-driven generator.
# March 22, 2004 11:31 AM

Jeff Schoolcraft said:

I've seen CodeSmith, even downloaded it. Watched a demo at a usergroup meeting, have a guy working for me that uses it to do some sproc generation.

I'm curious how people using CodeSmith to do things like generate from the DAL back or from the BL back (BL, DAL, SPROC's) deal with workflow and business logic. Especially regenerating code after you've went in and manually edited the code.
# March 22, 2004 1:22 PM

Dave Burke said:

Jeff, that's a very good point, and one that I was thinking of documenting from start to finish. The trick, I've found is starting with a temporary SQL TABLE based on a SQL VIEW which represents the business object, say V_USERS. The bizobj is generated from the TMP_USERS table.

Let's say we're editing a user and built a edit form. CodeSmith can generate the code for populating the bizobj from the form controls BASED ON THE TMP_USERS table field datatypes (dropdown for an INT, textbox for string, checkbox for bool.) If you think about it, those are typical form representations for those datatypes.

user.first_name = txtFirst_name.Text;

That populated bizobj is passed to a DataLayer method, as in UpdateUser(User user), the code all generated by CodeSmith, again, based a lot on the field datatypes in the USER_IDS and USER_DETAILS tables.

As for changes, a basic rule I follow in generating templates is that its easier to delete unnecessarily generated lines of code than to type them...

# March 22, 2004 1:32 PM

Rory said:

"I DID have a problem with the lunchtime presentations by AMD and fellow corporate sponsors. There were 4 sponsor presenters, but I left after the second 10-minute presentation. I won't slam Microsoft, the organizers, or the individual presenters...except the AMD guy. I mean, GEEEE-zus! Powerpoints of x86-64 cpu schematics and breakouts with RAX, EAX, XMMO, EAX, SSE, GPR, and X87 on the same slide? Presented to people who didn't even ASK to ponder CPU architecture while eating their white box lunches? I mean, how big of a dufus marketing team was behind this guy? I'm thinkin' pretty big."

Absolutely classic :)

I didn't like those presentations, either. I felt that lunch was the one time for us to all get together and hang out. Having a marketing pitch during the meal was just *stupid*.

Dumb, dumb, dumb.

And stupid.

But, it's sometimes those stupid things in life that are the inspiration for great passages like the one quoted above.

Just wonderful... :)
# March 26, 2004 11:39 PM

Scott McCulloch said:

You might want to take a look at dotnetnuke 2.0 and see how we handle business object nulls.. we use a NullHelper class that stores application defined nulls..
# March 26, 2004 11:58 PM

Dave Burke said:

Thanks, Scott. I will definitely try to do so!
# March 27, 2004 12:01 AM

Dave Burke said:

Rory, Quite the compliment from a guy who wrote the book on classic passages. Thanks for checking in. btw, I enjoyed your session!
# March 27, 2004 12:03 AM

Mike Powell said:

I agree this is annoying, but it's not too hard to write a bit of javascript to hide all the select boxes on your page when you want to show your panel...
# March 27, 2004 3:00 AM

Elph said:

you also could use for something more complicated like:

a==b?c:(a>b?d:(a<b?e:f));

the only bad thing is that is hard to read

# March 27, 2004 4:25 AM

Dave Burke said:

Mike, You're right. And its what I did. With proper placement of the popup there was little evidence that some select box foolery was going on in the background. Thx!
# March 27, 2004 8:12 AM

Dave Burke said:

Elph, Thanks for providing the extreme! Wow, I'll have to read over that statement a few times...
# March 27, 2004 8:14 AM

Jerry Pisk said:

I doubt that regex would be faster than four String.StartsWith calls. It will still have to do the comparisons but it will add all the overhead of regexs, parsing it and all...
# March 27, 2004 1:57 PM

AJ said:

We created a library of nullable datatypes. You can find something similar at http://nullabletypes.sourceforge.net/
# March 27, 2004 3:00 PM

Mike Powell said:

Glad it worked out!
# March 27, 2004 5:54 PM

Dave Burke said:

Mike, Thanks so much! Yeah, it's really pretty sweet simulating a popup with .NET, and with full access to all page methods, props, etc...unlike a Javascript approach.
# March 27, 2004 5:55 PM

Dave Burke said:

AJ, I gave nullabletypes a look and may being moving in that direction depending on the outcome of my current approach. Thanks so much!
# March 27, 2004 5:57 PM

TrackBack said:

# March 30, 2004 10:22 PM

Chris Martin said:

I was hoping for pictures of the dog haulin balls down the slope!
# March 31, 2004 7:24 AM

Dave Burke said:

You're right, Chris. Seeing the dog haulin balls with his hair blowing back would have been a better pic. He was movin!
# March 31, 2004 8:23 AM

Julie Lerman said:

oh THANKS! :-)
# March 31, 2004 10:59 AM

Scott Mitchell said:

I take it you are using the DAAB? What version? Here's the code template I normally use:

int id = Convert.ToInt32(SqlHelper.ExecuteScalar(ConnectionString, CommandType.StoredProcedure, "AddCustomer", new SqlParameter("@Name", "Scott"), new SqlParameter("@Age", 25)));

Namely, I use zero to many instances of SqlParameters, based on the sproc I am calling.

hth
# April 2, 2004 1:09 AM

Scott Mitchell said:

Also, to be pedantic, you should use SCOPE_IDENTITY() over @@IDENTITY (assuming you are using SQL 2000). See http://weblogs.sqlteam.com/travisl/archive/2003/10/29/405.aspx
# April 2, 2004 1:12 AM

Elph said:

Really you don't need use executescalar with this, because your gets the info trought output parameter. You can use Executenonquery, because the parameter return the info @@Identity.


# April 2, 2004 1:28 AM

Jerry Pisk said:

Using the output parameter is the problem, your single line doesn't have a local parameter variable to store the output value in (it does under the hood but...)
# April 2, 2004 2:55 AM

Dennis said:

I'm doing something like this now on search screens...populate search results from a dataset, upon user selection I pass the selected datarow.

I'm doing this in Winforms, I've got various places from which I call a search screen, and depending on whether various columns are populated, other screens may pop up...and which other screens those are depend on where you're calling the search screen from. Passing the row back to caller makes it easy to handle all that logic.
# April 2, 2004 8:36 AM

TrackBack said:

# April 2, 2004 9:21 AM

Ryan Gregg said:

The bad thing about throwing around data rows is that they could have any format, and the format can change. If you're working in an environment where code is reused all the time, or on a team program, you have to make sure everyone knows what columns are going to be in the data row, what types they are, etc.

If someone gets bored one day and changes the names of the columns, you better hope they let you know! :-) At least with business objects, you'd get a compiler error letting you know the properties you were using didn't exist.
# April 2, 2004 9:35 AM

Dave Burke said:

Ryan, Funny. Yes, you're right. Business objects would be preferrable in that regard!
# April 2, 2004 9:35 AM

Ryan Gregg said:

Now, why again would you want all of that on one line?

It isn't horrible to read and figure out, but I think it would be a lot more clear spread out over multiple lines like normal.
# April 2, 2004 9:45 AM

Dave Burke said:

Ryan, Good point. Maybe its a C# thing... But you're right, if I were to have several parameters, I would definitely create a parameter array instead of create the parameters on the same line as the ExecuteScalar statement.
# April 2, 2004 1:00 PM

TrackBack said:

# April 5, 2004 11:36 AM

Mark Struck said:

Dave,

If you don't want the file open/save dialog to popup but want the excel document to open directly in the browser change the second parameter in the AddHeader method to "inline;filename=whatever.xls"
# April 7, 2004 12:27 AM

Dave Burke said:

Mark, Thanks. I tried that and it worked great, but its important for our users that the report opens in Excel, not in IE. I would agree with them on that score, cause if I am looking at an Excel spreadsheet I want to have the full resources of Excel to work with it. So I guess we'll live with the double dailog box display for now.
# April 7, 2004 2:08 PM

Mark Struck said:

Dave,

After a little searching I came across this at MSDN.

http://support.microsoft.com/?id=238588

It describes the behavior you were referring to. Hope this helps.

# April 8, 2004 4:36 AM

Dave Burke said:

Thanks, Mark. That KB helped! I'm posting the solution now...
# April 8, 2004 9:27 AM

TrackBack said:

# April 8, 2004 9:52 AM

TrackBack said:

# April 8, 2004 9:52 AM

Jerry Pisk said:

Dave, this is not outputing native Excel file, it's just using the fact that Excel can import HTML.
# April 8, 2004 1:09 PM

Dave Burke said:

Jerry, You're right. Thanks for the clarification. Native Excel as I defined it is launching Excel rather than viewing in a browser. Once it gets there (thanks to Office's HTML smarts), its a bonafide Excel doc in my book. Speaking of HTML smarts, Jason Haley has a great post on exporting excel data with formulas: http://dotnetjunkies.com/WebLog/jhaley/archive/2004/03/20/9583.aspx
# April 8, 2004 5:45 PM

Jerry Pisk said:

Dave, thanks for that link, that article is definitely more like it since it actually uses Excel's "HTML" format.

<rant>Of course it would be nice if Microsoft actually posted the format so we don't have to reverse engineer it (which is illegal, at least in the US it is), I'm wondering if Jason has a permission from Microsoft to post and explain that piece ;)</rant>
# April 8, 2004 10:58 PM

Jason Haley said:

Dave, nope I don't have Microsoft's permission to post their HTML format. If you don't want to use the reverse engineering method, check out http://www.carlosag.net/Tools/ExcelWriter/Default.aspx, it makes my method look like a hack. Plus I think Carlos works for Microsoft.
# April 9, 2004 9:10 AM

TrackBack said:

MSDN reference for Excel 2002 xml spreadsheet reference
# April 9, 2004 9:32 AM

Shannon J Hager said:

Hager, please. :)



(This wouldn't be so bad if it didn't happen constantly and if I didn't have such a beef with Sammy)


Glad the link helped. That place is great.
# April 10, 2004 1:51 AM

Colin Ramsay said:

That place is great, an inspiration for the new generation of standards aware web designers.

You may be interested to know that Zen Garden accepts external stylesheets in it's URL:

http://www.csszengarden.com/?cssfile=http://dan.kvsys.com/zen/slash.css

You can develop a look for it without having to download the HTML code.
# April 10, 2004 5:27 AM

Jason Haley said:

Great tip on the external stylesheets in the URL ... didn't know that. That will be cool to try out.
# April 10, 2004 7:10 AM

Dave Burke said:

Sorry, Shannon. I thought your name had a musical ring to it, now I know why.
# April 10, 2004 7:41 AM

SBC said:

Joe is quite a knowledgeable guy and makes presentations in this neck of the woods also (http://weblogs.asp.net/sbchatterjee/archive/2004/03/07/85628.aspx)..
# April 13, 2004 5:54 AM

Anonymous Coward said:

Actually it would seem that based upon these status designing at something lower than 640x480 would reach the largest audience. After all at 800x600 you reach 94%, at 200x200 or something you reach 100%.

Another good question to ask is who are those who are running at 800x600, and who are those running at a lower resolution.
# April 14, 2004 9:01 PM

Jose Rocha said:

Hello!

I have a Windows 2003 Ent server running IIS and CDONTS.dll. I am getting the following error: Microsoft VBScript runtime error '800a0046'. I followed MS's KB at http://support.microsoft.com/defaul...kb;EN-US;197619, but it did not fix my issue.

Can somebody help me? Thanks in advance.

Jose
# April 14, 2004 9:07 PM

Dave Burke said:

Anonymous Coward, Good points, all! :-) My theory is that there is a direct relationship between aging and bigger fonts, i.e., decreased screen resolution.
# April 14, 2004 9:07 PM

Jerry Pisk said:

I still don't understand why most developers try to lock their design into a single resolution. Just design the app/web site that it scales to almost any resolution. It's not even that difficult, just look at MSDN which scales, unlike the main Microsoft.com page.

And for those arguing that long lines of text are difficult to read - there's a thing called window that you can size to your own comfortable size. Just let the user pick their own size, don't force your own on them.
# April 14, 2004 9:36 PM

Dave Burke said:

Jerry, I'm a big believer in scalable style guidelines, like MSDN or Amazon, but there are as many sites out there (like MSN or MSNBC, for instance) who value the control which comes with a fixed dimension layout.
# April 14, 2004 9:48 PM

Chris Stewart said:

I certainly agree! I'm doing a similar site right now. I really have spent a lot of time just figuring out new things.
# April 14, 2004 11:15 PM

Dave Burke said:

Chris, Thank you much for the confirmation. I believe strongly in the value of this approach to afterhours coding and the learning that results, so its good to know that others can relate and agree.
# April 15, 2004 7:26 AM

Jeff Berg said:

I feel sorry for the people with Lower than 640x480 resolution. Poor webTV users.

The Jeff
# April 15, 2004 11:41 AM

ed said:

I use mythtv [http://www.mythtv.org/]. No subscription fees, web interface w/the ability to schedule recordings online, and the box didn't cost me anything either (had an old athlon sitting around). I can watch the shows on my TV, or my linux box, or on my windows laptop (wireless & samba). Oh yeah, one more thing: open source. I have the option to customize the software and offer my changes back to the community.
# April 15, 2004 11:52 AM

Dave Burke said:

WebTV!!! So THAT'S who comprises that 5%. Thanks for your comment, Jeff.
# April 15, 2004 12:39 PM

Dave Burke said:

ed, I didn't know. Interesting! Thanks for the comment.
# April 15, 2004 12:40 PM

Jerry Pisk said:

I think the lower resolutions are mostly PDAs and phones. Does anybody actually use WebTV?
# April 15, 2004 3:08 PM

Dave Burke said:

Jerry, Yeah, I thought of those after I posted the WebTV comment. You B right. PDAs and phones mostly, no doubt. Thx!
# April 15, 2004 3:18 PM

Elena said:

Hello!!

I have a question..

When I call a COM component in Asp.NET, I receive the following error message: Exception Details: "System.Runtime.InteropServices.COMException: Bad file name or number"

I don't understend why.

I try to know if remote share file exist or not.

But I don't know if file exsit in share remote,only know if file exist in a local share.

I have tried everything to get this to work, but I can't :(

I work in Windows 2000.

Thanks!!!
# April 15, 2004 10:10 PM

TrackBack said:

# April 16, 2004 3:39 PM

Shannon J Hager said:

gotta love Excel... you can open your 01234 zipcode-containing csv file and then format that column to "text", Excel will say that it will treat the column as text, leaving it exactly the way you entered it, even if you enter a number.

but the 0 will still be missing.

So far, I have never used Excel for anything EVER except to open files someone sent me that must be imported into other formats.
# April 16, 2004 4:42 PM

Dave Burke said:

Shannon "HagER" dude, Thanks for your comments. Its good to know my frustration with Excel is shared. You said it well.
# April 16, 2004 4:44 PM

Darin said:

I too am starting to use CodeSmith and am impressed with the speed of your development.

Could you post your templates? Be interesting to see your architecture.

# April 16, 2004 5:31 PM

Dave Burke said:

Darin, I feel like a selfish shit for not posting them now or on the CodeSmith forums, but they're the basis for an article I'm working on which I hope to have completed in the next few weeks. I'll definitely post back on my blog on any Code Generation-related template action.

To describe my approach, I start with a view, then select into a tmp_table, to which I add a primary key. That table is the basis for the business object, as well as the HTML form controls, the methods to populate the controls as well as the method to populate the business object afterward. The b.o. is passed to the DL where a CodeSmith template generates ADO.NET insert and update methods based on the SQL tables.

The article will elaborate on each of these aspects of the architecture.

And yeah, I am LOVIN' CodeSmith. Thanks for your post. Will get back to you soon.
# April 16, 2004 7:14 PM

darrenford said:

Don't forget Excel's 64,000 row limit.
# April 17, 2004 9:50 AM

Dave Burke said:

Darren, Yes, I hit that wall before, but I don't remember it being "that high" :-) thanks for the reminder.
# April 17, 2004 9:53 AM

Me said:

foreach( DataTable dt in ds.Tables )
{
foreach( DataRow row in dt.Rows )
{
string rowMD = row["md"].ToString();
if( rowMD == md )
{
row.BeginEdit();
row["date"] = SPACER;
row.EndEdit();
}
md = rowMD;
}
dt.AcceptChanges();
}
# April 17, 2004 11:49 AM

Dave Burke said:

me - nice. Pretty similar, but with a foreach(datarow) loop, I see. Is that faster?
# April 17, 2004 3:14 PM

TrackBack said:

What the heck.
# April 17, 2004 4:53 PM

Han said:

hi,what if i want to return a multiset of select statement from my SP and the name of the table is based on my SP rather then name it inside my code

Example:
in my SP

SELECT * FROM tbl1
SELECT * FROM tbl2


in side my code
DataSet ds;
ds=SqlHelper.FillDataSet(objConn,"spName",CommandType.StoredProcedure);
//automatically i will have my datatable in my dataset name as tbl1 and tbl2.

Can this bedone in DataAccess Application Block???
please advise.
# April 17, 2004 10:40 PM

SecretGeek said:

Wise words, indeed!

And that 'removing zeros' issue is a reall pain.

i often use excel to help generate bulk sql statements when i'm fiddlign with data, or to create bulk code, or to help generate big html tables of data. but it's very clearly not designed for these purposes, as it is too heavy and tries to be too smart.

a 'programmers spreadsheet' would be better. it wouldn't have any notion of formatting, or charts, or auto-complete, or auto-anything, or bold or colours or printing (except as text perhaps). it wouldn't understand dates, for example. but it would be very lightweight in memory, very quick. With excellent support for macro recording, regular expressions, and .net integration. you could write plug-ins to it quickly and easily in any .net language. it would have no practical limitation in the number of rows or columns.

ahhh... i dream of software...






# April 18, 2004 7:16 AM

Dave Burke said:

SecretGeek, I use excel for bulk sql statements, too. A "Programmer's spreadsheet" is a great idea! Maybe someone will give us a URL for it? I dream of a url...
# April 18, 2004 7:47 AM

Dave Burke said:

Han,

SqlHelper.FillDataset(cn,CommandType.StoredProcedure,"testproc",ds,new string[] {"tbl1","tbl2"});

oughta do it for you. Then, after the statement you can immediately do a

DataGrid1.DataSource = tbl1.DefaultView;
DataGrid1.DataBind();

or whatever. Maybe I'm missing something?
# April 18, 2004 7:51 AM

Jeffrey Palermo said:

Thanks Dave. Yes, I'm a coder. :) I plan on being more active in the .Net community in the future, and I look forward to maybe meeting you at a dev conference sometime. By the way, where was all this community when I was developing with ASP 3? Yeah, we had newsgroups, but I think the development community is a lot stronger now.
# April 18, 2004 9:19 AM

Dave Burke said:

That's a very good point about community in ASP3, Jeffrey. One reason is because our work was so boring and uninteresting, I mean, we opened up a connection, created a recordset, and spit out some rows on a web page. (At least that's what I did!) Not much to discuss with THAT development environment.
# April 18, 2004 9:27 AM

Dave Burke said:

Jeffrey, forget to mention this in the first comment, but I look forward to meeting you at a dev conference, too!
# April 18, 2004 9:28 AM

Julie Lerman said:

Robert Scoble talks about being part of that small group of REALLY high res users: http://radio.weblogs.com/0001011/2004/04/17.html#a7220
# April 18, 2004 11:14 AM

M. Keith Warren said:

# April 18, 2004 2:17 PM

Dave Burke said:

Keith, I wanted to mention the good work of the SVPs as well, but I couldn't deal with TWO accolades which I would never obtain. Well, some day I MIGHT achieve "somewhat valuable" professional status...
# April 18, 2004 2:29 PM

Justin Lovell said:

For about 50% of the MVP's that I have seen around the community, they truly deserve the title and the respect. I post a lot at the www.asp.net forums (I am a top 25 poster) and I have also seen my share of bad MVP's.

For example, I have seen one person who posted an average of 70 posts per day since sign up and then just dropped the postings four days after five days of being awarded as an MVP. What is he doing now? I do not know... haven't heard a peep from him for six months. I am not critizing the nature of his posts (just links) but on the thought of recognition that took place to select him.

And I have also seen people who seem to act like a complete ass. The usual reply from them are "Read the docs."

I have been doing some serious thinking on the credit of the MVP Program because, as I have already said, only 50% of them really deserve it to the "definition" of what an MVP is. The title does not appeal to me anymore... only the type of person appeals to me.
# April 18, 2004 3:33 PM

Dave Burke said:

Justin, Thanks so much for taking the time to share your thoughts and experience with the MVP issue. Those are good points we should remember. I really like how you put it, "the type of person appeals to me." Couldn't agree more.
# April 18, 2004 3:41 PM

secretGeek said:

Don't you mean "RoyGate" ?

(you say to-mata, i say po-tata)

secretGeek, LVP.
# April 18, 2004 8:24 PM

secretGeek said:

Oh -- i meant to say "Three Cheers for Julie Lerman"

She does more to encourage technical blogging than anyone else i know.

I went from 'sometimes writing web articles' to 'continually blogging about anything technical (or otherwise) that happens to me' mostly because of the extra traffic and attention that *she* sent my way. And I've seen her do that for a lot of other bloggers/developers too. I'm sure that in the off-line world, she also encourages many programmers to do what they do.

(i only ended up your blog, for example, because she'd mentioned you!)

i say again: Three Cheers for Julie Lerman

cheers
Leon
# April 18, 2004 8:52 PM

Dave Burke said:

Leon, I enthusiastically join you in the Hip, Hip, Horrah for the Lermanizer. Well said regarding her blog-zone of influence.

As for "the Gate's" point of origin, technically speaking I'm with you on the Roy-O-Gate source, but the nerd masses know the incident as "RoryGate," so I'm compelled to go with the flow.
# April 18, 2004 9:11 PM

Frans Bouma said:

Justin: life isn't build around www.asp.net's forums. An MVP can be doing something else now which has nothing to do with www.asp.net's forums.

What disturbs me is that a lot (and I mean: A LOT) of people are so incredibly lazy, it hurts. They don't read any docs, don't search google groups, hell, don't even try the idea they post in their question first. However they expect answers, and fast. An MVP is not a payed helpdesk employee. I can perfectly understand that an MVP says: "Read the docs", as that's often the only right answer to give. I roam hte C# newsgroup and a couple of others a couple of times a day to answer questions and often I see questions which are too silly to bother with. Not because they're hard to answer, but because the person has no clue what he/she is dealing with. We're not baking a cake here, this is software development, often these people are 'professionals', earning money for what they say they can do. If these people ask silly questions, sorry, but "Read the docs" is the only appropriate answer: they not only start reading the docs for the answer on their question, but they also learn that reading the docs is good, and will avoid having to ask the NEXT question which follows from the answer on their previous question(s).

A lot of questions are also just good questions and require an answer. However, you can't and shouldn't expect that an MVP answers silly questions just because he/she's an MVP.
# April 19, 2004 4:50 AM

Zoltan Koszegi said:

I made a sample asynchronous callback on a webservice in C#. It worked fine. Then I tried to practise with the 'ar.IsCompleted' code. When I put it in a 'while' cycle the callback function was not called at all. In the 'while' cycle I put some text to the output window by seconds. It seemed that these messages would be never disappear, because the callback couldn't (or never) completed.
mailto: zoltan_koszegi@qdev.hu
# April 19, 2004 5:33 AM

Dave Burke said:

Zoltan, You're absolutely right, as Ali said, the loop file is unnecessary in the example.
# April 19, 2004 7:41 AM

Brendan Tompkins said:

Dave,

Using foreach on a DataTable is the only way to go! You might be interested in my recent post about dynamically creating related DataTables

http://dotnetjunkies.com/WebLog/bsblog/archive/2004/04/15/11483.aspx

-Brendan
# April 19, 2004 8:58 AM

Dave Burke said:

Brendan, I didn't know about foreach being better. Will investigate. Thanks!
# April 19, 2004 9:17 AM

Julie said:

wow Leon- thanks. I know how hard it is for you to be serious :-) so I appreciate your comments that much more.
# April 19, 2004 11:21 AM

Justin Lovell said:

Frans, I am not trying to start a debate but when I respond "read the docs" all the time, I am sure as hell that I would not expect (or should I say "dream") to be a MVP or even get some sort of respect from someone else.

Sure, there are rather "lazy" people... they normally hang out at the Getting Started / Newbie sections... I steer clear of those sections.

I am being rational on this. I am not going on the extreme sides of the scale -- but what do you think of a person who just says "read the docs" when someone asks a rather good question for the topic of that forum (and keep in mind that I have witnessed some of those actions in the intermediate to high level forums and newsgroups)? That is what I am talking about in the last post... I am not targetting the guys who get frustrated at newbies for rather stupid questions -- I also get frustrated as well.
# April 19, 2004 3:44 PM

secretGeek said:

Frans is right: People who ask questions that demonstrate a complete inability to check google or docs first deserve no more than a "read the docs" response.

Justin is right: People who give the answer "read the docs" have hopefully done nothing to get themselves any closer to an MVP.

Ahh, isn't it nice when we can all just agree and get along and be happy with each other and give each other a big hug. In a manly way of course, not in a kinky way. I didn't mean it like that.

lb

ps. JL: who says I was being serious? cheers!
# April 19, 2004 10:46 PM

AJ said:

Ugh this is horrible. I would hate to be a new developer working on this project and deal with abbreviations like "coupd".

We have a large number of files with a large number of developers working on them, and we use very descriptive and long filenames. It works well.

How about Wiz_Oppt_CompanyUpdate.aspx? It's not THAT bad... Don't be afraid to use PascalCase!
# April 20, 2004 1:01 AM

Mischa Kroon said:

longer names with grouping like AJ suggested makes it a lot easier.

group_section_action.aspx

and why use _ with ascx files they have a file extension so you could probably skip that part.

Saves you a whole character :P

also pre wiz in the directory wizards...
Seems silly.

That said every naming scheme has its ups and downs.
# April 20, 2004 3:20 AM

AndrewSeven said:

More folders.
You need to group things.

Better (longer) names.

...and for the blown away code you need a source control system.
# April 20, 2004 9:07 AM

Scott Galloway said:

I keep Petzold's book around as the definitive reference to doing pretty much eveything in Windows with C#. I also have Chris Sells and Erik Porters books - and whilst they're a good starting point, they're far from comprehensive; you can read them cover to cover without taking powerful stimulants which is different to young Mr Petzold's book.
# April 20, 2004 9:22 AM

Brendan Tompkins said:

David,

I've struggled with this too, and I've come up with the following pattern. I store my different possible views in a View enumeration, and then call a method wich does the hide/show stuff. It works really well, and keeps all this view stuff in one place...

-Brendan

public enum ViewEnum
{
PivotTable,
PivotChart,
NotSet
}

private void ShowPanel(ViewEnum view)
{
if(m_state.CurrentView == view)
return;
else
{
this.pnlPivotChart.Visible = false;
this.pnlPivotTable.Visible = false;

switch(view)
{
case ViewEnum.PivotTable: this.pnlPivotTable.Visible = true;
break;
case ViewEnum.PivotChart:
this.pnlPivotChart.Visible = true;
break;
}
}

// Set and store the state
m_state.CurrentView = view;
m_state.StateStore(this.Session);
}
# April 20, 2004 9:32 AM

Justin Lovell said:

Don't I know from somewhere? Andrew??
# April 20, 2004 10:27 AM

Dave Burke said:

Scott. Funny! Thanks for your comments. I've considered keeping young Mr. Petzold's book as a reference, but I'll resort to searching the MSDN docs or something when I have the rare need to get deeper into these things.
# April 20, 2004 11:55 AM

BarfieldMV said:

Such a simple sollution to such an unexplainable problem. I really looked everywhere for an answer to this question. After installing windows 2003 om my laptop and configuring it as a workstation, activating the server components wasnt as easy as turning them off.

Where did you find this answer?
# April 21, 2004 10:05 AM

BarfieldMV said:

Also, do not forget to turn on asp.net in the IIS console -> web service extensions
# April 21, 2004 10:10 AM

Dave Burke said:

Barfield, This was one of those actions based on years experience. Usually the solution is found through googling for it, but this was similar to situations encountered in pre-2k3 OSs as well. Thanks for your comments!
# April 21, 2004 10:14 AM

TrackBack said:

# April 21, 2004 9:23 PM

Darrell said:

Truncate table erases everything without writing anything to a log. Such power is a good reason not to make it easy to do.

Now if only the rest of SQL Server was that secure! :)
# April 22, 2004 8:52 AM

Dave Burke said:

Darrell, Thanks! I was wondering what distinguished truncation from other operations. I appreciate the information!
# April 22, 2004 9:12 AM

Pat Piccolo said:

Has anyone else pinned the solution explorer to the top of the VS_IDE instead of to the right side besides me? My foldernames and filenames are so long that it just seemed to make sense to pin it to the top; otherwise, I had to stretch it to 1/2 the screen to see the full filename. I guess I need to wrap up some of my more common pages (login, etc) into server controls so I can hide a dozen or so source files at a time.

Still trying to get a reliable setup for my Whidbey CTP so I can see how much worse code-beside makes things.... the darn thing runs more reliably in my Virtual Server running Win2k3WebServer than on my dedicated XP Pro Dev HD. Too bad I only have 1gb on my Virtual Server PC... Win2k3WebServer w/Whidbey is a memory hog and is sooo slow.
# April 22, 2004 10:46 AM

Dave Burke said:

That's interesting, Pat. Sounds like pinning to the top is what would work best for really long filenames. No, I haven't heard of anyone else doing this. :-) I should probably increase the length of my filenames, but how about us pinning solution explorer to the left of a second monitor in a dual monitor setup? That would work for me!
# April 22, 2004 10:59 AM

TrackBack said:

# April 22, 2004 11:48 PM

TrackBack said:

# April 23, 2004 12:00 AM

Jon Galloway said:

And on the other corner of the country (San Diego), I jogged by a rattlesnake today. Third one in two months.
# April 23, 2004 1:16 AM

Karl said:

Couldn't you solve your problem using strongly typed classes?

'cast you base page to its type and declare a property which'll hold your Template

public class Directory
Inherits Page

public Template as MyTemplateBase

Sub Page_Load
Template = ctype(Page.LoadControl("~/template.ascx"), MyTemplatePage)
placeholder.Controls.Add(template)
End Sub

End class


declare a bass template:
public class MyTemplateBase
inherits usercontrol

public body as control
end class

Then, in your template:

public class PageMemberTemplate
Inherits MyTemplateBase

sub page_load
'body is defined in the base class
body = Page.LoadControl("dirbody.acx")
placeHolderBody.controls.add(body)
end sub
end class


and finally, from your red control, you can get to the blue control via:

ctype(Page, Directory).Template.Body

or something similar...
# April 23, 2004 8:37 AM

Dave Burke said:

Karl, Thanks! I'll pursue this tonight and post back. I never considered strongly typed classes. I very much appreciate you taking the time to provide this possible solution.
# April 23, 2004 8:46 AM

Brendan Tompkins said:

Dave,

I've considered this same problem, and I've decided that referencing parent objects is not the best OO pattern to use. When I've needed to do this, I'll raise an event in the child control, to which the parent subscribes. 9 times out of 10, this gets around the problem of parent-referencing.

-Brendan
# April 23, 2004 1:33 PM

Dave Burke said:

Brendan, Events in the child control subscribed to by the parent. Wow. This is something new on my "definitely must explore" list. Thanks!
# April 23, 2004 1:55 PM

TrackBack said:

# April 23, 2004 11:32 PM

William Bartholomew said:

I was trying to solve a similar problem, here are the options I looked at:

1. Robocopy
2. Windows port of rsync
3. Using IIS's FTP server and the ncftp command-line client

Option (3) is pretty good, you still get authentication, running over the VPN means it's secure and FTP supports resume if the connection is broken.
# April 24, 2004 12:38 AM

Michael Carr said:

XXCOPY is a nice alternative. Very flexible.

www.xxcopy.com
# April 24, 2004 12:44 AM

Raymond Burns said:

For what it's worth, I'm a non-programmer and was able to create necessary forms fairly easily. What I couldn't do, I was able to find online. I'm using Data Views in Frontpage to connect to query Forms to pull necessary information. To display the necessary info in a webpart, I'm just using filters which seem pretty intuitive.
# April 24, 2004 12:51 AM

Dave Burke said:

William and Michael: THANK YOU! I'll investigate and post back.
# April 24, 2004 1:20 AM

TrackBack said:

# April 24, 2004 1:48 PM

TrackBack said:

# April 24, 2004 1:48 PM

Brian Desmond said:

Does it work if you go in and create files and folders with explorer? Do you have modify rights on the parent directory and the whole subtree?

Are you using the FQDN of the target server?
# April 24, 2004 2:37 PM

Dave Burke said:

Brian, with explorer? yes. mod rights? yes. FQDN? I tried both. See the "Robocopy DOES..." post. Seems it worked on a W2K destination server! (but not W2K3.) Thanks!

# April 24, 2004 2:45 PM

Julie Lerman said:

I'm sitting here write now doing stuff in C# and have to keep compiling just to make sure I have stupid things like casing right...But i'm having fun anyway. Too darned windy for cycling today unless you can assure it always being at your back!
# April 24, 2004 3:16 PM

Dave Burke said:

Julie, that's funny! I should have mentioned the exception to the frequent-compile rule: VB.NETters learning C#. HEY, WHAT ARE YOU DOING WRITING C# CODE?????
# April 24, 2004 3:24 PM

Colin Ramsay said:

That's really interesting. The evolution of code and code-writing methods is something I've noticed in my code; it's amazing to see the rapid changes one can make when they are just a learned like me.

I understand your preference for table based layouts, but it really does have an interesting parallel with your main point. Table based layouts can be compared to your use of the label control. Pure CSS can be compared to the static library method. It's an evolution, from clumsy to elegant.

As a final note, in designing pages it's not usually necessary to rely on absolute positioning. Using floating elements and such allow for very flexible layouts.

See www.csszengarden.com for more, but I can certainly understand the desire to stick with what you know best if you don't have time to invest in CSS.
# April 24, 2004 3:57 PM

Dave Burke said:

Colin, A lot of good stuff in what you say. Yes, someone (here on weblogs.asp.net) turned me onto csszengarden not long ago. I may have a new company site to put online soon (as opposed to my usual web application work), and I figured I'd learn a thing or two more about CSS then. Good analogy between CSS and the static library method. Thanks for the comments!
# April 24, 2004 4:15 PM

Greg Pyatt said:

I had a manager who got his panties in a bunch at me because I kept flipping back and forth between Visual Interdev and my browser (a "recompile" of sorts). He was a dick who had no reason to be, other than taking advantage of his position to dump on people.
# April 24, 2004 4:23 PM

Jerry Pisk said:

Just use Java IDEs, the good ones (Eclipse, IntelliJ) compile in the background on resource change and alert you about errors on the fly. No need to sit there watching a minute long compile as with Microsoft's tools.
# April 24, 2004 4:56 PM

Jerry Pisk said:

The request's Context is a lot better place to store request related objects than the Session.
# April 24, 2004 5:08 PM

Udi Dahan - The Software Simplist said:

"How does TDD fit into this picture ?", asked the devil's advocate :)
# April 24, 2004 5:35 PM

Dave Burke said:

Jerry, Ya know, you're absolutely right. I'll most likely re-architect to go with context rather than session. While I use it, I'm still not a big fan.
# April 24, 2004 6:13 PM

Dave Burke said:

Sorry, Udi. I don't know the acronym. I don't know what that tells you about me, but there it is. What is TDD?
# April 24, 2004 6:15 PM

Steve Steiner said:

TDD is test driven development. Tests are written first, and code is written second. It is popular with the Agile Programming crowd, and is a good practice in general. The typical pattern with TDD is to code a little, compile, run tests, and repeat. Refactoring is a complimentary techinque where you alter the structure of your code without changing its behavior. It is typical to recompile and test after every non-trivial refactoring. As long as the recompile+test process doesn't take too long it is worthwhile to catch an error sooner rather than wade through many accumulated errors later.
# April 24, 2004 8:30 PM

Jon Galloway said:

While it can be taken to absurd lengths (compiling after a lable change), my code/compile cycles have gotten a lot shorter over the years. As Steve pointed out, the benefit is that you're not wading through accumulated errors and if you've just written some buggy code, it's best to debug it while the context and requirements are fresh in your mind.
Maybe I'm writing much simpler code than you, or you're running on a much slower maching, but my compiles take a few seconds. Or maybe I just write buggier code? ;-)
# April 24, 2004 11:38 PM

Dave Burke said:

Jon, No. The bottom line is most probably that I myself hit [CTRL][Alt]-B more often than I need to. Thx!
# April 25, 2004 12:40 AM

Brad said:

I suspect the manager who is questioning how many times a developer compiles isn't a very good manager either. The bigger (and better) question is what is the quantity and quality of work that the developer creates over time? Is that metric being "disrupted" or impacted by [CTRL][ALT]-B? If the answer is "yes" than there might be an issues, but I think in about 99% of cases the answer is a resounding no; There are many many factors that can far more severely impact a developers productivity than a re-compile...at least in this framework :-)
# April 25, 2004 12:41 PM

Dave Burke said:

Brad, Good points. The issue is productivity, after all. I guess I made this post primarily because I'm realizing that I am coding for longer periods before feeling the itch to hit [CTRL][ALT]-B.

I also know there are times I do it unnecessarily, just because I WANT to. "I like to look at things." Call it a combination of Chauncey Gardener in Being There "I like to watch" and the Paklids in the ST:TNG Samaritan Snare episode saying "We look for things. Things to make us go." The issue for me personally is to, well, compile less. Code more. I came across more authoritative in the original post than I should have, as its more a personal directive to myself. Thanks for your good input.


# April 25, 2004 1:03 PM

Karl said:

The ASP.Net 2.0 forums use a custom SectionHandler which I find helps elimiate a lot of problems with web.config. For your case it would isolate the loading of values to specific function, which would help debug. you might want to take a look at what they do.
# April 27, 2004 1:14 PM

Dave Burke said:

SectionHandler? Good idea. Thanks, Karl! I will investigate.
# April 27, 2004 2:02 PM

Phil Winstanley said:

That error is a pain in the ass wherever it occurs, could it really be that hard to go: -

Object reference (<THE OBJECT NAME>) not set to an instance of an object.

:)
# April 27, 2004 2:14 PM

Dave Burke said:

Phil, from experience I've learned to keep my expectations pretty low. Yes, that's a great idea.
# April 27, 2004 2:20 PM

Travis said:

Someone at MSDN expained in a blog article why they had to make this Exception so generic. Damn, I wish I could find it. I'll keep searching.
# April 27, 2004 4:54 PM

David said:

Where I work, .zip files are no longer allowed.
# April 28, 2004 3:31 PM

Dave Burke said:

Hmmm. Thanks, David. I've been working out of my home office for the last 4 years and forget about corporate policies. I appreciate those considerations, but blocking ZIPs just doesn't seem to, um, enhance productivity...
# April 28, 2004 3:36 PM

Bill Rodenbaugh said:

i don't know if i would do it this way... but you could :)

while ( dr.Read() )
team_uids = String.Format("{0}{1}{2}", team_uids, ( team_uids.Length > 0 ) ? ", " : String.Empty, dr["uid"]);
# April 28, 2004 4:27 PM

Christian Nagel said:

What about using GUIDs for unique identifiers?
Christian
# April 28, 2004 4:27 PM

Dave Burke said:

Christian, Because the use of int IDs from the user table is so pervasive throughout the schema, my thinking is that the simple int (in the user table an identity value) is preferrable. ?
# April 28, 2004 4:29 PM

Dave Burke said:

Love it. Thanks, Bill!

# April 28, 2004 4:31 PM

Shannon J Hager said:

the newer "no .zip" policies are becoming more and more popular because most of the newer viruses arrive as zip files. That does put a serious damper on business email abilities, though.

Outlook Express has a very simple but strange work-around for the over-protective built-in attachment security: when you get an email with a blocked attachment, open the message, then click "forward". The attachment will still be attached but no longer blocked. Now you can double click it and save it to disk.

I don't understand how a bug like that slipped in, but it is a life-saver at times.
# April 28, 2004 4:34 PM

Jerry Pisk said:

I keep wondering about how much you Dave actually know. You need to handle Null values before you convert them to value types, don't you know that value types cannot be null? And even then, the value you're getting when you convert NULL is DateTime.MinValue, so your check shouldn't be if the year is less than 1950 but if the DateTime value is the minimum value possible. Still, you should check for nulls BEFORE you convert to value type or use SqlDateTime, which is a reference type and can handle NULL values.
# April 28, 2004 4:42 PM

Dave Burke said:

Shannon. Thanks! Yeah, funny, I tried asking the user to send the attachment to my Outlook Express account, which I have POP'd to my company's Exchange server. I was going to try the forward trick (since it failed in Outlook 2003.) The funny thing was that the .MDB was flagged by McAfee GroupShield Exchange at HQ. (Its funny now. Wasn't funny yesterday. :-)
Thanks for confirming the "bug."
# April 28, 2004 4:43 PM

Matt Hawley said:

never thought of using it in the second way, I usually have:

string team_uids = "";
while(dr.Read())
{
if(team_uids != "")
team_uids += ", ";
team_uids += dr["uid"].ToString();
}
# April 28, 2004 4:47 PM

Dave Burke said:

Jerry, Shruggin' my shoulders. Don't know what to tell ya, dude. I know a lot about some things; not so much about others, like us all. I'm apparently light on under-the-covers info regarding null, value types, and reference types. But put a bunch of developers in a room and bring up the subject, there probably ain't a whole lot of fighting for floor time to get peoples' opinions in, I'm betting. You're right. I'm seeing that this is required reading.

Regarding checking for nulls BEFORE converting to value type or use SqlDateTime, you're advocating checking for null at the time of assigning a business property value? Say if I assign the bizobject datetime property from a database datareader, once assigned, I'm doing the checking for null, and thus the appearance of 1950.

Thanks!
# April 28, 2004 4:57 PM

Dave Burke said:

Matt, me too. The fact that there was no if() statement made it "blogworthy."
# April 28, 2004 4:59 PM

Mischa said:

use of a dictionary object :)

its bound to be quicker :)

ht(id) = " "
ht(id) = " "
ht(id) = " "

# April 28, 2004 5:13 PM

AndrewSeven said:

try a StringBuilder ...
# April 28, 2004 5:18 PM

AT said:

Welcome to insecure world ;o)

SQL Injection attacks waiting for you.
Once you will get team_ids = "9) or (1=1" you will be hacked ;o)
Also it will not work for big input (as there is limited length for SQL string) and it's pretty dam slow.

Preferred is to use String.Split(), ArrayList, sort and iterate comparing with prev element.

The only exception is in case if you need all thouse IDs to read more data from database. This way passing all IDs in one SQL statement offload your database from answering numerous statement by using only one. But SQL string limitation still here.
# April 28, 2004 5:38 PM

Ryan A. Rinaldi said:

I normally just do it in-line:
while(dr.Read())
{
team_uids += (team_uids == "" ? "" : ", ") + dr["uid"].ToString();
}

I might have syntactical errors since writing code in a textarea is not the easiest thing to do. :)


# April 28, 2004 5:41 PM

Anonymous Me said:

Only you wouldn't REALLY want to use the code you posted there, right? Rather than re-assemble the array for every item you want to access, you'd grab the array once, assign the result to a local variable and then access the items from the local variable:

string[] stuff = GetTeamStuff();
txtTeamEmails.Text = stuff[ 1 ];
txtSomethingElse.Text = stuff[ 2 ];
// etc.
# April 28, 2004 6:43 PM

Darren Neimke said:

System.Text.StringBuilder sb = new System.Text.StringBuilder() ;

while reader.Read() {
sb.Append( reader["myField"] + "," ) ;
}

string out = sb.ToString() ;
return out.Substring( 0, out.LastIndexOf( ',' ) ) ;
# April 28, 2004 6:50 PM

Jon Galloway said:

Well, I think you're a genius. This is a simple way to check for null and MinValue at once. Maybe offensive from a purist point of view, but definitely a practical solution to an annoying problem. I wish DataTime's were nullable - null means more than 1/1/0001, which is still a magic number in my book.
# April 28, 2004 7:01 PM

Dave Burke said:

Mischa and AT, Both excellent alternatives. Thanks much! I'll re-evaluate when faced with this again.
# April 28, 2004 7:14 PM

Dave Burke said:

Anonymous, You be right. Separate calls and re-assembling the array would be dumb. I'd better change my code. :-) Thanks!
# April 28, 2004 7:18 PM

Dave Burke said:

out.LastIndexOf(','). I'll remember that, Darren. Thx!
# April 28, 2004 7:20 PM

Dave Burke said:

Jon, Funny! I just tested Jerry's [if (datein == DateTime.MinValue)] suggestion, which worked as well. There's a lot to this whole NULL thing. Thanks for sharing your thoughts!

# April 28, 2004 7:32 PM

secretGeek said:

This one has other side-effects -- but the side-effects may actually suit your purposes:

Dim comma As String = ", "
team_uids = comma
Do While (dr.Read())
team_uids &= comma & dr("uid").ToString()
Loop
team_uids = team_uids.Replace(comma & comma, "")

Rather than lean toward terseness as happens above, i thought I'd try for verbosity:

Dim comma As New CommaHelper 'defined below
Do While (dr.Read())
team_uids &= comma.ToString & dr("uid").ToString()
Loop

Public Class CommaHelper
Dim _sComma As String = ""
Public Overrides Function toString() As String
Return _sComma
_sComma = ", "
End Function
End Class


# April 28, 2004 7:45 PM

secretGeek said:

(Note that indenting is lost in comments!)

'Assume Users has been instantiated
Public Function GetTeamStuff() As String()()
Dim team_ids() As String = {1, 2, 3}
Dim Team()() As String = _
{team_ids, _
users.GetEmails(team_ids), _
users.GetNames(team_ids)}
Return Team
End Function
# April 28, 2004 7:54 PM

Jerry Pisk said:

Dave, if you have a business object to hold your values then you're right, no checking should be there. But you should design your object to hold all possible values, if you have a database column that can hold NULL values then you need to make sure your business object can hold those as well. In this case, use SqlDateTime.

I do agree with Jon, DateTime should've been a class so it can be null. Pretty much everything should've been except basic types - characters and numbers. There should've been no structs in CLR. The performance gain is not worth the productivity loss.
# April 28, 2004 7:57 PM

Dave Burke said:

And the scary thing is I could actually follow along. Took me a while to get through it though. Thanks, SG! I enjoyed the, uh, read!
# April 28, 2004 9:19 PM

Dave Burke said:

Thanks, Jerry, for both of your comments. I had not considered ensuring that the business object can hold nulls as well. That makes good sense. I will be investigating how SqlDateTime plays a role in this as well. Regards!
# April 28, 2004 9:24 PM

Jerry Pisk said:

No problem. I've ran into a very similar problem before - I was using Struts and designing all these strongly typed objects to collect user input. And after while I realized it's just pointless when it can't hold all the possible input values so I had to redesign all those objects to simply use strings to hold values, since the end user can pretty much enter anything. The lesson learned - you need to design your objects to hold all possible values, not just the ones you expect. If a database column allows NULL values then your object needs to be able to handle them, if you're population an object with user input on an HTML form (or anything that runs on the server) it needs to be able to hold everything that the protocol allows (Unicode strings in case of HTML) since it's so easy to bypass any client side checking.
# April 29, 2004 2:54 AM

Dave Burke said:

Jerry, Your input (not a pun :-) has been very valuable. Talk to you later!
# April 29, 2004 8:20 AM

Brendan Tompkins said:

My approach would be similar to Ryans:

string team_uids = String.Empty;

while(dr.Read())
{
team_uids += (team_uids.Length > 0) ? ", " + dr["uid"].ToString() : dr["uid"].ToString();
}
# April 29, 2004 9:39 AM

Brendan Tompkins said:

Eeeew. Running this through SQL seems like using a bulldozer to flatten an anthill.

How about this?

ArrayList al = new ArrayList();
string [] teamIDs = team_ids.Split(new char[]{','});
foreach(string teamID in teamIDs)
{
if(!al.Contains(teamID)) al.Add(teamID);
}

foreach(string uniqueTeamID in al)
{
// Build your comma list here if you need it.
}

-Brendan
# April 29, 2004 9:45 AM

Dave Burke said:

Brendan, if team_uids.Length > 0. Ahhh, yes. Like it! Thanks!
# April 29, 2004 9:46 AM

Dave Burke said:

Brenda, you da man! Thank you for this non-SQL better way.
# April 29, 2004 10:02 AM

Dylan said:

I still really like Dave's original code. I've always done the
out.Substring( 0, out.LastIndexOf( ',' ) ) ;
approach.

I don't really like the team_uids.Length > 0 because it would take more processing to check length for each step in the loop. Wouldn't matter in .NET, but I do a lot of Flash Actionscript, where every little thing makes a difference with its limited processing power.
# April 29, 2004 12:23 PM

Roy Osherove said:

That "forward" bug also works with Outlook.
# April 29, 2004 5:28 PM

Roy Osherove said:

Um.. you could also use a cleaner approach at the end of the loop:
out.TrimEnd(',')
# April 29, 2004 5:44 PM

TrackBack said:

# April 29, 2004 9:59 PM

AT said:

Hey !! What you are all doing ?? String is imutable and any manipulations with it is BIG NO-NO ...

Use only StringBuilder to work with data and convert to string only after everything is done.

---
StringBuilder sb = new StringBuilder();

foreach (String item in items)
{
sb.Append(item); // Never use string concat here
sb.Append(',');
}

if (sb.Length > 0)
{
sb.Length--;
}

string ret = sb.ToString();

---
# April 29, 2004 10:36 PM

TrackBack said:

# April 29, 2004 11:23 PM

Scott Mitchell said:

Not the most efficient, but how about:

ArrayList a = new ArrayList();
while (dr.Read)
{
a.Add(dr["foo"]);
}

string s = String.Join(",", ((string[]) a.ToArray(typeof(string))));

(may be some typos,didn't test it...)
# April 30, 2004 12:38 AM

Jon Galloway said:

If you're iterating a datareader, you prolly pulled it from a database. Which means you could just get the csv list from the db:

DECLARE @Values varchar(500)

SELECT @Values = COALESCE(@Values + ',', '') UserID FROM Users WHERE STATE = 'MO'

SELECT @Values
# April 30, 2004 2:45 AM

Jon Galloway said:

And there are several ways to select from a comma separated value list in a stored procedure without using dynamic sql, so the sql injection thing goes away:

http://www.sqlteam.com/forums/topic.asp?TOPIC_ID=20675

http://www.sqlteam.com/forums/topic.asp?TOPIC_ID=33866
# April 30, 2004 3:13 AM

Anonymous said:

# April 30, 2004 9:28 AM

Richard said:

How about the 5 million games console users (PlayStation, Dreamcast, XBox and PS2)...
# April 30, 2004 3:52 PM

Dave Burke said:

Richard, Mmmm. Good one. I don't know if the "computer stats" included those or not. I'll have to check... Thx!
# April 30, 2004 3:54 PM

Phil Weber said:

October 2001 was the last MSDN Library compatible with VS6.
# April 30, 2004 7:16 PM

Dave Burke said:

Hm. I figured there was <i>some</i> reason. Thanks, Phil.
# April 30, 2004 9:26 PM

Brendan Tompkins said:

Dave,

There's an article here describing exactly what I was talking about. -Brendan

http://www.odetocode.com/Code/94.aspx
# May 7, 2004 10:22 AM

billy said:

What permissions did you have to grant to get this running...im having the same problem. gave full control to the aspnet user on the entire site dir ... still getting the <customErrors mode="Off" /> entry...

# May 7, 2004 11:57 AM

Dave Burke said:

Billy, network_service account on W2K3. Hope it works for you!
# May 7, 2004 12:57 PM

Dave Burke said:

Brendan, I read through this and will work through it tonight. I've wrestled with this issue again in last night's R&D session. I tried adding the dynamically loaded control as an HttpContext item and referencing it that way, but it was a no go. I'm still using the Page.FindControl([ACSX's UniqueID value string]) and want to get away from it. Thanks very much! I'll be posting back on this issue, for sure.
# May 7, 2004 1:02 PM

William Bartholomew said:

If you buy tropical fish make sure you get some Clown Loaches. They have personality plus and are really fun fish. Beware, they sleep on their side on the bottom of the tank, so you often think they're dead ;)
# May 7, 2004 8:30 PM

Dave Burke said:

William. Good tip. My goldfish has a lot of personality, too. Unfortunately.
# May 7, 2004 9:10 PM

Julie Lerman said:

Dave-
Can you please spend 15 minutes at Monday's meeting showing some of the cool utilities you've found in the blog world? Remember we talked about this? YOu could do it every month. It would be so great!
# May 7, 2004 9:33 PM

John said:

I wrote this app that hinged on this set problem, and some guy implemented five different approaches to optimizing it. Strangers can be so amazing.
# May 8, 2004 1:44 AM

TrackBack said:

# May 8, 2004 4:30 PM

Shannon J Hager said:

I recently did some timing measurements on a web project I am working on. It works great inside my network, on my text server, but the production server is quite slow. I was quite surprised to find that the production server was actually producing the pages at 1/2 to 1/3 of the time it took my test server, so the bottleneck was not the production database or shared hosting web server, but somewhere in the network.
Of course, with shared virutal hosting, there isn't a whole lot you can do except change hosts...
# May 9, 2004 8:38 AM

Dave Burke said:

Thanks for sharing your experience with this, Shannon. The configuration I'm dealing with is the same server serving up the pages to internal and external users. I'll post back any updates.
# May 9, 2004 6:04 PM

MaxDaniele said:

Hi billy, I found that propagate down the security of layout in application pool solve the problem.
# May 10, 2004 1:48 PM

AndrewSeven said:

It could be a simple as : The page does all the heavy lifting before it gets to the redirect in the button event.



# May 10, 2004 4:16 PM

Dave Burke said:

I can understand that concept. Thanks, Andrew!
# May 10, 2004 4:28 PM

Chad Grant said:

Yeah, all your dropdowns are getting loaded before you do the redirect... in your page load add: if (!Page.IsPostBack) { LoadControls }
# May 10, 2004 5:44 PM

Dave Burke said:

Chad, you nailed it. Thanks! That has to be it. The nasty Page_Load is so busy populating all of goofy dropdowns that I completely missed it. Its like you had a copy of my source code, dude! Very good call. I'll remember to check IsPostBack if I ever encounter something like this again. Thank you.
# May 10, 2004 11:13 PM

Ardo said:

Thanks a lot!
I was going nuts trying to find a way to export data so that it could be imported into Excel. Using CVS was not a solution, because Excel consideres every field as of "general" type. So 00011 becomes 11 and 1.01 becomes 1st of January aso. Using html as output helped and now everything works fine. BTW, I use PHP, not ASP :)
# May 13, 2004 8:16 AM

Dave Burke said:

Ardo, Thanks for your comments! The idea certainly wasn't mine, but yeah, Office 2003's support for HTML makes the task a little easier!
# May 13, 2004 8:30 AM

AndrewSeven said:

We survived because it was better than what came before ;)
# May 13, 2004 9:14 AM

Dave Burke said:

Andrew, I guess you're right. There wasn't anything before it, was it?
# May 13, 2004 9:21 AM

Aaron Robinson said:

Open MTS to the components window of your package, then click and drag files from Explorer directly into MTS.

I can't remember the last time I used that wizard interface.
# May 13, 2004 10:27 AM

Dave Burke said:

Aaron, Actually I did that, too, and the .TLB did not appear in the window. Thanks for the tip though!

# May 13, 2004 10:28 AM

David Knott said:

Hi
Why not create a NullableDateTime wrapper class around the DateTime struct that will encapsulate the necessary business logic to handle nulls ?

Nice site.
# May 14, 2004 6:01 AM

Dave Burke said:

David, I'm going to have to think about that. Wrapper class, hmmm. Thanks very much for your thoughts on this!
# May 14, 2004 7:32 AM

justin brown said:

your a life saver mate.

What a weird setting.

Justin
# May 16, 2004 12:52 PM

Jason said:

After all that, you have to tell us what was in the event logs... did the machine get nudged and the cord slipped?
# May 17, 2004 3:43 PM

Dave Burke said:

Jason, heck yes, I should have included that in my lengthy tale. I looked through the logs on reboot, honest, and I'm certain they were blank. System, application, all of them. I didn't think anything of it until you mentioned it. Now I'm seeing that blank event logs may indicate possible log corruption.

http://groups.google.com/groups?hl=en&ie=UTF-8&q=blank+event+logs&spell=1

If I discover anything pertinent or interesting about this I'll write back to you personally as well as post here. Thanks for the comments.
# May 17, 2004 3:54 PM

Dave Burke said:

btw, the event logs on the machine seem normal now...
# May 17, 2004 3:55 PM

Blair said:

Good timing. I'm about to do this today for some simple content.


Thanks for the tip.
# May 17, 2004 4:07 PM

Dave Burke said:

Blair, I'd be interested to know if posting from a usercontrol in a usercontrol works as expected for you before you have to use an alternative method as I describe. Good coding!
# May 17, 2004 4:10 PM

Dave Burke said:

Personal Log Entry, star date 0542913. Awoke to find the PDC computer down again. Last event log entry at 2:45 in application log concerning license logging services on a former PDC no longer on the network. Last systems log error was a NetLogon error, also having to do with the retired PDC. Both errors longstanding and having nothing to do with the current shutdowns. Time up between crashes: @48 hours.
# May 18, 2004 8:46 AM

Amir Parsi Esfahani said:

There is a more important limitation: "Long type fields are not supported to sumbit". It means that storing a xml file in a database is not allowed if there are fields of type "ntext", "memo", ...
# May 20, 2004 2:30 AM

BarfieldMV said:

Thank, i googled for it and found the solution on this blog :D . Blogs are really getting a good source of information, keep up the good work on this blog.
# May 21, 2004 2:36 AM

jblue said:

I can apply any design on my ps6. it says it can't complete the command because there's not enough memory (RAM)...
# May 26, 2004 2:22 AM

jblue said:

what patch? can i download it?
# May 26, 2004 2:23 AM

SBC said:

There are quite a bit of docs and tools for porting DocLibs over to SPS2K3 from SP2K1. (see Mike Hermann's - http://www.parallelspace.com/sharepoint/).
Thanks for mentioning my blog posting.
# May 27, 2004 10:07 PM

Dave Burke said:

SBC, Thanks for turning me on to the Smart Solutions and the migration link! The Microsoft Sharepoint support area lists a single migration option only, and that is from SPS2001 to SPS2003 ON THE SAME SERVER, and certainly not SPS2001 to WSS2003. Regards!
# May 27, 2004 10:27 PM

SBC said:

thanks Dave for the kind mention. I *think* Mike Hermann was also a PM at Microsoft for the SharePoint product a few years ago - so he certainly knows his stuff!
# May 28, 2004 12:54 PM

Dave Burke said:

Anytime, SBC! It will be great to get my hands on Mike's BPR371 presentation materials, that's for sure.
# May 28, 2004 12:58 PM

Dave Burke said:

Confidence is high. I'm going through it now. I'll post back any news. Thanks!
# May 28, 2004 2:53 PM

Shannon J Hager said:

the problem is that your measuring device is not calibrated. I will go out on a limb and say that Gatorade Propel Lemon flavored water is the worst tasting commercially sold fluid I have ever tasted that did not contain nutri-sweet. I drank 2 bottles of it and am very sure of my conclusions. However, I drank those 2 bottles in 4 seperate settings (1/2 bottle each time) and the 3rd session found me wondering if it was an acquired taste because I actually liked it that time. The 4th session (finishing off that second bottle) made me realize my taste buds were malfunctioning before and that Propel was probably released without the benefit of any sort of pre-release taste test screening.
# May 28, 2004 9:05 PM

Dave Burke said:

Shannon: A most remarkable anecdote for contemplation. I will seek out a bottle (or two?) of Gatorade Propel Lemon Flavored water and report back to you personally! Thanks for your comments.
# May 28, 2004 11:29 PM

SBC said:

The SP project I am working is a "new deployment" and therefore, with no migration issues.. ;-)
Please post your findings as it forms a good KB of experience!
# May 29, 2004 6:16 AM

TrackBack said:

# May 29, 2004 2:53 PM

RAUL said:

TV DOES WATCH ME......
Y ALSO LIKE MY HOT WINGS THE SAME LEVEL OF HOT.
# May 29, 2004 5:08 PM

Irv Schor said:

...everybody pay attention and look at what Lotus Notes/Domino has been providing for the past 10 years. MicroSoft continues to require product addon after product add on in its attempt at a 'consolidated' groupware solution. The above example would have been a cakewalk in Notes, with one product on 1 server.
# June 3, 2004 4:11 PM

holly said:

is it for sale
# June 5, 2004 12:13 PM

Raj Kaimal said:


Lol! The store ought to put a donut FIREWALL.
# June 8, 2004 12:58 AM

secretGeek said:

brilliant -- backdoor donuts! i can almost taste the calories
# June 8, 2004 1:19 AM

Anon said:


secretGeek: I think you must be mistaken, no calories at all in donuts. Not a single one ;). Donuts are Manna from heaven :)
# June 8, 2004 3:14 AM

Snorrk said:

lol
# June 8, 2004 7:11 AM

Julie Lerman said:

Dave - you are too much! Thanks for my first good laugh of the day.
# June 8, 2004 8:42 AM

TrackBack said:

Dave Burke made me laugh out loud
# June 8, 2004 10:14 AM

SBC said:

perhaps you were a cop in a prior life?
:-)
# June 8, 2004 3:33 PM

secretGeek said:

i've got a friend who works as a software developer for the police.

now that guy must have some serious donut fantasies.
# June 8, 2004 6:44 PM

Jack Colorado said:

Phew! I'm glad I ran into this blog... that little bit of info you give here solved a really big problem I was having... I wanted to make a generic ErrorHandler class that would do some specific things that I wanted it to, but it needed the Session and Response objects... this juicy bit o' info was exactly what I needed. Woot! =)
# June 9, 2004 12:50 AM

Jack Colorado said:

lol, that was great! =) =) rofl =)
# June 9, 2004 12:54 AM

Jack Colorado said:

Aye, I'm making a website for a local school club in ASP.NET, and about a year ago I found a good, cheap host if it'll help at all.

www.7host.com provides full ASP.NET support, and for about 73$ per year (but be careful of conversions, their prices are in Euros... I think it must be hosted overseas. oh well, it's fast enough =) )

Anyways, the clubs' site has been pretty reliable on thier servers... hopefully that'll help if you need a slightly cheaper solution. =)
# June 9, 2004 12:59 AM

Jack Colorado said:

I don't miss regular ASP one bit. Actually, I've pretty much forgotten how old school ASP worked. I've filed it under the "forget and seek therapy for" pile in my mind. =) lol =)
# June 9, 2004 1:01 AM

Jack Colorado said:

rofl! =) I've got to come to this site more often... I wandered in because your site answered a random question, but it's pretty entertaining/informative, I can't seem to stop reading back issue blogs. =)
# June 9, 2004 1:04 AM

Dave Burke said:

Jack, Is that your real name? If so, how excellent! Do you wear a hat with a wide brim with an eagle feather in the band? Thank you, and to everyone whose comments made my day!
# June 9, 2004 8:41 AM

TrackBack said:

# June 9, 2004 9:21 AM

TrackBack said:

# June 9, 2004 9:24 AM

SBC said:

Dave - what's your deployment architecture like? Do you have several WSS nodes that are consolidated under a (root) SP2K3 Portal Server? Are the WSS nodes (& users) in various domains? I think it may have to do with user accounts (& access). Some clues here - http://support.microsoft.com/default.aspx?scid=kb;en-us;823278

Post your findings (please!).
# June 9, 2004 10:54 AM

Julie Lerman said:

Anon- then donuts must be akin to "anything you eat standing up or in front of the refrigerator with the door open" - no calories!
# June 9, 2004 11:49 AM

Dave Burke said:

SBC, Thanks so much for your thoughts. The KB seems to confirm that this "Cannot complete this action" runtime is a generic error message. A screenshot of my runtime error is below. It will be interesting to figure out what the problem turns out to be... Thx!

http://dbvt.com/x/blog/2004/spserror.gif


# June 9, 2004 12:27 PM

Pedro Serrano said:

Hi,

We're struggling against the same darn error:

"Cannot complete this action.

Please try again."

We're trying to move our SharePoint Portal Server 2003 from one machine to another using the backup and restore tool. However, when we restore, the SharePoint Sites go live OK without any problems but the SharePoint Portal Server 2003 insists on returning that error ...

Any clue of what we might be doing wrong? Can anyone point me to any step-by-step or «how-to» guide on accomplishing this task of moving a SharePoint Portal Server 2003 from one machine to another machine?

Thanks in advance.

My kind regards,
Pedro Serrano
# June 9, 2004 3:16 PM

Dave Burke said:

Pedro, I'm pretty sure this "Cannot complete" error represents MANY issues. I will definitely post my personal resolution here, or feel free to email me later to see if I've found out anything. Hopefully it will be soon!!!
# June 9, 2004 3:21 PM

DJL said:

I'm sure you are equally happy on April 20th.
# June 9, 2004 4:09 PM

Bill Witt said:

I once new a developer who's birthday was
June 9, 1969. Yes that's right 6/9/69. Every year he made sure that we all were reminded of it.

# June 9, 2004 4:34 PM

Dave Burke said:

Funny, that's the default date value I use in my applications. Happy birthday to that rascally developer!
# June 9, 2004 4:37 PM

MartinJ said:

Didn't anyone else catch the mistake? You typically add the day and YEAR to the doc name. Call me Obvious Man, but I don't think this is 2009.
# June 9, 2004 6:08 PM

Paul said:

(The “60” varies based on the virtual site.) ??
# June 9, 2004 6:15 PM

Andre Furtado said:

Unfortunately, this didn't work for me. Do you have any more suggestions?

Thanks,
-- Andre

(I'd thank if you could reply also to "andrewilsonfurtado at yahoo dot com dot br")

# June 9, 2004 6:36 PM

Dave Burke said:

Paul, It was vague because I haven't investigated it. I had assumed each site had a different directory, since there was a 40 and a 50 and I thought I had 3 different virtual sites on this machine. I'm obviously wrong about what this numeric subdirectory indicates and hopefully someone will clear it up for us. Thanks for pointing that out!
# June 9, 2004 9:37 PM

Dave Burke said:

Andre, the Page Not Found is a generic IIS6 error purposely vague as a security measure. Its vagueness makes it difficult for us as developers though! I encountered this under different circumstances which I've blogged about, so you'll find other instances in my Windows 2003 Server category and any items which start with "To W2K3." (You'll have to google on it to find them all.) Hope you find something here or elsewhere to fix you up.
# June 9, 2004 9:43 PM

Dave Burke said:

No mistake, MartinJ, but thanks for your thoughts! Who says you have to add the day and year? This isn't a long-term archival naming convention, for goodness sake, just a quick month-day unique identifier to files mostly temporary and of little consequence...but recognizable.

# June 9, 2004 9:46 PM

Roman Rehak said:

I have to reward you for this post. I'll bring you a box of Krispy Kreme's from Montreal next time we have lunch together.
# June 9, 2004 11:23 PM

Paul said:

Dave, I don't exactly know what this numeric directory means, it think be some kind of a version number.
STS 1.0 was using the 50 directory while WSS/SPS2003 always uses the 60 directory.
# June 10, 2004 4:35 AM

Dave Burke said:

Roman, I hope its soon! (To see you, of course, not just for the Krispy Kreme's.)

# June 10, 2004 8:08 AM

Dave Burke said:

Interesting. I have 40/50/60 subdirectories on my home office network machine, but the server at work where I installed SS has 50/60 only.
# June 10, 2004 8:09 AM

Cesare Bufano said:

Headline Krispy Kreme: 1st Quarter profits decline. Hey Dave, Did you have anything to do with this?
# June 10, 2004 10:06 AM

Dave Burke said:

Cesare, Yes I do, as a matter of fact. The closest Krispy Kreme shop is in Massachusetts!
# June 10, 2004 12:15 PM

Cesare Bufano said:

Oh, I see. That's how you keep your trim figure. You run back and forth to Mass everytime you want a Krispy Kreme.
# June 12, 2004 6:45 AM

TrackBack said:

# June 13, 2004 8:11 AM

TrackBack said:

# June 16, 2004 9:23 AM

SBC said:

don't forget HAL from 2001 Space Odyssey..
:-)
# June 16, 2004 9:57 AM

Dave Burke said:

SBC, Yes, I've seen this before, and its always been the result of...human error.
Thanks, Dave. --Dave
# June 16, 2004 10:08 AM

Christian Weyer said:

http://weblogs.asp.net/cweyer/archive/2004/06/15/156852.aspx
:-)
I am really very happy to be in Montreal ... see ya!

Christian
# June 16, 2004 10:45 AM

SBC said:

Several years ago, we had a guy at work (named Dave) who replaced his Mac system error beeps (on his Apple Mac) with HAL's infamous statement, "I am sorry Dave, I can't do that".
:-)
# June 16, 2004 10:48 AM

Dave Burke said:

I was a new (Novell) network admin in '91 and was networking some macs in a media lab. It was dark and I was alone. I had to reboot the Mac to install a network card. The Mac came to life and said, "Hello, Dave." True story. Freaked me out!

Eh, who has time to have fun with computers anyway!

Thanks for your comments, SBC!
# June 16, 2004 10:56 AM

TrackBack said:

# June 16, 2004 10:56 AM

Joey Gibson said:

This is one of my all-time favorite films! I have been hoping for years that a DVD would come out. I'm so excited! Katherine Hepburn was glorious and Spencer Tracy was his usual irascible self. I'm going to order it NOW!
# June 16, 2004 11:33 AM

Dave Burke said:

Joey, then my day was of value! I bought it used on Amazon. Still waiting for it, but its only been 3 days.
# June 16, 2004 12:03 PM

SBC said:

# June 16, 2004 12:23 PM

SBC said:

hmm.. I thought WSS stood for 'What s*t service' when you visit a bad restaurant..
:-)
# June 16, 2004 2:29 PM

Bil Simser said:

I know the pain Dave. I want to refer to the new WSS as WSS, but it's so often confused with the old WSS when you're talking about SPS. How's that for acronym hell?
# June 16, 2004 6:27 PM

Dave Burke said:

Bil, thanks for your empathetic words. That's exactly my problem.
# June 16, 2004 7:01 PM

Mark Harrison said:

WSS = Windows Server System :-)
# June 17, 2004 7:01 AM

SBC said:

But seriously - I worked with a US Army Med project last year and learned quite a few acronyms & it was all well organized (see http://www.dtic.mil/doctrine/jel/doddict/acronym_index.html). There were no confusing duplicates, etc.. Perhaps MSFT folks can learn something from the Army?
# June 17, 2004 7:15 AM

Simon M said:

I hit more or less the same problem - have you any idea which service pack caused this problem?
# June 17, 2004 9:34 AM

Dave Burke said:

Simon, I asked my network admin and he didn't know, only because he installs MS patches and updates so regularly that he doesn't record the specifics on the patches. Sorry. I can tell you the patch had to have come out in the week or two preceding the event (May 27) if that helps.
# June 17, 2004 9:47 AM

Jay Nathan said:

I just joined WH4L and have not had to deal with customer service yet. It sounds like you have had some ups and downs with them, but are satisfied overall. Is this a fair assesment of your experience thus far?
# June 17, 2004 11:37 AM

Simon M said:

Thanks for checking - I guessed it had to be. My server abended yesterday during the day and I received this message. After talking to Microsoft for several hours (the suggestion being to reinstall IIS6), I applied your change and restarted the server and all was well.

So a big thanks for your help!
# June 17, 2004 11:51 AM

Dave Burke said:

Jay, that would be about right. Compared to my previous provider, wh4l can be disappointing, but hey, at $9.95 a month and because I don't consider my sites mission critical, yeah, I'm satisfied overall. wh4l also has a complete service package (WSS, Listserv, SQL, etc.) that can't be beat, not even by my previous provider for which I was paying $29.95 a month. Thanks for your comment.
# June 17, 2004 1:24 PM

Dave Burke said:

Simon, That's fantastic! Beats the heck out of reinstalling IIS6!
# June 17, 2004 1:25 PM

James Edelen said:

Couple suggestions. This error is usually generated when your custom web parts throw an unhandled exception.
1) You can attach a debugger to the server to see what the error is.
2) You could edit the web part to catch the generic System.Exception and display it as output in the part (not necessarily the best for usability, but it would at least tell you that something is going wrong with a specific part and it will also let the rest of the page render unaffected).
3) Make sure in web.config that the trust settings are the same on the staging server and the Production server. My guess is that on staging/dev it is set to WSS_Medium while it is set to WSS_Minimal on the production server. If that is the case, then it is quite likely that the parts are throwing some form of Code Access Secuirty (CAS) exception (from the System.Security namespace).
# June 17, 2004 5:41 PM

James Edelen said:

Oh, also, if you got a COMException rather than just the generic Cannot Complete this Action, make sure you are running the code on a Front-End sharepoint server (yes, it must be a FE).
# June 17, 2004 5:43 PM

Dave Burke said:

James, I will investigate each of your suggestions and hopefully have something to report back. Thanks very much for taking the time to share your thoughts on this.
# June 17, 2004 8:03 PM

TrackBack said:

# June 17, 2004 8:11 PM

TrackBack said:

# June 17, 2004 8:15 PM

Dave Burke said:

I'm promising myself not to post another weblog on WSS "Cannot complete this action" until this is resolved, so I'll be adding updates as comments here.

Tonight I added a top-level site on the Default Web Site, and using the root "/" for the workspace.

Interestingly I reran the Sharepoint Configuration Analyzer and when I previously got an error "virtual site tied to static IP address," I received none.

Rebooted, reran test page. Error persists. btw, here is the screenshot of the error:

http://dbvt.com/x/blog/2004/spcannot617.gif

Compared the web.config files for the trust setting, want to inspect further there. Also want to do more in the debug area.

I AM getting a COMException, which means I need to investigate James' FE statement.
# June 17, 2004 10:08 PM

Simon hansen said:

Well Done.
My error appeared when viewing the Approval Log in Microsoft's SUS server.
Increasing ASPBufferingLimit worked a treat.
# June 18, 2004 12:48 AM

Dave Burke said:

Simon, This was a tricky one. I'm very glad we both were able to get past this.
# June 18, 2004 12:51 AM

James Edelen said:

That looks exactly like errors I have gotten when I ran code on a non-SharePoint Server. Do you have multiple SharePoint servers in a farm? If so, then all OM code needs to run on the Front-end servers (the one(s) with the "Web" Component role). If not I would be hard pressed to find the cause.
# June 18, 2004 12:52 AM

Dave Burke said:

James, Thanks for checking back! Thank you also for clarifying the "Front-end server." I never heard that term (having been working on a SPS2001-to-WSS migration as time permit for nearly a month now), and am definitely going to investigate it further, as I mentioned above. Best regards to you! Dave
# June 18, 2004 1:20 AM

Dave Burke said:

James, in answer to your question, SharePoint Services is installed in a farm configuration, but running on only a single machine. This is the same configuration of the HQ server (on my company's network which works) and my development server (which is on my home office network, which does not work.)

The home office W2K3 server is connected to my LAN but not the Internet. I'm wondering if it could have to do with the network configuration differences, or possibly not being connected to the Internet. Just fishing now...
# June 18, 2004 1:27 AM

TrackBack said:

# June 19, 2004 11:20 AM

TrackBack said:

# June 19, 2004 11:20 AM

TrackBack said:

# June 19, 2004 11:21 AM

TrackBack said:

# June 19, 2004 11:21 AM

Sonu Kapoor said:

enjoy it.
# June 19, 2004 3:36 PM

Lucho said:

Locate the Adobe photoshop preferences file (C:\WINDOWS\Application Data\Adobe\Photoshop\7.0\Adobe Photoshop 7.0 Settings\Adobe Photoshop 7.0 Prefs.xxx on Windows systems), and move it to a different location.

Try loading photoshop. If it starts, it will be with default preferences, but it will run.
# June 21, 2004 9:27 AM

Dave Burke said:

I had an idea at DevTeach that perhaps the security on the site pertaining to its Zone setting was an issue. So I put added my WSS sites to my trusted sites zone, but it didn't change anything.
# June 23, 2004 11:58 AM

Scott McCulloch said:

Thanks for the link, sounds like a great presentation, :)
# June 24, 2004 2:31 AM

Lol said:

Hy

Where can we get the samples ?
# June 24, 2004 3:39 AM

Dave Burke said:

Lol, I know, sorry about that, but like I said in the "disclaimer", its a DevTeach policy. You'll have to talk to them. Attendees can only get them by going to the DevTeach site and logging in with their DevTeach account.
# June 24, 2004 8:53 AM

Brendan Tompkins said:

Dave,

These are cool! Thanks!

B
# June 24, 2004 9:29 AM

Dave Burke said:

Brendan, Thank you for the comment! They were fun to do. I did them on my Dell Axim and portable keyboard. Most of the session rooms had tables, which made it easy to type while listening to the session.
# June 24, 2004 9:44 AM

TrackBack said:

# June 24, 2004 1:48 PM

TrackBack said:

# June 24, 2004 1:48 PM

TrackBack said:

# June 24, 2004 1:52 PM

CK said:

I'm not sure that everyone understands the implacation of using your example. The drawback to this method of filling a password textbox is that if the user views the page source, they can also see the password in plain text. Kind of defeats the purpose of those asterisks if you ask me. A better way is to use the Viewstate method and keep the password in memory on the server.
# June 24, 2004 4:25 PM

Dave Burke said:

Thanks, CK. I'll look into this. Since the site is a church site, its not an issue, but I'm very glad you mentioned this for situations where this is not a, uh, best practice. Regards!
# June 24, 2004 5:11 PM

Julie said:

I read your blog and I like your blog and you were not a shmo for standing around with a bunch of geeks in the hotel lobby. Hey, is that a David Byrne reference, by the way? One of my faves!
# June 24, 2004 10:39 PM

Dave Burke said:

Julie, Yeap, David Byrne, alright. Thank you for saying you like my blog. :-)
# June 24, 2004 11:03 PM

Sonu Kapoor said:

Interesting view Dave!
# June 24, 2004 11:09 PM

Sonu Kapoor said:

Although we didnt met at the DevTeach, I would like to say that I like your blog too :-)
# June 24, 2004 11:12 PM

Dave Burke said:

Sonu, thanks for the chuckles!
# June 24, 2004 11:19 PM

Sonu Kapoor said:

No prob! It seems that you are today very very hot. I am not sure how many new posts you created today on your blog, but it must be over 10. Good thing to be informed.
# June 24, 2004 11:25 PM

Dave Burke said:

Cutting and pasting, My Man. Cutting and Pasting. The result of being too cheap to buy a laptop so I could post during the conference like respectable nerds.

# June 24, 2004 11:33 PM

SBC said:

yup... installing OSPS2K3 is a b*. In addition to a lot of pre-requisites, you need a MCSE background. I tore out my hair and now have a bald patch..
# June 25, 2004 5:33 AM

SBC said:

"Rue-something".. LOL!
Something tells me you are Irish or close to it.. :-)
# June 25, 2004 5:33 AM

SBC said:

make sure those Canadians don't sell you a sundial.. you'll have to stay there to read the time.. :-)
It looks like you are having a fun time up there.
# June 25, 2004 5:37 AM

LM said:

# June 25, 2004 9:48 AM

Dave Burke said:

LM, There are sites at both .com and .org, apparently. Thanks for mentioning that.
# June 25, 2004 11:27 AM

julie said:

"respectable nerds" - boy that describes you to a "t" Dave! :-)
# June 25, 2004 7:05 PM

Dave Burke said:

Thanks for the compliment, Julie, but if I were a respectable nerd I would had been blogging from DevTeach in realtime. Maybe I'll evolve to that place by the time DevTeach 2005 rolls around.

# June 25, 2004 10:05 PM

Roman Rehak said:

Those things are laud, I am surprised they let you play in a hotel.

Nice view of the Sun Life building. Did you know that during WWII the British Royal Treasury was stored there? They didn't want Hitler to get his hands on the jewels in case he defeated England.
# June 26, 2004 11:19 PM

Dave Burke said:

I know its loud. One of the things I love about it. But I played very quietly. Truly.

Thanks for the WWII trivia. If I keep living here I might even start to take an genuine interest in that nutty place up there.
# June 26, 2004 11:23 PM

Ben Fried said:

Actually, as far as Outlook Express is concerned, if you go to TOOLS, OPTIONS, SECURITY, you can turn off the attachment blocking. No idea about Microsoft's Outlook 'condom'... What on Earth...?!
# June 27, 2004 12:48 AM

Dave Burke said:

Ben, Thanks for your comments! No, Outlook Express isn't my problem. (I mean, as part of IE it hasn't been updated in two years, has it?) It's that fancy-schancy, top-dollar Office Outlook that wants to help me by turning-off basic email attachment services.
Grrr...still.
# June 27, 2004 1:03 AM

Steve Hall said:

Dave: The hyperlink to Figure 1 seems to be broken. Could you please have it fixed? Thanks!

BTW, your article is GREAT! It's exactly what I had wondered about, since my plans for a Dashboard app were nixed a while back. This should help me architect a solution that better fits our needs... Thanks for passing on your experience!
# June 27, 2004 8:57 PM

Dave Burke said:

Steve, the figure 1 hyperlink is fixed. Thanks for pointing that out. Best regards with your project!
# June 27, 2004 11:09 PM

Dave Burke said:

SBC, yeah. DevTeach is a kick. Short, great burst of nerd info, cheap. Mark your sundial for attendance next year!
# June 27, 2004 11:16 PM

Ashmi said:

Could you justify why?
# June 29, 2004 2:23 AM

Dave Burke said:

Ashmi, This was mostly a fun post with the main issue being that we need to look beyond a test score or the technical vocabulary of a candidate.

I don't know, but asking about someone's alcohol consumption in an interview may even be illegal, but the idea is if you DO like drinking beer more than eating, then in some cases, that honesty could be rewarded; liking to eat more than drink beer reflects maturity; asking for a third option means the individual is truly engaged in the conversation and an interesting character, who, if also demonstrated technical proficiency, would be viewed as a well-rounded person who would most likely serve as an asset to the team.

I guess... :-)
# June 29, 2004 7:26 AM

TomCat said:

Dear, I have the same problem with a Web SIte that receive more than 25gb data transfer daily.

I need some help with a configuration.
# June 30, 2004 4:20 AM

Nicolas Durand said:

Hi,

I am having exactly the same problem and it is driving me nuts...

I tried the MS resolution under http://support.microsoft.com/?kbid=823278&FR=1#appliesto, without much change... :(

I am using it in a different scenario than youguys, though:

SPSite ospSite = new SPSite("http://localhost:90/");
SPWeb ospWeb = ospSite.OpenWeb();
//Create a search against the lists in our web
SPSearchResultCollection ospSearchResults;
ospSearchResults = ospWeb.SearchListItems("staff");
output.Write( ospSearchResults.Count.ToString());
foreach(SPSearchResult ospSearchResult in ospSearchResults) {
output.Write( ospSearchResult.Title + " URL: " + ospSearchResult.Url);
}

It crashes at the line
ospSearchResults = ospWeb.SearchListItems("staff");


Any idea out there?

Many thank in advance to any clue!

Nico
# June 30, 2004 5:30 AM

Dave Burke said:

Nico,
Oh heck, I've been through that KB several times. :-) It doesn't matter what scenario. When you reference the Microsoft.Sharepoint DLL, and .OpenWeb(), any method or property call generates the same error.

There are a ton of newsgroup posts out there with this generic "cannot continue" error, but nothing for our WSS2003 coding issue.

And what is so weird is that its working flawlessly on a staging server of mine, but NOT on my development server. How can I develop using the Sharepoint library though? :-)

If I find a fix I will DEFINITELY be posting it everywhere I can. I'm still dead in the water after installing, uninstalling, changing service user configurations, and more.

Thanks so much for your notes. I feel your pain.

# June 30, 2004 7:27 AM

Dave Burke said:

TomCat Dear, did you go through the above 3 steps? I've done this a number of times since posting this note and things always kick in as they should. Regards!
# June 30, 2004 7:31 AM

La petite rousse said:

You play the thing, at least spell it correctly: accordion.
# June 30, 2004 10:31 AM

Dave Burke said:

La petite rousse, we.
# June 30, 2004 11:12 AM

Makarov said:

Has anybody tried to add in web.config this line :

<identity impersonate = "true"/>

As soon as I did that, my "cannot complete this action" error was gone .
# June 30, 2004 4:33 PM

Dave Burke said:

OH...MY....GOD!!!!!!

Makarov. I shouldn't say this on an open channel, but...I love you, man!

I feel like one of the guys in Das Boot and the U-boat is beginning to rise after being stranded on the bottom of the Straights of Gibraltar, and they're shouting, "It's rising! It's rising!!!!!"

Sincerely. Thank you, Makarov. I hope I can return the favor some day. And I'm sure you helped a lot more guys than just me today!

# June 30, 2004 5:12 PM

TrackBack said:

# June 30, 2004 5:47 PM

Alex Makarov said:

Dave, u r not kidding, right?
# July 1, 2004 9:17 AM

Dave Burke said:

Alex, No, I am MOST DEFINITELY NOT kidding. You fixed the problem I was dealing with for weeks, and I'm sure you helped a lot of other guys, too!
# July 1, 2004 9:23 AM

XtAc said:

interestingly ... I'm running Photoshop 7.0 on an AMD 2400+ with 1.5GB RAM and 500GB hard drive space ... when i'm editing a file ... sometimes I get a Windows message "Out of Virtual memory, increasing size of page file" ... anyone have any insight on that?? thanx.
# July 5, 2004 1:49 AM

Mike Schinkel said:

Couldn't someone code it quickly using FarPoint's Spread for .Window Forms?

http://www.xtras.net/products/fpspreadwinforms.asp

# July 6, 2004 6:04 AM

Mike Schinkel [Xtras.Net] said:

Oops! Meant to show my affiliation on that last post.
# July 6, 2004 6:05 AM

James Burke (i don't think there's relationship) said:

man, you guys are lucky, cause i tried loading Adobe Photoshop 7.0, and nothing happened, then i tried to open it through Image Ready, and it said it's not responding. does anyone know how to fix it?
# July 10, 2004 1:15 AM

upendra Gupta said:

hello sir,

can we perform any focus event in ASP.NET.please send me the solution regarding this.

upendra.
# July 13, 2004 2:27 AM

Sergio said:

I'd put everyone full control on the site folder and still get same error.
What did u mean with "propagate down the security of layout application pool"
Thanks!!
# July 14, 2004 1:03 PM

Paul D said:

First, open up IE
Second, select Tools > Internet Options > click the Security tab
Third, select Internet > then click the Custom Level button to pull up Security Settings
Forth, scroll to the very bottom of the settings where it says 'User Authentication' > select the second option 'Automatic logon..' (if you want to be prompted for logon info > select the 'Prompt for username and password).

Also, I would set this the same for Local intranet

Hit 'OK' and close your browser. Open up IE again and go to your portal.

I hope this is what you were asking for and that it helps.
# July 15, 2004 9:11 AM

Dave Burke said:

Paul D, This is excellent advice. Thanks! I didn't know about the auto login custom settings options. I'll definitely remember it.

The Cannot Complete This Action problem using the MS.Sharepoint.dll library has been solved by adding "impersonate=true" to the web.config. Below is the URL.

Thanks again for taking the time to point out the User Authentication setting to me.

http://weblogs.asp.net/dburke/archive/2004/06/30/170270.aspx
# July 15, 2004 9:18 AM

TrackBack said:

# July 15, 2004 9:19 AM

Alberto from Barcelona, Spain said:

Thanks for the helpful explanation!
# July 15, 2004 11:23 AM

Andre said:

I also have the same problem with Zoltan.
The ar.IsCompleted code never completed at all. I don't even know where is the problem.
# July 20, 2004 11:21 PM

Dave Burke said:

Andre, It may not be completed because the service doesn't run long enough. I've found that the service has to execute a minimum amount of time to set the IsCompleted property.
# July 20, 2004 11:23 PM

Jon said:

All you have to do is hide an iframe behind your popup menu and it knocks out the portion of the select box that is whacking up your menu. iframes take precedence over select/combo boxes and it also supports the z-index control. give it a shot, I know it works becuase I use them myself :-p
# July 21, 2004 1:50 PM

Dave Burke said:

Jon, I hadn't thought of an iframe. Thanks! If I use this on the intranet where IE is my known client, I'll definitely rethink this. This particular app was a public site, however.
Regards!
# July 21, 2004 2:00 PM

Mauro Ciaccio said:

...and what about storing the database connection string in the clear whenever you save an InfoPath form...
It seems to me that unless you simply need to capture data from different people and store it in an XML format ONLY for it to be PRINTED OUT (no back-end data saving) then putting together a solid InfoPath form is NOT TRIVIAL.
# July 22, 2004 12:13 PM

Dave Burke said:

Mauro, couldn't agree more! Thanks for the comments.
# July 22, 2004 12:23 PM

TrackBack said:

# July 23, 2004 9:55 AM

Shannon J Hager said:

and then there is this beauty on Dave Massey's blog:
'When I said “I'm not sure I'd feel comfortable using any other browser“ I was referring to security.'

The funniest thing I've read in a while. Except that it saddens me to think he might believe that somehow.
# July 23, 2004 5:21 PM

Shannon J Hager said:

# July 23, 2004 5:21 PM

仪表 said:

I...had a farm...in Africa
I...had a coding job...in Pittsburgh
Lol...
# July 23, 2004 11:53 PM

Dave Burke said:

Swingin' Shannon, Thanks for the comments and the linky linky. Yeah, I read that "not comfortable with any other browser" comment during my evening with "I LOVE IE." I enjoyed your comments, which were right on. Dave M. really put a big "kick me" sign on his butt on that post, I'm afraid. He clarified his remark by referring to the people on the Microsoft Team to handle security issues, but that dog just don't hunt.
# July 24, 2004 1:59 PM

secretGeek said:

so dave.. why '69' ?
# July 27, 2004 12:48 AM

Dave Burke said:

'69' is a distinct character sequence that serves well for bookmarking. (In Jules Verne's Mysterious Island there were two appearances of the date '1869', but normally there won't be any false hits.)

I do like the, uh, symmetry of the two numbers together. I am also a juvenile in many respects to which my wife can attest.

Here's a post on doc69.doc day.

http://weblogs.asp.net/dburke/archive/2004/06/09/151882.aspx

Thanks for your question, SG!
# July 27, 2004 8:07 AM

TrackBack said:

# July 27, 2004 8:07 AM

Dave Owens said:

Roughly similarly, I was playing with 6 examples from David Sceppa's ADO.Net book from Microsoft Press, each caching datagrid data in different ways. Hmm, naively, I decided that I could apply EnableViewState=false to the Cache-In-Session-only example. The datagrid paging collapsed.

I did find "Help! My ViewState Is Out Of Control" By Colin Angus Mackay at http://www.codeproject.com/aspnet/hmvsiooc.asp
He describes various controls that depend on ViewState, admitting his list is incomplete, and more need to be added. Regarding DataGrid, he says "The sheer quantity of ViewState that a DataGrid emits sends shivers down my spine".

Ouch. It looks like many of us may be spending hours tracking it down...

Dave
# July 27, 2004 3:58 PM

Dave Burke said:

Dave O., "The sheer quantity of ViewState [datagrid data]" was an excellent quote. Thanks for your comments! --Dave B.
# July 27, 2004 4:02 PM

Dave Owens said:

More.

Given how sparse documentation is, I believe Lutz Roeder's Net Reflector tool OUGHT to be insightful for this kind of problem. Bravely (gag), I first discovered that ViewState is an instance of StateBag, implemented in the Web classes. Next, be sure to check all visibility options under View->Options. Then, right click on StateBag for the callee graph for StateBag. It was confirming/reassuring to see that StateBag had 6-8 hits, or so, among the DataGrid methods or properties, as well as lots of hits among the other controls, just as Colin Mackay's article says.

In the absence of anything better, sometimes y'gotta find happiness in baroque gambits such as this...
# July 27, 2004 4:57 PM

CESAR DE LA TORRE said:

Use better "Sharepoint.OpenDocuments.2".
It is the latest version of this ActiveX control. (It is installed with Office 2003).

CESAR DE LA TORRE
# July 28, 2004 11:34 AM

Amber said:

Dave how do you like actually reading on a pocket pc? Is the screen big enough?
# July 28, 2004 2:06 PM

Dave Burke said:

Amber, I like reading on a pocket pc very much, actually. Here are actual size screenshots from my pollyanna post.

http://weblogs.asp.net/dburke/archive/2004/07/24/195313.aspx
# July 28, 2004 2:47 PM

TrackBack said:

# July 28, 2004 2:47 PM

Thom Allen said:

Dave, hey, I have an Axim too. I love my Axim. I'm going to hate to give it up for a combined unit with phone/pda/camera/video and so on, oh wifi and bluetooth too. I like the reader as well and I am soooo tired of the same games you describe in your post.
# July 28, 2004 2:53 PM

Dave Burke said:

Hey, Thom. Thanks so much for letting me know I'm not alone in my Axim love. I had a AudioVox Thera for a short while, but it wasn't a good phone OR a good PocketPC. Here's a comment with the original URL.

http://weblogs.asp.net/jasonsalas/archive/2004/07/24/192526.aspx

Maybe the wifi and other features you mentioned will help us say goodbye when we have to.

Thanks again for saying 'Hey!'
# July 28, 2004 3:04 PM

matthew said:

this is why warez is popular. It provides a better user experience than the legal software from companies that treat their users like criminals.
# July 28, 2004 6:03 PM

Dharmendra gour said:

plz give me more information about the
DBnull
and Gettype()

thanks
Dharmendra
# July 31, 2004 4:52 AM

Webmaster said:

We have a fresh IIS 6.0 installation using limited Network Service account. When we fresh the home page like 10 times (quickly) it activates the IIS restart process. We're using .NET and we make SQL queries to an SQL 2000 DB on each visit to the home page (to query for news stories)

Suggestions?
# August 2, 2004 4:19 PM

Dave Burke said:

Webmaster, Not related. Google on exact phrase "IIS restart." Good luck.
# August 2, 2004 4:27 PM

Dana Harts said:

Interesting article, Dave.

However, the object-oriented tradition of creating a data layer is to encapsulate all of the data related methods in one place so that they are separated from the rest of the program logic (and can be reused over and over).

If you look at what Microsoft has done with its DAL (you can read about it at http://support.microsoft.com/default.aspx?scid=kb;en-us;829028), you can see that they have wrapped most of the neccesary data related methods into one dll.

I would be interested to hear of your experiences integrating this kind of data layer into SharePoint 2003.
# August 2, 2004 4:41 PM

Dave Burke said:

Dana, Thanks for your comments! The point isn't about putting the DAL methods into a single DLL, its about putting the DATA in a single location. Maybe I misunderstood your point. There is no integration needed in SP2003, since the source of most application data is now SQL instead of SQL-WSS. Regards, Dave
# August 2, 2004 4:46 PM

Eamonn said:

Hi Dave,
here is a possible workaround.

In the File Explorer under Tools menu, Folder Options menu option, File Types tab, Advanced button (Windows 2000) change (uncheck) the "Confirm open after download" option for the "open" action
# August 3, 2004 4:45 AM

Colin Angus Mackay said:

That reminds me... I really must get back and add some more to that article.

# August 10, 2004 7:20 AM

sean grimaldi said:

maybe you could post the complete code?
# August 10, 2004 6:52 PM

Scott said:

I agree. Same frustrations here.
# August 19, 2004 3:04 PM

TrackBack said:

# September 19, 2004 1:04 PM

Eric Newton said:

Just make sure Microsoft knows about it, then they'll make constant internal workarounds to keep your code working, even years after nobody even uses it anymore <G>

[This is a post digging on Microsoft's constant backward compatibility, even in the face of sheer obsurdity... dont take it personally] ;-)
# October 29, 2004 12:52 PM

Dave Burke said:

Eric, No problem. Funny! When WSS supports a more flexible security architecture for WSS I'll be happy to refactor!
# October 29, 2004 1:52 PM

Dave Burke said:

That's excellent, Richard. Thanks. Think I'll stay with the noisy grey and 3 numbers for now.
# October 29, 2004 2:57 PM

Eric Newton said:

Cool!

I just cant believe .Text and some of the other blog engines have no mechanism for
"[ ] Email(ing) me when someone posts"

Maybe this Community Server of Telligent's will be able to include this
# November 19, 2004 12:44 PM

Dave Burke said:

Eric, yeah, you'd think so. Web monitors like WebMon are great but they aren't very efficient since they load the entire page for processing and thus can't help but inflate blog view stats.
# November 19, 2004 12:53 PM

Dave Burke said:

Eric, I should add that I implemented something like this at my personal blog at http://dbvt.com.blog. To do it right (which I hope I have done) is to require minimal authentication of the user, the notification piece (which is the most simple component), the ability for a user to stop getting updated if they chose, and the ability of the administrator to send or not send the comment without being a burden. So its not a simple widget.

I've blogged a good bit about what I did under my .Text category.
# November 19, 2004 12:56 PM

TrackBack said:

# January 14, 2005 10:54 AM

TrackBack said:

# January 14, 2005 10:57 AM

David said:

I checked out InfoPath and was impressed on how quickly I can throw together a form and how pretty it looks. But then the big hammer came crashing down on my dreams. How can I concatenate forms in such a way as that the subsequent forms dynamically change based on entries in the previous forms? Of course, I can make trips to the database and back, but what if subsequent forms invalidate or change previous entries? Adding the dynamics to forms is close to impossible unless I use some scripting. And for that PHP and MySQL are way more powerful as some clicked together form. That really was a disappointment.

# May 22, 2007 9:28 AM

blanco said:

Perfect

It works

thx a lot

# May 30, 2007 8:48 AM

frances said:

I do not have

SqlHelper.FillDataset in Data Access Application Block,. Kind of weird.

# July 6, 2007 2:59 PM

Satyadeep said:

Hi All,

    But using this code how can we genrate multiple sheets in the same Excel Workbook.

With Regards

Satya

# July 19, 2007 12:47 AM

home security tip said:

It is up to you to uncover the top sources on the world wide web.

# July 22, 2007 1:19 AM

fahad said:

Elph, Thanks for providing the extreme! Wow, I'll have to read over that statement a few times

# August 2, 2007 4:21 PM

Gotisch said:

Isnt that overcomplicated?

a==b?c:(a>b?d:(a<b?e:f));

if a != b and a>b == false then you dont need to check if its smaller.. (a<b) it obviously is so f would never be used, no?

a==b?c:(a>b?d:e); returns the same..

# August 2, 2007 4:47 PM

ajay said:

smtpserver not work

# August 3, 2007 2:52 AM

Leena said:

Its interesting to read this all

# August 12, 2007 9:38 AM

Faiz said:

I got the same error in IIS 6.0 on W2K3.I have reinstalled the IIS with only required services and started working.

# August 23, 2007 7:10 AM

Nancy Lord said:

Are you the David Burke that went to BSU in the 80's?

# September 1, 2007 4:38 PM

ermancetin said:

Gotisch, you'r right. f value will never be returned.

# September 2, 2007 9:30 AM

zullu said:

Alexandre,

You said to change the AppPool from [MSSharePointAppPool] to [DefaultAppPool].

Can you please let me know, for which application in IIS do we need to modify this. Is it the SharePoint Portal or "Microsoft SharePoint Administration" or the "ShrePoint Central Administration"

Thanks,

# September 6, 2007 4:44 PM

Ralph Krausse said:

I got this error because I was using impersonation within my code WindowsIdentity(). After looking at my code, I actually didn't need this and it resolved that error message. I got the error message when I called the URL property of SPWeb AFTER I did the impersonation. Calling it before worked fine...

# September 8, 2007 11:05 AM

Wasim Kazi said:

Hi Satya

That will not be possible. Because, in this approach it is excel which is doing the major work. The code is only a trick.

After all trick will be tricks, they cant be magic.

But would love to know if that can be done.

# September 11, 2007 4:47 AM

zullu said:

Thanks Alexandre,

I figured out that my problem was resolved by providing the "Scripts and Executables" option in the [Execute Permissions] on the Home Directory Tab of the site Properties.

Hope this helps to someone in need.

Thanks.

Zullu

# September 12, 2007 11:36 AM

Daniel said:

Hi,

it is better and fast to use only this:

DataView dvView = dtTabla.DefaultView;

dvView .RowFilter = "filter";

DataTable dtFiltered = dvView.ToTable();

that is!

# September 21, 2007 11:57 AM

Mark said:

The link to the TechNet article seems to be broken. I think this may be the new URL: technet2.microsoft.com/.../ee6c6b61-9048-460b-b94c-5f69498b07441033.mspx

Thanks for this post, I keep ending up back here to solve this problem on different servers!

# October 9, 2007 1:06 PM

Varadarajan G said:

Invitation to join RupeeMail!

<a href="www.rupeemail.in/.../invite.do

<img src="www.rupeemail.in/.../joinImage.gif" width="114" height="48" border="0">

</a>

Hi ,

I have something interesting for you, RupeeMail!

It’s really amazing! You get paid to open & read the contents of RupeeMail. You receive promotional offers & special discounts in RupeeMail.

Interestingly RupeeMails will reach you based on the preference list you opted for.

Create your RupeeMail Account & refer your friends to earn launch referral bonus on every new registration.

Try this...

RupeeMail, It pays

Varadarajan G

# October 10, 2007 11:13 AM

Fernando said:

Manydevelopershavehadtowritealoopthatwritesoutacommaseparatedvaluelist.There'salway...

# November 2, 2007 6:21 AM

simran said:

please give me the description.

# November 13, 2007 4:49 AM

Thai said:

Easiest.

txtMybox.Attributes.Add("onFocus","this.value=''");

# November 21, 2007 12:44 AM

me said:

so where are the files?

# December 16, 2007 1:50 AM

fitness singles said:

I think WebMon works very well, it's very user friendly.

# February 10, 2008 9:52 PM

Bonnie said:

Dunkin Donuts cups rock.  You're right, the last for months and even years.  They wash up great in the dishwasher.  I wish I could buy them.  I'm not a coffee drinker but I drink ice tea all day long.  Decaf, sweet-n-low.  Yum. Yum.

# February 22, 2008 3:55 PM

Grady said:

Hi, could you give me a link to download that library of English version.

Thank you.

grady_chen@163.com

# March 4, 2008 2:16 AM

p0enix said:

that new link is useless

# March 5, 2008 5:36 PM

Mike said:

Robocopy will remain useless to me until it can copy files that are in use.  

# March 14, 2008 9:49 AM

Jamie said:

Thank you, I was looking everywhere for this!

# March 14, 2008 5:31 PM

jonathan said:

if you you want an xbox 360 copy and and paste then sign up then you will get an xbox 360

www.rewards1.com/index.php

# March 14, 2008 10:05 PM

jonathan said:

just sign up it will get your addreas thn it will give you a xbox 360 for free

# March 14, 2008 10:13 PM

shashank said:

hi Dave,

Is it possible to set SqlCommand Timeout using the MS datablocks? i am getting query timeout on a large query and want to set the command timeout, do u have any idea on this.

# March 18, 2008 8:59 AM

shashank said:

Dave, well i made some reading on the net and found out that the Data block version 2.0, is distributed as source code. I made changes (command.timeout) to the method and its working now.

# March 18, 2008 11:16 AM

ARock said:

Thanks for the information.  The steps work like a charm.

# March 20, 2008 10:47 AM

john said:

# March 26, 2008 3:59 AM

Improved Search Engine Placement said:

Traffic generation is such an amazing topic that everyone who has an online business will want to know more about how to market their website.

# March 31, 2008 4:43 PM

合金管 said:

<a title="天津蝶阀" href="www.stdvalve.com/.../a>

# April 18, 2008 4:50 AM

合金管 said:

<a title="天津蝶阀" href="www.stdvalve.com/.../a>

# April 18, 2008 4:56 AM

makarchus said:

I tried doing above steps and no luck, I have Win2K server and IIS version 6.0.3790.1830, did above mentioned three steps but no luck.

Any further help is greatly appreciated.

# April 21, 2008 3:37 PM

jdingo said:

thai, thanks for posting that

# April 23, 2008 6:48 PM

makarchus said:

Above steps did solved my problem, in addition to the above steps I had to reboot my server

I think you need to restart IIS and application pools after these assignments to take effects.

Please try that... Thank you for good article and web site who offered this.

# April 26, 2008 9:34 AM

Nali Wickremesinghe said:

I need it real urgently could you tell me how to get it.

nali@star-rocks.com

# May 7, 2008 2:47 PM

bahu said:

This post is very true. I enjoyed reading it. Gread post!

# May 29, 2008 12:50 PM

Barbara said:

Where are the cups made?  Want to know if the cups and/or lids are made in China?

# June 5, 2008 11:54 AM

Bob Davies said:

txtUsername.Attributes.Add("OnFocus", "if(this.value=='Username'){this.value='';}");

Not the easiest, but I only want to clear it if it's at the default value.

# June 16, 2008 4:18 PM

Lexapro zaps. said:

Lexapro. Lexapro medicine. Gain weight on lexapro.

# June 28, 2008 4:55 AM

Mabinogi Gold said:

good post, thanks!!!

# July 7, 2008 2:35 AM

Jawad said:

We can use System.Configuration.CommaDelimitedStringCollection

For example

Dim objcol As New System.Configuration.CommaDelimitedStringCollection

       objcol.Add("strOne")

       objcol.Add("strTwo")

       objcol.Add("strThree")

       objcol.Add("strFour")

objcol.ToString() 'Output will be "strOne,strTwo,strThree,strFour"

Best of luck

# July 7, 2008 7:51 AM

Amit said:

hey Thai,where exactly to write this snippet,

txtMybox.Attributes.Add("onFocus","this.value=''");

# July 8, 2008 10:30 AM

kaleem said:

My name is muhammad kaleem ullah khan. My date of birth is 28/2/1946. I am challenging all the magician in this world. is there any one who can break my magic I am a black magicians no one can beat me in this world .no one can break my magic if some one cast spell to me i will reverse his spell to him I am challenging all magicians cast spell to me and my sons i have there sons mateen , mubeen ,moiz and her mother name is salma if some one cast spell to my son I will reverse his spell to him i am challenging to all magician to beat me

# July 14, 2008 2:41 PM

bankalar said:

I like this blog alot. Keep this coming..lots of good info..Comment Kahuna is pretty cool, been using it for a while now.

# July 14, 2008 5:06 PM

Paul said:

Yea this is the good, i read it many times the week :)

<img src="forum.thelegendofmir.com/index.php width="114" height="48" border="0">

# July 24, 2008 9:23 AM

phried said:

I had the same error (after the site ran fine for 15 months) when trying to delete files, directories, sites, anything.  I had checked everything possible on the web server and was at my wits end so finally I went on to the database server and found out that the disk was out of space!  The problem was that the transaction log had grown to 12GB and filled the drive.  A quick shrink and everything worked fine.

Don't flame me, I didn't setup the DB server.  Yes, I setup a db maint plan to keep that from happening again.  Sheesh that was ridiculous.  I wanted it to be something complicated and of course it was something simple.  Always is.

# July 28, 2008 9:32 PM

Avandia. said:

Avandia market. Avandia side effects. Synergistic effect of metformin and avandia. Avandia.

# July 30, 2008 5:32 PM

Buspar. said:

Buspar online med. Buspar anxiety. Buspar.

# July 31, 2008 9:38 AM

sany said:

I was searching this for hour n after that i got this m so happy

Thanks

# August 1, 2008 3:36 AM

Zolpidem fedex. said:

Zolpidem online. Zolpidem overnight. Cheap zolpidem persriptions. Zolpidem fedex. Buy zolpidem. Zolpidem.

# August 3, 2008 2:45 AM

Zolpidem generic. said:

Zolpidem overdose.

# August 3, 2008 2:47 AM

Monkey said:

aha! Thanks for this!!! Didn't know what it was called, and didn't know exactly how to use it! Eases up coding a LOT!

-Monkey

# August 11, 2008 8:01 PM

Partha said:

Hi Frns,

My deployment server has IIS 6.0 installed on it and its a windows 2003 server.

Can someone help me out with the below queries with regard to the above 3 steps:

1. Which user account you are referring here? Is it the "IWAM_<servername>" account or the "IUSR_<servername>" account?

2. Then how do I add the 2 user rights to that specific account?

I'm new to this IIS setup and configuration. please help me. Thanks in advance.

# August 18, 2008 12:15 PM

glpartha said:

Hi Frns,

I even unistalled and re-installed IIS 6.0.

Still I'm getting this "Service Unavailable"  error.

Please clarify my questions in the above comment...

Kindly help...

# August 21, 2008 1:47 PM

Todd said:

I am wondering if you have any insight on what might be the cause of this.  We are using a content management system that has code that uses OpenDocuments.2 from what I can tell. We have users running Office XP where the code is failing and all they receive is a white screen.  Other XP users the code works fine and the document open.  Office 2003 users all work fine.  I have installed Office XP SP 3, OWC , I registered the DLL mentioned above again, made sure the browser wasn't blocking active X but still nothing seems to prevail.  Do you have any suggestions?  

# September 4, 2008 4:35 PM

Nagendra82singh said:

i want ot assign  null value of date field  by default

# September 10, 2008 3:31 AM

Tintin said:

The only reason it's hard to read is because the example used was very poor.

A better example would be:

Console.WriteLine("There are {0} {1}", numEmails, numEmails > 1? "messages" : "message");

A quick way to add smart pluralization on one line.

# September 17, 2008 11:23 PM

Oburak said:

place it in the Page_Load

# September 25, 2008 4:09 AM

Atok said:

I'm agree with Grady said... I'm also want the link to download the library of English version.

Thanks

# September 29, 2008 6:14 AM

Ola said:

I'm using VS2008 and I've never been able to get this to work. As far as I can see, Intellisense will just order the overloads based on ascending string order, including the whole method declaration.

If anyone finds a way to trick it, please make it public!

# October 1, 2008 7:11 AM

Elizabeth said:

Hey,

I'm Elizabeth. I've seen a lot of different schemes to make money on the Internet, and I know there are a lot out there that don't work. I have applied the techniques of The SpiderWeb Marketing System because they do work. The SpiderWeb Marketing System taught me through 22 FREE step-by-step tutorial videos exactly how to generate 12 streams of income through the Internet.

Through a totally free system, I learned how to employ revolutionary techniques to channel the power of the Internet in my financial favor. Other similar programs will charge as much as $500 dollars for that kind of cutting-edge information.

It takes as little as five minutes a day. Its totally free. And most importantly, it works.

I know there's a lot on the Internet that will claim to increase your income, because I've seen them. I also know that SpiderWeb Marketing works. 12 streams of positive cash flow don't lie. To find out how you can become involved and create 12 new sources of income, email me, or click on the link below.

Thanks,

Elizabeth.

# October 2, 2008 10:43 AM

Victor said:

Try deleting all the records from the UserInfo table in the respective wss site content database. Than login using a domain admin account and recreate all the permissions.

# October 17, 2008 5:00 PM

tmpuzer said:

@AT:

Regarding using StringBuilder for performance benefits... does it really matter?  Seriously I bet in 90% of cases the decision to use StringBuilder is not worth the brain cycles spent making the decision.  Unless you're concatenating hundreds or thousands of strings the performance is likely negligible.  More importantly, I think using string builder hurts readability, and IMHO I would take human performance boost of increased readability during development and maintenance over the runtime perfomance boost any day.

# October 21, 2008 2:11 PM

Hamburgler said:

which account is "the account"?

# October 29, 2008 6:27 PM

simcoding said:

no scripting needed. All you have to do is add:     onfocus="value=''"     as an attribute of the textbox in the html tag.... simple as that.

All that scripting can clog up ur code and make bugs more apt to be. Sticking to as much basic html code as posible always makes things run smoothers!

# October 30, 2008 10:11 AM

Saptarshi said:

I also agree with Graddy. Please give me the download link for the MSDN Library October 2001 in english. My mail address is ghosh_sptrsht@yahoo.com.

Thanks in advance

# November 2, 2008 9:28 AM

sudhakar said:

Thanks for the help.. This is really usefull.

# November 4, 2008 3:44 AM

Eyal said:

The page is missing, you have new examples?

# November 4, 2008 9:07 AM

Vlad said:

I got it working but. In my code I don't specify smtp server.

So I don't know which server its using behind the scene. How can I find out and where this configuration is? Is this a CDO configuration?

Many thanks!

                         MailMessage msgMail = new MailMessage();

msgMail.To = toperson;

msgMail.From = fromperson;

msgMail.Subject = emailsubject;

msgMail.BodyFormat = MailFormat.Html;

msgMail.Body = emailbody;

SmtpMail.Send(msgMail);

# November 10, 2008 12:39 PM

Buspar. said:

Does buspar cause weight gain. Buspar. Buspar side effects.

# November 12, 2008 10:46 PM

Chris said:

Thanks for the advise, came in useful

# November 18, 2008 4:32 PM

www.manyforyou.com said:

hi , this site is really good , do you do freelance dotnet development?

email your details to chennaipcinfo@gmail.com

,, thanks

BAlaji

# November 21, 2008 7:25 AM

Ibraham said:

Hi, could you give me the download link for the MSDN Library October 2001 in english. My eMail is ibra_sal90@yahoo.com

Thanking you

# November 27, 2008 5:46 AM

Bakes said:

For years I praised Dunkin Donuts for its most excellent styrofoam cups, but no more!

In the past 6 months I have had too many defective cups/lids to count.  

It has gotten to the point where I now routinely check my cup for spillage with each purchase  :(

And I know this is not only happening to me as most co-workers & friends report the same and most Dunkin Donuts employees will tell me that they have lately been receiving a lower quality, different style of cups/lids. Now when I get another one of the bad cups the Dunkin Donuts employees dont even seem surprised that I am immediately asking for a replacement cup. Its as if they are getting so many complaints that they are just used to it.

It seems pretty obvious to me that the company is trying to cut costs and is now skimping on the cups and lids.  Leaving me to wonder what else they may be skimping on?

# December 2, 2008 9:31 AM

akash said:

Jobs site

http://www.back2office.com

India's growing job site.Jobs available in sectors like Accounting,

Marketing,IT,Engineering,Finance,BPO/Call Centers,Bio Technology,

Banks,Adminstration,HR/IR/MR,Media,Sales,Security,

Business Mgmt.,Retails,Hotels & Others.

Find Jobs In India,UK,USA,Middle East.

# December 4, 2008 6:25 AM

Yagnik said:

can i call vb codebehind function instead of javascript?

# December 10, 2008 6:19 AM

Alena said:

I recently came accross your blog and have been reading along. I thought I would leave my first

comment. I dont know what to say except that I have enjoyed reading. Nice blog. I will keep visiting this

blog very often.

Alena

http://www.freegrantguru.com

# December 10, 2008 8:07 AM

Alena said:

I recently came accross your blog and have been reading along. I thought I would leave my first comment. I dont know what to say except that I have enjoyed reading. Nice blog. I will keep visiting this blog very often.

Alena

http://www.freegrantguru.com

# December 11, 2008 6:27 AM

şömine said:

i read it many times the week.

# December 15, 2008 7:08 PM

Infopath and Workflow « Developing Matt said:

Pingback from  Infopath and Workflow &laquo; Developing Matt

# December 31, 2008 10:43 AM

Karel said:

I also would like to have the download link for the MSDN Library 2001 (English version). My Email address  is hurts@euronet.nl. Thanks in advance!

# January 4, 2009 5:46 AM

LOGAN said:

THANKS THAI AND AMIT FOR THE SNIPPET

# January 10, 2009 7:21 AM

Neeraj Agrawal said:

Thanks man, your solution worked like a charm.

# January 15, 2009 8:31 AM

danieldsmith said:

-tmpuzer:

"Regarding using StringBuilder for performance benefits... does it really matter?"

Just benchmarked the various techniques that people have suggested above, and yes it makes a big difference!

AT's solution is the fastest so far.  Even for a small list of 50 items, AT's version is around 2.5 times faster than the other suggestions.

# January 15, 2009 10:31 AM

Jeroen Posch said:

I would also very much like to download Englisch version of

MSDN 2001.

Much apprciated!

# January 18, 2009 1:40 PM

Bernie Fahlde said:

Thanks!

I hope this would be the fastest method also ?!.

I hope so.

# January 18, 2009 5:06 PM

Mark Covalt said:

I need that MSDN library very badly.

My email address is:  markcovalt@gmail.com

Please help me find a way to download that library for VB6 .  I will sing your praises to the lords and leaping lizards alike...

# January 26, 2009 9:27 PM

McAlister’s Deli Email Marketing Case Study « D-Mac’s Blog said:

Pingback from  McAlister&#8217;s Deli Email Marketing Case Study &laquo; D-Mac&#8217;s Blog

# February 9, 2009 10:00 PM

anh tuan said:

Hi, i got this problem hen build a project on local network,

Could not load file or assembly 'Win32Security, Version=0.3.2830.33102, Culture=neutral, PublicKeyToken=null' or one of its dependencies. Failed to grant minimum permission requests. (Exception from HRESULT: 0x80131417)

can you help me to solve?

Thank you!

# February 15, 2009 10:11 AM

Christian said:

How can I do this under IIS 7.0?

# February 24, 2009 5:06 AM

Mikkel Berryman said:

Hi Dave,

!I have a damaged MSDN for VB6 CD.

Is this download still available?

Pathetic that MS either doesn't provide old docs or hides them in some obscure place!

Can you please email me the link to download the Oct 2001 MSDN Library to match my VB6.

Thanks so much! VERY grateful!

Email: mikkel@absamail.co.za

# March 3, 2009 6:35 AM

Karim said:

Hi,

I am looking for a freelancer who can work on my portal. If you are interested, get back to me so that we can discuss details.

m.ataulkarim@gmail.com

# March 11, 2009 5:59 PM

David Factor said:

can you email me the downloadable version, for oct 2001 msdn library???? or post it, or give it to me, i'll post it!!!

fact0r@ymail.com!!

-Factor

# March 30, 2009 10:20 AM

Peter said:

I'm looking for the Oct 2001 MSDN-Library (for VS6) in German if possible. Many thanks for a download link!

peterwinter321@gmail.com

# April 6, 2009 8:15 AM

John said:

I learn lot of time..

Thank you

# April 20, 2009 5:33 PM

Business Process Outsourcing said:

Nice post. Thanks for sharing.

# April 27, 2009 6:26 AM

Chanrith said:

Thanks, this was something I overlooked since we deploy to 3 different environments.  It was a great help.

# May 12, 2009 12:11 PM

unknown said:

hey can anybody tell me.. how can i export a dynamic content of HTML Table to xls file in PHP.

# May 19, 2009 5:01 AM

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa said:

saaaaaaaaaaaaaaaaaaaaaaaaaaaaa

# June 17, 2009 1:59 AM

Alex said:

Hey! Can I also get a link to the Oct 2001 MSDN Library (English) please? Thanks!

gryzaskl@yahoo.com

# June 20, 2009 6:12 PM

Dave said:

Good post. Saved me lots of time. Thanks!

# July 8, 2009 4:21 PM

Dan said:

I just tried to re-install my VC6 and English MSDN library (Oct 2001), and I found that disk 1 contains corrupt files in the MSDN folder (some of the chm files).

Does anyone have a link to download these old disks from?

Thanks.

t14587 @ perfectscript.org  (remove the spaces before and after @)

# July 16, 2009 3:19 AM

Baby said:

root cause: difference version of asp.net

action:

step 1. create application pool

             ex. framework 1.0, framework 2.0

step 2. change application pool of website

            from default to new pool

***group web site by framework

good luck

# July 31, 2009 5:53 AM

Sachin said:

Thanks

That is Awesome :)

# August 20, 2009 1:43 AM

Alex James Brown » C# Ternary conditional operator – Question mark in an if statement said:

Pingback from  Alex James Brown &raquo; C# Ternary conditional operator &ndash; Question mark in an if statement

# September 9, 2009 7:30 PM

jiaxi hu said:

I learn to windows programming now.So I need  of   MSDN Library as a tool(some of the .chm format).

Can you get the link of it to me?

Thanks a lot!

My e-mail is 200818089@163.com.

# September 23, 2009 8:07 AM

Add Microsoft.Sharepoint Reference To Visual Studio « Sladescross's Blog said:

Pingback from  Add Microsoft.Sharepoint Reference To Visual Studio &laquo; Sladescross&#039;s Blog

# October 6, 2009 9:38 AM

LOVE_MOSS_NOT said:

Thanks.. I'll try this.

SP RULEZ! UNDER MY BALZ

# October 6, 2009 6:46 PM

Manoj said:

Really worked, Thanks and Great thing to learn today.

# October 10, 2009 7:28 AM

fe said:

how to use ternary operators in java???

# November 24, 2009 6:58 AM