June 2003 - Posts

IIS Applications, Virtual Directories, and ASP.NET

I have just posted 2 new articles: IIS Applications and Virtual Directories, and IIS Applications and ASP.NET Specifics.  I've noticed for a very long time that there is hardly anything documented about IIS Applications, and yet understanding them is critical to successful ASP.NET development.  I've even noticed that nearly everyone, including Scott Guthrie and Fritz Onion, incorrectly refers to Virtual Directories when what they really mean is IIS Applications.  These terms are not interchangeable -- you can have a Virtual Directory without it being an IIS Application, and you can also have an IIS Application without it being a Virtual Directory.  Being a Virtual Directory is not relevant to ASP.NET -- its just a logical way to organize your web-site and physical directories.  On the other hand, there are all sorts of things relevant to ASP.NET when it comes to IIS Applications, and I've tried to list most of them and provide some useful tips also.  So please read both of these articles -- and let's see if we can keep our terms correct when talking about IIS Applications and Virtual Directories.
Posted by PaulWilson | 4 comment(s)

ASP.NET Developer's Cookbook Stolen

I was one of the contributors to the ASP.NET Developer's Cookbook with Steve Smith and Rob Howard.  Today I finally got my free copy, only it was already opened and stolen off my front porch, or somewhere in route.  I've never had any stolen from my mail before, and this seemed like one of the least likely things to be taken.  My wife even had something come today that's probably more useful and expensive, but I guess the package didn't look as interesting.  The upside is that maybe someone around here will actually read it and start working with ASP.NET, and then later need my help to bail them out of a mess they get themselves into.  I can dream anyway.
Posted by PaulWilson | 4 comment(s)

Welcome Jerry Dennany to WebLogs

One of my colleagues, Jerry Dennany, has finally got a blog here -- and it should be a good one.  Don't believe him for a minute when he describes himself as a "software configuration manager / release engineer".  That may be his title here at Roche, but Jerry is actually one of the smartest "developers" I know period, .NET or otherwise, even though he claims to not be a developer.  He has been one of the main guys on "my" team that answers my questions -- not the other way around!  Remoting, garbage collection, MSIL (or CIL), COM+ configuration, network admin -- this guy is your .NET and overall Microsoft internals resource guy!  I've been very fortunate to have worked with him for the past couple of years, and I know he will have some great posts here on some of the internals of .NET and other things Microsoft (or even Linux if we let him).  I see he's already correcting Microsoft's Suzanne Cook, from the CLR team, in his blog -- and he's right of course.  Also, check out his article on CodeProject on "TraceListeners and Reflection" -- definitely a very good read on tracing.

Posted by PaulWilson | with no comments

DLL Search Order Changed in Latest Windows

I found the following breaking change in the MSDN article "Development Impacts of Security Changes in Windows Server 2003" by Michael Howard:

DLL Search Order Has Changed

No longer is the current directory searched first when loading DLLs! This change was also made in Windows XP SP1. The default behavior now is to look in all the system locations first, then the current directory, and finally any user-defined paths. This will have an impact on your code if you install a DLL in the application's directory because Windows Server 2003 no longer loads the 'local' DLL if a DLL of the same name is in the system directory. A common example is if an application won't run with a specific version of a DLL, an older version is installed that does work in the application directory. This scenario will fail in Windows Server 2003.

The reason this change was made was to mitigate some kinds of trojaning attacks. An attacker may be able to sneak a bad DLL into your application directory or a directory that has files associated with your application. The DLL search order change removes this attack vector.

The SetDllDirectory function, also available in Windows XP SP1, modifies the search path used to locate DLLs for the application and affects all subsequent calls to the LoadLibrary and LoadLibraryEx functions by the application.

Posted by PaulWilson | 1 comment(s)

Pocket PC Development with VS.NET 2003

