Code, technology, opinion ... and who knows what else?

Month List


Comment RSS

ASP.NET MVC 3, NuGet 1.0, IIS 7.5 Express & Web Matrix 1.0 Released


It’s a web technology download bonanza this week! Not only have Microsoft released ASP.NET MVC3 – by FAR the most powerful web development platform available today, but they’ve also released NuGet 1.0 IIS 7.5 Express and Web Matrix 1.0.

I won’t reiterate here what others have already covered in depth, but I do encourage you to download the latest releases of these powerful and liberating new technologies and go get to work on them.

Use the Web Platform Installer to download and install all the above goodness … and more!

Phil Haack announces the release of MVC3 & NuGet

Official Web Matrix introduction page

Now all we’re waiting for is VS 2010 SP1, SQL CE 4.0 and the new Entity Frameworks. When these final pieces of the puzzle are released, Microsoft will, for the first time in a very long time, have the most complete and compelling web development and hosting platform available, bar none.

Can’t wait!

Permalink | Comments (0) | Post RSSRSS comment feed

Microsoft Security Essentials 2.0–download NOW!


Microsoft has just released Microsoft Security Essentials 2.0.

If you don’t already run some form of anti-malware suite, then I strongly encourage you to Download Microsoft Security Essentials 2.0 today!

The release of MSE 2.0 brings many improvements in the accuracy and performance of malware detection and removal, better integrates with Windows Firewall, adds protection from a variety of network–based attacks and integrates with Internet Explorer to better protect users from browser-based malware.

Microsoft Security Essentials (MSE) is an anti-virus and anti-malware product that Microsoft first released in September 2009 to replace Microsoft “OneCare”.

MSE surprised many when it was released because it was everything that the majority of commercial 3rd party products were not: MSE is free for consumers and small business’, it is small, fast, effective and unobtrusive.

Over the last year, MSE has dramatically grown in popularity and has been updated regularly with improvements that have catapulted it to the top of may comparative reviews. In October 2009, conducted a series of trails on the officially released version, in which:

“Microsoft Security Essentials detected and caught 98.44 percent of 545,034 computer viruses, computer worms and software Trojan horses as well as 90.95 percent of 14,222 spyware and adware samples. It also detected and eliminated all 25 tested rootkits. Microsoft Security Essentials generated no false-positive at all.

Since MSE uses the same malware scanning engine as Microsoft’s enterprise-class “Forefront” security suite, malware detection and eradication techniques for businesses benefit the consumer MSE product and vice-versa.

Even if you’re already using a 3rd party commercial anti-malware suite, I strongly encourage you to examine MSE – in my experience, it rarely hampers performance and sits quietly in the background, only notifying you when it finds something you REALLY need to know about. If only more anti-malware suites were more like this!

Permalink | Comments (0) | Post RSSRSS comment feed

WP7applist - Windows Phone 7 Marketplace Stats

imageI stumbled across the site today while trying to find the current number of apps available for Windows Phone.

I am not entirely sure how they gather their stats, but their numbers appear to be pretty legitimate.

The site is very well put together and reveals some quite interesting stats and charts showing the rapid growth in the number of apps available for Microsoft’s new Windows Phone platform along with charts illustrating how many apps are free vs. paid-for, number of apps by category, etc.

The site indicates that there are now more than 4300 apps available for Windows Phone 7. That’s 4300 apps in little over 2 months or an average of 2200 new apps per month.

By comparison, Android started out with 167 apps in its marketplace one week after launch (October 2008) and announced it had 5000 apps in July 2009 – some 9 months later. That means Android had an average new app rate of 555 apps per month for it’s first 9 months.

By this measure, if Windows Phone’s Marketplace continues to grow at its current velocity, we’ll see it reach 5000 apps before the end of December 2010 – just 3 months after launch!

Combining these numbers with the impending release of Windows Phone 7.1 which adds copy & paste along with several fixes and improvements, along with the Mid 2011 Windows Phone release codenamed “Mango”: I think it clear to see that Windows Phone has a very bright future. I will not be at all surprised if, in just a couple of years, the three primary mobile handset platforms are Apple’s iOS, Google’s Android and Microsoft’s Windows Phone.

Categories: Windows 7 | Windows Phone
Permalink | Comments (0) | Post RSSRSS comment feed

Great new features coming in Silverlight 5

Silverlight Firestarter 2010

