 |
|
 |
|
silverlight - Google News
Published Tue, 05 Aug 2008 20:37:46 GMT
by
Published Thu, 07 Aug 2008 14:13:38 GMT
by
Published Wed, 06 Aug 2008 15:18:04 GMT
by
Published Thu, 07 Aug 2008 10:02:56 GMT
by
Published Mon, 04 Aug 2008 15:10:38 GMT
by
Published Tue, 05 Aug 2008 00:06:00 GMT
by
Published Tue, 05 Aug 2008 22:00:59 GMT
by
Published Mon, 04 Aug 2008 12:42:07 GMT
by
Published Fri, 01 Aug 2008 19:40:39 GMT
by
Published Mon, 04 Aug 2008 14:07:23 GMT
by
|
|
|
|
|
|
|
|
|
 |
|
 |
|
|
Author: |
David Hanson |
Created: |
Wed, 02 Jan 2008 20:28:49 GMT |
 |
|
All things .net, wpf, XAML, C#, Workflow Foundation and many more. |
|
The power of Silverlight vectors |
|
|
By David Hanson on
Fri, 23 May 2008 10:58:53 GMT
|
|
|
|
As you probably know the power of WPF and its subset Silverlight is its ability to render images using vector graphics. I am not a graphic designer myself, I can usually get a decent design together but it’s usually more evolutionary rather than revolutionary.
As all images in vector graphics are expressed using mathematics they provide computers with some superior processing capabilities that are not possible with common binary formats. We can transform them, scale them, animate them to name just a few . However, with the advantages of having an image represented in mathematics, we also suffer with increased complexity when trying to create them from scratch.
With the current release of Silverlight, we have the power in the framework to represent near photo realistic images purely in vectors. Take for example the photo of me shown below, this image, running in Silverlight, has been built using only vectors. You can see this running in Silverlight here.

Bad Mood 
If we take a closer look at the structure of the eye, we can see that the complexity of the XAML path objects, which are the basic building blocks used to compose the image, are far beyond the capabilities of any human designer using tools such as Blend or Visual Studio.

The image was actually constructed using the cool site vectormagic.com. On this site you can upload any photo and it will convert the image to vectors. This covered off the majority of the grunt work of converting the image into vectors. VectorMagic offer you two free downloads in a range of formats.... but no XAML option. Therefore, I downloaded the file in Adobe Illustrator format, from there it was a simple process of exporting the image into XAML using Mike Swanson’s awesome AI-XAML converter.
Hope this quick example has helped illustrate the power of Silverlight’s graphical capabilities and gets you thinking about what other assets you could convert into XAML.
|
 |
|
Comments (0)
|
|
|
|
.NET 3.5 SP1 & Visual Studio 2008 SP1 Beta released |
|
|
By David Hanson on
Tue, 13 May 2008 08:31:57 GMT
|
|
|

It seems .Net 3.5 SP1 and Visual Studio 2008 SP1 beta are now available from Microsoft for download. This release brings a number of fixes for hundreds of bugs that have been reported by customers.
This download installs Visual Studio 2008 SP1 Beta. Visual Studio 2008 SP1 includes support for SQL Server 2008, new ADO.NET features such as the Entity Framework, improvements to the WPF designers, WCF templates for Silverlight projects, debugger support for the .NET Framework public symbols and source release, control improvements such as the DataRepeater for Windows Forms and Office 2007 Ribbons for C++, and several general updates for debugging and IntelliSense. SP1 also enhances the stability, performance, and security of many features.
The included .NET Framework 3.5 Service Pack 1 adds many new features and fixes, including the following:
.NET Framework Client Release (“Arrowhead”)
· ASP.NET Dynamic Data
· ASP.NET Routing
· ADO.NET Data Services
· ADO.NET Entity Framework
I’m just hoping that it resolves the constant OutOfMemory exceptions I get when working with the WPF designer. You can find the downloads here.
|
 |
|
Comments (0)
|
|
|
|
Oldest running code? |
|
|
By David Hanson on
Mon, 12 May 2008 09:08:03 GMT
|
|
|

Slashdot poses an interesting question asking what is the oldest code still running today. Of the 600+ comments so far I have cherry picked a few that I thought were good choices.
· The software on the Voyager and Pioneer SpaceCraft 1977
· Digital watches
· Heavy machinery used from the late 50’s
· Worryingly – Air Traffic controls system code from the 60’s
· DNA – At least 2 billion years old! J
But my personal favourite!
1 "Let there be light"
2 create universe()
3 while (1)
|
 |
|
Comments (0)
|
|
|
|
Cosmic Crashes |
|
|
By David Hanson on
Tue, 29 Apr 2008 19:51:56 GMT
|
|
|

