Tuesday, September 8, 2009

Dispelling a Common WPF/SL Myth

Dispelling a Common WPF/SL Myth


Dispelling a Common WPF/SL Myth

Posted: 08 Sep 2009 09:13 AM PDT

Everywhere I look I find WPF/Silverlight developers who believe a very popular myth: You cannot update a ViewModel or an ObservableCollection from a non-UI thread. Like most myths, there is an element of truth here. But not understanding that truth can...( read more )...(read more)

Discovering Silverlight 3 – 5 minutes of RIA Services

Posted: 08 Sep 2009 07:58 AM PDT

In July, I gave a talk about Silverlight 3, and even though the entire session was 3 hours (and two bottles of mineral water) long, I only had 5 minutes for RIA Services. So, my only goal was to shed some light on the topic, and scratch the surface of...( read more )...(read more)

5 Minute Overview of MVVM in Silverlight

Posted: 08 Sep 2009 06:06 AM PDT

Model-View-ViewModel (better known by its super hero alias of MVVM ) is a great pattern to use with Silverlight and WPF. Here is my 5 minute perspective on MVVM (yep, it took me 5 minutes to spit this out too, so please be kind on any typos :-) ) One...( read more )...(read more)

Silverlight Firestarter – Watch it Live Online or in Person

Posted: 08 Sep 2009 05:14 AM PDT

The Redmond Silverlight Firestarter will be Thursday, September 17th. You can register to attend live if you are in Redmond or you can watch it online. Either way, be sure to register for the event. The event has a preliminary schedule with some of the...( read more )...(read more)

What’s new in ASP.NET 4.0 – Part III – Persisting Row Selection in GridView / ListView

Posted: 08 Sep 2009 05:32 AM PDT

Read More......(read more)

Silverlight 3 vs Flash 10: Sliding Image Gallery

Posted: 08 Sep 2009 12:48 AM PDT

The effect is a simple and dynamic Sliding Gallery. It is very easy to customize. We can add as many images and descriptions we like . And the effect is very good for fast photo gallery, scrolling banner, website and so on....( read more )...(read more)

Silverlight 3 FireStarter LiveMeeting Event September 17th

Posted: 07 Sep 2009 11:16 PM PDT

This summer's biggest blockbuster technology event is coming to Redmond, WA on the 17 th of September. Register to attend the Silverlight-3 FireStarter event on Thursday, the 17 th of September. We have a stellar speaker line up from the Microsoft roster...( read more )...(read more)

Visit Thrive for Developers to Get the Skills, Advice and Resources You Need

Posted: 07 Sep 2009 06:25 PM PDT

Thrive is an all-in-one resource center for developers to get the latest tools avaliable to be on the cutting edge.

How Do I: Sync Between Devices and the Cloud with FeedSync?

Posted: 07 Sep 2009 06:25 PM PDT

Syncing the cloud and a growing world of devices is a fundamental need in today's world. In this video, you will learn how to use FeedSync feeds to synchronize Live Framework data between a device and the cloud.

New: Security Developer Starter Kit

Posted: 07 Sep 2009 06:25 PM PDT

The Microsoft SDL - Developer Starter Kit offers 14 modules of content, labs, and training to help you establish a standardized approach to rolling out security development policies and industry best practices into your organization.

Silverlight Cream for September 07, 2009 -- #686

Posted: 07 Sep 2009 05:29 PM PDT

In this Issue: Katrien De Graeve , Laurent Duveau , Colin Blair , Christian Schormann , Damon Payne , Brad Abrams , Davide Zordan , Jesse Liberty , and Victor Gaudioso . Shoutouts: Jonathan van de Veen responds to Tim Heuer's query with his post Adventures...( read more )...(read more)

Sunday, September 6, 2009

MVVM Light Toolkit V1.1.1: What’s new?

MVVM Light Toolkit V1.1.1: What’s new?


MVVM Light Toolkit V1.1.1: What’s new?

Posted: 06 Sep 2009 11:55 AM PDT

The new version of the MVVM Light Toolkit was just posted . So what is new? Well, to be honest not much. The biggest change is the new installer . It is now a standalone MSI installer , because some of you reported some issues with the previous ClickOnce...( read more )...(read more)

