2009 Microsoft MVP Award

Date July 1, 2009 @ 9:02 am in Microsoft, Silverlight

Microsoft Most Valuable ProfessionalsThis morning I received an email that Microsoft has chosen to renew me as a MVP. I am thrilled to continue to have this opportunity. This years has been crazy as I continue to write my book, articles for Microsoft and learn what its like to be a consultant with Neudesic. I am very excited for what this next year will bring and am reenergizes to be even more committed to my involved in the Microsoft community. I look forward to being an active part of the growth of Silverlight and WPF.

A fond farewell and new begining

Date May 26, 2009 @ 10:25 am in Neudesic

neudesic logoToday is a very exciting day for me; tomorrow I begin a new chapter in career as I join Neudesic as a Principal Consultant II.    For years I have listened to the community talked about the amazing talent Neudesic has attracted, and I am so very excited to be a part of that team.  I started my career as a consultant, and am honored to have n an opportunity to return to that type of development.  I have never been as passionate about a technology as I am about Silverlight.  I am excited to be a part of an organization that sees the great opportunity that lies within that technology.

Last week marked the end of a long and exciting adventure.  For those of you who know me, you know that more than three years ago I was asked to join Terralever to help them grow into the company they have become today.  During those crazy three years, I have had the honor to lead some amazing people.  Terralever’s development team has some of the most bright, passionate, devoted developers I have every worked with.  Their ability to be agile, yet innovative, never ceased to amaze me. 

All that made a hard decision even harder.  Leaving Terralever was bitter sweet.  On one hand I am excited to join an organization focused on development .  On the other hand, I will certainly miss the people and the amazing project I have had the opportunity to be a part of.  I owe my new found love of Silverlight to Terralever, and will forever be grateful.  I wish all the best to Terralever and their great people.

Developing a casual game with Silverlight – Module 5

Date May 22, 2009 @ 10:18 am in Microsoft, Silverlight

This week Microsoft published the latest issue of the Expression Newsletter. If you have not seen the newsletter its a great series of articles focused on using Silverlight and the Expression tools to create amazing rich interactive solutions. In this latest issue I was asked to contribute the fifth of a six part series of articles on exploring the process of designing and building a casual online game in Silverlight .. Here is what the series will include.

  • Module 1: Getting Started – Architecture / framework
  • Module 2: Movement and collision detection
  • Module 3: Design – Sprites, boards and dialogs
  • Module 4: Animations and sound
  • Module 5: Initialization and Deployment
  • Module 6: Advanced concepts (Physics, Multiplayer, Optimization)

Make sure to check out the article at http://www.microsoft.com/expression/news-press/newsletter/

Code: Game.zip

Perspective 3D Screen flip with PlaneProjection

Date April 7, 2009 @ 9:31 am in Microsoft, Silverlight

Almost a year ago I created a Silverlight 2 example that demonstrated how you could use a procedural animation to duplicate one of the transitions used on the iPhone. When a iPhone user goes to make a phone call, if you choose to display the keypad there is a cool 3D flip that occurs. Back in SL2 it was a pretty lengthy animation that never quite duplicated the correct amount of 3d perspective needed to make the flip look realistic.

Thankfully in Silverlight 3 we now have perspective 3D which allows us to take 2D objects and rotate them in 3D space. For this example I will use PlaneProjection to rotate a Grid with an extremely simple DoubleAnimationUsingKeyFrames.

3dflip_sl3


My first DoubleAnimationUsingKeyFrames simply targets the RotateY property of Grid.Projection.PlaneProjection. The second two are used to fade the back from opacity 0 to 1 and the front from opacity 1 to 0.

3dflip_sl3_2

To get my grid representing the back to start flipped 180 degrees I simply apply PlaneProject to it as well.

3dflip_sl3_3


Here is the final example with nothing in the code behind except for the Flip button handler.

Code: ScreenFlipv3.zip

Developing a Casual Game with Siverlight 2 – Module 4

Date March 21, 2009 @ 8:32 am in Microsoft, Silverlight

This week Microsoft published the latest issue of the Expression Newsletter. If you have not seen the newsletter its a great series of articles focused on using Silverlight and the Expression tools to create amazing rich interactive solutions. In this latest issue I was asked to contribute the fourth of a six part series of articles on exploring the process of designing and building a casual online game in Silverlight 2.. Here is what the series will include.

  • Module 1: Getting Started – Architecture / framework
  • Module 2: Movement and collision detection
  • Module 3: Design – Sprites, boards and dialogs
  • Module 4: Animations and sound
  • Module 5: Initialization and Deployment
  • Module 6: Advanced concepts (Physics, Multiplayer, Optimization)

Make sure to check out the article at http://www.microsoft.com/expression/news-press/newsletter/

Code: Game.zip

Tech-Ed 2009: Birds-of-a-Feather on Casual Gaming

Date March 20, 2009 @ 7:47 pm in Industry

Tech-Ed 2009Each year at Tech-Ed they have a set of sessions called “Birds-of-a-Feather” these sessions are open discussions around topics that the community has interest in. No formal powerpoint presentations, just a moderator and a bunch of people that have similar interests. This year I submitted a topic that I would love to be included. If your interested, please go to the link below and vote!

