February 9, 2010

SketchFlow: Exploring Ideas

from Christian Schormann

SketchFlow, the prototyping environment in Expression Blend, lets you build deep, dynamic prototypes with a lot of “real” interactivity.

Sometimes, these deep prototyping abilities make it easy to forget about another side of SketchFlow - the side that lets you explore and “mind map” ideas without having to think about UI details earlier than you need to.

This “mind map” aspect always is an important aspect for me in designing UX - I like to think about the abstract flow, navigation and composition (in other words, the structure) of a design first, without immediately thinking in terms of concrete UI, controls and layouts. Early on, it often does not matter much which exact widget you use to navigate or interact.

To use SketchFlow in this way, don’t think about the screens you create as Windows, Pages, Dialogs or Forms. Think of the screens as whiteboards, and think of the SketchFlow map as a playground of connected whiteboards that lets you tell stories and explore ideas.

more here

February 8, 2010

Silverlight 4’s New INavigationContentLoader Interface

fromJeff Prosise

One of the extensibility points added to the run-time in Silverlight 4 is the new INavigationContentLoader interface, which allows applications that use Silverlight’s navigation framework to take control of page loading. In Silverlight 3, navigation URIs had to target XAML files containing Silverlight pages. In Silverlight 4, a navigation URI can target anything—a class name, a Web service that provides page content dynamically, or a XAML file contained in a remote XAP, for example—as long as an INavigationContentLoader implementation is present to support it.

David Poll has blogged extensively about INavigationContentLoader and about the different scenarios in which it can be used. Here, for example, is a great post on using a custom content loader to load pages from XAPs that are downloaded on demand. Here’s another that demonstrates how to use a custom content loader to authorize access to a page before navigating to it. It seems there is no end to the purposes that INavigationContentLoader might serve.

more here

February 6, 2010

Using the free Babel Obfuscator in Silverlight projects

from APIJunkie

One of the problems with Silverlight managed code is that it can easily be reverse engineered using standard .NET reflection tools.

Although no method can completely prevent reverse engineering your code there are ways to slow down and even deter all but the most persistent hackers.

Most of the tools I found that can be used to obfuscate Silverlight code are not free. But the Babel obfuscator by Alberto Ferrazzoli is an open source .NET obfuscator that can be used in Silverlight based projects.

more here

February 5, 2010

Using Moq with Silverlight for Advanced Unit Tests

From Jeremy Likness

Moq is a library that assists with running unit tests by providing easily mocked objects that implement interfaces and abstract classes. You can learn more about Moq on their website. There is a distribution for Silverlight, and in this post I’ll focus on some ways to use Moq for some more involved testing scenarios.

Download the source code for the example project

I started with the Simple Dialog Service in Silverlight and extended the example a bit. In the post, I promised that abstracting the dialog function behind an interface would facilitate unit testing. In this post, I’ll deliver on the promise.

more here

Testers get alpha of next version of Silverlight for Linux

from Mary Jo

The Mono team has made available a preview test build of Moonlight 3, the next version of Silverlight for Linux from Novell.

Preview 1 is downloadable from the Mono site, as of February 3.

Novell released Moonlight 2 in December 2009. Moonlight 2 is a superset of Microsoft’s Silverlight 2, though it did  include support for some of Microsoft’s Silverlight 3.0 features.

The new Moonlight 3 release is adding more updates to the Silverlight 3.0 programming interfaces;

more here

Securing a WCF service in Silverlight 3.0

from Allan Muller

This is a very helpful topic from Rachel, who is one of our senior Silverlight developers at Metia, about securing WCF services. THANKS Rachel!

download the example code.

Follow us up on this post and other new posts form our Twitter page.

One of the little known features when using WCF with Silverlight 3, is that it now supports securing your WCF service with a custom username & password. In Silverlight 2, securing your WCF service with custom credentials wasn’t straightforward, you either had to manipulate the headers to send the username and password or rely on the browser to perform authentication.

more here

Silverlight Splash Page

from johnny stock

I recently had the privilege of recording an episode of Silverlight TV with John Papa where we discussed the creation of Splash pages in Silverlight. This post is a companion post to that episode so if you haven’t watched it yet, be sure to check it out after (or before) reading this post.

Sample code download

What is a Splash Page

Let me be clear about this, when I mention splash page I’m referring to a custom loading screen. This is a lightweight Silverlight application that runs while your main Silverlight application is downloading. Typically these will include things like progress bars, user tips, humorous statements or even news headlines.

What these are not is the “Click here to Enter” screens that were so popular a decade ago. Please never build one of those. Ever.

more here

Installing and Setting Up and Encoding for IIS 7 Smooth Streaming and Silverlight

fromScott Hanselman

I heard someone saying they were having trouble setting up Smooth Streaming for IIS, so I wanted to try it myself.

If you just want to see Smooth Streaming work, visit http://www.smoothhd.com/ for some sample demos. They’ll adapt to your bandwidth and look as nice as they can. If you want to fake a low-bandwidth situation, you can use the player at http://www.iis.net/media/experiencesmoothstreaming and play with limiting the bit rate.

Step 0: Got IIS?