Installing the MVVM Light Toolkit

Posted: 06 Sep 2009 06:47 AM PDT

I just published a new version of the MVVM Light Toolkit. For more information about the toolkit in general, please refer to the Get Started page on my website . Also, more blog posts will follow soon and help you get started with the MVVM Light Toolkit...( read more )...(read more)

What do you call that small white square icon in Expression Blend?

Posted: 05 Sep 2009 07:35 PM PDT

A question to all users of Expression Blend: What do you call that small white square icon? The one that is also yellow when bound to a property and disabled when not available? I believe we need a name for it if we're going to properly communicate. ...( read more )...(read more)

Tutorial: create a custom Silverlight Splash Screen

Posted: 05 Sep 2009 03:03 PM PDT

The first time a user visit the page which holds your Silverlight app, the browser needs to download the XAP file first, but sometimes this file can become large, so Silverlight automatically displays its default "loading screen", also called a "Splash...( read more )...(read more)

Saturday, September 5, 2009

Silverlight Cream for September 05, 2009 - 2 -- #685

Silverlight Cream for September 05, 2009 - 2 -- #685


Silverlight Cream for September 05, 2009 - 2 -- #685

Posted: 05 Sep 2009 01:54 PM PDT

In this Issue: Laurent Bugnion , Sergey Barskiy , Victor Gaudioso From SilverlightCream.com : Detecting design time mode in WPF and Silverlight Laurent Bugnion digs hard into the design-time issue of the designer actually being able to see what is being...( read more )...(read more)

Detecting design time mode in WPF and Silverlight

Posted: 05 Sep 2009 05:07 AM PDT

