<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/atom.xsl" media="screen"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-US"><title type="html">Adrian Mascarenhas' blog</title><subtitle type="html">My take on software, testing, Expression Interactive Designer and other cool stuff.</subtitle><id>http://blogs.msdn.com/adrianma/atom.xml</id><link rel="alternate" type="text/html" href="http://blogs.msdn.com/adrianma/default.aspx" /><link rel="self" type="application/atom+xml" href="http://blogs.msdn.com/adrianma/atom.xml" /><generator uri="http://communityserver.org" version="2.1.61025.2">Community Server</generator><updated>2006-02-10T09:40:00Z</updated><entry><title>Silverlight Beta2  released.</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/adrianma/archive/2008/06/08/silverlight-beta2-released.aspx" /><id>http://blogs.msdn.com/adrianma/archive/2008/06/08/silverlight-beta2-released.aspx</id><published>2008-06-09T04:33:00Z</published><updated>2008-06-09T04:33:00Z</updated><content type="html">&lt;P&gt;We just released &lt;A class="" href="http://www.microsoft.com/silverlight/" target=_blank mce_href="http://www.microsoft.com/silverlight/"&gt;silverlight beta2&lt;/A&gt;. Try it out and send me any feedback you have.&lt;/P&gt;
&lt;P&gt;Also, try out the &lt;A class="" href="http://www.nbcolympics.com/video/index.html" mce_href="http://www.nbcolympics.com/video/index.html"&gt;NBC olympics site&lt;/A&gt; powered by silverlight. Click on any of the videos and it will launch the silverlight player.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8582700" width="1" height="1"&gt;</content><author><name>Adrian Mascarenhas</name><uri>http://blogs.msdn.com/members/Adrian+Mascarenhas.aspx</uri></author><category term="Silverlight" scheme="http://blogs.msdn.com/adrianma/archive/tags/Silverlight/default.aspx" /></entry><entry><title>First two weeks.</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/adrianma/archive/2007/09/10/first-two-weeks.aspx" /><id>http://blogs.msdn.com/adrianma/archive/2007/09/10/first-two-weeks.aspx</id><published>2007-09-10T21:30:00Z</published><updated>2007-09-10T21:30:00Z</updated><content type="html">&lt;P&gt;So far I have completed my first two weeks on the Silverlight team. The transition has been quite hectic but fun:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Managed to Native code. I have been training my eyes and brains to read native code. Looking at managed code for awhile can&amp;nbsp;pamper you quite a bit.&lt;/LI&gt;
&lt;LI&gt;Understanding the technology and terminology around it.&lt;/LI&gt;
&lt;LI&gt;Understanding the platform space. It is different from the tooling space.&lt;/LI&gt;
&lt;LI&gt;The team is bigger. The challenge is figuring out what areas need your attention and what you can ignore.&lt;/LI&gt;
&lt;LI&gt;Office move. My office move from previous office has not yet been done. So, I am living in two offices in two different buildings right now.&lt;/LI&gt;
&lt;LI&gt;Reading blogs for SL, WPF and Expression.&lt;/LI&gt;
&lt;LI&gt;Identifying contacts in the team from dev, test, pm.&lt;/LI&gt;&lt;/UL&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=4855411" width="1" height="1"&gt;</content><author><name>Adrian Mascarenhas</name><uri>http://blogs.msdn.com/members/Adrian+Mascarenhas.aspx</uri></author></entry><entry><title>Moving on... Silverlight 1.0</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/adrianma/archive/2007/09/05/moving-on-silverlight-1-0.aspx" /><id>http://blogs.msdn.com/adrianma/archive/2007/09/05/moving-on-silverlight-1-0.aspx</id><published>2007-09-06T09:07:00Z</published><updated>2007-09-06T09:07:00Z</updated><content type="html">&lt;P&gt;After having worked on the Expression Blend tool for some time, I have decided to move on to &lt;A class="" href="http://www.microsoft.com/silverlight/" target=_blank mce_href="http://www.microsoft.com/silverlight/"&gt;Silverlight &lt;/A&gt;team. It has been fun learning about the tooling story, now its time for me to delve into the platform side of things.&lt;/P&gt;
&lt;P&gt;Today, we made some big announcements about Silverlight. We released the Silverlight 1.0 version.&amp;nbsp; I highly encourage you to download it and try it out. This version is centered around a rich media experience and javascript integration. &lt;/P&gt;
&lt;P&gt;Feel free to send any feedback my way and I will do my best to pass it on to the right folks in the silverlight team.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=4780520" width="1" height="1"&gt;</content><author><name>Adrian Mascarenhas</name><uri>http://blogs.msdn.com/members/Adrian+Mascarenhas.aspx</uri></author></entry><entry><title>Silverlight</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/adrianma/archive/2007/05/13/silverlight.aspx" /><id>http://blogs.msdn.com/adrianma/archive/2007/05/13/silverlight.aspx</id><published>2007-05-14T04:51:00Z</published><updated>2007-05-14T04:51:00Z</updated><content type="html">&lt;P&gt;If you are not yet caught up on &lt;A class="" href="http://www.microsoft.com/silverlight/" mce_href="http://www.microsoft.com/silverlight/"&gt;Silverlight&lt;/A&gt;, I highly encourage you to do so.&amp;nbsp; You can download the preview versions of Expression tools that support silverlight from &lt;A class="" href="http://www.microsoft.com/silverlight/design-content.aspx" mce_href="http://www.microsoft.com/silverlight/design-content.aspx"&gt;here&lt;/A&gt;.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=2613353" width="1" height="1"&gt;</content><author><name>Adrian Mascarenhas</name><uri>http://blogs.msdn.com/members/Adrian+Mascarenhas.aspx</uri></author><category term="Avalon &amp;amp; EID" scheme="http://blogs.msdn.com/adrianma/archive/tags/Avalon+_2600_amp_3B00_+EID/default.aspx" /></entry><entry><title>The Customer is always right.</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/adrianma/archive/2007/01/21/the-customer-is-always-right.aspx" /><id>http://blogs.msdn.com/adrianma/archive/2007/01/21/the-customer-is-always-right.aspx</id><published>2007-01-22T08:42:00Z</published><updated>2007-01-22T08:42:00Z</updated><content type="html">&lt;P&gt;This a well known phrase and I have heard so many times at so many different places. But I got to experience it in a special way this week. As you know, I have been part of a product team known as Blend for nearly 4 years now and we have always been making decisions based on what we think our customers need.&amp;nbsp; But hardly did we get to meet our customers to find out whether we made the right or in some cases wrong decisions. &lt;/P&gt;
&lt;P&gt;When I heard of the opportunity to visit one of our customers, I immediatley jumped on it. So, I got to visit a team of designers down in Santa Clara, California, who are actively using Blend to build, oops wrong term,&amp;nbsp;I should say design their UI. I got to meet them, see them use Blend and also help answer any questions they had. While working in their midst, I was thrilled to see how excited they are to use our tool and how empowered they really feel. I also saw some of the areas of the product where we could have done a better job, but ran out of time. &lt;/P&gt;
&lt;P&gt;This customer experience made me realize the impact of the decisions we make during the product lifecycle on our customers. The bottom line is that when youare building a product for your customer, the customer is always right. We have to clearly understand their requirements and strive to give them the best possible experience using our tool.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;I learnt a lot and took a lot with me back home, including a cold...&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=1506271" width="1" height="1"&gt;</content><author><name>Adrian Mascarenhas</name><uri>http://blogs.msdn.com/members/Adrian+Mascarenhas.aspx</uri></author><category term="Avalon &amp;amp; EID" scheme="http://blogs.msdn.com/adrianma/archive/tags/Avalon+_2600_amp_3B00_+EID/default.aspx" /></entry><entry><title>eXpression Slides aka XSlides - Bring your presentations to life.</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/adrianma/archive/2007/01/16/expression-slides-aka-xslides-bring-your-presentations-to-life.aspx" /><link rel="enclosure" type="application/x-zip-compressed" length="352276" href="http://blogs.msdn.com/adrianma/attachment/1482255.ashx" /><id>http://blogs.msdn.com/adrianma/archive/2007/01/16/expression-slides-aka-xslides-bring-your-presentations-to-life.aspx</id><published>2007-01-17T10:29:00Z</published><updated>2007-01-17T10:29:00Z</updated><content type="html">&lt;P&gt;Disclaimer -&amp;nbsp;This is not a professional tool to enhance your presentation experience as the title of the blog post&amp;nbsp;implies. It is merely a&amp;nbsp;couple of hours worth of effort that&amp;nbsp;I and a colleague of mine spent&amp;nbsp;using our tool as our customers would use.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;This is an old project that I and Mario had created for one of our app bashes. In case you are wondering, an app bash is one of the myriad of&amp;nbsp; test activites that we do as a team where everyone for a day stops what they are doing and uses Blend as our customers would use.&amp;nbsp;The intent is&amp;nbsp;to create&amp;nbsp;an user&amp;nbsp;application that validates end-to-end customer scenarios. This helps to find bugs and workflow issues.&lt;/P&gt;
&lt;P&gt;The vision for XSlides was to enable folks to use&amp;nbsp;the power of&amp;nbsp;WPF to&amp;nbsp;easily create rich, animated presentation slides using xaml and then use our presentation viewer for their presentations. Another key goal, at the time, was to get folks to create their slides in Blend itself. Our future goal was to create an application that would allow you to organize your slides, change the themes et. al. during the presentation, but we did not get to this. &lt;/P&gt;
&lt;P&gt;We identified a key Avalon perf issue while building this application and if your run it, you will notice it too. When run in full screen mode, the animations get choppy since they are now being software rendered, but if you minimize it then it uses the full power of hardware acceleration and is much more performant. The perf issue was related to having a visual brush inside a viewport. Unfortunately, this bug did not get fixed in current version of WPF.&lt;/P&gt;
&lt;P&gt;We provide a few sample templates for your slides - clouds, ring of light and image animation. You can easily create your own templates by adding it to the resource dictionary. Also, the organization is pretty rudimentary (we just had a few hours to come up with this app). Basically, name your slides sequentially and we will iterate throught them accordingly.&lt;/P&gt;
&lt;P&gt;The source code is attached to this post. Feel free to use it and bring your presentations to life!&lt;/P&gt;
&lt;P&gt;Here are some snapshots:&lt;/P&gt;
&lt;P mce_keep="true"&gt;&lt;IMG style="WIDTH: 588px; HEIGHT: 400px" height=400 src="http://blogs.msdn.com/photos/adrian_mascarenhas/images/1482263/original.aspx" width=400 mce_src="http://blogs.msdn.com/photos/adrian_mascarenhas/images/1482263/original.aspx"&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&lt;IMG style="WIDTH: 588px; HEIGHT: 400px" height=400 src="http://blogs.msdn.com/photos/adrian_mascarenhas/images/1482268/original.aspx" width=400 mce_src="http://blogs.msdn.com/photos/adrian_mascarenhas/images/1482268/original.aspx"&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&lt;IMG style="WIDTH: 588px; HEIGHT: 400px" height=400 src="http://blogs.msdn.com/photos/adrian_mascarenhas/images/1482269/original.aspx" width=400 mce_src="http://blogs.msdn.com/photos/adrian_mascarenhas/images/1482269/original.aspx"&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=1482255" width="1" height="1"&gt;</content><author><name>Adrian Mascarenhas</name><uri>http://blogs.msdn.com/members/Adrian+Mascarenhas.aspx</uri></author><category term="Avalon &amp;amp; EID" scheme="http://blogs.msdn.com/adrianma/archive/tags/Avalon+_2600_amp_3B00_+EID/default.aspx" /></entry><entry><title>Vista!</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/adrianma/archive/2007/01/15/vista.aspx" /><id>http://blogs.msdn.com/adrianma/archive/2007/01/15/vista.aspx</id><published>2007-01-15T11:53:00Z</published><updated>2007-01-15T11:53:00Z</updated><content type="html">&lt;P&gt;I have been using only Vista for a while now as my primary OS. I have it on my work laptop and desktop. Also, I do all my coding on Vista. So far, I have to say, I really like it. It has not crashed, the side bar is really cool (especially the stock ticker gadget). The animations and the UI are cool.&lt;/P&gt;
&lt;P&gt;The LUA(limited user account) mode can be a little annoying at times with several dialogs to wade through, but I have grown to like it as it tells me exactly what and who is attempting to install anything on my machine and whether I want to go ahead with it or not. It gives me more control on whats on my machine.&lt;/P&gt;
&lt;P&gt;Also, the vista perfomance index can help you back your claim for a machine upgrade at work:)&lt;/P&gt;
&lt;P&gt;I have not really looked under the hood to know how Vista is an improvement over XP, but so far I just feel a lot better on Vista than on XP.... maybe its just a perception, maybe there is a lot more to Vista than most folks think....&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=1469134" width="1" height="1"&gt;</content><author><name>Adrian Mascarenhas</name><uri>http://blogs.msdn.com/members/Adrian+Mascarenhas.aspx</uri></author><category term="General" scheme="http://blogs.msdn.com/adrianma/archive/tags/General/default.aspx" /></entry><entry><title>Not in V1, sorry.</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/adrianma/archive/2007/01/15/not-in-v1-sorry.aspx" /><id>http://blogs.msdn.com/adrianma/archive/2007/01/15/not-in-v1-sorry.aspx</id><published>2007-01-15T11:38:00Z</published><updated>2007-01-15T11:38:00Z</updated><content type="html">&lt;P&gt;Last week, I actively engaged in answering newsgroups posts for Blend. Here are&amp;nbsp;some features not supported for authroing in&amp;nbsp;V1. However, if you create it manually by editing xaml yourself and then load the project in Blend, Blend should be able to handle it just fine. If it crashes, then please let us know and we will try to fix it before RTM. &lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A class="" href="http://msdn2.microsoft.com/en-us/library/system.windows.navigation.navigationwindow.aspx" mce_href="http://msdn2.microsoft.com/en-us/library/system.windows.navigation.navigationwindow.aspx"&gt;NavigationWindow&lt;/A&gt;: We ran into workflow related issues and decided not to support this for V1. If you want to create a NavigationWindow in your project:&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;To create a NavigationWindow. In an empty xaml file, paste the following and &lt;BR&gt;point the source to whichever xaml you want in your project, in the example &lt;BR&gt;below it is pointing to Page1.xaml.&lt;BR&gt;&amp;lt;NavigationWindow&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; xmlns="&lt;A href="mhtml:{C8623231-2303-44DE-B8A6-AF316DA58BCF}mid://00000044/!x-usc:http://schemas.microsoft.com/winfx/2006/xaml/presentation"&gt;http://schemas.microsoft.com/winfx/2006/xaml/presentation&lt;/A&gt;"&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; xmlns:x="&lt;A href="mhtml:{C8623231-2303-44DE-B8A6-AF316DA58BCF}mid://00000044/!x-usc:http://schemas.microsoft.com/winfx/2006/xaml"&gt;http://schemas.microsoft.com/winfx/2006/xaml&lt;/A&gt;"&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Title="NavigationWindow Sample"&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Source="Page1.xaml" /&amp;gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;Another simpler way to convert a Window to NavigatinWindow, is to replace the &amp;lt;Window&amp;gt; tags with &amp;lt;NavigationWindow&amp;gt; and wrap the child element of Window with &amp;lt;NavigationWindow.Content&amp;gt; tags.&lt;BR&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A class="" href="http://msdn2.microsoft.com/en-gb/library/system.windows.hierarchicaldatatemplate.aspx" mce_href="http://msdn2.microsoft.com/en-gb/library/system.windows.hierarchicaldatatemplate.aspx"&gt;HierarchicalDataTemplate&lt;/A&gt;: Blend should be able to load any hand-created hierarchicaldatatemplates. But you cannot author them for V1. You will have to author them in xaml.&lt;/LI&gt;&lt;/UL&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;XBAP and Deployment: We tried doing this, but decided to scale back for V1 as we ran into a bunch of implementation and workflow issues.&lt;/LI&gt;&lt;/UL&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Code Editng: Here too, we decided to scale back. Given the time we had for V1, we could not put in a code editor that was rich, powerful and well integrated with the rest of our tool. But we did get in good amount of Visual stuido interop code. So, folks can seamlessly modify code with VS and Blend will be able to pick up the changes. To edit code files, just right click on the project item and choose 'edit externally', this will open up VS with the code file. I usually prefer to do an 'edit externally' on the solution itself so that it opens the entire solution in VS instead of just the particular code file.&lt;/LI&gt;&lt;/UL&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;DataGrid:Blend only supports what is in WPF and unfortunately, there is no DataGrid in WPF. You could implement your own datagrid using ListView. But if you are really bent on using a datagrid, then you can use "crossbow" to use winforms datagrid inside your wpf app. Here is a post that shows you how:&lt;A href="http://geekswithblogs.net/lorint/archive/2006/09/09/90740.aspx"&gt;http://geekswithblogs.net/lorint/archive/2006/09/09/90740.aspx&lt;/A&gt;&lt;BR&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=1469072" width="1" height="1"&gt;</content><author><name>Adrian Mascarenhas</name><uri>http://blogs.msdn.com/members/Adrian+Mascarenhas.aspx</uri></author><category term="Avalon &amp;amp; EID" scheme="http://blogs.msdn.com/adrianma/archive/tags/Avalon+_2600_amp_3B00_+EID/default.aspx" /></entry><entry><title>Code Duplication- When is a good time to get rid of it?</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/adrianma/archive/2007/01/14/code-duplication-when-is-a-good-time-to-get-rid-of-it.aspx" /><id>http://blogs.msdn.com/adrianma/archive/2007/01/14/code-duplication-when-is-a-good-time-to-get-rid-of-it.aspx</id><published>2007-01-15T10:52:00Z</published><updated>2007-01-15T10:52:00Z</updated><content type="html">&lt;P&gt;These last couple of weeks, I have been working on a project that led me to think about the risks of code duplication and when would be a good time to get rid of it. Make no mistake, I completely agree that duplicating code of any sort and any extent is a bad idea right from the beginning. In theory, we should never take that route. But in practice,&amp;nbsp;you may have to walk that path if it is in the best interests of your project. &lt;/P&gt;
&lt;P&gt;For instance, in the Expression Suite, we have couple of other products that are still further behind in testing infrastructure than Blend. Blend has a well defined automation model that initally was pretty product agnostic, but in time the law of thermodynamics caught up and product specifics found its way in our code making it more and more harder to clean it up. The reasons why produt specifics went in is another good blog post for a later time. Other products in the suite, came along and adopted our testing infrastructure, by copying over our automation stack. It was the best and least risk path at the time. But now it is a growing problem that is coming to bite us. When we change some test code, we have to update the rest of the copies. So, we decided to fix this problem by creating a core test infrastructure and pulling it all the product agostic code into core. The next step is for each of the products to remove the duplicate code and point it to core instead.&lt;/P&gt;
&lt;P&gt;All this sounds good, right? Looks like we are heading in the right direction, right? Unfortunately, we are in the last mile of shipping a product to our customers. Making big changes in the last mile has potential of breaking a lot of things with little time to fix. So, the question, I faced for the last couple of weeks was to clean up or not to. I decided to go ahead and give it a shot. It was a two week long project that involved touching every single file of our test code, porting changes over, working with other product teams to make sure the changes did not have negative impacts on their side, and so on and so forth. The big check in finally went in .... We had some new failures here and then, but as of today, we are pretty much where we were before the checkin. The only change is less code duplication at our end.&lt;/P&gt;
&lt;P&gt;Overall, I am super excited to see us maintaining just one code copy.&amp;nbsp; Other teams still have to go this route. I guess they too are battling the question of when is the right time to do the right thing. Sometimes, doing the right thing at the wrong time can backfire. In my case, I just knew that it was a good thing. I had a gut feel and it turned out to be right. To someone reading this post, you need to decide.... what is your gut feel?....what is best for your product?....what is best for the customer?&lt;/P&gt;
&lt;P&gt;If you expected answers from me, then I am sorry to have taken so much of your time. I am here to only share my experience with you, the decision is still yours to make....&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=1468897" width="1" height="1"&gt;</content><author><name>Adrian Mascarenhas</name><uri>http://blogs.msdn.com/members/Adrian+Mascarenhas.aspx</uri></author><category term="Testing" scheme="http://blogs.msdn.com/adrianma/archive/tags/Testing/default.aspx" /></entry><entry><title>Bring Your Vision To Reality using Microsoft's Expression Studio</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/adrianma/archive/2006/12/10/bring-your-vision-to-reality-using-microsoft-s-expression-studio.aspx" /><id>http://blogs.msdn.com/adrianma/archive/2006/12/10/bring-your-vision-to-reality-using-microsoft-s-expression-studio.aspx</id><published>2006-12-11T07:31:00Z</published><updated>2006-12-11T07:31:00Z</updated><content type="html">&lt;P&gt;I&amp;nbsp;am super excited to be a part of&amp;nbsp;&lt;A class="" href="http://www.microsoft.com/products/expression/en/default.mspx" target=_blank mce_href="http://www.microsoft.com/products/expression/en/default.mspx"&gt;Microsoft's Expression Studio&lt;/A&gt;. We just made a public announcement recently. I am sure you have already heard the&amp;nbsp;buzz around the tools. In case you have not, here is quick recap - &lt;/P&gt;
&lt;P&gt;The studio consists of 4 tools:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;&lt;A class="" href="http://www.microsoft.com/products/expression/en/Expression-Blend/default.mspx" target=_blank mce_href="http://www.microsoft.com/products/expression/en/Expression-Blend/default.mspx"&gt;Expression Blend&lt;/A&gt;&amp;nbsp; : &lt;B&gt;Expression Blend&lt;/B&gt; is the professional design tool to create engaging, Web-connected, user experiences for Windows. &lt;/LI&gt;
&lt;LI&gt;&lt;A class="" href="http://www.microsoft.com/products/expression/en/expression-design/default.mspx" target=_blank mce_href="http://www.microsoft.com/products/expression/en/expression-design/default.mspx"&gt;Expression Design&lt;/A&gt;: &lt;B&gt;Expression Design&lt;/B&gt; is a professional illustration and graphic design tool that lets you build compelling elements for both Web and desktop application user interfaces.&lt;/LI&gt;
&lt;LI&gt;&lt;A class="" href="http://www.microsoft.com/products/expression/en/Expression-Web/default.mspx" target=_blank mce_href="http://www.microsoft.com/products/expression/en/Expression-Web/default.mspx"&gt;Expression Web&lt;/A&gt;: &lt;B&gt;Expression Web&lt;/B&gt; is a professional design tool to create modern, standards-based sites which deliver superior quality on the Web.&lt;/LI&gt;
&lt;LI&gt;&lt;A class="" href="http://www.microsoft.com/products/expression/en/Expression-Media/default.mspx" target=_blank mce_href="http://www.microsoft.com/products/expression/en/Expression-Media/default.mspx"&gt;Expression Media&lt;/A&gt;:&lt;B&gt;Expression Media&lt;/B&gt; is a professional asset management tool to visually catalog and organize all your digital assets for effortless retrieval and presentation.&lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;Blend is in Beta, Design is in a CTP (Community Technology Preview), Web and Media&amp;nbsp;also have free trials available.&lt;/P&gt;
&lt;P&gt;I work for Expression Blend exclusively and I am excited to see the amazing transformation that the tool has gone through since its previous CTPs, all thanks to&amp;nbsp; the valuable feedback from our customers especially designers. The UI is very sleek and designer friendly. For a more detailed list of the improvements see &lt;A class="" href="http://blogs.msdn.com/unnir/archive/2006/12/03/what-is-new-in-expression-blend-beta1.aspx" target=_blank mce_href="http://blogs.msdn.com/unnir/archive/2006/12/03/what-is-new-in-expression-blend-beta1.aspx"&gt;Unni's post.&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;I will be posting a bunch of samples that I&amp;nbsp;have been working on in the past&amp;nbsp;couple of months. So,&amp;nbsp;keep posted.&amp;nbsp;&amp;nbsp;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=1257433" width="1" height="1"&gt;</content><author><name>Adrian Mascarenhas</name><uri>http://blogs.msdn.com/members/Adrian+Mascarenhas.aspx</uri></author><category term="Avalon &amp;amp; EID" scheme="http://blogs.msdn.com/adrianma/archive/tags/Avalon+_2600_amp_3B00_+EID/default.aspx" /></entry><entry><title>March CTP of Expression Interactive Designer is now available!</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/adrianma/archive/2006/03/11/549566.aspx" /><id>http://blogs.msdn.com/adrianma/archive/2006/03/11/549566.aspx</id><published>2006-03-11T22:28:00Z</published><updated>2006-03-11T22:28:00Z</updated><content type="html">&lt;P&gt;You can find the download instructions &lt;A href="http://www.microsoft.com/products/expression/en/interactive_designer/id_free_trial.aspx"&gt;here&lt;/A&gt;. Feel free to download the CTP, use it and give us any useful feedback you may have.&amp;nbsp; Tell us what you like, what you wish we had implemented, and what areas you think we can improve upon.&amp;nbsp;Please send your feedback to us via our &lt;A href="http://www.microsoft.com/communities/newsgroups/en-us/default.aspx?dg=microsoft.public.expression.interactivedesigner&amp;amp;cat=&amp;amp;lang=en&amp;amp;cr=US"&gt;discussion forum&lt;/A&gt; or our product feedback center on the &lt;A href="http://www.microsoft.com/products/expression/en/default.mspx"&gt;Microsoft Expression Web site&lt;/A&gt;.&amp;nbsp; You can also respond to me and I will communicate your feedback to the folks in our team.&lt;/P&gt;
&lt;P&gt;The purpose of the CTP is to get a feel from our customers out there and incorporate their feedback into the next version of the CTP. The sooner we get your feedback, the better.&lt;/P&gt;
&lt;P&gt;Also, you can try out the samples that are posted in my blog on the March CTP build.&lt;/P&gt;
&lt;P&gt;Please&amp;nbsp; read the &lt;A HREF="/expression/articles/538345.aspx"&gt;Readme file for the March CTP&lt;/A&gt; which contains known issues and workarounds.&lt;/P&gt;
&lt;P&gt;Now, go ahead and have fun with the tool!&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=549566" width="1" height="1"&gt;</content><author><name>Adrian Mascarenhas</name><uri>http://blogs.msdn.com/members/Adrian+Mascarenhas.aspx</uri></author><category term="Avalon &amp;amp; EID" scheme="http://blogs.msdn.com/adrianma/archive/tags/Avalon+_2600_amp_3B00_+EID/default.aspx" /></entry><entry><title>Reusable FishEye Grid control using WPF and Expression Interactive Designer.</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/adrianma/archive/2006/03/07/reusable-fisheye-grid-control-using-wpf-and-expression-interactive-designer.aspx" /><link rel="enclosure" type="application/x-zip-compressed" length="26833" href="http://blogs.msdn.com/adrianma/attachment/545691.ashx" /><id>http://blogs.msdn.com/adrianma/archive/2006/03/07/reusable-fisheye-grid-control-using-wpf-and-expression-interactive-designer.aspx</id><published>2006-03-07T21:24:00Z</published><updated>2006-03-07T21:24:00Z</updated><content type="html">&lt;P&gt;I loved the cool fisheye effect that &lt;A href="http://www.elementsofpassion.com/" mce_href="http://www.elementsofpassion.com/"&gt;Amir Khella&lt;/A&gt; described in his &lt;A href="http://blogs.amirkhella.com/wordpress/?p=18" mce_href="http://blogs.amirkhella.com/wordpress/?p=18"&gt;blog&lt;/A&gt;. He used a WPF grid, created grid columns of star width, placed objects within the columns and added handlers on mousemove/leave to change the star factor of the&amp;nbsp;grid-width based on mouse location. Simple code, but very cool effect.&lt;/P&gt;
&lt;P&gt;However, I wanted it to be more scalable. I wanted all the magic to happen automatically and all the user should do is just add/remove items to the grid and viola the grid just applies the fisheye effec to its children. Also, in Amir's example, if I wanted the effect to be vertical instead of horizontal, then I would have to remove grid columns and use Grid rows instead. All this should just be taken care of by the Grid itself. And so, I decided to write my own custom grid control that does all of the above. &lt;/P&gt;
&lt;P&gt;The FishEyeGrid control is designed to stack children either horizontally or vertically by just setting its Orientation property, as&amp;nbsp;this makes it easier to place the child within&amp;nbsp;particular rows/columns.. Also, it silently adds rows/columns depending on orientation whenever a new child is added/removed. &lt;/P&gt;
&lt;P&gt;The Orientation property is animatable as well. So feel&amp;nbsp;free to have fun changing the orientation of the control during the lifetime of the app.&lt;/P&gt;
&lt;P&gt;I have attached the &lt;A href="http://blogs.msdn.com/adrianma/attachment/545691.ashx" mce_href="http://blogs.msdn.com/adrianma/attachment/545691.ashx"&gt;source code &lt;/A&gt;to this post. Note, that this was tested on Feb CTP of WPF and March CTP of Expression Interactive Designer.&lt;/P&gt;
&lt;P&gt;Feel free to use the control to enrich your applications and let me know what you think.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Using FishEyeGrid in Expression Interactive Designer&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;&lt;STRONG&gt;Horizontal Orientation:&lt;/STRONG&gt;&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;IMG height=300 src="http://blogs.msdn.com/photos/adrian_mascarenhas/images/545675/original.aspx" width=800 mce_src="http://blogs.msdn.com/photos/adrian_mascarenhas/images/545675/original.aspx"&gt; &lt;/P&gt;
&lt;P&gt;&lt;EM&gt;&lt;STRONG&gt;Vertical Orientation:&lt;/STRONG&gt;&lt;/EM&gt;&lt;/P&gt;&lt;IMG height=300 src="http://blogs.msdn.com/photos/adrian_mascarenhas/images/545680/original.aspx" width=800 mce_src="http://blogs.msdn.com/photos/adrian_mascarenhas/images/545680/original.aspx"&gt; 
&lt;P&gt;Here are the steps for creating the above FishEye effect on bunch of images.&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;In Expression Interactive Designer (EID), create new project. &lt;/FONT&gt;
&lt;LI&gt;Project -&amp;gt; Add reference .. Add the attached FishEyeGrid.dll &lt;/FONT&gt;
&lt;LI&gt;In Library palette, select FishEyeGrid in the assembly combobox. Then select FishEyeGrid library item. &lt;/FONT&gt;
&lt;LI&gt;With FishEyeGrid selected in the library palette, draw the grid to fill the size of the artboard. Change the background color of the grid to a linear gradient for better look. &lt;/FONT&gt;
&lt;LI&gt;Project -&amp;gt; add existing items. Add any images you have on your machine. &lt;/FONT&gt;
&lt;LI&gt;Double click on the FishEyeGrid in the Timeline tree view to make it the active element. &lt;/FONT&gt;
&lt;LI&gt;In the Project palette, double click on the image items so that they get added as children to the FishEyeGrid in the artboard. Note that the items automatically get stacked and resized to fit the invisible grid row/column size. &lt;/FONT&gt;
&lt;LI&gt;Hit F5, to build the project and view the built application. &lt;/FONT&gt;
&lt;LI&gt;By default orientation is horizontal. You can change it to Vertical by selecting the FishEyeGrid in the timeline and then setting the Orientation property in the Properties palette. 
&lt;LI&gt;You can also animate the Orientation property using the timeline and setting keyframes at different times and then looping the animation.&lt;/FONT&gt;&lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;&lt;STRONG&gt;Using FishEyeGrid control in WPF&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Here is how you can use it in xaml. (Default Orientation is Horizontal)&lt;/P&gt;
&lt;P&gt;&amp;lt;CustomControls:FishEyeGrid Margin="56,44,98,87" x:Name="FishEyeGrid" RenderTransformOrigin="0.5,0.5"&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;Button Content="Button1"/&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;Button Content="Button2"/&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;Button Content="Button3"/&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;Button Content="Button4"/&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;lt;/CustomControls:FishEyeGrid&amp;gt; &lt;/FONT&gt;
&lt;P&gt;&amp;nbsp; &lt;IMG height=300 src="http://blogs.msdn.com/photos/adrian_mascarenhas/images/545528/original.aspx" width=800 mce_src="http://blogs.msdn.com/photos/adrian_mascarenhas/images/545528/original.aspx"&gt; 
&lt;P&gt;Here is how you can use it in&amp;nbsp;code: (Here we explicitly set the orientation to be vertical) 
&lt;P&gt;public partial class Scene1&lt;BR&gt;&amp;nbsp;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public Scene1()&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FishEyeGrid fishEyeGrid = new FishEyeGrid();&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;fishEyeGrid.Orientation = Orientation.Vertical;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;fishEyeGrid.Children.Add(new Button());&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;fishEyeGrid.Children.Add(new Button());&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;fishEyeGrid.Children.Add(new Button());&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;fishEyeGrid.Children.Add(new Button());&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;this.Children.Add(fishEyeGrid);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;BR&gt;&amp;nbsp;} &lt;/FONT&gt;
&lt;P&gt;&lt;IMG height=300 src="http://blogs.msdn.com/photos/adrian_mascarenhas/images/545536/original.aspx" width=800 mce_src="http://blogs.msdn.com/photos/adrian_mascarenhas/images/545536/original.aspx"&gt; &lt;/P&gt;
&lt;P&gt;Feel free to use the control to enrich your applications and let me know what you think.&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=545691" width="1" height="1"&gt;</content><author><name>Adrian Mascarenhas</name><uri>http://blogs.msdn.com/members/Adrian+Mascarenhas.aspx</uri></author><category term="Avalon &amp;amp; EID" scheme="http://blogs.msdn.com/adrianma/archive/tags/Avalon+_2600_amp_3B00_+EID/default.aspx" /></entry><entry><title>Zam 3D to Expression Interactive Designer</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/adrianma/archive/2006/03/02/542506.aspx" /><id>http://blogs.msdn.com/adrianma/archive/2006/03/02/542506.aspx</id><published>2006-03-03T01:24:00Z</published><updated>2006-03-03T01:24:00Z</updated><content type="html">&lt;P&gt;Yesterday, I saw a demo of &lt;A href="http://www.erain.com/Products/ZAM3D/DefaultPDC.asp"&gt;ZAM 3D&lt;/A&gt; by &lt;A href="http://blogs.erain.com/msoucie"&gt;Mike Soucie &lt;/A&gt;&amp;amp;&amp;nbsp; Jim Foley of &lt;A href="http://www.erain.com/"&gt;Electric Rain&lt;/A&gt;. So I thought I'd give the tool a try.&lt;/P&gt;
&lt;P&gt;I am still quite new to the 3D world. But, I found ZAM 3D quite useful. It took me a little time to get used to the UI and figure things out, but I was able to create a simple 3D model using basic primitives in less than an hour, give it some predefined animation, export it as a control template and bring it into Expression Interactive Designer. I was then able to apply the template to controls within EID.&lt;/P&gt;
&lt;P&gt;There is still some work to be done with round tripping between ZAM 3D and EID. But it is a neat tool for someone interested in creating a simple 3D model with some animation effects, textures etc and then using it in EID.&lt;/P&gt;
&lt;P&gt;&lt;IMG height=300 src="/photos/adrian_mascarenhas/images/542490/original.aspx" width=400&gt; &lt;IMG height=300 src="/photos/adrian_mascarenhas/images/542491/original.aspx" width=400&gt;&lt;/P&gt;
&lt;P&gt;If you know of any more tools out there that export to WPF, I would love to hear about it and give it a try.&amp;nbsp;Also,&amp;nbsp;if you already have a tool and are interested in integrating your tool with the EID workflow, let me know.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=542506" width="1" height="1"&gt;</content><author><name>Adrian Mascarenhas</name><uri>http://blogs.msdn.com/members/Adrian+Mascarenhas.aspx</uri></author><category term="Avalon &amp;amp; EID" scheme="http://blogs.msdn.com/adrianma/archive/tags/Avalon+_2600_amp_3B00_+EID/default.aspx" /></entry><entry><title>Simple MSN Beta screensaver using Expression Interactive Designer - Part I</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/adrianma/archive/2006/03/01/541917.aspx" /><link rel="enclosure" type="application/x-zip-compressed" length="514340" href="http://blogs.msdn.com/adrianma/attachment/541917.ashx" /><id>http://blogs.msdn.com/adrianma/archive/2006/03/01/541917.aspx</id><published>2006-03-02T09:56:00Z</published><updated>2006-03-02T09:56:00Z</updated><content type="html">&lt;P&gt;In our previous App bash, I designed my own version of the &lt;A href="http://screensaver.msn.com/"&gt;MSN beta screensaver&lt;/A&gt;&amp;nbsp;in just couple of hours. I am not a designer, and so I was impressed by how easy it was to design the app using Expression Interactive Designer with hardly any code. The only code I added was to be able to move the frame window around.&lt;/P&gt;
&lt;P&gt;I admit the design is not very good, but hey it was the best I could put together in a couple of hours. I plan to redesign the app and make it more extensible so that a user can customize the feeds and location of background images. Keep posted for Part II of this project.&lt;/P&gt;
&lt;P&gt;The feeds are live feeds using databinding. You can hover over the news items to get a brief description in the tooltip and if you click, then it will load the news item in a frame window that you can move around. You can enter search keywords and it will load msn search results into the frame window.&lt;/P&gt;
&lt;P&gt;&lt;IMG height=600 src="/photos/adrian_mascarenhas/images/541887/original.aspx" width=800&gt;&lt;/P&gt;
&lt;P&gt;&lt;IMG height=600 src="/photos/adrian_mascarenhas/images/541912/original.aspx" width=800&gt;&lt;/P&gt;
&lt;P&gt;Here is the &amp;nbsp;&lt;A href="/adrianma/attachment/541917.ashx"&gt;source code &lt;/A&gt;. The code will work on WPF Feb CTP and Expression Interactive Designer March CTP. In the \bin\debug folder, there is an exe as well as a scr file. You can either run the exe as a standalone app or install the scr as your screensaver.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=541917" width="1" height="1"&gt;</content><author><name>Adrian Mascarenhas</name><uri>http://blogs.msdn.com/members/Adrian+Mascarenhas.aspx</uri></author><category term="Avalon &amp;amp; EID" scheme="http://blogs.msdn.com/adrianma/archive/tags/Avalon+_2600_amp_3B00_+EID/default.aspx" /></entry><entry><title>Don't write new tests, Reuse existing tests by writing new execution behaviors.</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/adrianma/archive/2006/02/10/529684.aspx" /><id>http://blogs.msdn.com/adrianma/archive/2006/02/10/529684.aspx</id><published>2006-02-10T20:40:00Z</published><updated>2006-02-10T20:40:00Z</updated><content type="html">&lt;P&gt;Last week, I was testing a new way of using an existing&amp;nbsp;feature. There was already an existing way of using the same feature and it was already thoroughly tested and automated. We were basically introducing a new execution path for the same feature.&lt;/P&gt;
&lt;P&gt;So, this was the problem: I already had tests that executed the feature and verified the feature worked as expected. Now, I wanted to use the same test and same verification, the only difference being the execution of the test.&lt;/P&gt;
&lt;P&gt;Solution: Our automation stack includes &lt;A HREF="/micahel/archive/2005/05/25/OneMethodToRuleThemAll.aspx"&gt;Execution Behavior Manager (EBM)&lt;/A&gt; that supports multiple execution behaviors for any user action and it can choose any behavior at run time. So a test can now be executed via different execution paths by hooking up into the EBM.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;This not only reduces the number of tests needed, but also increases the coverage of an existing test by hitting different execution paths each time it is run. How cool is that!&lt;/P&gt;
&lt;P&gt;-&lt;?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" /&gt;&lt;st1:City w:st="on"&gt;&lt;st1:place w:st="on"&gt;Adrian&lt;/st1:place&gt;&lt;/st1:City&gt;.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=529684" width="1" height="1"&gt;</content><author><name>Adrian Mascarenhas</name><uri>http://blogs.msdn.com/members/Adrian+Mascarenhas.aspx</uri></author><category term="Testing" scheme="http://blogs.msdn.com/adrianma/archive/tags/Testing/default.aspx" /></entry></feed>