The battle between the GC and COM resource management

I love reading posts like this from Sam Gentile. (Though I am timid about writing about them, as I’m always worried I’m gonna get something wrong! 🙂 ) But these posts are where you can really see his expertise through the experience he has had in drilling into very complex and detailed areas. I think my “vast” [read sarcasm there] experience with COM Interop is not much more than managing a bunch of dynamically called activex controls and maybe a bitmap here and there. Nothing that creates the real issues of dealing with COM resources in a managed environment. For the “lay” .NET developer (as in layman, layperson), the GC is something to just let it do it’s thing. My guess is your average VB6 –> .NET developer is not that aware of the GC much less worried about the types of issues that Sam points out. (And hopefully they aren’t working on anything where NOT knowing is a big detriment to anyone.) Then there are probably the C++ –> .NET developers that are working on the type of projects where, truly, the GC is able to handle everything, but they just can’t let go of that nagging feeling that they must hand code every release of objects and memory. But on the large scale .NET apps that are growing out of large scale COM apps, this is definitely not a light weight issue.

I’ve played with the new GC Memory Pressure functions in whidbey/vs2005 and wondered if they would be enough for people doing the types of projects that Sam is working on or satifsfying enough for people with the level of knowledge that he has. It was interesting for me, then to see that Sam says that yes, it is a huge step, but still the problem remains, what to do today?.

Tablets Tablets everywhere – swarming over the U.S. for the next few months – go out and play with one!

Wow lots of tablet events sweeping the country in the next few months. Grabbed ths list from Loren and am adding my own comments.

Mobility Road Show
http://www.chrysalisevents.com/tabletroadshow/
About 20+ cities. 8:30am to noon  Targetted at end users

Tablet PC Demo Days
http://www.microsoft.com/windowsxp/tabletpc/evaluation/demodays.asp
Major retailers (mostly Circuit CIty, Best Buy and CompUSA). For 12 straight weeks, each store will have one afternoon per week to come in an play with tablets.

Microsoft Tablet PC Developers DEVELOPERS DEVELOPERS Tour 2004 FREE FREE FREE
http://www.tabletpctraining.com/microsoft/
(I added those extra developers) Full day of Free training on using hte Tablet PC APIs to develop applications for tablets that will do a lot more than just leverage the built in ink capabilities of the tablet o/s.

Tablet PC Campus Demo Tour
http://www.microsoft.com/windowsxp/tabletpc/evaluation/campusdemo.asp
Wow – over 50 campuses around the country. Each campus will have a whole afternoon to play with Tablets and an opportunity to win one, too.

Student Mobility Tour 2004
http://www.mscampustour.com/
But wait there’s more! This is tablets, smartphones and pocketpcs. From 10am – 2pm at a number of college campuses. This is half over already.

Steve Smith gets deployed

We are all used to deploying applications. But most of us aren’t, ourselves, the objects of deployment.

Steve Smith, from www.ASPAlliance.com and everywhere else around ASP.Net world, has been on Inactive Ready Reserve duty for the US Army since 2001. Steve was just been called back into active duty – for a year – as part of Operation Iraqi Freedom.

He’s got about a month to get his ducks in a row. Here is more, straight from the horses mouth.

I love the name of his new website: www.armysteve.com. He’ll be blogging there about his experiences.

DonXML on dotNetRocks Thursday night 10pmEST LIve

Yes, Don does have a last name – it’s Demsak. Kind of late for me (here are the details..hmmm not there well you can go here for the live link), but much better then the middle of a work day. Besides his passion for XML and SVG, Don’s a really nice and fun guy, which makes for a very promising show. If you haven’t ever had a chance to meet DonXML, this will be a great way! Maybe we’ll also get to meet his wife, the SQL Diva, who just came back from SQL Mag Connections and has lots to talk about. Oh, she has a name, too. It’s Melissa.

oh the pain of changing production servers

