Interesting First Impressions with the IE9 Preview

MSDN

It's been almost a year since my plea to the IE team. Windows 7 has rocked, Office 2010 is looking very nice, and, most recently, Windows Phone 7 Series has amazed the world. All these great things coming together are really putting pressure on the IE team to deliver something revolutionary. Back in Nov 2009, the team talked about the tremendous performance improvements, sub-pixel text rendering, and HTML5/CSS3 support. All-in-all, there was a quick burst of information and buzz around what IE9 could become, but then it died off very quickly. I admit, I was quite skeptical -- and still am -- but at least it showed the team is heading in the right direction. In what seems to be the IE team's typical process, silence happened and annoyance returned.

Today, Microsoft announced the release of an early IE9 developer preview. I was pretty excited about this, since I've been waiting for it since they first started talking about IE9 in November -- well, maybe since IE8 was released without some of the big features I was hoping for. Nonetheless, I was grounded pretty quickly. For better or worse, there are some interesting things that came out of the preview.

1. Uhh, What's This Window?

I'm pretty willy-nilly with new software. Not too smart, but whatever :-P I installed the preview and expected magic. As it installed, I started closing other IE8 windows. All of a sudden, a new Window popped up. "Woo-hoo, it's done! IE9, here I come!" Then I noticed I left one IE8 window open. I switched over to close it and hesitated -- "Why is there an IE8 window still open?" I switched back to the new IE9 window and thought, uhh, this isn't a browser. There's no back button; no address bar; nothing. "Ah, maybe it's just a 'Welcome to IE9' dialog before the IE9 greatness kicks in!" I close the IE8 window, open another with the pinned icon on my taskbar. "Uhh, nothing changed." *Help > About...* Still IE8. WTF!? I guess this is more of a literal "preview" than I thought. No browser; just a chance to see how their pre-built tests work. Meh.

2. The Tests Work... Mostly

I've said it before and I'll say it again, just being part of the game isn't going to fly. And, if this is all the IE team has to show, I'm not impressed. Don't get me wrong, I love everything they show, from performance to sub-pixel text rendering -- seriously, this isn't something to scoff at, it's a very noteworthy improvement for any browser -- to all the HTML and CSS improvements. But it's not enough. Heck, the "Falling Balls" example didn't even work. I really want to bash the performance improvements. I even wrote this paragraph a few different ways to express my disapproval in different ways, but it all comes down to this: you won't realize how drastic the improvements are until you see IE8 and IE9 running side-by-side. The Flying Images example seems obvious, when you see it in IE9, but when you go back and watch it in IE8, you think, "Is this seriously what I'm putting up with today!? I feel lied to; cheated. How dare you, IE team; how dare you!" With all that said -- and seriously, the perf improvement is tremendous -- I'm still not happy (here's where my desire to bash performance comes in). While you definitely notice that aspects of performance have improved, the perceived performance really sucks. It's not the page loading that I'm talking about, tho; it's the standard page interaction that's defunct. Even clicking some of the links used by the examples were ridiculously buggy. I guess there's a reason they called it a "developer preview"... wait, that doesn't say "developer," it says "platform"...

3. "Platform Preview"

In an effort to find the hidden navigation controls, I scoured the lifeless window edges. The best I could find was the Page > Open... menu option. Well, at least that's a way to test out other pages. I figured, what better way to test out the new browser than to write a blog post. Let me just tell you that I'm dying here. I mentioned the perceived performance sucks already. Try typing in this thing. I feel like I'm clawing my eyes out -- and I'm talking about with freshly trimmed fingernails. You know what I'm talking about, when you trim your fingernails down to the nub and putting even the slightest pressure on them hurts. Now, try to claw your eyes out with that. That's why I feel like I'm doing right now. Every character is painful. *Ouch, oooh, ouch...*

Okay, I'm exaggerating; but it is painful. But, now that I'm able to get past the examples, I'm realizing I have two versions of IE installed. Hmm... very interesting. Remember the days when IE was a crucial part of Windows and couldn't be unbundled? Well, they seem to have figured out how to install a new rendering engine without touching the old one, hidden deep in the innards of Windows. Of course, they did introduce the ability to completely uninstall IE in Windows 7, so maybe that's a moot point nowadays. Either way, this is a first for IE, as far as I know. Then it hit me... "platform preview." Are they saying something with that? Are we talking about a rendering engine completely detached from the Windows desktop OS?

4. IE9 on Windows Phone?