I’ve got IIS 7 because I’ve got Win 7. If your Win 7 installation doesn’t have IIS yet, go to Programs and Features and click “Turn Windows Features On or Off” and select Internet Information Services. Don’t forgot to go through the tree and turn on the things you want, like “Static Content” in this case. (Remember, if you’ve just installed IIS, shut down Skype as it grabs port 80 if it gets there first. Lame.)

Step 1: Add IIS Media Services

I’m running Windows 7 x64 so I installed IIS Media Services 3.0 64-bit, but you can certainly install IIS Media Services for 32-bit also. Even easier, just install it from the Web Platform Installer directly.

more here

February 4, 2010

Project Next - Client/browser side technology. Why not Silverlight.

Doing a lot of reading recently trying to understand the directions where the MS client/browser side development is going. I have to deliver a very intensive data-entry application in the next 7 months and that makes me wonder what is the best approach nowadays.

As go-live would be in a year from now I’m able to consider any betas. The options I started with were Silverlight 4.0 versus combination of ASP.NET MVC 2.0 with MvcContrib, jQuery, new Ajax features and probably some Silverlight with ASP.NET MVC host.

Silverlight 4.0 (Beta 1 now) Project Next   Client/browser side technology. Why not Silverlight.

Prism v2 with MVVM would be the guiding frameworks to follow. Although as I understood Prism v2 is more about modular design and not exactly about achieving good MVVM (http://stackoverflow.com/questions/1595409/mef-vs-prism-what-is-the-difference-what-will-be-supported-in-the-future).

more from Stanislav Dvoychenko  here

February 3, 2010

Guide to creating Expression blend 3 addins

There isn’t much information available for creating Expression blend 3 addins. There is some information on creating blend 2 plugins, but the addin model has changed between versions.

Here I have given an overview of what is needed to setup your Visual studio environment, as well as sample code and a sample project to get you up and running.

more here from David Burela

Rules of MVVM??

As I had a MVVM session at my office, I was re-reading a few articles about MVVM. We have very interesting discussion about MVVM in WPF Disciples User Group as well. You can read that post from here.

Someone in Silverlight Forum (link) posted that ~

“There are currently three main areas of criticism regarding the MVVM pattern. The first is that MVVM currently lacks standardization from Microsoft both in implementation and in toolsets. For example, the community has some lack of clarity about where and whether to implement View logic in the View layer or the ViewModel. Given that the MVVM pattern is still relatively new, and that new tool-sets, walkthroughs, or patterns, such as Onyx, Prism, the Microsoft WPF Toolkit, Crack.net, Caliburn and MVVM Light Toolkit are being released, this problem may be solved over time. Microsoft has announced in discussion boards that the MVVM template pattern will be released in Visual Studio 2010.

The second comes from MVVM creator John Gossman himself, …

more here from Michael Sync

Silverlight 4 How to Command Control

Introduction

Last month I wrote about how we could take some of the new features of Silverlight 4, Webcam control,  and create a simple application that lets you store captured webcam photos to isolated storage and your file system.

In this article we will take this proof of concept and demonstrate how through the use of commanding and binding we can virtually eliminate all code behind and implement to a strong MVVM architectural pattern.

Getting Started

I think few would argue with the value of a strong separation of concerns within the design of an application.  Over the last year the MVVM pattern has gained popularity in the Silverlight development community.  One of the challenges that developers faced in previous versions of the framework was the lack of commanding support in Silverlight.  Without commanding many developers had to write there own attached properties, or worse  yet, resort to event handling in their code behind, just to deal with responding to a button being clicked.  Today both the button and HyperlinkButton support commanding.

more here from  Joel Neubeck

Windows Azure SDK 1.1

There’s an update to the Windows Azure SDK, version 1.1. The SDK extends Visual Studio 2008 and the upcoming Visual Studio 2010 RC making it easy to develop, debug, package and deploy Windows Azure Applications.

There’s a number of new things and a handful of bug fixes from the 1.0.

From the download page:

  • Windows Azure Drive: Enable a Windows Azure application to use existing NTFS APIs to access a durable drive. This allows the Windows Azure application to mount a page blob as a drive letter, such as X:, and enables easy migration of existing NTFS applications to the cloud.
  • OS Version Support: Allows a Windows Azure application to choose the appropriate Guest OS to run on in the cloud.

more here from josh holmes

February 2, 2010

Silverlight 4 WCF RIA Services Line of Business Application - Hands On Lab

If you want to get hands on WCF RIA Services for Silverlight 4 then Swiss MSDN team has developed 108 pages Hands On Lab (HOL) manual. The HOL uses Beta 2 of Visual Studio 2010 and Beta 1 of Microsoft Silverlight 4 to create a data driven line of business style rich internet application and it is a great way to expose to the new technologies.

more here from .NET Enthusiast

Silverlight 4 & MEF – Switching on functionality based on application context

In my head, I see Silverlight 4 applications as either running;

  • In Browser
  • Out of Browser
  • Out of Browser and Trusted
  • Out of Browser and Trusted and in the presence of COM interop ( i.e. on Windows )

and you might write functionality that only works in certain of those contexts - e.g.;

  • HTML display only works out of browser.
  • You can only read the contents of “My Documents” when out of browser and elevated
  • You can only run any COM interop code when in the presence of COM interop

and I thought that it might be a good use of MEF as a way of only bringing in the functionality that is going to work in a particular context.

more here from Mike Taulty