I was catching up on some podcasts during my drive to work recently and came across an interesting topic on the BBC's Digital Planet podcast. The discussion was regarding the “impact” cosmic rays can have on our desktop computers and more importantly very expensive grid platforms such as IBM’s Blue Gene. Computer crashes can be annoyng to the average user but on grid platforms running simulations that require accurate data they can be very costly. During the podcast they had interviewed with an Intel researcher (who's name I have forgotten sorry) who was discussing his strategies for counter acting the effects these highly energetic particles can have.
Before I outline his proposal it’s probably worth explaining some rudimentary physics.
What is a cosmic ray?
Answer: A cosmic ray is a particle with mass greater than zero that has been been accelerated to a speed that is approaching the speed of light.
How does it get that fast?
Answer: A range of cosmic events can cause this but let’s just say for this blog, a star exploded millions of years ago and that it is this explosion that caused the cosmic ray.
I heard that most cosmic rays just pass right through us.. How come?
Answer: Well thanks to Mr Einstein we know that with increased mass comes an exponential increase in energy in order to accelerate the matter towards light speed. Therefore cosmic rays are generally low is mass. As a result, they can pass through the atoms in your body undisturbed. (Well mostly)
So how do cosmic rays cause computer crashes?
Answer: Computers processors are based on logic gates which manage the flow of electrons on the processor. When a cosmic ray hits the processor a surge or peak of energy is releases in the form of electrons which can result in the processor providing inaccurate results. (Hence it crashes).
So with the details out of the way I can get on to explaining what the Intel researcher was planning to in order to resolve this problem. Basically, his view on cosmic crashes was that it’s going to be almost impossible to stop them from happening, insulating the processor with cosmic ray impenetrable materials is going to be very hard, very large and expensive. So, instead he proposed that what we should do is build detectors which can identify the surge of electrons associated with a cosmic ray and then instruct the processor to rerun the previous calculation that may have been affected.
I must say... I like his thinking.
|
 |
|
Comments (0)
|
|
|
|
LINQ to Reflection Part 3: Updating Fields |
|
|
By David Hanson on
Mon, 28 Apr 2008 13:30:07 GMT
|
|
|
In part 2 of this LINQ 2 Reflection series I took you through how we go about querying fields that may existing within an object graph. Before we proceed, it’s important to remember that a call to object.Field<T> will return an instance of type Linq.Reflection.Field. As part 2 focused purely the reading fields it’s about time we take a look at how we can go about updating them. If we look at the intellisense that Visual Studio provides for the Field<T> class we can see that this class has an Update<T> method. Shown below.
Firstly, as the Update<T> method is contextual, there is no requirement to pass the name of the field we wish to update as this can be inferred from its parent. Secondly, As the Field<T> returns a generic class of type T it also allows us to infer the Type of value we wish to update. Below is a simple update statement on a person entity.
person
.Field<string>("_firstName").Update("James")
.Field<string>("_lastName").Update("Brown")
.Field<DateTime>("_dateOfBirth").Update(DOB);
The Update<T> method of the Field<T> class returns an instance of the parent object we are currently working with. Internally the Field<T> class passes the parent context down our chained methods. Therefore we have the ability to move up the object graph if so desired. In this situation, where we are updating 1 of many fields on the parent context, its important that the return value from Update<T> is that of the parent object.
As that’s pretty much it for updating fields using LINQ to Reflection. You can call the Update<T> on and Field<T> or Property<T> accessor. As this point in our series you have the information you need to drill down any object reading and writing property/field values to suit your tests scenarios.
In part 4 we will start looking at how we can leverage the power of these extensions methods by showing how we can mock internal objects without breaking the rules of encapsulation.
|
 |
|
Comments (0)
|
|
|
|
LINQ to Reflection Part 2: Reading Fields |
|
|
By David Hanson on
Fri, 25 Apr 2008 11:34:23 GMT
|
|
|
In part 1 of my LINQ to Reflection series I outlined some of the key drivers behind me creating a set of extension methods that can be used to query any CLR type. I also outlined that I am looking to extend this further with support for reading/writing of data, mocking, invocation, interception and other useful behaviours. This post is purely focused on the reading of field data using the LINQ to Reflection extension methods.
Before we get into the details of how we query data, we first need to create some tests data that will be used for each sample. Below is a method that is used to build object graph that is comprised simple and complex types with multiple child objects. Note: We are already starting to use our LINQ to Reflection methods in order to create tests data.
///<summary>
/// Sets up an object graph for our different test scenarios.
///</summary>
public static Person GetTestData()
{
Person person = new Person();
return FillPerson(person,3, 4);
}
///<summary>
/// Fills the person with test data.
///</summary>
///<param name="person">The person.</param>
///<param name="levelsDeep">
|
 |