In the original Windows Phone 7 Series announcement at Mobile World Congress 2010, Joe Belfiore commented that the phone is more than just the Mobile IE we see in Windows Mobile 6.5 and its predecessors. He said it came from the desktop browser code-base. This alone doesn't mean much, but when he called out the sub-pixel text rendering, my mind started adding things up. Is this IE9 on Windows Phone!? Nobody has said that, but you have to wonder. I've read that Windows Phone 7 Series is based on IE7 with some back-ported features from IE8, but that doesn't really make sense, when you consider that sub-pixel rendering is only coming in the next version of the browser. I still have to wonder about this. It doesn't make sense to back-port that feature two versions. Maybe it's IE8 with that one feature back-ported, but maybe it's IE9. If that's the case, IE9 will need to be on a hyperactive beta period and, as I mentioned before, they definitely aren't close to being done, yet, and I'm admittedly not confident they even know how to do that.

5. Where's the Navigation?

I really want to get back to the preview. I'm still annoyed at the fact that I have to get to sites in a hacky way. Why would the IE team do that!? Do they not want us to use the browser? That can't be it. Maybe they didn't have time to finish out the preview and just crammed some stuff together to make the Mix10 keynote. Maybe, but I doubt it. I didn't notice this at first, but the menu options aren't standard. Specifically, there's a "Page" menu instead of a "File" menu. Perhaps I'm reading into this too much, but "Page" sounds like more of a ribbon tab than a menu option. Maybe the reason we're getting such a scaled-back browser is because the old chrome isn't there anymore -- we could be getting the first ribbon-based browser. I'm very excited about this possibility. At the same time, I can't ignore the fact that this will be a very touchie UI, given the ever-popular tab-based browser. IE7 brought me back from Firefox because the UI was slim and just looked and felt more professional. IE9 with a ribbon done right -- extra focus on "done right" -- could seriously bring people back to IE. At the same time, it's an opening for haters to complain about the ribbon. I whole-heartedly believe the ribbon interface is demonstrably better than menu-based interfaces. So much so that, if I had my way, I'd never use another menu-based interface again. I'm not saying the ribbon is the way to go in every case, but I don't know why a traditional menu would ever be the "right" experience. It just isn't optimal.

With all that said, maybe the ribbon isn't the IE team's target. Maybe they've put a lot of thought into how users should be interacting with the browser. In either case, I welcome the change. Chrome took an interesting move with minimization, but I don't think it was drastic enough. Google played it safe with Chrome. Microsoft's not afraid of taking big risks when it comes to user experience -- just look at Office 2007, Windows Phone 7 Series, and even Visual Studio 2010 to a lesser degree.

No matter what happens, I'll be eagerly awaiting either the next preview/beta. At the same time, I'm not holding my breath. The IE team has a lot to prove with respect to being agile and, if they really are creating a new UI, that'll just complicate things more. I'd like to say we'll see something by the end of June, but who knows with that team. All I can say is, IE team, prove me wrong; please, prove me wrong!


Boot to VHD: Create VHD from GUI

By Michael Flanakin @ 8:05 PM :: 63 Views :: 0 Comments :: Technology, Tools/Utilities :: Digg it!

Windows 7

