Archives

Archives / 2006
  • VS 2005 Service Pack 1 Available -- Go Get It Now

    If you haven't heard it already, VS 2005 Service Pack 1 is out and can be downloaded here.  It contains over 2200 bug fixes according to Scott Guthrie, as well as making Web Application Projects standard once again.  Also according to Scott, the install time can vary significantly depending on what you have installed, and is especially very long if you have C++ installed.  My own experience was that it took about an hour to install on my system, although that actually involved what I can only describe as two 1/2 hour installs.  Yes, maybe it was a fluke due to something on my system, but it installed once and said it was done, and then kept going with another install, including the exact same couple of dialogs, before finally asking to reboot.  Maybe your experience will be different, but in the end I suppose what matters the most is that our VS 2005 experience will now be improved every day.

  • IronPython and Dynamic Languages in ASP.NET

    We got to see an IronPython demo in ASP.NET today at the ASPInsiders Summit; some things are NDA, but some things are available now in a CTP. Let me just say that its fantastic to see ASP.NET in this space. Why? I'm not a user of dynamic languages myself yet, but I hear the train coming loudly. I've looked at Ruby, and now I've seen Python, and even though I still prefer C#, there's also an undeniable ease of use that is winning converts everyday. I've seen Rails, and for ASP.NET we already have SubSonic and MonoRails, as well as BLinq, and I saw some cool demos today with IronPython that were just incredible. Anyhow, to get to my point, I think its important that Microsoft is in this space so that we can know that the future of ASP.NET will be safe. Like it or not, technologies and languages come and go, and it would be foolish for MS to believe that C# and VB.NET will always be enough. Just like the IE team discovered that they had to regroup, at some point dynamic languages may very well be the norm. Maybe they won't, but either way ASP.NET should be prepared to be a thought leader, and that is what I saw today, and I just want to say "thank you" to the teams at Microsoft that are making this happen.

  • Note to Self: MySpace runs ASP.NET

    I've heard this before, but I'd long since forgotten: MySpace runs ASP.NET.  Its easy to miss this since it looks like they are running coldfusion, but the cfm's are in most cases remnants of their older system and are now mapped to ASP.NET.

  • ASPInsider Public Overview via Scott Guthrie

    The ASPInsiders Summit began today with Scott Guthrie's overview of what's happening. Steve Smith already has a good summary of his presentation, so I won't try to repeat it. Instead, let me just say that working with .NET just keeps getting more and more exciting. Its truly amazing to see how agile some of the teams at Microsoft have become recently. We've already seen Web Application and Deployment Projects and CSS Control Adapters, and now we see Expression Web Designer, PowerShell, and VS 2005 for Data Professionals. But expect to see more very soon, like ASP.NET Ajax, Data Publishing, and VS 2005 SP1, and later on the things still in CTP, like Orcas, IronPython, WPF/E, and IIS 7.0 Server.

    I've already installed some things, including the final release version of .NET v3.0, but I really need to go install Expression Web, PowerShell, and VS 2005 Data Pro too. Expression Web will give you today the CSS friendly design surface that Orcas will have, and VS 2005 Data Pro will give you Schema Compare, Data Compare, Data Generator, and more. Speaking of data, the Data Publishing Tool that is coming very soon will not only generate the sql to build your database schema, but it will also finally build sql to populate it. And note that VS 2005 SP1 will not only include bug fixes (and there are more than 2200), but it will also automatically finally include Web Application Projects (no addin needed).

    Of course no matter how much we get today, we also are still very much wanting Orcas. I have no clue what the target release date is, but I'm guessing very late 2007 or early 2008. But it will be cool when it does come, and it will support all of v2.0, v3.0, and vNext. That means it will finally add Linq, and make AJAX built-in as opposed to being an addin, but it will also include the Expression Web Designer and JavaScript Intellisense/Debugging. I'm assuming it will also include full support for WPF/E, which is looking really cool. But don't wait until then to start getting the various pieces that are out now or soon. And that was really what I got out of Scott's talk the most -- a lot of this is available today or is coming soon.

  • ASP.NET 2.0 Web Parts in Action by Darren Neimke

    I highly recommend the book ASP.NET 2.0 Web Parts in Action by Darren Neimke (Manning Publications).  This book assumes you are already experienced with ASP.NET, so it doesn't waste your time with yet another introduction.  Instead, everything in this book is just good content about Web Parts and the Portal Framework, a lot of which is hard to find anywhere else.  This book does not just show you how to build a Web Part based Portal, it will also teach you how to customize most every aspect of the process.  You'll learn about the Manager control, Connections, and Personalization, but also about changing the look of the Chrome that all Web Parts automatically get.  So if you are an experienced ASP.NET developer that is needing to learn about Web Parts, then this is a must-have book -- there's nothing else like it.

  • MySpace: My "Space" and My Thoughts

    I've recently finally joined MySpace and created my own "space".  I've looked a little at them before when they've been in the news, but I never really thought much of it.  The funny thing is that even now that I have created my own "space", I still don't think much of it.  I suppose its possible that I'm just too old to really "get it", but I don't think that's the case.  My problem with MySpace is that its just NOT a very user-friendly community site at all.

  • Atlanta Cutting Edge .NET User Group on Nov. 6

    I'm going to be presenting on Custom Providers in ASP.NET at the November 6th meeting of the Atlanta Cutting Edge .NET User Group.  This is pretty much a repeat of my session at the 2006 Atlanta Code Camp, but I keep getting lots of requests for it.  The primary goal is to introduce ASP.NET custom providers and discuss why you should care about them.  Of course we will also examine several sample custom providers as time allows.  Hopefully in a few months, at a future meeting, I will be able to dig deeper into a specific provider, probably the "Health Monitoring" provider for logging and diagnostics.  But for now, come out and learn about custom providers, and maybe win a full one-year subscription to Visual Studio 2005 Team Suite with MSDN Premium, a $10,939 value being donated by me and Mimsware.

  • Which Topic Would You Like to See at Atlanta CE

    Which topic would you like to see me present at the Atlanta Cutting Edge .NET User Group (formerly the C# User Group)?  I've given a presentation on Custom Providers in ASP.NET at Code Camp that some have asked me to do again, but it would be a repeat, or I can dig into a little known but powerful specific provider and do a presentation on Logging and Diagnositics in ASP.NET.  Those are probably the only two options for now, so please give me your preference on these two, but feel free to suggest other topics if you have a good idea and I'll consider it in the future, although probably not right now.

  • Announcement: I'm Joining Mimsware

    I am excited to announce that I will be joining Mimsware on October 26th.  Mimsware is a Microsoft Gold Certified Partner in the Atlanta area offering services spanning software development, network infrastructure, and products to corporate, government and small- or medium-sized businesses.  While my focus will of course be working on real applications for Mimsware, I will hopefully also finally find a little free time for other activities.  So if you're in the Atlanta area and looking for a great team of consultants to help you design and implement a software solution using Microsoft stuff, then don't hesitate contacting Mimsware to get proven experience.

  • Delta's Lack of Customer Service Pays Off

    Don't ever book your Delta flights directly through Delta!  My story has a good ending luckily, but no thanks to Delta.  This started when I booked some flights for my family's vacation over 2 months ago.  This is for a vacation still over 4 months from now, but I wanted to reserve our spots.  I hated doing it at that time since gas was so high, but the accommodations had to be reserved.  So today I look at my itinerary, not really for any reason other than I wanted to.  And there I found that one leg no longer said confirmed, instead it said contact Delta.  So I called Delta and they said they did not go to my destination anymore.  I asked why they hadn't bothered to notify me, since I've specified I do want notified of any updates.  Their answer was that there is no reason to notify me this far in advance.  Hmmm, I purchased my tickets this far in advance because I want to be sure.  And now there's one less carrier going there so I'm sure its only going to be harder to get there.  But Delta has decided for me that its too far out to matter, even though I've requested notifications.

    So next I asked what my options were, alternative carriers or refunds.  Well it turns out they really want to find an alternative for me.  But after checking, since they don't go there now, their idea of an alternative is to go somewhere else.  I told them it was easy to find alternatives with other carriers if they were willing.  But apparently an alternative carrier is not a viable alternative for them, even though they no longer go where they sold me a ticket too.  So that only leaves a refund as an option, which they were happy to do.  And that then allows me to go book my own alternative, averting a potential disaster.  The funny thing is that most of my itinerary is still Delta, and some of it are the exact same flights.  But since gas has gone down I'm actually paying less than I was earlier, and Delta is getting less.  By the way, should an alternative not been easy to find, or not cheaper, it turns out travel insurance would not have covered this.  They'll cover if the carrier goes bankrupt or has a strike, or changes our itinerary during our trip, but apparently is totally acceptable if they just stop going to the location they sold you a ticket to.

  • MVP News and the Atlanta Community

    Its October 1st, which is the annual date that the majority of MVPs are announced, so I'll take this opportunity to announce that I am officially no longer an MVP.  That's right, I was not renewed as an MVP -- and I think MS made the right decision.

    I was first made an MVP in October 2002, which made me one of the first .NET MVPs.  At the time I was the top poster in the ASP.NET Forums, active in newsgroups, and I was also evangelizing various base page template methods to use with ASP.NET.  Why was I active in these venues?  Quite simply, I had the time, and I enjoyed it.  I was not seeking any recognition, but all the sudden I found that I was noticed -- I was even invited to the first private alpha of ASP.NET v2.0 with some big names.

    My time got a little tighter over the following years, but I was still involved, so I was renewed in 2003 and 2004 since its a lot easier to get renewed than noticed.  Then I got even busier with both my job and my wife's health taking lots of time, and yet I was renewed again even in 2005 -- and I probably shouldn't have been.  But since then I've only gotten busier with my job, and I hardly ever post anymore, so it really came as no surprise when I was told that I was not to be renewed as an MVP.

    And I think this is the correct decision by MS -- MVP renewal should not automatic.  Some people are still renewed based on their names mostly, but maybe that's ending.  Instead, its nice to see new people recognized for their community contributions.

    Speaking of community, its also been very cool to see how Atlanta's has grown up.  I remember going to a few user groups back years ago and wondering why I bothered.  But now there is a very active group of people involved in the Atlanta community.  I remember being the very first developer-oriented MVP awarded in the Atlanta area -- and now look at the very impressive group of developer MVPs that Atlanta can boast.  So now when I do have the time, I choose to be more involved in our user groups.

    So while I'm very proud of the fact that I have been an MVP, for four years even, I'm also very glad to be a part of the local Atlanta community, and to know so many.  Hopefully I'll have more time soon to be even more involved -- so watch for more news.  :)

  • Vista will NOT support Developers

    So first most of the meat was taken out of Vista, and the best of what remains (the poorly named .NET v3.0) runs on XP.  Now we find out that we can't use Vista for development, since VS 2003 (or 2002) won't be supported.  For that matter, even VS 2005 will require SP1 which is just now in beta, and even that we are told will have issues after its official release.  So (1) who actually wants, let alone needs, Vista, and (2) why does MS just keep screwing up and pushing out this stuff before its ready?  Don't get me wrong, as I like VS 2005 very much, but its no secret that MS made some bad decisions that still impacts a lot of people.  But even for those of us that do like VS 2005, most of us still have to continue to support VS 2003 also for some time.  And its not like this is the only thing that seems to not be ready with Vista, but this will pretty much guarantee developers won't move to Vista in large quantities.  So either MS should delay Vista until its really ready and useful for more than generating income, or we developers need to tell everyone to ignore Vista since its clearly not ready.  

  • SQL/.NET Job with my Client in the VA/DC Area

    My client has too much work for me to do as they've grown, so we need to bring on someone else to help us out.  First and foremost, we need someone very good with MS Sql Server and T-Sql, including procs, dts, jobs, and more.  Most of the work can be done remotely, but we also need someone that can help with network/database maintenance.  That is not the main responsibility, but it does mean we need someone reasonably close to my client's location, so we need someone that is relatively near the Virginia burbs of Washington DC, or at least willing to relocate.  It would also be great if this person was able to work with me on our .NET development, even using my ORMapper.  If this describes you, and you're interested, then please send your resume to me at VAJob-at-WilsonDotNet.com.  This is a great client to work with, but they're also very busy, so we're only looking for someone very good.

  • FireFox Updates with no Warning in middle of Work

    I'm all for really trying to push updates needed for security on people by default, as long as there are options to disable that "feature", but it seems FireFox is a little overzealous.  Apparently the FireFox team just released v1.5.0.5, and so browser automatically found that update and installed it, which was the default setting.  What's the problem?  I had several pages open, and I was doing some real work in one (actively typing in an edit box), when with no warning all of my pages were simply closed and the install just started.  I cannot recall any application that doesn't give you a warning if you're currently woring in it before proceeding with an update, even when things are configured to be automatic with no user interaction.  Yes, I realize there is an option to ask me what I want to do instead of being automatic, but I think the difference should be that "ask me" does not do it automatically even when I'm not working, giving me complete control, while "automatic" should still give me a warning to save my work and close things if I am in the middle of things.  What do you think?

  • Is .NET v3.0 (aka WinFX) going to be Synced with C# 3.0 (aka LINQ) ?

    I think it makes great sense to rename WinFX to .NET v3.0, but I haven't seen any mention as to whether or not this implies any type of sync with C# 3.0 and LINQ, let alone DLINQ and ADO.NET v3.0 Entity stuff -- anyone have anything they can share?  It seems like it would be really weird to have .NET v3.0 come out a lot sooner than C# 3.0 and ADO.NET v3.0, and I don't think those are going to be released earlier, so does this mean that part of this renaming entails a delay in WinFX, or should we expect the other things to later be renamed to 3.x or even 4.0?  Sorry if it seems I'm ignoring VB, but since its not labelled 3.0 to begin with its not really a problem with this other renaming if it ships later or not.

  • The Truth about Stored Procs and O/R Mapping

    There's been yet another series of posts recently that spread some FUD about stored procs and O/R Mapping.  I could try to refute the various points one by one, but that's been done before for those willing to look.  So instead I decided to write a little about how O/R Mapping actually changes very few things we know well.

    First, do you give each user a separate db login, with varying capabilities, or does your app use just one?  This seems to be the central point of contention in some of these discussions about stored procs and O/RM, but this is actually a very independent design decision that has nothing to do with whether you use an O/RM.  That's right, you can use separate db logins with O/RM, and you can use a single db login without an O/RM.  So how do you determine which approach to use?  You must consider the various tradeoffs that are involved.  It may seem obvious that every user must have their own separate db login, but what are the implications?  The most serious tradeoff is that your app will never be able to take advantage of db connection pooling.  Because of that fact, most all web apps, as well as those enterprise apps that have a distributed design, make the decision to have just a single db login that the application uses for all users and db interaction.  This approach is used almost universally, including by those that use stored procs and do not use any O/RM, so I really find it troubling when some people ignore these facts to imply that this makes O/RM insecure.  But what if you do have a situation where you have determined that you do need separate db logins instead?  Then there is absolutely nothing about O/RM that prevents you from using that approach if that is required.  Some O/RMs won't allow you to use stored procs, but others do allow stored procs -- its not all or nothing.  The point is that arguing that using stored procs with separate db logins is more secure than a single login has absolutely nothing to do with whether or not you use O/RM -- any such comments otherwise are pure FUD.

    Next, if like most projects, you have chosen to use the single db login approach to get connection pooling, then how do you end up securing your application and giving varying capabilities to your different users?  You of course end up checking user authentication and feature authorization by querying a membership store, and you probably also have a system in place so that users won't even see the capabilities they do not have.  So how do you actually prevent users from doing things that they are not allowed if your db login doesn't itself prevent those capabilities -- this is the issue raised when someone asks what if they get your dll.  The answer is that your application must manage security correctly, but this has nothing to do with O/RM, since this is true as soon as you go down the path of having a single db login for the connection pooling.  And just getting your dll doesn't give anyone any capabilities unless they also have your single db login, which could easily be the process account itself, instead of a sql login, to make that feat impossible.  The point is that security is protecting that single db login, which is trivial if its the process account, and if you don't protect that asset then you have a big problem irregardless of stored procs and/or O/RM.  So lets be very clear that security comes down to your application design and your protection of the login, and both of those key issues remain exactly the same regardless of whether or not you choose to use an O/RM.  As a side note, even if you do use separate db logins, you probably still only show users what they can do, which again makes the argument that a single login must provide additional security logic to be pure FUD.

    So now, assuming we can agree that the important security questions are not at all specific to using O/RM, then what other issues are brought up in regards to whether or not one should use or avoid stored procs?  Some people continue to raise the same old tired and flawed discussions about sql injection and performance, but the facts are out there for those really interested in the truth instead of simply spreading more FUD.  I think the most interesting observation is that I know of many, myself included, that switched from these stored proc based systems to using O/RM without stored procs, but I know no one that switched the other way!  Why is that?  Could it possibly be that we know based on our experience, instead of idle academic guessing, that our apps are just as secure and performant as they were before O/RM, but far easier to build/maintain?  And why is it that I still use stored procs when they make sense, especially for batch jobs and reports, as well as for the occasional situation where there are some serious performance optimizations to be made?  Could it be that O/RM users are not anti- stored proc, but instead simply use the best tool for the job?  And why do they assume we can't possibly use triggers for maintaining history -- I've recommended triggers.  And if they really insist on stored procs, then why do they ignore O/RMs that do support those stored procs?  It seems instead that some people must defend their decision to continue doing what they have always done, in spite of the many facts and success stories that speak differently, thus the continuing parade of FUD.  Can you do things poorly with O/RM?  Absolutely -- just like you can make poor choices without an O/RM!

    Finally, I saw a few people ask for examples that prove O/RM can be secure and performant and scalable.  If you are truly wanting such an example, then I point you to my WilsonWebPortal which uses my own O/RM.  All of my sites run exceptionally well on it -- better than many other popular portal based sites out there.

  • Introducing the WilsonORMapper DataSource Control

    It seems that the ObjectDataSource control is not as easy to work with as most people had hoped.  It also requires far more than is necessary if you are already using an O/R Mapper with your objects.  So I decided to spend a few spare hours and throw together a DataSource control for my WilsonORMapper.  The download includes the full source code for the DataSource control, as well as a simple web demo.  So download it and let me know what you think -- and maybe the source code can be modified for NHibernate and others.  Please let me know how it works for you, since I honestly haven't spent much time on it, and let me know if you found the source useful too.

  • ASP.NET Custom Providers Presentation and Sample Code

    My ASP.NET Custom Providers presentation and sample code can be downloaded from http://www.WilsonDotNet.com/Downloads/AspNetProviders.aspx.  The sample code includes very simple custom providers for Membership, Roles, and SiteMap, along with an overly simplistic web app to demo them.  They all use my ORMapper for database access, which means you can target most any database, but you can easily substitute your own data access pretty easily.  The SiteMap provider is intentionally not very optimized since the intent is to only show a very simple example, although there is one tiny optimization included.  That said, its not very hard to add some smarter caching, as I have done in my WebPortal, although you'll also need some type of cache invalidation when you add, modify, or remove pages.

  • Speaking at the Atlanta Code Camp on ASP.NET Custom Providers

    The Atlanta Code Camp (2006) is scheduled for tomorrow (May 13, 2006) at DeVry University in Decatur (not the MS Offices in Alpharetta).  I'm currently scheduled to give my presentation on ASP.NET Custom Providers at 8:45 am, although the schedule may change.  The new services exposed by the new provider model in ASP.NET v2.0 are some of the best new things, so this should be a great topic.  My goals for this presentation are to introduce these new services and the provider model, and to convince everyone to build their own custom providers.  Well maybe that's a little strong, but I do think that most enterprise web apps should consider this, and I'll show some simple sample custom providers.  In particular, I'll give you the code for some very simple Membership, RoleManger, and SiteMap providers that work on top of O/R Mapping.  We won't be focusing on the O/R Mapping at all, so that's not a prerequisite, since you can always add your own database logic if you desire.  But O/R Mapping does make working with custom providers far easier, and it automatically works with MS Sql, Access, Oracle, MySql, and most other databases as a bonus.  And if you need more, my WilsonWebPortal has better optimized versions of these same providers, as well as adding custom Profile and WebEvents providers.

    I've also got a lot of very good books to give away, in addition to the ones that will be given away all day long in all the sessions.  They are (1) Apress' Beginning ASP.NET 2.0 in VB 2005 by Matthew MacDonald, (2) Apress' Pro VB 2005 and the .NET 2.0 Platform by Andrew Troelsen, (3&4) two copies of Addison Wesley's Visual Studio Tools for Office Using Visual Basic 2005 by Eric Carter and Eric Lippert, (5) Addison Wesley's SQL Server 2005 Distilled by Eric Brown, (6) O'Reilly's Programming SQL Server 2005 by Bill Hamilton, (7) Microsoft Press' Programming ASP.NET 2.0 Core Reference by Dino Esposito, and (8) Microsoft Press' Programming ASP.NET 2.0 Applications Advanced Topics by Dino Esposito.  And I'll give you the book of your choice (that's still left) if you attend my session and come up before it starts to introduce yourself and tell me you read about this offer on my blog.  I've also got a few 32MB USB Keys if you prefer that instead of a book, so even if you don't want a book you can still come up and introduce yourself and tell me you read about this on my blog.  Any books or USB keys left after that will be given away during the session however I see fit, so come early -- but please form a line to keep it nice and professional.  :)

    There's a lot of other sessions that look good too of course, and most of them are probably better speakers than I, so come out -- assuming you did register.  I'm not even sure how I'll pick between some of these sessions, since there are several ones in each time slot that I'm interested in attending.  So don't be offended if I attend a different session Wally -- I may still make it to your Atlas session, as I really am interested, but there are other good ones too, so its hard to decide.  So see you at the Atlanta Code Camp tomorrow -- and don't forget the location is DeVry and not the MS Offices since we needed more space.

  • Tim Doesn't Like Live.com -- And I'm Not Sure About Atlas

    Tim says he doesn't like Live.com -- its slow and its ugly -- and there's just no point in it.  I have to say that I agree, but I also think there's an even bigger problem -- Atlas !  Now I'll be the first to admit that I still haven't spent much time with Atlas, so maybe I'm missing something, but it just feels all wrong to me.  Don't get me wrong, I like Ajax, when its used correctly and within reason -- of course I also liked it back in 1999 before it was called Ajax.  I also like some of the Ajax implementations from what I've seen of them, but that's where Atlas goes wrong.  What do I mean?  Quite simply it doesn't try to be an Ajax implementation -- instead it tries to be a client-side framework.  And just why do we need a client-side framework?  Oh yea, to build sites like Live.com -- it all makes perfect sense now.

  • Interested in Astronomy -- Try Slooh.com's Twin 14" Scopes

    I don't usually make many recommendations, since I don't want to sound like a commercial (unless its about me of course), but you've got to try Slooh.com !  I've always loved astronomy (and most every other science for that matter), but I've never had the opportunity to really see things myself.  I actually even bought what I thought was a good backyard telescope a few years ago, but I returned it when the Moon was just bright and Saturn was just a blur.  But then I read about Slooh.com in my Discover magazine the other day (another highly recommend resource -- every article is a must read for me every month), and I thought this was too good to pass up.

    So what is Slooh.com?  Basically someone has setup 2 14" telescopes on a mountain in the Canary Islands and hooked them up to the net -- and you get unlimited viewing for $99 a year (they have smaller per-minute deals also).  One scope is controlled by the professionals, with paid commentators, but the other scope is controlled by members -- you can pick what you want to see in an available time slot, and those are actually easy to get, and you can always watch what others have selected too.  Each viewing is only 5 minutes, but that's more than long enough for even objects far away to resolve in decent detail and color -- and the timezone difference is perfect.

    Now let me share my family's observations from last night.  We saw the Moon and all its craters crystal clear as I expected, and we saw Saturn pretty well -- I had hoped Saturn would be better but I do understand this is only a 14" telescope (better than anything we could personally own, but not as good as the biggest either).  But then we looked at Pluto -- and you can't even tell which bright dot out of many others in the background it really is -- and that was a perfect educational opportunity.  Why?  Because the only way astronomers actually found Pluto (and others farther now) is by looking for small movement over several hours or even days !

    We also have observed lots of galaxies, nebulas, and other objects too, but it was definitely the planets that I wanted to look at with my son first.  Just make sure you realize that far away objects actually take several minutes to appear in full color and clarity since it has to collect enough light.  Its really fascinating and I highly recommend it to anyone wanting to observe the planets and stars and more.  And you certainly can't beat it for the price and the educational value either -- by the way, "slooh" is a play on "slew", which is how you turn a telescope, so I suppose you're supposed to pronounce it "slu" and not "slo".

  • Review: Programming SQL Server 2005 by Bill Hamilton

    Programming SQL Server 2005, by Bill Hamilton, is an excellent book to help developers experienced with MS SQL 2000 to get up to speed on what's new in 2005.  First, it is focused squarely towards developers, which is a great thing for developers -- no more having to wade through all of the DBA-oriented features.  Next, it is only about the new features, which again is a good thing for most of us -- no need to skip the usual chapters on the  basics of MS SQL and T-SQL.  Finally, it is short and concise, with good practicle examples, which is good again -- no massive repeat of the documentation or silly hello world examples.  There is good coverage of the new T-SQL syntax, of the CLR integration, of all things XML, of SMO which replaces DMO, and of SSIS which replaces DTS.  There are also intros to all other features, like Web Services, WMI, Reporting, Server Agent, Service Broker, Notification, Replication, Analysis, and SQL Mobile.  This content level feels about right for a concise book on what's new -- you may need more on some features, but there are entire books on some of these.  Note that the book claims to be for all levels of developers, but its clearly only appropriate for those with SQL 2000 experience since its just what's new.  Finally, as with every other book I've seen, there is no attempt to give you any advice on what you should avoid and why -- something that I would like to see.  For instance, everyone likes to talk about CLR integration, but most will misuse this, and most DBAs will never allow you to use SQL Web Services.  But in general, if you are an experienced MS SQL 2000 developer that wants to quickly get up to speed on SQL 2005, then this will be an excellent book for you.

  • Using Reflection (and O/R Mappers) with Nested Classes

    I can't say that I've ever used a nested class myself, but I recently had a problem posted to my forums that involved a nested class and my ORMapper.  I tested it myself and concluded that it was a bug due to my never having worrying about it before.  Well it wasn't easy to find the solution, but I'm happy to report that there was no bug at all -- you just have to know the trick that .NET expects when using nested classes with reflection.  It turns out that you should use a plus sign (+) instead of a dot (.) when referring to the nested class in a type name that you are going to reflect on -- so something like this:  "Name.Space.Main+Nested".  Its even in the MSDN docs here, although its not in other parts of the MSDN docs that I was originally looking for it at, like here.  Anyhow, I assume this information will be useful to anyone using reflection with nested classes, and it probably applies to other O/R Mappers also, so it seemed worthy of posting on this blog.

  • Anyone heard of Login problems for some IE users?

    I'm using the new ASP.NET v2.0 Login control and it works great for me and most other users in both IE and FireFox, but there seems to be a small number of users that cannot get it to work in IE on at least some computers.  I'll be the first to admit that maybe its not the Login control at all, since maybe its some other esoteric code of my own or some setting I've chosen, and in fact I have created a very bare-bones test with the Login control that seems to prove it is not the issue for these users.  So my question, since I haven't figured it out yet, nor do I see anything like this in the forums or the MSDN Feedback Center (Ladybug), is if anyone else has encountered anything like this, and if so then how were you able to resolve it?  Again it works great for me in IE, so I can't duplicate the problem, and it works great for most other IE users, but there are a few IE users that are unable to login (or at least their credentials are lost immediately) and they don't report anything odd in their browser settings.

  • Atlanta .NET User's Group on March 27 with Greg Young on AOP

    Greg Young is going to be giving a fascinating presentation on AOP at the Atlanta .NET User's Group on March 27.  I'm going to try to make this one since (1) Greg is a great speaker, (2) AOP is really cool (like O/RM), (3) Greg's writing a book on AOP, (4) Greg contributes actively to several open-source projects related to AOP, and (5) Greg's presentation description sounds enlightening.  Do you really need any more reasons?

  • Presentation and Code from my Intro to O/R Mapping Talk

    Thanks to the Atlanta C# User Group for allowing me to present last night.  I'm a terrible speaker, in spite of years of teaching practice (former math professor and grad student before that), so I'm content if people learn something even if they aren't impressed by my speaking skills (or lack thereof) -- and it sounds like I did accomplish that goal from the feedback I've gotten.  Getting up in front of a user group like this one is a lot more awkward than teaching math though, since I knew I knew far more math than my students ever would, but I'm sure of just the opposite here -- the room was definitely full of very smart people that know what they are doing.  Anyhow, feel free to download my presentation and code from http://www.WilsonDotNet.com/Downloads/IntroORMapping.aspx -- the key to me is to compare the code and procs in the Standard project with the lack of similar code in the ORMapper project, which is far more important than the slides.

  • Speaking at the Atlanta C# User's Group on March 6

    This month, Paul Wilson will be presenting an Introduction to O/R Mapping. He will cover the concepts and rationale behind O/R Mapping, as well as showing a few examples of the technique in action. Paul is a subject matter expert on this topic - his own product ( http://www.ormapper.net/) is one of the more popular .NET O/R Mapper tools on the market today. Paul is also donating a full one-year subscription to Visual Studio 2005 Team Suite with MSDN Premium to one lucky raffle winner (a $10,939  value)!

    For more information on this month's meeting, please visit our website at:  http://www.atlantacsharp.org/NextMeeting.aspx

  • Visited Atlanta User Group with Jeffrey Richter

    They said I would never do it -- but I made it to my second user group meeting in the same year -- and in the same month at that!  And this was a great one since we had Jeffrey Richter visit us and talk about threading and reliability.  For those that don't know who Jeffrey is, suffice it to say that he designed some of the APIs in .NET that he discussed!  I've read a few things about how .NET v2.0 was hardened to support hosts like Sql Server, but this was way deeper -- and Jeffrey even made it entertaining.  We also got to see some of the APIs available to us so that we can also write reliable code -- SafeHandles and Constrained Execution Regions (CERs).

    I also got to see all my buds from Roche again, as well as Kirk and Marcie (AKA GridViewGirl, formerly known as DataGridGirl), and Andrew (who doesn't live anywhere near Atlanta).  Of course all the usual suspects were there too (sorry I can't name everyone), but I also thought it was telling that the room was nowhere near full.  Sure it was more than half-full, maybe even two-thirds full, but it was not full -- and they were expecting a full house and even required pre-registration.  Are there really this few .NET "experts" in this very large city?  Many of us say its a small town because we've ran into each other many times over the years -- is this proof of this?

    By the way, I'm going to be at my third, yes third, user group in another two weeks!  That's right, if you're interested in learning something about O/R Mapping then come out to the C# User's Group on March 6.

  • Random Thought on Communication Skills

    This makes the 2nd time recently, from 2 different people, that I've seen the following:

    Must have good communication skills.
    Kindly revert as soon as possible.
    Is it just me, or does it seem like an oxymoron that they want what they themselves lack?

  • Atlanta C# Users Group -- I Made It Tonight !

    I made it to the Atlanta C# User's Group tonight -- yeah !  I met up with several former colleagues that were the best in every way:  Jerry Dennany, Yang Cao, Andrey Lifshiz, and Clark Allen.  I also got to meet Greg Young, who spoke on creational design patterns, and who I've been talking with sometimes in the virtual world.  The other presentation, by Mitch Harpur, was about custom configuration sections in .NET v2.0.  Both presentations were very good -- I hope mine next month on O/R Mapping won't be a let down since its definitely "basic" -- and yet I still find most people don't know anything about it.  I also saw many others, including Michael Earls and Keith Rome, but I spent far too much time with my other buddies to make it around to everyone else.

  • WilsonORMapper and ObjectDataSource

    As Scott Guthrie, Mr. ASP.NET himself, noted recently, two users of my ORMapper have put together some articles that can help if you intend to use ASP.NET v2.0's new ObjectDataSource control:

    Scott also mentions some other great tools, and he's been posting tons of other great ASP.NET information and samples -- so go right now and subscribe quickly if you haven't already done so.

  • ASP.NET Forums Really Suck in FireFox

    Has anyone else noticed (complained) about the current ASP.NET forums, ever since they upgraded their version of Community Server ?  I've basically stopped visiting them since they take so long to load in FireFox, even when coming back to a page in another tab that's already been loaded.  The next page links also seem to take 2 clicks for some reason (they don't in IE) -- and I don't know what else is broke since I just can't bring myself to visit them anymore.  Sure I could use IE, but I like FireFox and it is what I have up and running, and I've never seen any other site that responds so poorly like this.  I also can't say I really like the updated "look" all the much period, and even in IE its obviously slower than it ever used to be.

  • WilsonORMapper v4.2.1 Released -- Includes Sql2005 Row_Number Paging

    Update: WilsonORMapper v4.2.1.0 (1/24/2006) includes the following:    

    • Sql2005 Provider for Efficient Paging with Row_Number
    • More Lookup cases using Outer Join now Supported
    • ObjectQuery has SkipCounts option for Performance
    • Multiple optimizations with the help of Marc Brooks
    Marc Brooks also provided the following new features:
    • Auto keyType can be Composite with the last being Auto
    • DefaultNamespace can be defined in each mapping file
    • DateTime provider-specific min/max for db compatibility
    • Bug-Fix: Non-Lazy-Loaded Generic (v2.0) Collections
    • Bug-Fix: Transactions with specified IsolationLevel
    • Bug-Fix: Empty Byte Arrays work with nullValue="[]"
    • Bug-Fix: A few OPath fixes included by Jeff Lanning
    I would also like to say a great big THANK YOU to some other unnamed people that just go out of their way to help me, whether it be a simple but personal note of appreciation, an extra monetary donation, or help with extending the code and testing things -- you know who you are.  I would also like to say THANK YOU to my current client for allowing me to work on some of my own projects at times, and for right now being so very understanding and appreciative of the many extra hours I've put in that have really added up here lately.