About a month ago my client’s ISA server crashed. The I.T. guys discovered 30 GIGs of pictures and movies (mostly in german) on the box. Oops! So they had to rebuild that box and (I can’t even remember why) but also determined that they really needed to rebuild the server that is the webserver and sql server and I think also domain server. That box has all kind high tech RAID stuff on it and they want to continue using it.

Therefore we are temporarily moving over to a new box and I have to get everything set up for the move. But it’s not a copy and paste job. No sirree. The old box has Windows 2000 server and SQL server 7 and IIS5. Of course, we are taking advantage of this opportunity to get the client finally up to Windows 2003 and SQL 2000. Hooray.

Now I did this here in my little home office recently and knew enough to be dangerous, and enough to be afraid. Though I know all about the Network Service account on IIS6 now! 🙂 

But this has not gone easily or well. I have had all kinds of crazy permission problems which are not as easy to debug with things like web services on a production server. Then I got to my old rubber band and duct-tape application role in SQL Server. I have a major VB6 app in place there that uses ADO and a lot of SHAPED recordsets. I talked extensively with a lot of SQL folks before going with an Application Role to secure the database a few years ago (I was not terribly experienced with SQL Server admin). But I managed to get everything working and even worked around the problems with the odbc connection pool that are created with the application role.

However, on the new box, I was having huge headaches with my connections and finally decided it was time to kill the application role and just bite the bullet and create a sql server account that will only be accessed (one hopes) by that application. That turned out to be a really good idea. It took 1 minute to create the new login and 30 secnds to change the connection strings used for the app and then about 15 minutes to click all over the app to see that it worked. And now I don’t have to disable the connection pooling any more.

Here is what I think is the A#1 reason I have been through this hell.

No documentation on the database setup!

I have been creating this monster in bits and pieces over the last three years. Setting up the database stuff was just a way to get my apps working, so I was not as focused with it as I am with my applications. I often knew nothing about what I was doing and had to learn under fire (like most of us do…) A lot of it was experimentation. As I learned more, my solutions improved. However, there is a really nasty mix of the old and the new. Plus a lot of my experiments with permissions, logins, users, etc are still in there.

Attaching the database was not all that was necessary to do the move because of the fact that there are SO many asp.net apps and web services relying on the different databases and many many many stored procedures. And IIS6 has the Network Service account replacing my IWAM_server account. I had to recreate all of those permissions. (There is probably a nice little t-sql way to do that instead of manually). So the lack of documentation (or heck a better naming convention) of what sprocs belonged to what apps (of course there are a lot of shared objects) and which users needed what permissions for which objects..etc etc etc.

I have been taking very good notes through this whole process which I will organize after I get through this. But it has not been a lot of fun. I would MUCH rather be playing with VS2005, my tabletpc, my blogging application, my dog or possibly even doing the programming work that this same client is waiting for me to complete.

DevSource forums: What’s wrong with database access in .NET

Things are already heating up over at the devsource.ziffdavis.com forum where anyone can ask me any question about my interview. The first question was an intense drill down about one of my favorite programming topics: database access in .NET. It would be interesting to hear what some others have to say on the topic. My lengthy response hasn’t shown up yet, but I suppose it will be there shortly.

A warning, it is a big of a PIA to register on that site in order to participate in the forums so be prepared.

TechEd BOFs – viewing and voting

HEre’s the deal

When you first go to www.ineta.org/bof you will see a choice of TechEd 2004 or Tech-Ed EUrope 2004.

Select one of those BEFORE you click on the Proposed Topics, Submit a Topic or VOte on a Topic links.

Also,  you can vote from within the proposed topics or by selecting “Vote on a Topic” from the topline menu.

THere are 4 pages of topics right now. Be aware that there are two for Tablet PC, but one of them is cancelled (Brad Abrams). Instead, I am doing one, so if you want a Tablet BOF, that’s the one to vote for.