Direct from the Silverlight Firestarter event here at Microsoft campus, Redmond, WA.

Silverlight 5 is coming and includes some great new features that will not only delight Silverlight developers, but will also wow users.

Silverlight 5 3D support

Yep, you read it right. Finally, Silverlight 5 will include hardware accelerated 3D support and introduces an immediate-mode API.

Luigi and Guido Rosso from Archetype, demonstrated a demo application they wrote in less than a week which displayed a full 3D model of Scott Guthrie’s body, skeleton and musculature. They were able to control the opacity of Scott’s clothes, skin, musculature and skeleton and were able to animate the entire model, spinning him around and zooming deep into his torso … to show his beating heart! :) The demo was extremely smooth and fluid, animations were blindingly fast and many chuckles were had at Scott’s ripped torso!

The key takeaway here was that Silverlight 5 will ship with exceptionally powerful 3D features that enjoy full hardware acceleration and will completely revolutionize the kinds of applications that can be built with Silverlight, eliminating the need to install 3rd party 3D ActiveX controls etc.

TrickPlay: Variable playback speed

One of the best features of Windows Media Player is the ability to speed-up or slow-down the playback speed of videos and audio (e.g. podcasts) without altering the pitch of the audio. This is a great way of watching some/all of a long video or podcast more quickly. Alas, however, this feature is currently missing from Silverlight … but it’s coming in Silverlight 5!

This means that you’ll be able to watch all of the content you care about from events like the PDC more quickly than real-time! :)

Quality, performance and power through hardware acceleration

ScottGu made it clear several times throughout his keynote that the Silverlight team has spent a great deal of time and effort further improving the quality, performance and power-consumption aspects of Silverlight.

Scott stated that they’ve made significant improvements to the time it takes to start-up Silverlight applications. This mirrors news I’ve heard from other ‘softies who have told me that  there are some significant improvements coming to start-up times for .NET applications. Faster booting apps are ALWAYS a good thing and I can’t wait to see what develops on this front.

Scott also mentioned that Silverlight 5 will also include a native 64-bit version. This is a big deal for Silverlight developers as Silverlight is often used as the UI to large, complex  databases which can easily consume more than 4GB data in order to render their data.

Video playback is now fully hardware accelerated. Text rendering quality has been improved significantly and animation quality has been significantly improved through improved hardware acceleration.

This will also result in Silverlight 5 applications consuming less power (important for mobile scenarios) because more graphics-intensive processing is being offloaded to the GPU rather than being performed by the CPU.

Remote Control support

Yep, you read that right – Silverlight 5 will support remote control – as in the little box that you use to change channels and control the volume of your TV. This is a great feature – as someone who is increasingly sourcing movies and videos from the web (e.g. Netflix, Hulu, Amazon, etc.), having to control the movie via the PC it’s running on is a pain. I cannot wait until I can control movies streamed from Netflix without having to leave the couch!

Speculation: I wonder if this is an indication that, perhaps, Media Center in Windows 8 will be built on Silverlight?

Developer goodness :

Silverlight 5 also comes with some significant improvements for developers:

Data binding debugging

Ever run into issues with Data Binding in your Silverlight apps? Ever wanted to set breakpoints on your binds and the ability to examine step through your data binding code? You can’t do this in Silverlight today, but it’s coming in Silverlight 5!

Coded UI recording and testing

John Papa also demonstrated new Coded UI tests that can record your every action against your site’s UI. Each action is recorded into a series of steps which you can modify if you wish to remove unnecessary actions. You can then replay these actions and compare the values of individual HTML elements against expected results from within a test.

This is a really massive deal which will make testing your actual UI a great deal easier and more effective than ever before.

Further reading:

As usual, ScottGu has posted further details on his blog – be sure to go read his announcement:

Permalink | Comments (0) | Post RSSRSS comment feed

Will Microsoft make Windows 8 entirely virtual?

NOT the Windows 8 Logo
Mary Jo Foley @ ZDNet has posted an interesting article titled “Windows 8 to showcase desktop as a service”. In her post, she references a PowerPoint slide from one of Microsoft’s recent architectural Summit’s uncovered by Charon at
I thought it’d be interesting to riff on a my thoughts of what Microsoft might (but might not) do for Windows 8. Note that the following is pure speculation and is entirely the product of my own fevered mind! With that said, let’s dive in:

Make no mistake …