|
Comments (1)
|
More...
|
|
|
WPF: Could not create an instance of type '{0}' |
|
|
By David Hanson on
Fri, 25 Apr 2008 09:10:57 GMT
|
|
|
|
If you get this error in your designer when working with XAML in Visual Studio 2008...make sure you dont have any visual elements that inherit from an abstract class. May seem obvious but can be easily missed. 
Could not create an instance of type '{0}'
|
 |
|
Comments (1)
|
|
|
|
The rise and fall of social networks |
|
|
By David Hanson on
Wed, 23 Apr 2008 19:47:05 GMT
|
|
|
|
It seems every six months a new social network is on the scene. If I was to guess who currently reigns supreme I would imagine facebook is likely to be in there. Google trends provides us with some insights into this question.

facebook, myspace & bebo
I will run this graph in a year and see how its changed. Until then make your own minds up.
|
 |
|
Comments (0)
|
|
|
|
Linq to Reflection: Part 1 |
|
|
By David Hanson on
Wed, 23 Apr 2008 09:25:08 GMT
|
|
|
|
Firstly.... before you read this, I would really like feedback on this series of posts and the ideas it outlines. I wanted to get that request made on the first line as apparently most humans skip the next paragraph when searching for info. So with that out of the way I will outline what this post is really about.

These posts are the result of a bit of a mishmash of ideas that I have been thinking about of late. The project I am currently working is fully agile, therefore test driven development plays a key role in the day to day work a developer encounters. We perform integration testing, interaction testing, unit testing & business testing as well as a few other kinds of testing during the course of writing functionality. The project has also recently migrated.NET 3.5 and a result we have started to take advantage of some of the languages features such as LINQ.
When I first heard of LINQ I must admit I was sceptical. I am one of those developers who likes to have a thorough understanding of the architecture prior to implementing it my code base. (Remember VB web classes anyone). I picked up the Pro-LINQ book from Apress a while back and spent a weekend reading from cover to cover. So before I continue I will clarify my position on these technologies.
LINQ to Objects is superb.
LINQ to XML is just as good.
LINQ to SQL is good but not there yet! (Release 3 Perhaps).
LINQ to Entities (Barge pole and touch come to mind).
So with that said I will try and move onto the focus of these posts. LINQ to Objects has been implemented using .NET 3.5 extension methods. Extension methods allow you to implement instance type methods on existing classes. Even if these classes are sealed or you do not have the source code so you can extend them. So given this new feature it got me thinking about what possible uses there are for extension methods. LINQ uses them primarily on types of IEnumerable in order to implement query expressions, but I wanted to see if I could use them in a more generic fashion on any type of object.
As I felt I had a solution looking for a problem, I decided to bide my time and wait for the problem to present itself. A couple of weeks ago it did!! As said, we are working on a project which has adopted TDD. One of the issue I find with TDD is that I kept feeling I had to break encapsulation principles in order to increase testability. An internal field on a class would need to be set for a specific test condition to pass or an object deep down in my object graph would need to be configured or mocked in order to allow testing. IOC & dependency injection admittedly can help in this area but are not always the simplest of solutions. So end game is that I want to avoid this wherever possible.
Currently, In order to solve some of these problems, our project has a number of utility classes for accessing private members on a reference types. This only goes so far and can be cumbersome to use. What I would ideally like in my tool kit is the ability to seamlessly drill down an object graph using a familiar syntax. More than that, I want to be able to instantly convert those fields or properties to mock objects prior to running my tests. I want to be able to swap ...
|
 |
|
Comments (1)
|
More...
|
|
|
WPF: How to stretch columns in a ListView |
|
|
By David Hanson on
Sun, 13 Apr 2008 21:21:11 GMT
|
|
|
|
The ListView control in WPF is a powerful option when trying to present tabular data to users. It supports many of the common behaviours found in grid controls as well as the full WFP templating architecture we have all come to love. Below is a simple of example of a ListView which has been bound to a collection of strings. The example uses a template GridVewColumn and a 3 standard GridViewColumn’s to display the data.
And here is the associated XAML.
<Window x:Class="WPFSamples.ListViewDemo"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:s="clr-namespace:System;assembly=mscorlib"
xmlns:Extensions="clr-namespace:Demo.Extension.Properties"
Title="ListViewDemo" Height="353" Width="714">
<Grid>
<Grid.Resources>
<x:
 |
|
Comments (5)
|
More...
|
|
|
|
|
|
|
|
|
|
|