Archives

Archives / 2004 / September
  • O/R Mapping or Code Generation

    TheServerSide.net asked me to contribute an item to foster a debate on O/R Mapping or Code Generation -- check it out here and add your comments.  I was a little hesitant to start this particular "debate", since as I've noted before I think both options are far better than the alternative of doing everything manually -- but I guess I should defend O/R Mapping since I do sell one for $50.  :)

  • More Problems with SP1 for .NET v1.1

    Last time I ran into problems with SP1 for .NET v1.1 it was because it was installed on my web server and the client validation files were out of sync.  I had not installed it yet on my own machine, so I did not have any problems with using it myself, but I did go ahead and install it after that edisode.  Today I finally got around to making another small set of changes in my web app -- for the first time with SP1 for .NET v1.1 on my own development box.  Well, to make a long story short, somehow SP1 either requires different security settings for debugging, or it changed my settings during the installation process.  Or maybe it was because I couldn't install SP1 on top of my existing .NET v1.1 install (as many others have noted also) and so I had to uninstall and reinstall .NET v1.1 before installing SP1.  Anyhow, I now have to turn on Windows authentication to debug my web applications!  Note that I do NOT mean that I have to turn off anonymous access, for that's still on also -- but I do have to also turn on Windows auth at the same time.  Maybe there's something else I'm missing, but I never saw this before, and I don't see any way to do it otherwise now, and that's all the information the error message provides.  A search on the error message only turned up how to turn on Windows auth (duh) -- it gave no clue as to how to stop needing Windows auth in the first place.  :(

  • More Problems with GotDotNet Workspaces

    My Xml ADO.NET Provider on GotDotNet Workspaces has had its release once again disappear.  Last time I re-released my files, and then later the original release re-appeared, leaving me with two confusing releases.  I guess I'll just wait and see this time.  :(  I also have been totally unable to approve a user that requested join my Workspace.  I've tried many times over several days, but I get a generic error everytime.

  • GotDotNet, SourceForge, and Other Ramblings

    I really like SourceForge much better than GotDotNet Workspaces.  Why?  As an end-user SourceForge always works, and works fast.  On the other hand, GotDotNet Workspaces have a history of not working, or being too slow to be acceptable.  That said, they do seem to be getting better lately, but they still aren't quite there yet at times.  Anyhow, I already posted recently about my first experiences with SourceForge from the contributor perspective, and while it wasn't "easy" I can totally say that it was reliable.  So now I put my latest on GotDotNet -- and to be fair I should share my experiences again.  By the way, why did I switch?  Simply because SourceForge rejected my proposal and for no other reason since I still think they are the far better choice.  They didn't really specify why they rejected my proposal -- it was just a generic message that said it could have been anything from lack of sufficient details to not being a needed project.

  • News about IIS 7 -- IIS done Modular

    I see on Fritz Onion's blog that Scott Guthrie has publicly talked about IIS 7.  I think this is targeted for Longhorn Server, so don't get too excited, but IIS 7 rocks!  I saw an early preview last year at the MVP conference and I think admins will love it.  Its easily configured with the new xml config files, and its totally modular.  This means that if you don't even have to install the modules for things you don't intend to use!  That's security done right, and it should sound a lot like something called Apache.  :)

  • What Makes an Effective Software Manager?

    I was recently reading Code Magazine and came across an interesting editorial by Rod Paddock about effective software managers.  I have worked with several decent managers, along with a few not-so-good managers, but I've only ever worked with one exceptional manager -- and the things she did were exactly what Rod described here.  By the way, since I only have good things to say about her, I assume she won't mind me saying her name -- it was Stephanie Barulic (spelling?) when I was a contractor at Clarus Corporation in the good old DotCom days.  We were building yet another procurement package called eMarket, based on Microsoft Commerce Server (yuck), which won Microsoft's Global eCommerce Product of the Year Award while I was there.  Of course, winning awards in those days was more about being properly connected than actually having a great product, so I'm not trying to claim anything extraordinary here.  I'm pretty sure Stepanie's team was the smallest team of three major teams on the project, but we consistently got more done, on time, with less bugs, than all the others.

  • Examples of O/R Mapping vs Stored Procedures

    Mike Schinkel of Xtras.net responded to my previous post about "dynamic sql" by asking for a real-world comparison "example" that would clearly demonstrate the pros and cons of O/R Mapping.  I seriously thought about providing such an "example" for a few minutes, but (1) there are already enough "examples" for those that are truly interested and (2) it would be a lot of work that I try to avoid.  :)  Seriously, see my ASPAlliance article for an introduction, see my ORMapper.net site for more snippets, and finally, and most importantly, download my (or someone else's) ORMapper demo and see it all work for yourself.  And I also really do seriously mean giving you what you want would be a lot of work -- but only on the "traditional" side, since the examples on the O/R mapping "side" are quite trivial, as the article, snippet, and demo should make very clear if you think about it.

  • Open-Source ADO.NET XML Provider -- WilsonXmlDbClient v1.0

    Have you ever wanted to work with your Xml files as if they were databases?  Would you like to use SQL Select statements, instead of XPath, to retrieve, filter, and sort your Xml data?  What about using SQL Insert, Update, and Delete statements, in transactions, against your Xml data?  OK, I haven't either, but I had someone request the ability for my WilsonORMapper, and all that's necessary is an ADO.NET provider that knows how to work with Xml.  I like a good challenge, and couldn't find one already done, so I took a little of my spare time and created just such an ADO.NET provider that anyone can use.

  • Service Pack 1 for .NET v1.1 Broke My ASP.NET App

    Yes, its true -- Service Pack 1 for .NET v1.1 really did break my ASP.NET application!  And the weirdest part was that it only broke it for IE users -- it still worked just fine with Mozilla!  Here's the story:

  • Assorted Thoughts on Whidbey, Yukon, Longhorn, and Mono

    Whidbey: They really dropped the ball when they pulled the new dynamic image support.  And what's the deal with the continuing saga over the folder names -- why can't they just make this configurable.  I use "code" folders and didn't like them hardcoding that as a special folder, but do we really need "application_code" as the alternative?  I think this is a sign that they didn't really think this would be big deal until it was too late to spend the time to do right -- and I assure you they had this very issue pointed out to them nearly 2 years ago!

  • Yet Another Post on Dynamic Sql vs. Stored Procs

    I continue to be amazed at the typical discussion of "dynamic sql" vs. stored procs.  The arguments almost always assume that "dynamic sql" equates to hard-coded sql in your application.  This is simply not the case for anyone I know that has ever argued for "dynamic sql".  So first, let's all agree that hard-coded sql in your application is a bad practice.  Now we can move on and really talk about "dynamic sql" vs. stored procs.  Before defining "dynamic sql", lets define stored procs.  That may sound silly and unnecessary -- but seriously -- what are stored procs?  Stored procs are blocks of hard-coded sql in your database!  That's right -- they are hard-coded sql -- just moved to a different physical tier.  Like any other piece of code, these blocks of sql must be written (or generated) and maintained.  The frequently recented argument that stored procs free developers is absurd since it just moves the burden somewhere else!  Its also stated that stored procs allow you to change things without a recompile -- but that's true to a small extent only.  Any serious changes in your data-model are also still going to require changes in your app to know how to work with those changes.  In other words, stored procs are an API, and if you change the API then you're going to have to change your application too!  That said, its certainly true that small optimizations can be made in your stored procs without a recompile, but how often does this really occur?  Most optimizations involve things like proper index tuning, the setup of separate file groups, and other database "tricks" that are not related to sql.  In fact, if the sql in your stored procs is so poor that it can benefit from optimization then you really need to question if you should be writing any sql in the first place!

  • My SourceForge Experience

    SourceForge may be easy for end-users, but its a pain to setup a project for the obscure command-line-challenged.  :)  First, I applied for my project months ago, checked for while and it was never setup, then forgot about it and never got an email that it was done.  Next, CVS is easy with Tortoise, but things don't show up for half a day on the SF site -- that was true both times I added files.  Next, as far as I can tell I don't need any command-line ssh tool, even though it says I do.  Getting my simple html home page setup was still another adventure in command line oddities -- you can't use ftp or any webtool -- you have to use a highly secure (and equally obscure) command line utility.  And as far as I can tell there is no way to delete mistakes -- oops, index.html was the default, not index.htm, but you'd never know without trying since it doesn't tell you this.  Now when you want to actually release something it gets really weird -- first, it has nothing to do with your CVS repository!  Instead you simply use anonymous ftp to upload your files to a common temporary place that everyone else can also see -- so much for security.  :)  It even warns you to make sure you only pick your own files for release, since you can pick anyone else's that are currently there!  And documentation -- it pretty much sucks, not that I can really complain since I don't create much either.  Of course, it really is full-featured, and quick and easy for end-users to download your latest -- which no one in their right mind can say about GotDotNet WorkSpaces.

  • Mostly Finished Huge Project -- Hopefully Posting More

    I hope to find a few minutes to start making some more posts for now on, at least more than last month anyhow.  I've just finished my 4th month being independent and I've just finished (more or less) a huge project.  I like forward to posting lots of things I learned and encountered, so stay tuned.  In the meantime, I wanted to say thanks to everyone that continues to contribute to the WilsonORMapper.  While I take all updates and "mold" them to my liking, its obvious many people have been indispensable.  Allan Ritchie basically contributed to almost everything in v3.0 -- it would not exist without him.  Likewise, Ken Muse served the same role a few months back in helping me with v2.0.  That's not to say that I just take their code, since they probably wonder what I've done when they see it.  :)  But it goes without saying that both their code and our many discussions have been indispensable.  Gerrod Thomas has also been invaluable in tracking down and fixing the tough bugs.  Jerry Shea finds and fixes really esoteric oddities that no one else finds.  :)  And Paul Welter is teaching me about better documentation, exception handling, and now CodeSmith.  Anyhow, while I'm still busy, I do look forward to making more posts about my experiences.  On a personal note, we believe we have sold our house (it hasn't closed yet), and our new one is less than two months away.  Also, the kids have started back to school in 1st grade -- so now I can actually "work" at home!