in

Blog By Bob

Blog by Bob

February 2006 - Posts

  • Cha Cha Cha Changes...

    Well, after some conversation with Jayson about R2, I've decided to redo my office setup. Longhorn....err...*Vista* is about 15 minutes out from being downloaded, so I am going to take my desktop and laptop to Vista 5308. My Domain Controller is going to migrate to R2 this weekend (me and Mike played with an early release of R2), and either this weekend or next, the web server and database server are going to migrate to R2, and when this happens, .Text will be coming up in its new magic, ASP.NET 2.0. I am going to play with adding a few things including coComment (as I promised Jayson). SQL is already 2005, though it was a real early CTP, so I am going to reinstall it as well on R2. The site shouldnt be down any during the transition, my spare server that has a copy of the webserver and the sql server is ready to handly my meager 2 or 3 visitors a day ;)

    Thanks Jayson for getting me motivated to change...uh...I think :P

  • PowerDVD 6.0 on Windows 2003 Server

    I reinstall my OS alot, every other weekend usually, so this has become habit for me, but I thought I would point it out in case some one else runs across it.

    Windows 2003 Server with Service Pack 1 has Directx 9.0, but if you try to install Power DVD 6 (or the trial) you will get an error telling you that you need to have DirectX 9.0b or higher to install this application.

    The fix?

    Run dxdiag, then PowerDVD installs fine. Why? Your guess is as good as mine...

  • Recursive Batch File

    In true Bob fashion, what I mean is not exactly what I said. By 'recursive batch file' what I meant was...

    I couldn't remember how/if I could make a batch file beep, so I created a batch file on the desktop and in it I made one line:

    beep

    I saved the batch file and called it beep.bat.

    Then I double clicked it.

    CPU usage, of course pegged at 100% and stayed there...

  • SourceSafe for Dummies (Me)

    So, today I needed to get latest on a whole project recursively from a label. I figure, 'how hard can it be?'. Being a rookie at best with SourceSafe (it scares me), I ask Microsoft (via their support site). http://support.microsoft.com/default.aspx?scid=kb;EN-US;q162114

    So what does Microsoft say?

    From a command line you have 2 options:
    SS GET $/<path to project>/*.* -r -gf -vl<label>
    or
    SS GET $/<path to project> -r -gf -vl<label>

    I am more of a GUI guy unless I actually know how to use a project, so I look further in the article to see what the GUI option is.

    7. Right-click the Project Vssrocks and click Show History.
    8. Select the version that the label was applied to and click Get.
    9. Select the Recursive check box and click OK

    (the pre number 7 steps are to set the sample projects up)

    Much better. Yes, this is basic, but it is here more to remind me than to inform anyone else. (And thanks to my coworker Ben for finding the solution for me)

  • Sexy...

    Jayson sent me a nice link to Billg's latest Channel 9 video. Billg gets into just how important backwards compatibility has been for Microsoft since day one, and sees it as a big positive, even with the baggage it causes. Some days I would agree with him on this, many days I would not.

    I did notice that Bill, like SteveB, must be watching me. He actually quoted me in the video when he was said he 'doesn't watch TV, but is addicted to 24'. I think it is a hint to me that he wants me to send him my resume.

    Anyhow, back to reality. He goes into alot of awesome information about Office 12 (now called Office 2007). He talks about collaboration, and Sharepoint services and it sounds like they will have a relationship similar to that of Outlook and Exchange today. And this sounds like a very interesting, possible powerful concept.

    He even comes out and calls Office 2007 'sexy' (editors note:he actually said 'Office 12 has got more sext new stuff' though we won't go into a discussion about the grammar).

    Talking further on integration, he talks alot about XML, both in the new Office products and with the move SQL etc has made to fully exposing XML so far. I see alot of potential in this, and I am glad to see that Microsoft has taken this path, I think it makes their products more powerful, and increases their value relative to alternatives, even as it gives the alternatives an easier time of interoping with file created from Microsoft products.

    I have a prediction about one of the things Bill talked about. If you remember in his book 'The Road Ahead', Bill made a lot of prediction of where he thought technology would be going. He is right on many things, and not so right on many as well.

    I am going to make a prediction today. In the video, Bill talks about wanting to be able to 'walk down the aisle of Amazon', seeing the books as you would in a store. My take on this is, 'wtf is he talking about'. Yes, the 'cool' factor would be nice, but do you really think it would be faster/better/more convenient to the customer to have this big heavy thing in their browser? I predict this is not happening any time soon. Change is driven by what brings a customer to the site, and faster/better/more convenient/cheaper are usually the things that do that.

    Maybe he is speaking metaphorically and he just wants to be able to read more of the book online or something, but it doesn't seem so to me.

    Bill goes into a nice talk about truly getting children involved and revolutionizing the way education works, allowing things to be more interactive, more efficient, more involved and just more 'there' for children, centralizing on what a computer attached to 'the knowledge of everything' could teach. I agree that with the cost of provising education, the shrinking number of teachers, etc that something needs to be done. The only concern I would have is what would we be doing to society as we start teaching children from the age of 5 that their computer is their only friend? We could end up with generations of really smart introverts and the movie 'The 40 year old virgin' stops being so funny... 

    The last thing he talks about is using data in a new way, more collaborative, and being able to truly centralize your data store (yeah, don't we wish). He talks about how this could be used to truly revolutionize the healthcare industry. 

    You can say whatever bad things you would like about Bill, but the Bill and Melinda Gates Foundation speaks for itself.

  • Recap: 1.0 Compatible Code From Visual Studio 2005

    I know this is common around the internet, but there still seems to be some confusion about this topic, so I figured I would add to it ;)

    1. You *can* compile to 1.0 compatible (and mono compatible I would assume) code from VS 2005.
    2. You *can not* use any 2.0 specific language features when doing so (partial classes etc).
    3. Your project and solution files will be stored in 2005  format, so you wont be able to open them in 2003 without alot of stuff going on (proj files for both IDEs or something crazy like that).

    Other than that, its just a matter of doing it. You can't (I don't believe) change the framework on the solution level. You do it per project, to each project in your solution. Or at least each one you want to run in the 1.0 framework, in case for some reason you want some each way.

    Right click the project, choose Properties, choose the Build option, choose Advanced. You will see a drop down beside Language Version. Change that to “ISO-1”. Rinse and repeat for the remaining projects. It *will* complain and not compile if you use a post 1.0 language feature.

  • Visual Source Safe: Why Is There a New Version Again?

    There were alot of nice fixes to Visual Source Safe for the 2005 release. Things are pretty, I guess performance is better...Things are pretty...

    And the Add Files button no longer lists just the files in that directory that are not in Source Safe already, but lists *all* the files directory.

    I looked in options to see if I could change the setting, but didn't see anything. I think its time to email steveb and ask him what's up.

  • COOKIE ALERT!

    Sorry about the caps.

    I found out something interesting yesterday.

    As some developers know, and some haven't noticed, in ASP.NET 1.0 and 1.1 Microsoft took the approach to cookies that the developer should be able to just set a cookie and not worry about it every again in their career. What you say?

    I am just commenting on the fact that the default expiration for a cookie in ASP.NET 1.0 and 1.1 is 50 years.

    Interestingly enough, someone at Microsoft said 'Hey.'. Yes, they actually said 'Hey.'. Then they commented on the fact that a 50 year expiration on everyones cookie on every ASP.NET site in the whole wide world probably isn't the cleanest solution. Nor the most secure.

    Their reaction? The default cookie expiration in ASP.NET 2.0 is 30 minutes.

    Thats a pretty substantial change, and something that could catch you off guard, especially since your clients existing cookies don't get eaten, you new clients do, and you could come to think your new release has some issue.

    Anyhow, I just think that there should have been a more suitable expiration set. For a truly 'I need more security site' 30 minutes is good. Hell, those people are probably using session based cookies anyhow, and at the least, they already knew to change the timeout on their cookie.

  • Commerce Server 2002 .NET Framework 2.0 and SQL 2005

    Please, if you are not busy, read my previous post on this subject found here. If you are in the middle of coding and trying to solve your migration issue, it is very long, you might want to come back and read it later (please do though, I think it is an important piece and something we need to address).

    Having prefaced my article, lets talk about getting your Commerce Server 2002 site working in ASP.NET 2.0, and/or with SQL 2005.

    Let's discuss SQL 2005 first. If you are looking for information before doing your database upgrade, feel at ease. Whether porting your existing site's databases to SQL 2005 or creating a new site and letting the installer and PUP process create your databases for you, it appears you will have no issues moving to SQL 2005, whether using 8.0 emulation mode for your databases or flipping them to 9.0 mode.

    I've tested both a new install directly to SQL 2005. Restoring a SQL 2000 database set to SQL 2005. Detaching a SQL 2000 database set and manually attaching the ldf and mdf files to SQL 2005 and everything seems to work fine.

    Yes, this is a good thing. Now you can use some SQL 2005 specific features in the rest of your site.

    Now, for the ASP.NET 2.0 part. Here things get alittle more interesting. Before I get anyone too upset, our site *is* working and working with the same functionality it did before and working in ASP.NET 2.0. The items we currently have working are: Catalogs, virtual Catalogs, Discounts, Promotional Code, Baskets, Order Forms, Order Form Templates and all the pieces we needed for running our different Pipelines, including non-US currencies.

    Everything, for the most part, worked without flaw, with very little modification. After migrating, or even just writing fresh, you will notice the resource file you most likely used to populate your messageManager object is not being loaded (and you are probably getting a parser error or a load error in your web.config file). If you weren't using a resource file, and were manually 'pumping' your messageManager, you probably don't need to read the rest of this, as you are probably up and running.

    The issue, and someone more knowledgable in this area than myself may be able to shed more light on it, seems to be the difference in the assembly build processes of ASP.NET 2.0, combined with the way resources files are used/built. I am going to gloss over some of this, and many people may come back with ideas of building the resource files manually etc, and I don't want to discourage you, but I became pretty friendly with resgen and the assembly linker during this path, so I did alot of work on over coming this issue instead of working on 'how else can I do it'. After the second day, I started looking for alternatives.

    It seems that there is another way, you don't have to populate the messageManager from within the web.config file, you can alternatively populate it from either the method where you are going to call the pipeline, or if you prefer, create it in the application on start method in the global.asax file and chunk him into the application object. WARNING: If you choose the second method, you will still need to pass him into your PipelineInfo object, or he wont be in scope there (found this out the hard way).

    So, enough chatter, let's look at some code.

    The first thing you need to do is fix your web.config file so the project will load.

    Chop out the whole block, though save this somewhere, we will need to build our entries from it.

    An example of this section:

    Note: The webconfig file piece didn't save properly, I will fix this when I get in.

    Next, open your solution. You will need to add a referencer to C:\Program Files\Microsoft Commerce Server 2002\Assemblies\MSCSAspHelpLib.dll, assuming that you didn't change your commerce server install path. (You probably won't already have this reference since if you used the web.config piece before you most likely never touched the messageManager manually)

    For the next step, we are going to assume you are going to inline your messageManager guy in the method(s) you are running your pipeline in. For the sample, we are running a checkout pipeline and will only add the items we need for this. You would adjust the strings you are building based on what pipeline you are running, and obviously wouldn't hard code all this information in the code anyhow, this is sample only to get you up and running, I am not here to design your application ;)

    MessageManager messageManager = new MessageManager();
    messageManager.defaultLanguage = "en-US";
    messageManager.AddLanguage("en-US", 1033);
    messageManager.AddMessage("pur_badcc", "The credit-card number you provided is not valid. Please verify your payment information or use a different card.", "en-US");
    messageManager.AddMessage(
    "pur_badpayment", "There was a problem authorizing your credit. Please verify your payment information or use a different card.", "en-US");
    info = new PipelineInfo("checkout");
    info["messageManager"]=messageManager;
    basket.RunPipeline(info);

    This will allow you to pass your manually build messageManager into your pipeline, so you can retrieve reply/error messages from it. It will need to have any strings you use from your web config file for discounts, checkout, etc to be added into it at the appropriate place these pipelines are run, whether you are running discounts, basket, checkout whatever.

    If you would like to alter this to run from a centralized messageManager, move the messageManager declaration to the On Start method in your global.asax.cs file in your app_code folder, and after you build the messageManager, add the following line:

    Application["messageManager"] = messageManager;

    Then alter the above pipeline code to use this by replacing

    info["messageManager"]=messageManager;

    with

    info["messageManager"]=Application["messageManager"];

    I hope this information helps anyone who runs into a stumbling block with migrating their Commerce Server site to run in ASP.NET 2.0, but in case it doesn't, I will offer one better than Microsoft is offering you. Contact me through my blog and I will assist in any way I can with your migration. Hopefully, I won't have to do this for long, and Microsoft will go back to it's own policy of supporting it's mainstream products.

  • Product Support Policy or Popularity Contest?

    Before I get started, I would like to define a few parameters.

    The first parameter is the definition of the word 'policy'. There are several, the most relevant for our current purpose is taken from dictionary.com

    pol·i·cy2    ( P )  Pronunciation Key  (pl-s)
    n. pl. pol·i·cies
    A written contract or certificate of insurance.

    Click on the link above and read the other definitions to make sure I am not trying to unduly slant the word to my needs. Many of the others say the same thing, they just relate specifically to goverments etc.

    The second thing I would like to define is a Microsoft policy entitled 'The Microsoft Support Lifecycle Policy'. This can be found at http://support.microsoft.com/gp/lifepolicy.

    The next item I would like to define is Microsoft's support policy for Business and Developer products.

    From the link above in their FAQ

    Business and Developer products

    Microsoft will offer a minimum of 10 years of support for Business and Developer products. Mainstream support for Business and Developer products will be provided for 5 years or for 2 years after the successor product (N+1) is released, whichever is longer. Microsoft will also provide Extended support for the 5 years following Mainstream support or for 2 years after the second successor product (N+2) is released, whichever is longer. Finally, most Business and Developer products will receive at least 10 years of online self-help support.

    For my, hopefully, last definition, I would like to revisit dictionary.com and pull out the most relevant definition for the word support

    To provide for or maintain, by supplying with money or necessities.

    and remove the word money as it in not necessarrily appropriate.

    Definition: To provide for or maintain, by supplying with necessities.

    Why have I provided this information? This week I found myself in the interesting position of calling Microsoft for support. I had migrated a site to ASP.NET 2.0 (the current retail version). The site had a pretty good sized piece depending on Commerce Server 2002 sp3 (also the current retail release of Commerce Server). We had recently migrated to SQL 2005 when it went to RTM (once more the most recent retail version).

    Do you see a pattern here? Everything listed about is the latest and greatest from Microsoft. Nothing even has a new version.

    Microsoft's answer? We don't support Commerce Server 2002 on SQL 2005. Oh, and we don't support it on ASP.NET 2.0 either.

    Thanks for playing, please drive through.

    This leads me back to my not so eloquent title. 'Product Support Title or Popularity Contest'. Do you think Microsoft could have done this if they were talking about SQL 2000? Could you see the SQL team saying 'sorry, we are going to support SQL 2000 with ASP.NET 2.0'?

    I did end up fixing my issue, but it was very tiring that everywhere I went, 'for an answer', everyone focused on the fact 'this is not a supported configuration' instead of 'hmmm....let me try to think about how we can work around that.' This includes my trips to the Managed Newsgroups, my trips to ASP.NET forums and my calls to Microsoft's Product Support Services, which they were gladly going to take my $245 to tell me that they weren't really in the mood to help me anyhow. Gladly I was able to show that the hack I was trying to implement misbehaved in 1.1 as well, and that was the only reason I was able to get any guidance.

    My next post will be what the actual issue was, and what you might need to change in your behavior (very little actually) to get your commerce server site working in ASP.NET 2.0.

    The kicker after all of this? PSS told me the Commerce Server Team is really busy working on Commerce Server 2006 and there weren't even any plans to backport any changes to Commerce Server 2002 to support ASP.NET 2.0.

    It is startling to hear them say it, although I doubt it will end up being true.

    Interesting quotes from the Microsoft folks as I worked my way through this.

    From the ASP.NET forums (http://forums.asp.net/1188460/ShowPost.aspx)

    Quote:

    Hi,.

    This is unfortunately actually to be expected. The short answer is that Commerce Server 2002 cannot run natively in .NET 2.0. Ditto for running CS2002 on 64-bit or SQL2005. It can, however, run on a system with .NET 2.0 side-by-side .NET 1.1.

    The longer answer is that there are many changes in .NET 2.0, 64-bit Windows, and SQL2005 that necessitated relatively substantial changes in Commerce Server. The team put several months of effort into making these changes for Commerce Server 2006. At this point, I do not see a high liklihood of us going back and back-porting these to CS2002 given the product's age and the imminent launch of CS2006.

    If you would like to use the latest/greatest Microsoft platform, I recommend checking out the CS2006 Beta. It has been available since December and can be downloaded from http://www.microsoft.com/commerceserver/evaluation/2006/beta.mspx.

    Thanks & best regards,

    -Ryan


    Ryan R. Donovan
    Group Program Manager
    Microsoft Corporation - Commerce Server
    http://www.microsoft.com/commerceserver/
    Quote:
     
    I might try downloading the Starter Site from http://www.microsoft.com/commerceserver/downloads/solutionsites2002.mspx as that should have a working message manager configured correctly that you can use as a guide.

    If you get this working on .NET 2.0, do realize that it won't be supported by PSS if you have issues and they will make you repro any problems on 1.1.

    You might also want to make sure your app. is actually running in 1.1 and not 2.0, though I am sure you have already done that. That has been a cause of consternation for a few folks.


    Ryan R. Donovan
    Group Program Manager
    Microsoft Corporation - Commerce Server
    http://www.microsoft.com/commerceserver/
     
    I am not going to quote anything directly from there, but it is one of the places I posted in case you want to see me get bashed on. The Jeff person there even went so far as to go to Ryan Donovan's Commerce Server blog on blogs.msdn.com to continue talking smack. I hope he isn't an MVP and told him as much.
     
    From Ryan Donovan (the Group Program Manager)on blogs.msdn.com (http://blogs.msdn.com/rdonovan/archive/2006/02/07/526674.aspx)
     
    Quote:
    Tuesday, February 07, 2006 7:44 AM by rdonovan

    CS2002 & 64-bit, .NET 2.0, and SQL2005

    A frequently asked question that has come up quite a bit lately is what is Microsoft's policy going to be on supporting .NET 2.0, SQL2005, and 64-bit Windows with CS2002. I figured this was worthy of a blog post...

    The short answer is that there are currently no plans to support any of these. If you want to use these platforms, you will need to use CS2006.

    The longer answer is that there are A LOT of collective changes in these three platforms. CS2002 is an old product rapidly approaching its fourth birthday. It took the team several months worth of work to get through it all and at times it was not an easy task. All of this work is done and in CS2006. Right now, I honestly don't see us back-propagating these to CS2002 given the other things that still wouldn't be there (like integration between our Profiles and ASP.NET 2.0, etc.).

    However, you can still run .NET 2.0 on a box with CS2002 in a .NET side-by-side configuration (.NET 1.1 is installed and the CS-specific applications are using 1.1).

    What scares me most about these quotes is they are all from the Commerce Server Group Program Manager. So unless someone goes over his head and asks his boss what is going on, we may have to live with the Commerce Server team ignoring the Product Support Policy guidelines and doing whatever they want. Someone needs to remind Mr Donovan what 'customers' mean to Microsoft.

    I think I need to look him up in the GAL on Monday...

     
     
     
  • Bug Bash

    I found a (new to me) comic on the internet and found this one personally humorous, as this was one of the many 'brain-teasers' in my Microsoft interview, and I, like the candidate mentioned here missed this one (Although it is the only one I missed). Maybe that is why my contract was allowed to expired and I wasn't awarded with the coveted 'blue badge' ;)
  • Singularity

    Posted on Channel 9 is a new video on Singularity. It is an interesting research project at Microsoft research on how a new OS would be built if the normal things were ignored, and the priorities changed. Things like backwards compatibility, performance as the main precept, focusing instead on items such as security, availabilty and robustness.

    The original Channel 9 video is here, and for a nice technical document is here. It seems they have the main kernel complete, or at least in a stable condition with the core concepts in place.

    One of the main concepts of this new operating system is that the majority of it is in safe managed code. 73% actually, with only about 2% in non managed C++. The other 15% or so is in managed code with unsafe blocks. Everything from the kernel to device drivers runs in managed code. Device drivers actually only get close enough to the hardware to use safe wrapped representations that are passed to them from the kernel. No more chance for a wayward device to bring the whole system down.

    Some interesting comments from the video are the notion of how the compiler, because of the lack of 'dynamic loading' during runtime and other verifiable aspects of the programming model can fully optimize this managed code into streamlined, type safe, verifiable code. This eliminates alot of the headaches of bounds checking, buffer ove/under runs and allows a fast, secure robust system that is exceptionally more secure and available than anything that is currently available.

    The items they have at the moment are the kernel (managed code), Network Stack (managed code), partial TCP/IP Stack (managed code), Disk Subsystem (yes, managed code), file system (also in managed code) and a managed webserver based off of Cassini.

    Surprising, the systems performance has come along way. The have run a modified, scaled down version of SpecWeb on their web server and found that the latency piece actually outperforms Windows' tweaked ISAPI version of SpecWeb, though their file system/disk subsystem can't maintain a throughtput to compete yet. I am sure they will soon have an interesting solution for that, considering the leaps and bounds they have managed so far.

    Alot of the concepts are very interesting and eye opening, and I would not be surprised to see Windows 2017 based off of alot of this technology. By then the backwards compatibility piece can be slowly morphed into something that can be cobbled into a system as different as Singularity.

    I wouldn't be surprised to see this technology at some point come out in the embedded/handheld space. The minuses (backwards compatability being the largest) become less of an issue in this space. Also the server space could be another outlet at some point, as most applications on an enterprise level are designed as needed and having to rely on legacy frameworks is not as major as it would be in the consumer space.

    At the end of the video, there is a hint at a third installment. I, for one, hope this happens sooner rather than later. You can find more information on the Singularity homepage off of Microsoft Research.

    The only negative thing I have to say at this point is that the only interface is a DOS style command prompt. I would like to see a GUI of some kind just to show they can if nothing else. I wouldn't be surprised to see this in the 3rd video, although they made it clear that they do not have one at this point. I hope, no matter the outcome, that we can see a form of this OS available for Virtual PC. Why Virtual PC? Well, I would assume that driver support would be all but nonexistant since the Singularity team would have to build each driver themselves. This gives Virtual PC the advantage of being a fixed set of emulated hardware devices, and eliminate the need to worry about supporting alternative hardware pieces. For that matter, I wouldn't be surprised if this wasn't the path they are already using, or at least were at one time (using Virtual PC would be a minus on benchmarking).

    Only time will tell...

  • Super Bowl Commercials

    For anyone who didn't see it (I didn't) or just wants to watch/download the commercials, go get them. Previous years commercials are also up for download.
  • FireFox:How They Got From There to Here

    For anyone interested in alittle history on how FireFox came to be, here is a good read on the past and some of the struggles that had to be perservered and overcome. A good read for anyone, even someone like myself who isn't a FireFox fan ;)

  • Free VMWare?

    It looks like VMWare might soon be offering the entry level VMWare GSX for free to the public. I don't know about you, but I find this pretty exciting, even considering that I get VirtualPC for free from my MSDN subscription. More free things are always better. I wonder how Microsoft will reply to this, considering their base Virtual PC retail package is in the $180 range..

    Update:Jayson sent me this. Looks like it may only be the beta that is free...oh well, guess you can't believe everything you read on the internet.

More Posts Next page »
Copyright © :: BlogByBob.com
Powered by Community Server (Non-Commercial Edition), by Telligent Systems