I've mentioned how to create a new VHD from the command line, now let me mention how you can create a new VHD from the Windows GUI.

  1. Open Computer Management (Start > Run… > compmgmt.msc)
  2. In the left pane, select Storage > Disk Management
  3. Right-click Disk Management, click Create VHD
  4. Specify VHD settings and click OK
    • Location -- the path where you want to save the VHD
    • Size -- specify a size smaller than what's available on your system
    • Format -- choose dynamic sizing to slowly grow to the full disk size (what I'd recommend) or fixed, if you want to just allot the space outright and avoid potential out-of-space problems
  5. In the main, center pane, right-click the label on the left for the new, unknown/unallocated disk, click Initialize Disk
  6. Click OK
  7. In the main, center pane, right-click the main disk space visualization, click New Simple Volume...
  8. Click Next
  9. Click Next
  10. Click Next
  11. Specify a volume label, click Next
  12. Click Finish
  13. Put Win7 or Server 2008 R2 DVD or bootable USB drive in
  14. Restart your computer
    NOTE: You'll need to be sure you can boot using the necessary device in BIOS settings (obviously)
  15. Press any key to boot from CD or DVD
  16. When the Install Windows screen is shown, press Shift+F10
  17. Type d:, press Enter
  18. Type diskpart, press Enter
  19. Type select vdisk file="d:\machines\win2008r2.vhd", press Enter
    NOTE: Windows re-assigns your primary drive when running thru the installer. In all of my tests, C: was re-assigned to D:.
  20. Type attach vdisk, press Enter
  21. Type exit, press Enter
  22. Type exit, press Enter
  23. Click Next
  24. Click Install Now
  25. Select desired OS (server only), click Next
  26. Check I accept the license terms, click Next
  27. Click Custom (advanced)
  28. Select Disk 1 Partition 1: <label>, where <label> is the volume label you applied in step 11
  29. Click Next and continue to install the operating system as you normally would 

After rebooting, Windows Boot Manager will give you an option to boot into either the host or guest OS instances.


Flash and Silverlight Jobs

By Michael Flanakin @ 10:31 PM :: 630 Views :: 8 Comments :: .NET, Development, Technology :: Digg it!

Silverlight has been Microsoft's golden child since v2 was released last year. The impact within the community has been astounding. Some demand the use of Silverlight without actually recognizing when and where the technology makes sense and others scoff at Silverlight either in favor of Flash or as a technology as "useless" as Flash. I roll my eyes every time I hear any of these three opinions... and they happen a lot. Flash went thru the hype cycle years ago and now it's Silverlight's turn. What I find amusing is that the hype seems to be much more powerful with Silverlight than it ever was with Flash. All we can do is fight the good fight.

Not every rich experience needs to be Silverlight. JavaScript frameworks are making life as a web developer easier and easier, so I'd recommend that always be the default choice. Unfortunately, most developers still find the pain of JavaScript development too great. While I'm a big fan of JavaScript, it is far from a perfect language and is severely lacking when it comes to development and debugging tools. Flash and Silverlight both simplify things with better tools and a single-platform vision that tremendously improves cross-browser development, but Flash is still lacking the one thing that makes Silverlight a no-brainer: XAML, backed by real programming languages.

XAML is immensely powerful and will continue to grow as more and more WPF features make it into Silverlight. XAML takes a new way of thinking, but it's well worth it for the simplicity and ease of development you get. But, more important than XAML is the fact that you have any .NET language you want and, with the inclusion of the Dynamic Language Runtime (DLR), there's virtually no reason not to use Silverlight. The one and only benefit Flash has is more mature tools. This is very important, but it is only a matter of time. Microsoft has both the will and the ability to overcome the current Flash tooling. The days of Flash are severely numbered. A look at the job market only confirms this. I just wish I had some of the same numbers from when Flash was initially released to compare the difference.

I truly believe that, if you're a web developer using any language, you need to take the time to understand how Silverlight can benefit you. Yes, HTML5 is coming, but the power and flexibility of environments like Silverlight will quickly surpass anything the W3C will ever be able to come out with a specification for. Heck, in less than 2 years, we've seen 3 releases of Silverlight and a beta version for the fourth, with speculations that Silverlight 4 is likely to release at Mix 2010, making it 4 full releases in 2.5 years. I'd like to see any one W3C spec ratified and fully released in all major browsers in such a timeframe. Such a feat is completely unheard of. Nevertheless, don't let me blab on about it. The numbers speak for themselves...

Flash vs Silverlight Jobs


Lazy Load One-Liner in C#

By Michael Flanakin @ 6:31 PM :: 473 Views :: 2 Comments :: .NET, Development :: Digg it!

Microsoft .NET

One thing I love about C# is that I'm constantly learning new ways to simplify and write less code. Perhaps PowerShell has a lot to do with this, but I put a lot of value in the power of the one-liner. With that, I wanted to share something small I recently discovered.

There are three main ways to initialize your read-only class properties: field initializer, constructor, or property accessor. The first thing you need to consider when determining the right approach is whether you should use a readonly or get-only variable. A readonly variable has two primary benefits: guaranteeing the value won't change and better ensuring thread-safety. I'm not going to go into either of these, but I will say, if you can make your variable readonly, do it. The main reason not to make your variable readonly is if its initialization is resource-heavy and the variable isn't always crucial. There are other things to consider, but I want to focus more on the implementation of this code rather than the reasoning behind deciding on a good approach.

Back in the .NET 2 days, I used the following approach to lazy loading.

private PersonCollection _people;
public PersonCollection People
{
    get
    {
        if (this._people == null)
        {
            this._people = new PersonCollection();
        }
        return this._people;
    }
}

One way to achieve a one-liner would be to use an inline if statement.

private PersonCollection _people;
public PersonCollection People
{
    get { return ((this._people == null) ? (this._people = new PersonCollection()) : this._people); }
}

The main problem with this is there's more one-liner than simplicity. This is a common problem with the inline if statement. For this reason, I avoided this type of lazy load approach.

Recently, when hammering thru some code, typing == null just made me think about the ?? operator. For those that don't know, this is essentially a null-check included with .NET 2 to simplify the use of nullable types (Nullable<T>). If the value on the left is null, the value on the right is returned.

private PersonCollection _people;
public PersonCollection People
{
    get { return this._people ?? (this._people = new PersonCollection()); }
}

Nothing revolutionary, but, as I mentioned before, I love my one-liners!

SharePoint Designer and Developer Position Descriptions

By Michael Flanakin @ 7:30 PM :: 140 Views :: 1 Comments :: .NET, Development, SharePoint :: Digg it!

SharePoint

I can't tell you how many resumes I've read and interviews I've performed in the name of finding a quality SharePoint developer. After seeing my customer painstakingly struggle thru this same process, I finally decided to put together a couple short blurbs to cover what it is to be a SharePoint designer and a SharePoint developer.

I lump administration and design/customization together because I honestly believe you can't have one without the other -- at least to some extent -- but I'm obviously looking more for the latter than the former. Let me just say that, if I was building up a team to build SharePoint solutions, I'd want at least one of each of these types. Obviously, you'll want someone more focused on administration, if you're also doing operations work, but I'm more focused on building solutions than hostings.

SharePoint Administrator/Designer
Experienced SharePoint administrator with a strong emphasis on customization. Extensive experience with SharePoint Designer and InfoPath are a must, as is a moderate ability to create customized web parts using a mixture of HTML, CSS, JavaScript, and XSL (i.e. using a Data View Web Part). Should at least have an understanding of:

  • IIS/SharePoint troubleshooting (i.e. event and ULS logs)
  • How to customize branding
  • SharePoint Designer workflows
  • InfoPath forms
  • Applicability and use of content types
  • SharePoint web service interfaces
  • Feature deployment
  • Standard features (i.e. search/indexing, content management, and Shared Service Providers (SSPs))
  • Enterprise features (i.e. Forms Server, Excel Calculation Services, and Business Data Catalog (BDC))
  • Reporting and business intelligence (BI)
  • Security concerns and audience targeting

Experience with PowerShell and ASP.NET development are a huge plus.

SharePoint Developer
Strong ASP.NET (C#) developer with experience building and deploying fully-automated SharePoint solutions. Must have an understanding of at least:

  • Standard ASP.NET (including membership providers and their applicability to SharePoint)
  • SharePoint object model and web service interfaces
  • SharePoint feature packaging and deployment
  • Web parts and web part connections
  • SharePoint branding components
  • Applicability and use of content types
  • SharePoint-hosted workflows
  • Standard features (i.e. search/indexing, content management, and Shared Service Providers (SSPs))
  • Enterprise features (i.e. Forms Server, Excel Calculation Services, and Business Data Catalog (BDC))
  • Reporting and business intelligence (BI)

Above all, developers are expected to "live" in Visual Studio, yet be ablet o identify when SharePoint Designer and/or InfoPath would be more pragmatic -- and follow through with such a solution.
 
Senior developers and software architects must have broad, hands-on experience across the entire software development lifecycle with formal engineering processes. Experience with defining and documenting an applicable taxonomy and governance plan is a must.

If you're interested in building SharePoint solutions, I highly recommend you find where you fit within these two descriptions. There's plenty of room to grow, but they cover the foundations I -- and many others -- look for when building out SharePoint teams.

Good luck and happy job hunting!


MSDN Subscription: November 2009

By Michael Flanakin @ 8:12 PM :: 171 Views :: 0 Comments :: MSDN Subscriptions :: Digg it!

MSDN

The following consists of the English DVD updates released under the MSDN Premium (Team Suite) subscription level for November 2009.

Operating Systems

  • Disc 4617
    • Windows Server 2008 R2 (x64)
  • Disc 4618
    • Windows 7 Ultimate (x64 and x86)
  • Disc 4619
    • Windows 7 Enterprise (x64 and x86)

Developer Tools

  • Disc 4583.02
    • Expression Studio 3

For more information, see the MSDN Subscriptions Index.


MSDN Subscription: July 2009

By Michael Flanakin @ 8:28 PM :: 157 Views :: 0 Comments :: MSDN Subscriptions :: Digg it!

MSDN

The following consists of the English DVD updates released under the MSDN Premium (Team Suite) subscription level for July 2009.

Servers

  • Disc 4595.01
    • SQL Server 2008 Service Pack 1 (x86)
  • Disc 2436.38
    • BizTalk Server 2009
    • BizTalk Server 2009 Adapters and Accelerators
    • Host Integration Sever 2009
    • SQL Server 2008 SP1
  • Disc 4614.01
    • Customer Care Framework 2009 SP1 

Planned releases for November 2009 include:

  • Expression Studio 3
  • Windows 7
  • Windows Server 2008 R2

For more information, see the MSDN Subscriptions Index.


MSDN Subscription: June 2009

By Michael Flanakin @ 7:55 PM :: 154 Views :: 0 Comments :: MSDN Subscriptions :: Digg it!

MSDN

The following consists of the English DVD updates released under the MSDN Premium (Team Suite) subscription level for June 2009.

Servers

  • Disc 4616.01
    • Commerce Server 2009
    • Office Communications Server 2007 R2

Applications

  • Disc 2434.24
    • Office Accounting 2009
    • Office Accounting 2009 SP1
    • Office Communicator 2007 R2

For more information, see the MSDN Subscriptions Index.


MSDN Subscription: March 2009

By Michael Flanakin @ 7:28 PM :: 159 Views :: 0 Comments :: MSDN Subscriptions :: Digg it!

MSDN

The following consists of the English DVD updates released under the MSDN Premium (Team Suite) subscription level for March 2009.

Developer Tools

  • Disc 4583
    • Expression Studio 2
    • Expression Media 2
    • Expression Blend 2 SP1
    • Expression Encoder 2 SP1
    • Expression Media 2 SP1
  • Disc 4603
    • Visual Studio 2008 SP1
  • Disc 3096.1
    • Expression Blend 2
    • Expression Blend 2 SP1
    • Expression Web 2
  • Disc 4612
    • Visual Studio Team System 2008 Team Foundation Server Service Pack 1

Servers

  • Disc 4616
    • Microsoft Office Communications Server 2007 R2 Enterprise Edition
    • Office Communicator 2007 R2
    • Unified Communications Managed API 2.0 SDK
    • Microsoft Application Virtualization 4.5 for Terminal Services
    • System Center Configuration Manager 2007 R2
    • System Center Virtual Machine Manager 2008

For more information, see the MSDN Subscriptions Index.


Boot to VHD: Create VHD from Command Line

By Michael Flanakin @ 6:40 PM :: 884 Views :: 2 Comments :: Technology, Tools/Utilities :: Digg it!

Windows 7

Virtual PC is great. Well, it's ok -- it does the job. There's a better way, tho, and that better way is to just get rid of the host OS... or, ask the OS to politely let you get by for a while. That's exactly what Windows 7 does by enabling you to boot into a VHD.

Scott Hanselman Syndicated feed blogged about booting from a VHD in more detail, but I wanted to break it down into discrete steps. For simplicity, I'm going to start from scratch, creating a VHD from the command line.

  1. Put Win7 or Server 2008 R2 DVD or bootable USB drive in
  2. Restart your computer
    NOTE: You'll need to be sure you can boot using the necessary device in BIOS settings (obviously)
  3. Press any key to boot from CD or DVD
  4. When the Install Windows screen is shown, press Shift+F10
  5. Type d:, press Enter
  6. Type md machines, press Enter
  7. Type diskpart, press Enter
  8. Type create vdisk file="c:\machines\win2008r2.vhd" type=expandable maximum=50000, press Enter
    NOTE: Be sure to set a maximum your machine can support; Windows will temporarily expand the VHD to that size when you boot into it
  9. Type select vdisk file="c:\machines\win2008r2.vhd", press Enter
  10. Type attach vdisk, press Enter
  11. Type exit, press Enter
  12. Type exit, press Enter
  13. Click Next
  14. Click Install Now
  15. Select desired OS (server only), click Next
  16. Check I accept the license terms, click Next
  17. Click Custom (advanced)
  18. Select Disk 1 Unallocated Space (...GB)
  19. Click Drive options (advanced)
  20. Click New, then Apply
  21. Click Format, then OK
    NOTE: If you see a "Windows cannot be installed to this disk..." error, ignore it.
  22. Click Next and continue to install the operating system as you normally would

After the installation completes, Windows Boot Manager will give you an option to boot into either the host or guest OS instances. Gotta love it!






Archives Archives

Categories Categories

Related Links Related Links