@colinizer …
Likely just about IE9, which to a Silverlight guy isn’t that exciting… we’ll see…
@colinizer …
Likely just about IE9, which to a Silverlight guy isn’t that exciting… we’ll see…
Due to flight delays I didn’t make it for the Day 1 keynote, so I couldn’t live blog it. I will post more on the keynote contents later. Overall, there were NO surprises (and sadly no phone hardware). A Silverlight 4 RC was released along with development tools for Windows Phone 7 Series. Installing the Windows Phone 7 tools (was straightforward, though the lack of a standalone installer is a little inconvenient).
The Microsoft wifi at the event is great considering the sea of laptops here.
I’ll be live tweeting (@colinizer) for Day 2.
Today’s keynote is likely going to be about IE9 and design – not as exciting as yesterday.
A last minute decision…
I won’t be live blogging but may be live tweeting – @colinizer. I’ll blog later in the evening.
I’ve been getting in the conference spirit recently (DevTeach, code camps, etc.), and I can work around the conference hours so… why not… mixmas only comes once a year :-).
If anyone wants to meet up – DM me on twitter or email me if you know how ;-).
So you want to get in the game, or even make the games?
Here’s a summary of what’s been announced and the impending activities which will come to a head (for the first phase at least) with major revelation sessions at Microsoft’s Mix10 conference starting March 15th 2010.
Microsoft came out of the gate about Windows Phone 7 Series (or WP7 for short) at MWC, for the first time publically showing off the new UI.
Since then Microsoft’s Joe gave a more intimate demo on Microsoft’s Channel9.
Charlie Kindel (a man leading the charge at Microsoft) has indicated that .NET, Silverlight & XNA are key technologies to WP7 development. I’ve long been aware of the Silverlight angle on mobile device and had some preview access to mobile possibilities, so I can see that this is a great direction. I hope Microsoft brings out the right caliber (and readiness) of tools that developers need – developer tools (and I don’t mean Blend) have been sorely lacking for Silverlight; it will be April 12th before the first of developer design tools for Silverlight are made available with Visual Studio 2010.
There’s been a video of the Platformer game running on Windows Phone 7, with the notion that someone can create a game with largely shared code which can run on Windows 7, WP7, Xbox & Zune.
At the Game Developer Conference this coming week, Microsoft may well be talking about XNA developer for WP7.
Microsoft has just announced the abstracts for the WP7-related sessions at Mix10 (starting the following week) and Microsoft Canada’s Joey deVilla has a great summary of them.
It has been indicated that access to the keynote and sessions for Mix10 to not require attendance at Mix.
I’m aiming to live blog the MIX keynotes and follow up on what’s announced about WP7 from the sessions.
Be sure to follow the tweets and blog posts of these guys at Microsoft:
Andre Vrignaud: www.ozymandias.com / @ozymandias
Christian Schormann: electricbeach.org / @cschormann
Shawn Hargreaves: blogs.msdn.com/shawnhar / @shawnhargreaves
Todd Brix: windowsteamblog.com/blogs/windowsphone / @toddbrix
Anand Iyer: www.artificialignorance.net/blog / @ai
Michael Klucher: klucher.com / @mklucher
In Canada keep an eye out here and on the Canadian Developer Connection blog.
So the seasonal gift giving has now passed, but I’m hoping for a few good prezzies for Microsoft’s Mix conference.
Not too much to ask for right?
Looking to learn more about the Windows Azure Platform, Silverlight, Windows Touch or Windows Identify Foundation? If you’d like to see these sessions in person at Microsoft’s Mix 2010 conference or the recordings that will likely be made available for free later on, please vote for the sessions before January 15th 2010, by going to the site, adding the 3 sessions to you ballot and submitting it. |
![]() |
One of the major benefits of the Windows Azure SDK and Windows Azure Tools for Microsoft Visual Studio is the ability to operate an Azure Development Fabric and Azure Development Storage emulation on your local machine. Pressing F5 in a Visual Studio Azure project deploys and runs your application in an environment emulating the real Windows Azure. This is somewhat similar to the ASP.NET Development Server that starts up and somewhat emulates IIS (or other ASP.NET hosting environment) when you debug an ASP.NET application.
This is great, but can also create an efficiency bottleneck during development.
If you are debugging a regular ASP.NET application and you need to make changes, in many cases you can stay in debug mode; you can edit an ASPX page or other assets (including CSS) and simply refresh the already running web browser instance to see you changes. In the case of the ASPX page having changed, it is dynamically recompiled when you next access it. This works because the ASP.NET Development Server is pointing at your development files. This efficient cycle is lost when you start debugging with the Windows Development Fabric…
When you debug (or run) an Azure project in Visual Studio, your application is built into a package that is ‘deployed’ to the local Azure emulation. The emulation therefore uses its own copy of the files. Making changes to the file in Visual Studio while debugging, only updates the copies under Visual Studio’s control – they are neither repackaged nor redeployed. The Azure Development Fabric has no idea that they’ve changed. So, you have to stop debugging, re-launch, wait for the new package to build and deploy, and then get back to the same place in the application.
Here’s what likely amount to a satisfactory workaround before you are ready for the emulation stage: create a mock for the Data Access Layer that deals with Windows Azure Storage and debug your project outside of the Azure Development emulation. You lose role instance configuration, but you can go back to using the ASP.NET Development Server. You may also lose the Azure diagnostic logging – but you can mock that too.
Note: If you are using SQL Azure, for the most part you can use a regular local SQL Server in place.
I’m not suggesting you mock the interfaces to the Azure APIs directly. Your application may well have a Data Access Layer which (when following best practices), will likely have an interface. I suggest you create an object to mock this using the same interface or perhaps use one of the available mocking frameworks.
To facilitate the selection of the polymorphic DAL objects (real or mock) in one code-base you’ll likely want to make your application smart enough to know if it’s running in the Azure environment (Microsoft or local emulation) or not. My previous post on the topic explains this idea.
You’ll need an interface that suits the operations of your DAL such as this example (where WallMessage is defined elsewhere)…
a mock object (such as the example shown below) and a real object (not shown) that both implement the interface…
and then calling code that first selects the mock or real object to use based on environment detection……
after which you go on to use properties and methods on the selected interface oblivious to the implementation being used.
This is just a basic example and as mentioned, there are some very good Mocking frameworks as well as Dependency Injection frameworks available that ease this kind of setup in large or complex solutions.
The code shown is from the sample Silverlight application I provide (including source code) in my Azure Deployment Guide, already used by 100s of people to successfully deploy their first Azure application.
I hope you found this tip useful 🙂 If so, and you’re reading this on January 15th 2010 then please vote for my Mix 2010 conference submissions today! :) Thank you.
Looking to learn more about the Windows Azure Platform, Silverlight, Windows Touch or Windows Identify Foundation? If you’d like to see these sessions in person at Microsoft’s Mix 2010 conference or the recordings that will likely be made available for free later on, please vote for the sessions before January 15th 2010, by going to the site, adding the 3 sessions to you ballot and submitting it. |
![]() |
UPDATE: For the easy route, consider placing your canvas in a ViewBox control which is in the Control Toolkit for Silverlight 3 and is included in the Silverlight 4 runtime.
In December I produced an an easy-to-follow Azure Deployment Guide which has so far been successfully used by hundreds of people to deploy an application to Windows Azure. It also came with a sample Silverlight application.
That application includes the capability to scale an inner canvas (while maintaining aspect ratio) in response to the outer grid and control being resized as a result of the browser window being resized by the user.
In the following screenshots you’ll notice that the header/footer text stays the same size but the green canvas area scales to fit. You’ll also notice that it centres horizontally and aligns to the top.
To achieve this we need to do a few things…
In the Silverlight UserControl’s XAML, make sure no Width and Height are set on the UserControl element (note that the d:DesignWidth/Height are there for design-time sizing only).
Note the name of “LayoutRoot” give to the top-most element.
Give the canvas a starting size which represents 100%.
Note the name “Wall” given to the canvas we want to scale.
Note the Scale and Translate transforms added to this canvas.
In the HTML page, the Silverlight control needs to be sized to 100% of the available width and height (and this needs to suitably apply all the way to the root of the HTML page). You may do this with CSS styling or some other means.
In the Silverlight UserControl’s code-behind find, register for the resize event on the LayoutRoot object (which is a Grid in this case).
React to the resizing of the Silverlight control.
This code figures out whether there is more space to scale horizontally or vertically, and applies the lower of the two in both the X and Y direction (preserving aspect ratio) using the named transforms.
The calculations make use of ActualHeight and ActualWidth from the containing space.
The code also horizontally centres the canvas in the containing space.
I say ‘containing space’ in this case, because the Canvas to be scaled is in the middle of 3 rows and the single column in the parent Grid.
For the full code, check out the sample application with the Azure Deployment Guide.
I hope you found this tip useful 🙂 If so, and you’re reading this on January 15th 2010 then please vote for my Mix 2010 conference submissions today! :) Thank you.
Looking to learn more about the Windows Azure Platform, Silverlight, Windows Touch or Windows Identify Foundation? If you’d like to see these sessions in person at Microsoft’s Mix 2010 conference or the recordings that will likely be made available for free later on, please vote for the sessions before January 15th 2010, by going to the site, adding the 3 sessions to you ballot and submitting it. |
![]() |
Given the Azure tools and portal for Visual Studio 2008, there are 4 likely modes of execution during your development cycle:
#1 mostly applies when you have an application that you are porting, or you are development components that may become part of the application.
At times you may find it useful to know if you are running inside or outside of the Azure environment (i.e. 1 vs. 2/3/4).
Providing you have included the appropriate assembly reference, you can use this API to detect your environment and take appropriate action while developing and testing your components at the stages above.
Looking to learn more about the Windows Azure Platform, Silverlight, Windows Touch or Windows Identify Foundation? If you’d like to see these sessions in person at Microsoft’s Mix 2010 conference or the recordings that will likely be made available for free later on, please vote for the sessions before January 15th 2010, by going to the site, adding the 3 sessions to you ballot and submitting it. |
![]() |
Voting ends on Friday for sessions at Microsoft’s Mix 2010 conference.
I’ve submitted 3 session proposals – see the details – around Windows Touch, Azure & Silverlight which were all accepted into the voting list. My session on Windows Identity Foundation has already been scheduled for the renowned high-level DevTeach 2010 conference at Microsoft’s Canadian HQ this March.
If you’d like to see my sessions in person at Mix or the recordings that will likely be made available for free then please vote for them.
You can find a list of all sessions available for voting (a list that periodically shuffles its order), or go directly to my sessions here. You can pick a total of 5 sessions to vote for.
The Silverlight and Azure Tools for Visual Studio 2008 SP1 both provide convenient means to get going with these respective technologies.
Windows Azure is a good place to host services that your Silverlight application may call, as well as the web application that contains the Silverlight application itself.
However, if you’ve tried to get this to work, then you may have encountered as issue.
Let’s say you’ve added a Web Role to your Azure application to host the Silverlight application, and you want to add a Silverlight-enabled WCF Service to the website. You may have tried using the Add New Item dialog to select the “Silverlight-enabled WCF Service” like this…
Unfortunately (for reasons I may go into in the future), the Azure platform isn’t going to correctly publish this WCF service in the web role, and your Silverlight app may be able to talk to the service just fine in your development environment, but not when you deploy to Azure proper.
The easiest workaround for this is to create a WCF Role, instead of a Web Role and then add your website files and Silverlight application to that. The WCF Role exposes a service that is compatible with Silverlight on Azure.
If you check out my Guest Wall application (including source code), you’ll see this in action as well as the code :).
Looking to learn more about the Windows Azure Platform, Silverlight, Windows Touch or Windows Identify Foundation? If you’d like to see these sessions in person at Microsoft’s Mix 2010 conference or the recordings that will likely be made available for free later on, please vote for the sessions before January 15th 2010, by going to the site, adding the 3 sessions to you ballot and submitting it. |
![]() |