Bill Evjen looks at Windows

Code, Life, and Community!

  • Visual Studio 2008 Released


    You will now find that Microsoft has released Visual Studio 2008 on MSDN for certain subscribers. It will be there soon for everyone, but if you are a Volume User on MSDN, then you might not find it there yet (as of yesterday).

    I was pretty excited for this release. Once installed, I had to also install JetBrain's ReSharper and it requires you to do a command line install. Once the .msi for ReSharper is on your machine, you will have to use the following command to install it for VS2008.

    msiexec /i ReSharperSetup.3.0.2.VS80.Full.msi VSVERSION=9.0

    Once you do this, you will be fine. Beside that, I would recommend this upgrade and there are some exciting features in this release. One being that you can now target and build for the .NET Framework 2.0/3.0/3.5. Though, if you work on a large team with a lot of projects, you also need to be aware that although you can go back and target .NET Framework 2.0 applications, when you open up a 2.0 application within VS2008, you will be prompted to upgrade the application (upgrade to VS2008 - not upgrade to .NET 3.5). You cannot share the same solution file amongst versions of VS2005 and VS2008.

    Start installing!

  • Installing Windows Vista Beta 1

    I recently received Windows “Longhorn” Vista Beta 1 in the mail from my MSDN subscription and decided to install it on one of the extra computers that I have at my house. I have installed “Longhorn” in the past, but I was quite interested to see what has changed in the install process this time around.

    The install process has changed quite a bit from the last time I installed it. It is a very graphical install process instead of the blue screen DOS style install process that you are used to from installing Windows XP or 2003.

    From the graphical install, I was able to also click on buttons and enter text into textboxes to do things like blow away partitions, name my computer, specify whether I am doing an upgrade or a clean install, and more. It was quite nice and included a Next button and a Back button throughout this process. The first thing asked for is the product key, which you can get from the MSDN subscriber site (after you have logged in of course). You will find the key by clicking on the Product Keys button at the top of the page. I didn't have to request the key as it was already provided for me in the list which was nice.

    Even though the install was better than before there were still some things that were missing for me. First off, I very much like to know what files are being installed and would still like to see these files shown (though fast) at the bottom of the screen. What a shame that they are not there. Also, from the figure above, you can see that you are only presented with a progress bar that says “Installing Windows” and nothing more. I did a clean install and I am unsure whether or not my drive was formatted in the process - I would hope it was, but I am unsure. I would like to have a progress bar presented that showed the formatting process as well.

    Once the screen from the figure above was accomplished, my computer then rebooted and another screen appeared that said Windows was installing and nothing more - except to not turn off your computer. This screen also had a progress bar that progressed back and forth probably 150+ times. What is the point of having a progress bar that does this? Wouldn't it make more sense to have it progress only once? The only thing I could think of in why it was done this way was to show you that your computer wasn't hung.

    Once installed, I was able to easily change the 640x480 resolution (does anyone use this anymore btw?) to something more manageable. Though I couldn't install any of my drivers that I had with me. I will have to work on this more later. I built this computer myself and it has a nice Asus motherboard with built-in video/audio/network. The drivers for these all couldn't install, so I am left in a bit of a lurch. Oh well. At least I made it this far.

    I will report more later.

  • Code Brew!

    Here in St. Louis, we had the first Code Brew (as we call it)! We have been meeting at user group meetings for the last four years. It is nice to always go to a user group and meet others, network, and see some great presentations. But a few of us wanted a bit more interaction - so born was the idea of a Code Brew. We held the first one in my dining room. Here is the idea of what a Code Brew is and how it can work for you too:

    • A Code Brew consists of a small group of peers (4-10 to be effective)
    • Meet with laptops ready, software ready and an understanding that each person is going to want to take a 10-30 minute lead with the group
    • Each lead (in turn) works through either a work-through demo (which everyone will work through as well), a problem they are having (which others will try to help solve through either advice or samples), a product demo (either something someone built or something cool that was found which you feel others would benefit from)

    Our first Code Brew went very well and we had a blast. We had laptops, pizza and beer (what else do you need). When doing work-through demos, the idea is to teach something real quick that others might not have done themselves before. I lead first and worked everyone through building a web service with a required SOAP header and then through an example of building a consuming page for that web service. Devin showed a application that he built based upon the Assembly Metadata Unmanaged API.doc found at C:\Program Files\Microsoft Visual Studio .NET 2003\SDK\v1.1\Tool Developers Guide\docs (I didn't know this stuff was there). We also spent time talking about the new Virtual Server 2005 and some of the details on how it works. We covered Visual Studio shortcut keys, networking, building your own computer,, Microsoft strategies and more. It was a FUN, FUN evening and we all agreed that we are going to make this a regular event. After about four hours we called it quits. What a great way to learn by sitting around, discussing and sharing ideas.

    Let me know if anyone else is going to do a Code Brew and how it went.

  • Microsoft Release New PPT to User Groups with Avalon Info!!!!

    In the continuing series of FREE presentations for user groups and others to use, Microsoft has released to INETA a presentation entitled: 'Microsoft Client Presentation Roadmap'. [ DOWNLOAD PRESENTATION HERE ]

    This presentation looks at:

    * Presentation history
    * Windows Forms 2.0
    * New Controls and Click Once
    * Avalon and Longhorn
    * XAML
    * and plenty more.....

    It also includes a demo to use in the presentation. Even if you are not presenting this to a group, it is a great learning tool. Take a look and make your comments about this presentation here on this blog. Thanks.

  • What happens when Longhorn is put on a cheap machine...

    This is what happens when Longhorn is put on a cheap machine ... (building a bigger, better, badder machine right now):

  • Longhorn Install Story

    FINALLY! I got a machine together - not all the parts I wanted - but good enough to get Longhorn on it. Final piece was the DVD drive. I did a clean install of Longhorn. I was quite interested in how the install process would proceed. So I will detail it out as much as I can for those people that are strange and love these details (like me).

    First off, there was no blue install screen where you would see the default drivers and such being installed. The first things requested was a page where I had to enter in the Longhorn Product Key. I requested the Product Key from the beta page as asked from “the goods” package that I got at PDC (on another machine). I had to supply my contact information (including a required phone number) and was in the end supplied the key. The web page stated that the key would only last for 180 days. So I am wondering how long the Longhorn OS will last on my machine. Not sure. Also I am wondering how many times I can use this key. Can I install Longhorn on 10 machines in my house or not? Is it for unlimited use within those 180 days? Not sure again.

    After this, I was asked to choose some settings. For instance, the drive I wished to install this OS to and other details. It was interesting it didn't notice that there was only a single and empty drive connected and it came up with no options for where to install it, so I had to click on a link and point to the hard drive for it to install to. After selecting the drive to install it to, I left the option of English as the default and it was interesting that I wasn't able to select the time zone (stuck on Pacific Time Zone). My thoughts were that development wasn't far enough along to allow me to totally customize the install at this point. After making my selections, I clicked a button to continue the install process.

    From this point, there are only two screens during the install process. The first is shown here (sorry, it is a photo):

    On this screen, the install is going on. Through three steps. The time stated in the right hand corner seemed to be pretty accurate. There was no change to the screen (such as what happens with W2K or WXP) and the progress bar just moves along to the right:

    Wishes: At this point I really do wish I knew what the heck was going on with the install. I wished for some type of DETAILS button or something in the lower right corner which I could click and I can see a rush of command line install information happening - it makes me feel a little more involved in the process. Though, someone like my mother wouldn't care for such information - I definitely would. For example, when I install Visual Studio .NET - I actually DO watch the parts that are being installed in the descriptions.

    In the next step, the following screen appeared:

    HEY - back was the old trusted time keeper! Turning away to let me know that the computer is “thinking” (hasn't this been around awhile). It let me know --- hey man, this is Windows. I did like that there. So at this point, I am assuming that the OS is doing exactly what it says it is: trying to detect my hardware. I think my computer is kind of slow or something, because although it says that it should only take 10 minutes, it took around 30-40 minutes.

    Wishes: Again, I wish there was some detail button here and I could see and understand what it was doing.

    I walked away and came back to this beautiful screen:

    I LOVE THIS! .... Beautiful OS and installed!

  • "The Goods" - Our PDC Gift

    Didn't go to PDC and can't get the PDC Bits? Wondering what we got? Here is what was labeled as “the goods” that every attendee got:


    This set also contained: SQL Yukon and the Visual Studio Technology Preview “Whidbey”

  • Between Whistler and Blackcomb lies Longhorn Country!!

    Every wonder where the name "Longhorn" comes from? I did and heard a little story that went like this:

    Come and listen to a story about a man named Gates
    A rich pioneer looking to keep Windows rich (with features of course)
    And then one day while skiing Blackcomb and Whistler too
    He had to make a pit-stop along a highway 99 jewel
    ...Longhorn bar that is, pints of beer, burgers too....

    Well the first thing you know ol Gates got an idea
    The patrons said "Longhorn is what we got here"
    said "Vector GDI is the place you ought to be"
    So Gates tipped his glass and said "thank you kindly"

    Avalon, that is, WinFS and FX too.

    ... Y'all come back now, y'hear?

    Well, maybe it is not exactly like that .... but anyway, There is a bar in the north (or south if you are John Bristowe) between Blackcomb and Whistler called Longhorn and there are a number of developers that I know that have been making “pilgrimages” to the bar. Have you made the trip yet?

  • PostTypeIcon
  • Longhorn Tweak Guide Site

    Here is a Longhorn Build 4051 Tweak Guide site for those working with the PDC build:

  • Investment Opportunities

    I am always looking for thoughtful investment opportunities in the equities world and after PDC, I am wondering if I should invest in graphic card companies!


  • PDC 2003 Slides Online!

    Did you miss PDC? Well, you can get at all the slides here:


  • Longhorn capabilities: Looking at document scrolling

    One of the cool new features that is going to be available in Longhorn was the thumbnail page of the document that shows up next to the scrollbar. It was captured in a photograph from Paul Thurrott's WinSuperSite.

    This shows the mouse arrow moving across the scroll bar and the thumbnail appearing which is based upon the page that would appear at that scrollbar position. The cool thing about the thumbnails (using Aero) would be that the actual image of page would appear INCLUDING images and even running VIDEOS!!!! In fact, in this shot, it was a video that was showing in the thumbnail (without sound).

  • Longhorn book from PDC

    On my earlier questions about the availability of the Longhorn book that was handed out at PDC - it seems that the entire book will be published online. Though at present, you can only get at the Introduction and Chapter 1. Though they give the dates when the next chapters are coming out. Haven't yet found where the non-PDC attendee can get themselves a copy.
  • WSV320 - ASP.NET: Programming with the Membership, Role Managment and Security in ASP.NET Whidbey - NOTES



    Rob Howard Speaking on Security in ASP.NET Whidbey

    Rob Howard – Membership, Role Management and Security in ASP.NET Whidbey


    Blog: and


    Forms Authentication 1.0

    • Solves a common problem developers had with their web apps
    • Most popular Internet auth. Technique
      • No ugly/confusing dialog boxes
      • Custom authentication uses HTML UI
    • Use credentials collected on page
      • Posted back to the server
      • Page obtains credentials issues auth. Ticket
    • ASP.NET Forms Authentication APIs
      • APIs for creating authentication ticket
      • Authenticate requests in Http Pipeline 

    Forms Authentication 2.0

    • Whidbey
    • Cookies no longer a requirement
      • When supported, Cookies still best choice
    • Single Forms Authentication model
      • Mobile & Desktop
      • All ASP.NET 2.0 controls are now mobile aware
      • No special device adapters or pages 


    Cookieless Modes

    useDeviceProfile – detects whether to use cookies based on the user agent of the device (default)

    useCookies – all requests store ticket In cookie

    auto – auto detects whether to use cookies or to store ticket in URI by attempting to send the user a cookie

    useURI – all request store ticket in URI


    Pretty cool – seems you might want to use useURI most of the case though.


    Security Services Stack

    • Composed of the APIs of Membership and Role Manager
    • Back end to data – SQL 7&2000, Jet(Access) and Authorization Manager and User defined
    • Out of the box, at least three options
    • Didn’t want to force users into a data model
    • The ones we defined will work for most cases
    • Can also drop in your own business logic
    • For everyone of these data providers – there is actually a separate class
    • There is no business logic in the Membership and Role manager classes – it is all in the database providers
    • On top of all this – set of rich server controls 


    • Membership
      • Solves common credential storage problem
      • Replace complex authentication code
    • Secure Credential Storage Services
      • Hashed + randon salt for user credentials
      • Eliminates complex security plumbing code
    • Comprehensive user management
      • Credential Validation /Who is online
      • Question/Answer password reset/retrieve 

    Membership.ValidateUser(username.Text, Password.Text)


    Membership APIs



    • User management
      • Validate credentials
      • Creeate, Delete, Update
    • Finding/Getting Users
      • By Username/Email
      • Users online
    • Password management
      • Password reset
      • Question/Answer 

    Can have two applications on the server that share the same users/passwords

    There is also : CreateUser, DeleteUser, GetAllUsers, GetUser, GetUserNameByEmail, GetNumberOfUsersOnline, UpdateUser … more


    MembershipUser Class


    • Membership.UpdateUser()
      • Used to update user properties
    • Access to user details
      • Last login date
      • Password change date
    • Disable authentication 

    Membership configuration






    requiresUniqueEmail attribute is cool.

    description will show in ASP.NET tools.



    • Not just a data access layer – also the business layer
    • Users new Provider Design pattern
      • Pluggable Data Access Layer (DAL)
      • Pluggable Business Logic Layer (BLL)
    • Ships with 2 Membership Providers
      • SQL Server – Production Application
      • Access – testing/development
      • Identical APIs through Membership 

    Writing Membership Providers

    • Implement IMembershipProvider
      • All methods properties for Membership
      • Will be bsttract base class in beta – for our versioning purposes
    • Register custom provider
      • Membership APIs then call your class
      • All logic in your class
      • If you want an Oracle provider – role your own 

    DEMO of XML Membership Provider and derive from SqlMembershipProvider


    Role Caching

    • When cookies are supported
      • Stores encrypted list of roles
      • No database lookups on each request
    • When cookies not supported
      • Role manager still works
      • Lookup to cached list in application
    • When more roles than cookie can store
      • Incremental Roles cookie
      • Stores LRU list of roles Roles Class
    • Role Management
      • Create, Update, Delete
      • IsUserInRole / Roles for User
    • Adding / Removing
1 2 Next >