I finally got my free PocketPC yesterday and its vastly superior to my Handspring Treo.  Of course, my Handspring Treo actually works with the Internet over the built-in cell phone, so it will continue to be my main PDA.  I suppose this is why so many other developers are already starting to put their free PocketPCs up on EBay!  I'm keeping mine to develop on though, and its amazing how easy it really is to do with VS.NET 2003 -- Microsoft definitely got this right.  There is already a project type for PocketPC development, and using it automatically lets you know what .NET functionality is valid for the PocketPC.  Setting a reference to the System.Data.SqlServerCe namespace even automatically installs SqlCE on the PocketPC when you deploy.  I haven't really done much yet, but what I have tried has been remarkably easy, so I plan on doing more.  So if you qualify for this free PocketPC you really need to sign up and get yours before the offer is no longer valid.
Posted by PaulWilson | 4 comment(s)

Do You Need Your Very Own ASP.NET Guru ?

I got my 60-day notice earlier this week, so if anyone needs an ASP.NET guru, or .NET in general and other Microsoft technologies for that matter, I'll be available starting August 11.  I've known they were going to be closing our Atlanta office now for about a year and a half, so this wasn't a surprise, and I actually pushed for it to occur now instead of later this year, so I'm ready.  You can see my resume at http://Paul.WilsonDotnet.com if you are so inclined, otherwise just let me know if you have a lead.  I live in Atlanta, actually the North-Northwest side, and would like to stay here, although I'm willing to consider a few other things for the right opportunity.  I'm leaning towards consulting or contracts, although once again I'm open to permanent positions if they fit me and my location well.
Posted by PaulWilson | 2 comment(s)

Patterns and Practices to Finish my TechEd Trip

I attended two sessions from the Patterns and Practices group this morning.  I was very impressed, not just with what they've done, but also with their honesty and openness.  They already documented a fair number of patterns and released several application blocks, like the Data Access Application Block, and more will be coming soon.  I'll have to reevaluate their work, and the community additions they've encouraged, since I wasn't real impressed the last time I checked.

By the way, CommNet is managed by WinGear.net -- I would suggest no one ever use this company for anything if you expect responsiveness and reliability.  I'm off to the airport and home now, where I'm going to go see Finding Nemo with my wife and kids this weekend.

Posted by PaulWilson | 1 comment(s)

Finishing Up this Morning at TechEd 2003

I've got two sessions this morning before I head back to Atlanta this afternoon.  I struggled through two boring sessions yesterday afternoon, while finding one that was pretty good.  It was "Building Application Back-Ends Quickly" by Kate Gregory and Kenneth Spencer.  There was good discussion of design patterns and lots of examples of code generation.  They did not, however, mention Eric Smith's CodeSmith, which would beat their tools hands down.  They also did not mention O/R mappers, my latest interest, which promises to make lots of code obsolete, generated or not.  Last night was the big attendee party -- it featured SmashMouth and the WallFlowers.  Good music, but its just hard to get a bunch of techies, mostly male, to get real excited, so it seemed a little dull.


Posted by PaulWilson | with no comments

More Fabulous Sessions and TechEd Updates

So last night I said "Real-World Tips for Real-World Web Applications" by Paul Sheriff and Ken Getz was the best ASP.NET session.  I was also asked why in the comments and I will try to explain that in a minute.  Today I went to two of Clemens Vasters sessions, "Building Distributed .NET Applications" and "Aspect-Oriented Programming", and these were also fabulous.  I will even have to go out on a limb and say Clemens' "Building Distributed .NET Applications" is the best overall session for me so far. I'm not saying its better than Paul and Ken's talk for everyone, but that depends on whether you need to learn more ASP.NET or not, and I'm simply past that point.  Clemons spent some time first talking about the difference between layers (logical separation) and tiers (physical separation), including some real cool pictures and a comparison to something Men In Black.  He showed a demo of one of his apps that works both disconnected and connected -- can't wait to get the code for this later on his blog.  Finally, there was a lot of distinctions made between the types of tiers, that being local (same machine), near (LAN), and far (everything else).  Local should use Remoting and take advantage of properties, inheritance, byref, events, and be synchronous.  Near should use Enterprise Services and take advantage of chunky calls, interfaces, byval, and may be synchronous.  Far should use Web Services and take advantage be asynchronous message based.  There were a lot more details, but I had never heard anyone say that Remoting is only best for same machine communication and once you step out into the LAN you should be using Enterprise Services.  I've heard hints of this before, including some stuff from Ingo himself at DevConnections, but this was right in your face this is the way to do it conclusion.  It sounded good to me, but I don't have much experience with these, so let me know your thoughts on this.