… Windows 8 MUST be virtual to its core - it’s essential to Microsoft's continued success on the desktop. If Windows 8 does not introduce a fully virtual desktop OS, the value of running Windows will decrease over time – especially as competitors such as Linux and OSX grow in terms of reliability, capability and utility.
Why is virtualization so important?

The past haunts us

imageAsk anyone who works in enterprise IT what stops them from moving to newer, faster, more secure, more productive versions of Windows and why it takes many years to deploy a new OS.
I’m willing to bet that the #1 reason given is “Application Compatibility”. This sentiment is echoed by the above presentation which states that:


Customers today “see application compatibility issues, they see DLL hell, they see an inability to manage efficiently, they see high costs associated with maintenance and upgrades, they see a relatively short lifespan … This cannot continue. Customers are increasingly refusing to let this continue.”
Application compatibility is the biggest single hindrance to Microsoft's and 3rd parties’ ability to push Windows and other products forward in new and exciting directions, and it is the #1 reason why companies around the world are so slow to adopt important new technologies that could otherwise allow them to work more productively, more safely and more efficiently.
Most companies are crippled by their existing in-house and 3rd party LOB apps and have to undergo monumental efforts in order to migrate to a new operating system.

The core of the problem

This is not a Windows-only phenomenon – it’s a problem that is endemic to the way in which traditional desktop operating systems work, including Windows, Linux, UNIX, OSX and others.
The issue is that we generally assume that our traditional desktop OS’ are the only OS running on a machine and that they are immutable – they don’t or won’t change. Apps assume that old API’s will never be retired and that new technologies will not tread on the toes of long-established technologies.
Alas, the reality is that the corollary is true: Operating Systems & Frameworks – even those from the same vendor – DO change. Older API’s are retired, new technologies DO tread on the toes of older technologies and things inevitably DO break.
Further, Operating Systems are changing faster today than at any time in the past. In the last 10 years alone, we have seen Windows 2000, Windows XP, Windows Vista and Windows 7 ship and each OS shipped many service packs, hot-fixes and additional technologies such as the .NET Framework, multiple versions of Internet Explorer, etc.
At the same time, we’re at a point where OS’ are converging in terms of capabilities. What will differentiate Operating Systems in the future – particularly on the desktop and on the laptop – is in how the Operating Systems are managed, upgraded and maintained.

The Virtual Solution

So if OS’ are going to evolve quicker and more dramatically, how do users of those operating systems keep up? How will existing apps continue to function when a user “upgrades” to a new OS? How will app vendors build apps that target new OS features while continuing to support mainstream customers?
One Word: “Virtualization”.

Imagine …

Imagine a host computer running a minimal kernel along with the drivers necessary to interface the OS with the hardware on that specific machine. Imagine that atop this minimal kernel, a core OS runs, offering UI services (screen rendering, clipboard, keyboard & mouse, etc.) features. You can’t install anything atop this CoreOS and there’s little to run other than essential management, monitoring, diagnostic features.
Now imagine that on top of this CoreOS, you layer actual guest OS’, each running in their own Virtual Machine (VM) instances. You could have a VM running XP, another running Win7 and another running Win8. Arguably, you could have other VM’s running Linux, UNIX, OSX (c’mon Steve – it’s time to let OSX run on machines OTHER THAN Apple’s!), but let’s keep this discussion focused for now.
Each of the supported OS’ think they’re running exclusively and independently atop a machine with a common infrastructure using lightweight drivers that efficiently expose hardware to the guest OS while routing the actual work to the host kernel’s drivers.
This is not too dissimilar to how some of us Über-geeks work today but you have to be pretty tech-savvy to make this all work seamlessly and have to be willing to accept a few breakages along the way as not all software is yet able to function correctly in a virtual machine.
Today, we can host Windows, Linux, etc., in VM’s atop a virtualization kernel such as Microsoft’s Hyper-V. Microsoft already provides great “enlightened” drivers for networking and storage, but Microsoft will need to provide much improved drivers for USB and Graphics (3D/DirectX graphics in particular) for our hypothetical Windows 8 scenario.
Microsoft already offers Windows 2008 Server Core which follows a similar model to my description above although it needs to be augmented with a more “consumer-friendly” environment for the desktop. You can achieve a similar approach via VirtualPC, Hyper-V, VirtualBox, VMWare, Parallels or similar.

Fast-forward to the end of 2011