Using Silverlight in your next casual gaming
Audience: Developer
It should be no surprise that the popularity of online gaming continues to increase. Our desire to be interactively entertained makes casual games a great outlet for the increasing time we spend on the Internet. Traditionally, Adobe Flash has been the platform of choice for casual games, but that’s about to change. Lets talk about how you can build your own casual game in Silverlight. Do you have a favorite way to integrate sound, or check for two sprites colliding? How about controlling movement or loading game boards. Lets discuss how we all can leverage the power of the Silverlight framework, to build amazing games.

Mix09 – What excitement!

Date March 20, 2009 @ 5:57 pm in Microsoft, Silverlight, Terralever

mix09I have to say that without a doubt Mix09 was an amazing experience. Unfortunately I did not get to hit all of the session I would have liked to, but nonetheless I had some of the most inspiring conversations around Silverlight.   Its hard to explain the vibe any other way than excited. This years sessions will certainly inspire a whole bunch of designers and developer to run out and start building truly innovative solutions in Silverlight. I just can’t wait to see what they produce!

For those of you who did not get a chance to see the session I presented on behalf of Terralever, please check it out. It’s titled “Creating a Great Experience on Digg with Windows Internet Explorer 8” and you can watch the whole thing online. I think I cover a whole bunch of cool stuff and I demo a slick little Silverlight 3.0 webslice. (P.S Look closely at the video player…it looks a lot like the one I posted on CodePlex…..go open source!)

Silverlight Screencast Site

Date March 1, 2009 @ 9:52 am in Industry, Silverlight

sparklingclintWhen I think back to where Silverlight was just a year ago, it is so exciting to see how far it has come and how much the community has embraced it. Recently I stumbled upon a nice Silverlight podcast called Sparkling client. Sparkling Client is a podcast by Eric Mork about Silverlight and other RIA technologies. This week they talk about a new community screencast site they are working on that will give the community a new place to learn about RIA technology. I was excited to see that the team at Silver Bay Labs was able to leverage some of the work I did on the Silverlight Video Player located on CodePlex.  Good luck to the new site!

Mix09 – Creating a Great Experience on Digg with Windows Internet Explorer 8

Date February 25, 2009 @ 11:50 am in Microsoft, Silverlight, Terralever

mix09I am very excited to announce that for the second year Terralever has the great honor of presenting a breakout session at Microsoft’s Mix 09 conference in Las Vegas, March 18-20 2009.  Last year I had an amazing time presenting on our use of Silverlight as a Gaming Platform.  If you have not had a chance to check out the presentation please do.

This year I will speak about our experience using Internet Explorer 8 and how we leveraged some of the new and exciting features like the Accelerator and Web slice to build a great solution for Digg. Here is the abstract for the session.

Abstract

Come hear how Terralever was able to use the powerful new features of Internet Explorer 8 to change how users interact with the Digg Web site. Learn how using Accelerators and Web Slices changed the way users are able to discover, as well as simplify submitting stories. We look at how taking advantage of these exciting features can improve a users experience, while increasing the number of users visiting your site.

I am very excited to represent Terralever in this opportunity. If your attending Mix, make sure to attend our break out session .

Thursday March 19 |2:30 PM-3:45 PM | San Polo 3501

Silverlight, thanks for the Grid, but I still love my Canvas!

Date February 20, 2009 @ 5:26 pm in Microsoft, Silverlight

When Silverlight 2 was first released, we all caught our first glimpse of a new layout control, the “Grid”. Back in the SL1.0 and SL 1.5 Alpha the community asked for more choices then just a Canvas and Microsoft delivered. In fact, they gave us three, the Canvas, Grid and StackPanel. Microsoft even took it to the next level and replaced the Canvas with the Grid as the new default LayoutRoot within all UserControls.

So what exactly is the Grid and what makes it so much better then the canvas? All layout controls derives from Panel, but Grid has a few very distinct characteristics that make them behave differently then a Canvas.
Grid

  • Supports explicit definition of Rows and Columns
  • Children of the grid can be positioned by setting their own HorizontalAlignment and VerticalAlignment properties
  • Children of the grid are drawn in the order in which they appear in the XAML This effects the layered order or z-order of each element.
  • Implicitly creates a clipping region proportional to the size of the grid.

I think the big one that surprises a few is the last bullet regarding clipping. Let me show you an example.
canvasclipping

Notice how when you place a Ellipse inside of the Grid it gets clipped. This is extremely important if you are building a UserControl and you require that the control be a fixed Width and Height. Another place will this is relevant is when you have an animation in your user control and it moves the  child outside of the perimeter of the Grid.  A great example of this is when you are building a Game sprite and you want to animate an explosion of that element.  The Sprite might be a fixed size, but the explosion throws shards outward.  In this example you would certainly not want the shards cliped by the grid so a cnvas would be the appropriate choice.

Another thing you need to take into account with all Layout controls is how it will scale within a Grid.  Lets take for example two UserControls.  One with a Layroot of Grid and one with a LayoutRoot of Canvas.  Check out what happens when I apply a ScaleTransform to both user controls.

canvasclipping2

Both controls appear to scale correctly to 50%, but note how their positions are no longer left and right justified with a margin of 20 pixels.