We already talked often about providing design time data to your designers in Windows Presentation Foundation and in Silverlight, thus enabling them to work visually in design editors such as Expression Blend or the Visual Studio designer (codenamed Cider...( read more )...(read more)

Silverlight Cream for September 04, 2009 - 2 -- #684

Posted: 04 Sep 2009 10:16 PM PDT

In this Issue: Victor Gaudioso , Al Pascual , Colin Blair , Giovanni Montrone , and David Kelley . Shoutout: Best wishes go out from SilverlightCream to Justin Angel . I'm sure everyone's heard the news by now. I'm pretty well positive that his energy...( read more )...(read more)

Visual C++: Samples Included in Visual C++ (Visual C++ 2008)

Posted: 04 Sep 2009 03:45 PM PDT

This section lists the sample applications included with Visual C++. For instance, to experiment with a simple query from an existing SQL database using the console, try "Data Sample: Demonstrates Simple Access to a SQL Database".

Friday, September 4, 2009

MSDN Social Bookmarks going away :(

MSDN Social Bookmarks going away :(


MSDN Social Bookmarks going away :(

Posted: 04 Sep 2009 10:28 AM PDT

I suppose in the back of my mind I wondered how long that would last… I just noticed tonight there's a banner that says it's shutting down October 1. Following the rule of not putting all your eggs into one basket… or at least a basket you don't own,...( read more )...(read more)

Updated: !exploitable Crash Analyzer Tool

Posted: 04 Sep 2009 10:40 AM PDT

View more information on the Windows debugging extension (Windbg) that provides automated crash analysis and security risk assessment.

Built-in Developer Tools Featured in IE8

Posted: 04 Sep 2009 10:40 AM PDT

In this video, Matt Hester gives a 5-minute tour of Internet Explorer 8's built-in developer tools.

Running Linux on Hyper-V

Posted: 04 Sep 2009 10:40 AM PDT

This webcast will cover the benefits and challenges of virtualizing Linux on Hyper-V - Microsoft's hypervisor included in Windows Server 2008.

Windows 7 and Virtualization Technology

Posted: 04 Sep 2009 07:22 AM PDT

Ok so this isn't a game development related post, but gamers and game developers are usually more interested in their hardware than the casual user so I hope this isn't too far off base. You've probably heard already that Windows 7 has an XP mode to run...( read more )...(read more)

Silverlight Tour Quebec in October

Posted: 04 Sep 2009 05:33 AM PDT

  The Silverlight Tour is stopping again in Québec, Qc so get ready to enlighten your RIA app with this top Silverlight 3 training . When: October 14-16 Where: Québec, Qc Registration (Fr): http://www.runatserver.com/SilverlightTraining.aspx If you...( read more )...(read more)

ASP.NET, HTML, JavaScript Snippet Support (VS 2010 and .NET 4.0 Series)

Posted: 04 Sep 2009 02:12 AM PDT

This is the sixth in a series of blog posts I'm doing on the upcoming VS 2010 and .NET 4 release. Today's post covers another useful improvement in VS 2010 – HTML/ASP.NET/JavaScript snippet support.  Snippets allow you to be more productive within source view by allowing you to create chunks of code and markup that you can quickly apply and use in your application with a minimum of character typing. Visual Studio has supported the concept of "snippets" for VB and C# in previous releases – but not for HTML, ASP.NET markup and JavaScript.  With VS 2010 we now support snippets for these content types as well. Using ASP.NET Snippets Let's walkthrough how we can use snippets to quickly implement a common security scenario.  Specifically...(read more)

Silverlight User Group Bulgaria Meeting

Posted: 04 Sep 2009 01:45 AM PDT

The summer is ending and its time to start the new season for the Silverlight User Group meetings. Next meeting is scheduled for next Tuesday, 08 September, 18:30h at the local Microsoft Office. There will be 2 sessions: What's new in Silverlight 3 and...( read more )...(read more)

Exploring the Service Provider track – Fabrikam Shipping Part II (Solution)

Posted: 03 Sep 2009 09:45 PM PDT

Now that we presented the scenario & the requirements , let's take a look at the solution. What is conceptual solution we propose? Fabrikam Shipping in the pre-Claims era: This diagram shows Fabrikam Shipping today if used by Adatum (no claims, no federation): You will see the usual suspects for a typical .NET web application. Furthermore, Fabrikam is using standard providers for authentication, authorization and profile. In this configuration, everyone in Adatum must use, of course, user name & passwords. The username is the handle associated with a role in the roles database, which drives application behavior (what you can do). In the example, John from sales, can only Order New Shipments, but Peter from Customer Service, can Manage...(read more)

Silverlight Cream for September 03, 2009 - 2 -- #683

Posted: 03 Sep 2009 09:59 PM PDT

In this Issue: Timmy Kokke , Expression Blend and Design , and Peter Gerritsen . Shoutouts: Before I forget again, again... check out SilverlightXP.net , a collaboration between Loek van den Ouweland and Fons Sonnemans . It's not been up long and there...( read more )...(read more)

Silverlight Week in Seattle Sept 14 - 17

Posted: 03 Sep 2009 05:20 PM PDT

If you're in the Seattle area you are in for a week of Silverlight events.  Sometimes the stars align and all the Silverlight geeks land in the same city at the same time.  And even if you're not in the area the FireStarter event will broadcast...( read more )...(read more)

Thursday, September 3, 2009

How you chose and learned Silverlight

How you chose and learned Silverlight


How you chose and learned Silverlight

Posted: 03 Sep 2009 12:47 PM PDT

A few of us in the Silverlight team have been talking about various things and speculating on how we think the universe works. We've been wondering how people best learn at different levels and how they come to decisions on what tools of their trade to Read More......(read more)

How you chose and learned Silverlight

Posted: 03 Sep 2009 12:47 PM PDT

A few of us in the Silverlight team have been talking about various things and speculating on how we think the universe works. We've been wondering how people best learn at different levels and how they come to decisions on what tools of their trade to...( read more )...(read more)

Silverlight Cream for September 03, 2009 -- #682

Posted: 03 Sep 2009 06:22 AM PDT

In this Issue: David Justice , Tim Heuer , Christian Schormann , Shawn Wildermuth , Matthias Shapiro , and Colin Blair . Shoutout: Shawn Wildermuth reports that his Silverlight Data Examples Have Been Updated! From SilverlightCream.com : XAML Default...( read more )...(read more)

Western European ReMix Tour 2009

Posted: 02 Sep 2009 07:20 AM PDT

I was lucky enough to be asked to go on a brief western European ReMix tour.  Our goal with these events is to bring the best of Mix 09 (and some new stuff) closer to where some of the best developers and designers in the world live.  A few...( read more )...(read more)

Compiling pixel shaders for Silverlight

Posted: 02 Sep 2009 03:41 PM PDT

I saw a note on Twitter come through yesterday about building pixel shaders for Silverlight in Visual Studio. The question, from @blamborn was: Does anyone know if there is a Shader Effects BuildTask like the #WPF one here http://bit.ly/gCkNT only for...( read more )...(read more)

Debugging .NET apps for .NET 4.0

Posted: 02 Sep 2009 09:45 AM PDT

With Visual Studio 2010 and .NET 4.0 getting ready to be shipped sometime in the next year, I wanted to see what were peoples ideas for how to debug applications that were written with them.  Are you happy in production with what you are currently doing?  Do you use SOS.dll to troubleshoot problems? SOS The main place I am really interested in is production debugging.  Is SOS a sufficient tool to get the data that you need?  If you had another version of SOS for .NET 4.0, would you be happy with the features it has or would you want something more? Debugger I understand that using a typical debugger can be very difficult for people.  If you don't know what you are looking at, it can be very difficult to understand what...(read more)

Western European ReMix Tour 2009

Posted: 02 Sep 2009 07:20 AM PDT

I was lucky enough to be asked to go on a brief western European ReMix tour.  Our goal with these events is to bring the best of Mix 09 (and some new stuff) closer to where some of the best developers and designers in the world live.  A few of my co-workers are going to be heading out on the tour as well including: Ux expert Arturo Toledo , Adam Kinney of expression fame and architect extraordinaire Simon Guest .  So you don't want to miss this.   Here is as much of my schedule as I know today… If you are in the area, please try to join me!   Monday 28 September(Brussels) Visual Studio User Group 18:00 – 10 Years of Framework Design Guidelines Check out the details: http://visug.be/Eventdetails/tabid/95/EventId/16/Default...(read more)

Compiling pixel shaders for Silverlight

Posted: 02 Sep 2009 03:41 PM PDT

I saw a note on Twitter come through yesterday about building pixel shaders for Silverlight in Visual Studio. The question, from @blamborn was: Does anyone know if there is a Shader Effects BuildTask like the #WPF one here http://bit.ly/gCkNT only for Read More......(read more)

Silverlight Data Examples Have Been Updated!

Posted: 02 Sep 2009 09:44 AM PDT

URL : http://www.silverlightdata.com If you've never had the chance to visit my sister site ( http://www.silverlightdata.com ), now's a good time. I've updated my examples there to include my MVVM, Prism and Declarative UI examples (to go with the skinning...( read more )...(read more)

Scott Hanselman's 2009 Ultimate Developer and Power Users Tool List for Windows

Posted: 02 Sep 2009 03:18 AM PDT

TAX DEDUCTIBLE DONATIONS: If you enjoyed this post, or this blog, please make a secure tax-deductible donation directly to the American Diabetes Association . Please read my personal story about life as a diabetic and donate today . ALL PROCEEDS will...( read more )...(read more)

Tuesday, September 1, 2009

MVVM Study Part 3 – Why?

MVVM Study Part 3 – Why?


MVVM Study Part 3 – Why?

Posted: 01 Sep 2009 01:39 PM PDT

There are several major architectural approaches used in building user interfaces. MVC, MVP and MVVM seam to be the most popular of the bunch. From among them, MVVM has risen to the top of the stack for WPF and Silverlight developers. Even ignoring the...( read more )...(read more)

Introducing The Windows Cache Extension for PHP

Posted: 01 Sep 2009 11:44 AM PDT

Today the Microsoft IIS team has released the beta of the Windows Cache Extension 1.0 for PHP . The Windows Cache Extension for PHP is a PHP accelerator , that is used to increase the speed of PHP applications running on the Windows operating systems. Any PHP application can take advantage of the functionality provided by the Windows Cache Extension for PHP without any code modifications. All that is required is that the extension is enabled and loaded by the PHP engine. Install the Windows Cache Extension 1.0 for PHP - Beta or, download: Windows Cache Extension 1.0 for PHP 5.2 - Beta Windows Cache Extension 1.0 for PHP 5.3 – Beta   Follow the instructions at " Using Windows Cache Extension for PHP " to install, enable and configure...(read more)

Silverlight minor update released today

Posted: 01 Sep 2009 10:45 AM PDT

Small public service announcement here for Silverlight developers…we released a minor update to the runtime and SDK today. You may see this referred to as Silverlight 3 GDR2 . Formally it is version 3.0.40818.0. Usually when a release pops up people are Read More......(read more)

Silverlight minor update released today

Posted: 01 Sep 2009 10:45 AM PDT

Small public service announcement here for Silverlight developers…we released a minor update to the runtime and SDK today. You may see this referred to as Silverlight 3 GDR2 . Formally it is version 3.0.40818.0. Usually when a release pops up people are...( read more )...(read more)

Game Camp User Group Meeting

Posted: 01 Sep 2009 09:06 AM PDT

On Thursday 3rd of September, we're having another Game Camp User Group meeting. As always, great content and nothing you should miss out on. We're hosting it, as always, in Oslo at NITH. The agenda consist of the following: 18:00 - 19:00 "Creating...( read more )...(read more)

Enter "Code 7" to Win a Trip to PDC09

Posted: 01 Sep 2009 10:38 AM PDT

Get in it to win it! The Code 7 Contest recognizes and rewards applications built on the Windows 7 platform which are innovative, cool and showcase the new features in Windows 7.

How Do I: Use the SDL Process Template Documentation and Reporting?

Posted: 01 Sep 2009 10:38 AM PDT

This 5-minute video will help you learn how to use the new SDL Process Template's document templates and security metrics reporting. The built-in SDL document templates will help you jump start your use of the Microsoft SDL.

Build the Newest Silverlight 3 Applications with Expression

Posted: 01 Sep 2009 10:38 AM PDT

Silverlight 3 and Expression Studio 3 help you create and deploy Web sites and rich Internet applications more easily than ever. Download Silverlight 3 and the Expression Studio 3 60-day trial today.

Data Templating Overview

Posted: 01 Sep 2009 10:15 AM PDT

Learn how to use the data templating features in WPF to define the presentation of your data

Compiler Warning C4789

Posted: 01 Sep 2009 09:29 AM PDT

When Visual Studio 2010 ships, it will have improvements to warning C4789; allowing it to catch more cases of buffer overrun. This blog post will cover what C4789 warns about, and how to resolve the warning.

What does C4789 mean?

 

When compiling your source file, you may receive the warning: "warning C4789: destination of memory copy is too small."

This message means that the compiler has detected a possible buffer overrun in your code.

Example 1

Let's say we have the source file a.cpp that contains the following:

1: #include <memory.h>

2:

3: int p[1];

4:

5: void bar() {

6:     memset(&p[1], 1, sizeof(int));

7: }

 

From the "Visual Studio 2008 Command Prompt", if you compile this with the command:

cl /c /O2 a.cpp

You will receive the warning:

a.cpp(6) : warning C4789: destination of memory copy is too small

For the example above, the compiler has detected a buffer overrun for the variable 'p'. 'p' has been allocated as an array with one element. Arrays are zero-indexed, so the memset on line 6 is taking the address of the second element of an array; this means that we are actually writing to memory outside the array, corrupting memory!

In this case, the user most likely meant to memset the first element, and thus to fix this issue, the memset would be changed to

memset(&p[0], 1, sizeof(int));

 

Typical User Scenarios

 

In practice, a lot of buffer overruns will not be as obvious as Example 1, so I'll provide some more examples to help you in your investigations.

Example 2

Let's say we have the source file a.cpp that contains the following:

1:  short G1;

2:

3:  void foo(int * x)

4:  {

5:      *x = 5;

6:  }

7:

8:  void bar() {

9:     foo((int *)&G1);

10: }

From the "Visual Studio 2010 Command Prompt", if you compile this with the command:

cl /c /O2 a.cpp

You will receive the warning:

a.cpp(9) : warning C4789: destination of memory copy is too small

In this example, we've created a variable 'G1' of size short (which is only two bytes), but we've taken the address of it and casted it to 'int *' to pass to 'foo'. 'foo' then writes 4 bytes to the memory location pointed at by 'x'. As 'G1' is only 2 bytes in length, the store "*x = 5" will write past 'G1', resulting in a buffer overrun.

There are a couple of important things to note about this example. This buffer overrun will only be caught with the improvements made in Visual Studio 2010. Also, this warning is caught by inlining 'foo' into 'bar'. This means that this buffer overrun is only caught when optimizations are enabled.

To fix the buffer overrun in Example 2, we declare 'G1' as int. If that isn't an option, we can create a new variable to pass to 'foo,' and assign that variable to 'G1' (which truncates the int to a short):

   int y;

   foo(&y);

   G1 = y;

 

Example 3

Let's say we have the source file a.cpp that contains the following:

1:  int G1;

2:  int G2;

3:

4:  void foo(int ** x)

5:  {

6:      *x = &G2;

7:  }

8:

9:  void bar() {

10:     foo((int *)&G1);

11: }

From the "Visual Studio 2010 X64 Cross Tools Command Prompt", if you compile this with the command:

cl /c /O2 a.cpp

You will receive the warning:

a.cpp(10) : warning C4789: destination of memory copy is too small

This example is exactly like Example 2 with a key difference. We've casted "int" to "int *". On x86, this is a harmless cast (int and int * are the same size, 4 bytes). However, on x64, "int" is 4 bytes, and "int *" is 8 bytes, so this code is no longer correct when this code is run on x64.

C4789 False Positives

 

You may hit cases of C4789 where the warning is incorrect. This can happen because the compiler detects a buffer overrun along a code path that will never fire.

Example 4

1:  __int64 G1;

2:  int lengthOfG1 = 8;

3:

4:  void foo(char * x, int len) {

5:      if (len > 8) {

6:          x[8] = 1;

7:      }

8:  }

9:

10: void bar() {

11:     foo((char *)&G1, lengthOfG1);

12: }

From the "Visual Studio 2010 Command Prompt", if you compile this with the command:

cl /c /O2 a.cpp

You will receive the warning:

a.cpp(11) : warning C4789: destination of memory copy is too small

In this example, the compiler thinks that 'G1' can be buffer overrun because of "x[8] = 1" would assign outside of the size of 'G1.' However, as long as 'lengthOfG1' is the correct length of 'G1,' "x[8] = 1" will never fire for 'G1,' and thus a buffer overrun will never occur.

For some of these false positives, the only option will be to disable the warning. In this particular example, however, changing "int lengthOfG1 = 8" to

const int lengthOfG1 = 8;

would solve the problem.

Workarounds

 

If you have proven that the warning is a false positive, there are a couple of different ways to disable the warning.

1.       Disable the warning for one function (recommended)

2.       Disable the warning for all functions

Disable the warning for one function

The compiler allows you to disable a warning for a particular function. This is done by putting

#pragma warning ( disable : 4789 )

before the function, and putting

#pragma warning ( default : 4789 )

after the function. This will disable the warning (in this case warning 4789) for that function (and any functions which inline it).

Example 5

1:  __int64 G1;

2:  int lengthOfG1 = 8;

3:

4:  #pragma warning ( disable : 4789 )

5:  void foo(char * x, int len) {

6:      if (len > 8) {

7:          x[8] = 1;

8:      }

9:  }

10: #pragma warning ( default : 4789 )

11:

12: void bar() {

13:     foo((char *)&G1, lengthOfG1);

14: }

15:

16: void bar1() {

17:     foo((char *)&G1, 9);

18: }

With the #pragma around 'foo,' you will receive no warnings; while without it you will receive the warnings:

a.cpp(13) : warning C4789: destination of memory copy is too small

a.cpp(17) : warning C4789: destination of memory copy is too small

You can also choose to disable the warning for one of the functions where the warning occurs. In the example above, we could put the #pragma around 'bar' instead of 'foo', and then we'd eliminate the warning for line 13, but still receive the warning on line 17.

Disable the warning for all functions

If you need to ignore warning 4789 completely, you can specify /wd4789 on the command line.

cl /c /O2 /wd4789 a.cpp

This option isn't recommended as it will hide potentional buffer overruns in your code.

 

Multi-Monitor Support (VS 2010 and .NET 4 Series)

Posted: 31 Aug 2009 10:37 PM PDT

This is the fourth in a series of blog posts I'm doing on the upcoming VS 2010 and .NET 4 release. Today's post covers one of the general IDE improvements that I know a lot of people are already eagerly looking forward to with VS 2010 – multiple-monitor...( read more )...(read more)

Multi-Monitor Support (VS 2010 and .NET 4 Series)

Posted: 31 Aug 2009 10:37 PM PDT

This is the fourth in a series of blog posts I'm doing on the upcoming VS 2010 and .NET 4 release. Today's post covers one of the general IDE improvements that I know a lot of people are already eagerly looking forward to with VS 2010 – multiple-monitor support. Using Multiple Monitors VS 2008 hosts all documents/files/designers within a single top-level window – which unfortunately means that you can't partition the IDE across multiple monitors. VS 2010 addresses this by now allowing editors, designers and tool-windows to be moved outside the top-level window and positioned anywhere you want, and on any monitor on your system.  This allows you to significantly improve your use of screen real-estate, and optimize your overall development...(read more)

7 Stages of new language keyword grief

Posted: 31 Aug 2009 10:27 PM PDT

My last post on the new dynamic keyword sparked a range of reactions which are not uncommon when discussing a new language keyword or feature. Many are excited by it, but there are those who feel a sense of…well…grief when their language is "marred" by a new keyword. C#, for example, has seen it with the var keyword and now with the dynamic keyword. I don't know, maybe there's something to this idea that developers go through the seven stages of grief when their favorite programming language adds new stuff ( Disclaimer: Actually, I'm totally making this crap up ) 1. Shock and denial. With the introduction of a new keyword, initial reactions include shock and denial. No way are they adding lambdas to the language! I had a hard enough time with...(read more)

Silverlight Cream for August 31, 2009 -- #680

Posted: 31 Aug 2009 10:06 PM PDT

In this Issue: Rick Barraza , Colin Blair , Joe Stagner , Chris Klug , Andrea Boschin , Laurent Bugnion , and Al Pascual . Shoutout: Blendables announced a New Desklighter Build in Labs , but I can't seem to get the link to open for me... give it a shot...( read more )...(read more)

querySelectorAll on old IE versions: something that doesn’t work

Posted: 31 Aug 2009 06:03 PM PDT

In today's post, I'm going to show an interesting technique to solve a problem and then I will tear it to pieces and explain why it is actually useless. I believe that negative results should also be published so that we can save other people from wasting time trying the same thing. So here goes… A few days ago, a post on Ajaxian proposed a new version of a somewhat old technique to implement querySelectorAll on old versions of IE, using the browser's native CSS engine. That sounds like a great idea at first, and the hack is quite clever. The idea is to dynamically add a CSS rule to the document that has the selector that you want to evaluate, and an expression that adds the matched elements to a global array. When I read this, it reminded me...(read more)

Importing Adobe Illustrator files in Expression Blend 3

Posted: 31 Aug 2009 05:13 PM PDT

I previously wrote a few blog posts about importing Adobe Photoshop files into Expression Blend 3. This post focuses on the ability to import an Adobe Illustrator .ai file and converting the content to Silverlight 3 or WPF objects. You can also use this...( read more )...(read more)

Simple Color Animation in Blend for a Button State

Posted: 31 Aug 2009 04:59 PM PDT

This tutorial shows off a few concepts in Silverlight that Blend makes very simple to work with including: Custom Control creation, Color Animation, Resources and State Management. Although you can not animate between Brushes during different States,...( read more )...(read more)

My SketchFlow .NET Rocks TV Episode is up (DNR-TV)

Posted: 31 Aug 2009 12:44 PM PDT

URL : http://dnrtv.com/default.aspx?ShowID=148 I am excited to announce that my new DNR-TV episode is up at .NET Rocks. Carl and I visited while we were both at DevTeach to show off Blend's new SketchFlow functionality. If you have time, give it a spin...( read more )...(read more)

Silverlight Drum Machine

Posted: 31 Aug 2009 03:08 PM PDT

A simple looping drum machine that allows you to select which beat the sample will play and also lets you adjust the tempo....(read more)

Data Templating Overview

Posted: 31 Aug 2009 03:25 PM PDT