So the question was why was Paul and Ken's talk so good.  First, they made it very clear this was an advanced session (only 300 level by the way) so they were not going to spend time on the basics!  This was obviously not a problem with the audience, so I don't get why so many others feel this just can't be assumed as has been noted elsewhere.  Next, part of the greatness was due to their style and funny exchanges as a team, but I still think it would have been the best even if it had lacked this part.  They looked at a demo based on a real application they had built and simply showed some of the best and more advanced pieces of it.  They showed how to use interfaces and a separate data access class to easily be database agnostic.  I don't personally think they went far enough (I would claim my code is better), but this was some of the best stuff I've seen in sessions or books.  They showed how to use user controls and stylesheets to get a reasonably flexible GUI that didn't have code on every page.  Again, I would claim my stuff is better, but this was better than most of the other stuff out there including IBuySpy and the Starter Kits.  I could hardly contain myself however when Paul was asked afterwards how come they didn't have their GUI in their base page class and he said it wasn't easily possible!  It seemed a common theme that they have some great stuff but they seem to be ignorant of other options that are available in the community.  By the way, they did have a base page class, which was the centerpiece of the rest of their demos, but it was strictly functional, things like tracking users, handling exceptions, and other good things.  They also showed how to create a class for your config and session settings, and gave a good demo on role-based forms authentication.  So while I would claim it was not as good as it could be, it was nonetheless very excellent and enjoyed by all!  Now I even more want to focus on getting best practices out there, since even they were missing some.

By the way, the MVP dinner last night was great also, but in a very different way than my previous dinner.  I got to meet more of my peers, that being fellow MVPs as opposed to authors and speakers, along with many in charge of the MVP program.  The meal itself was also very different, being more elegant formal dining instead of huge Texas portions of meat!  This was at the Abacus restaurant -- thanks to Tony Hynes and the rest of the MVP staff.  First there were tiny cute appetizers, but only exactly enough for one each, which was the butt of jokes at my table.  One appetizer looked like a tiny ice cream cone with a little crab and salad in it -- very good and I managed to get a second that someone else didn't want.  The other appetizer was nachos, although we all agreed that one chip with stuff on top hardly deserves to be called nachos.  It had guacamole on it, so I passed and let someone else have two whole nachos.  The first course was supposed to be a shrimp appetizer on fried rice -- but there was only one shrimp on each plate which just seems wrong.  Next came a small salad which was the typical salad.  The entree was a choice between prime rib or salmon -- I got the prime rib and it was a rather decent size and very tasty, but not as good as the filet and crab the night before.  Finally, I did have room for dessert, which was an acceptable macadamian nut chocolate pie.  We did all end up feeling like we ate enough after all was said and done, and I'm probably better off anyhow, so it was a very nice dinner in the end.  No clue what it cost, although my guess is a lot.

Posted by PaulWilson | 5 comment(s)

The Absolute Best Session on ASP.NET

I have not attended all that many ASP.NET sessions (just the ones I'm required to review) since I already know all of ASP.NET (ha ha), but "Real-World Tips for Real-World Web Applications" by Paul Sheriff and Ken Getz is definitely the absolute best of all the ones I have seen.  It may even be the best of any period that I've seen, although I have not mentally walked through all the others to be sure that is the case -- but it may be.  Apparently the audience thought so too -- it was standing room only and lots of good vibrations were evident during and after the session.  I haven't read their book, but I'm thinking it might be one of the best out there based on what I just saw -- and they also did say it was the best!

By the way, CommNet only gets worse as the week goes on.  Sometimes I can actually do much better on my SprintPCS Handspring Treo!

Posted by PaulWilson | 3 comment(s)
More Posts Next page »