Hopefully, Microsoft will have done a great job of making virtualization the core of Windows 8 (of this I have no doubt!) and will provide a range of tools and upgrade wizards, etc., that will capture your existing OS along with all apps, settings and data to one or more Virtual Hard Drives (VHD), similar to how Disk2Vhd works.
Installing Windows 8 would first install Windows’ new CoreOS on your PC and reboot to initiate the new system. Once restarted, it could spin-up two new VM’s: attach your original PC’s to one and a Windows 8 VHD to the other. After completing the usual post-installation configuration steps, you’re might be left looking at your new Windows 8 PC … which happens to be running Windows 8 along with your previous OS along with all your usual apps and with your full complement of docs, photos, music and other data!
App compatibility issues are now largely non-existent. Upgrading to a new OS just means adding a new VM instance. You don’t have to reboot your machine to do this – just spin up a new VM, install the OS into it and, voila, your PC is now running Windows

Perhaps a new Virtual Desktop Manager?

Maybe Microsoft will introduce a more sophisticated Virtual Desktop Manager (VDM) too? Something like VirtuaWin or even DeskSpace!
Perhaps the primary desktop will composite everything from all VM’s seamlessly on one screen?
Maybe MS will do the right thing and also allow users to switch to desktops specific to VM instances and only the apps running in those OS instances. This could help traditionalists move to newer versions of Windows without having to forego their favorite Windows UI?
Let’s hope!

Will Microsoft take Windows 8 THIS far?

Moving to a virtualized OS core is only the beginning and unlocks some very important capabilities.  For example:

Separate code, config and data

Today, Windows co-mingles too much: Windows itself lives intertwined with your applications, settings and your data. Microsoft needs to separate these three things into cleanly segregated areas:
  • OS & Frameworks (immutable)
  • Machine Configuration & Settings (mutable via differencing disks for rollback)
  • Applications & App Settings (mutable via differencing disks for rollback)
  • User Configuration & Settings (mutable via differencing disks for rollback)
  • User Data - your docs, music, photos, etc. (mutable via differencing disks for rollback)
Your personal User Data could be migrated to a separate VHD and shared between OS instances so that you could open and modify a photo in PhotoShop running within a Windows 7 VM, before posting it to your blog using LiveWriter 2012 running in a Windows 8 VM.
Upgrading to a new OS would then not require you to copy all your data, settings, etc., off your machine, before re-formatting, re-installing the new OS and then copying all your data back onto your PC. All your data could just be mapped into the new OS in a matter of a few seconds!

Virtualize Applications

But where things get REALLY magical is when you consider that there’s little to stop Microsoft virtualizing applications too! They already have much of this capability with App-V, but if it was tweaked just a little, it could open up a whole new realm of possibilities:
Imagine if you were to install an app on your PC::
  • If the app …
    • is Windows 8 aware, it could ship with a manifest that describes what capabilities it needs of the OS and Frameworks, and could expose its config settings, etc.
    • is not Windows 8 aware, the application could be identified from a global application compatibility catalog that Microsoft could maintain.
  • Windows could then copy/install the app into its own VHD and create a differencing disk to apply machine-specific settings to your app’s config. This would allow you to rollback settings to a previous set of changes in case you screwed up an application’s config
  • Windows could then enumerate the VM’s that support the required OS/Framework features and select the most recent OS to expose this app through. The app would then be mounted into the OS, appearing as if it had been installed within that OS, but requiring almost no change to the OS itself!
Now imagine when it comes time to upgrade to a new OS: Windows could enumerate all mounted applications and determine those that could run unchanged and unhindered when mounted inside the new OS and could make the necessary changes. And if anything goes wrong, you can always just choose to run the app in its original VM/OS instead.
Once you've “upgraded" your apps to run in newer OS instances, your older dormant VM's can be removed to free-up disk space and reclaim memory. Also VM instances could be started and stopped dynamically depending on whether they need to spin up or shut down an app they're hosting.
This change alone could save Microsoft’s customers $billions and huge amounts of time and resource when upgrading their OS’.
Nothing I’ve described above requires anything that doesn’t already exist or that can be tweaked to behave in this manner.

We can dream!

Of course, this is all just speculation without any basis in fact. What Microsoft will do is currently only known to a few thousand hard-working individuals over in Redmond, but knowing many of them and knowing the staggering level of engineering skill and talent at their disposal, I have little doubt that some or all off the above is well within reach.
Fingers crossed Winking smile

Permalink | Comments (0) | Post RSSRSS comment feed