<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>JAPF &#187; design</title>
	<atom:link href="http://www.japf.fr/tag/design/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.japf.fr</link>
	<description>Jeremy Alles Presentation Foundation: WPF, .Net and modern software development</description>
	<lastBuildDate>Thu, 29 Jul 2010 07:29:32 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>First look at Expression Blend 3 !</title>
		<link>http://www.japf.fr/2009/03/first-look-at-expression-blend-3/</link>
		<comments>http://www.japf.fr/2009/03/first-look-at-expression-blend-3/#comments</comments>
		<pubDate>Wed, 18 Mar 2009 18:09:44 +0000</pubDate>
		<dc:creator>Jeremy</dc:creator>
				<category><![CDATA[Events]]></category>
		<category><![CDATA[blend]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[mix09]]></category>

		<guid isPermaLink="false">http://www.japf.fr/?p=166</guid>
		<description><![CDATA[The keynote at MIX09 is almost over and Expression Blend 3 has been announced ! Go ahead and grab this new version from the Microsoft Expression web site. A video is also already available on Channel9, where Unni Ravindranathan takes on a tour to demonstrate the new features of Blend 3. I just finished watching [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.japf.fr/wp-content/uploads/2009/03/mix09.jpg" rel="lightbox[166]"><img class="alignnone size-full wp-image-164" title="mix09" src="http://www.japf.fr/wp-content/uploads/2009/03/mix09.jpg" alt="mix09" width="129" height="113" /></a></p>
<p>The keynote at MIX09 is almost over and Expression Blend 3 has been announced !</p>
<p>Go ahead and grab this new version from the <a href="http://expression.microsoft.com/en-us/dd565875.aspx">Microsoft Expression web site</a>.</p>
<p>A video is also already available on <a href="http://channel9.msdn.com/shows/Continuum/First-Look-at-Expression-Blend-3/">Channel9</a>, where Unni Ravindranathan takes on a tour to demonstrate the new features of Blend 3. I just finished watching the show and here are my notes:</p>
<ul>
<li>Blend3 supports Silverlight3 but there is more than that: lot of new functionalities to improve the user experience and the productivity</li>
<li>Goal: be more creative inside the tool</li>
<li>In Blend2, it was sort of complicated to select objects, particularly with nested containers. With Blend3 it&#8217;s a lot easier, we no longer have to navigate inside the objects explorer. Just click and you&#8217;re done</li>
<li>New features to manipulate the gradients : we can manipulate the gradient stops directly from the artboard</li>
<li>Supports for shaders : the assets panel now contains a &#8220;shader&#8221; category &#8211; drag&#8217;n'drop on the artboard and you&#8217;re done</li>
<li>Supports for projections in Silverlight3, new category from the property grid to edit them</li>
<li>Import from Photoshot and Illustrator functionality !</li>
<li>XAML Intellisense (oh my god !)</li>
<li>Team Foundation Server support</li>
<li>Sample data source generation inside Blend3 (Blend is able to generate sample data such as texts and images)</li>
<li>New features: behaviours that can be drag&#8217;n'dropped from the assets panel on the artboard to attach a piece of code to a visual element (could be used to start an animation for example)</li>
<li>Easing functionality when working with animation: define elastic, cubic, exponential animations (I think designers are going to have some fun)</li>
<li>New extensibility points to the Editor: custom adorners, custom panels, extend property grid, etc.</li>
</ul>
<p>Here are some screenshots I just took running the preview on my machine. I think Blend3 is going a major step forward in the Expression Studio 3. Don&#8217;t wait a second to play with it !</p>
<p><a href="http://www.japf.fr/wp-content/uploads/2009/03/assets.png" rel="lightbox[166]"><img class="alignnone size-medium wp-image-172" title="welcome" src="http://www.japf.fr/wp-content/uploads/2009/03/welcome-204x300.png" alt="welcome" width="204" height="300" /></a></p>
<p>Welcome to Blend3 !</p>
<p><a href="http://www.japf.fr/wp-content/uploads/2009/03/assets.png" rel="lightbox[166]"><img class="alignnone size-medium wp-image-168" title="assets" src="http://www.japf.fr/wp-content/uploads/2009/03/assets-300x146.png" alt="assets" width="300" height="146" /></a></p>
<p>The new assets panel</p>
<p><a href="http://www.japf.fr/wp-content/uploads/2009/03/animations.png" rel="lightbox[166]"><img class="alignnone size-medium wp-image-167" title="animations" src="http://www.japf.fr/wp-content/uploads/2009/03/animations-180x300.png" alt="animations" width="180" height="300" /></a></p>
<p>Easing functionality</p>
<p><a href="http://www.japf.fr/wp-content/uploads/2009/03/intellisense4.png" rel="lightbox[166]"><img class="alignnone size-medium wp-image-174" title="intellisense4" src="http://www.japf.fr/wp-content/uploads/2009/03/intellisense4-300x268.png" alt="intellisense4" width="300" height="268" /></a></p>
<p>XAML Intellisense !</p>
<p><a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fwww.japf.fr%2f%3fp%3d166"><img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fwww.japf.fr%2f%3fp%3d166" border="0" alt="kick it on DotNetKicks.com" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.japf.fr/2009/03/first-look-at-expression-blend-3/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>MIX09 starts today !</title>
		<link>http://www.japf.fr/2009/03/mix09-starts-today/</link>
		<comments>http://www.japf.fr/2009/03/mix09-starts-today/#comments</comments>
		<pubDate>Wed, 18 Mar 2009 12:31:14 +0000</pubDate>
		<dc:creator>Jeremy</dc:creator>
				<category><![CDATA[Events]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[mix09]]></category>

		<guid isPermaLink="false">http://www.japf.fr/?p=163</guid>
		<description><![CDATA[Day 1 keynote will take place at 9:00 AM PST (5:OO PM in France :p) and we&#8217;re all excepting big announcements about the future of WPF, Expression Blend and Silverlight. It&#8217;s possible to follow the keynote online at live.visitmix.com ! Apparently, some of the CTP bits that will be anounced during the keynote are already [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.japf.fr/wp-content/uploads/2009/03/mix09.jpg" rel="lightbox[163]"><img class="alignnone size-full wp-image-164" title="mix09" src="http://www.japf.fr/wp-content/uploads/2009/03/mix09.jpg" alt="mix09" width="129" height="113" /></a></p>
<p>Day 1 keynote will take place at 9:00 AM PST (5:OO PM in France :p) and we&#8217;re all excepting big announcements about the future of WPF, Expression Blend and Silverlight.</p>
<p>It&#8217;s possible to follow the keynote online at <a href="http://live.visitmix.com">live.visitmix.com</a> !</p>
<p>Apparently, some of the CTP bits that will be anounced during the keynote are already available such as <a href="https://www.microsoft.com/downloads/details.aspx?FamilyID=D09B6ECF-9A45-4D99-B752-2A330A937BC4&amp;displaylang=en">Silverlight 3 SDK</a>. Can&#8217;t wait to see the keynote <img src='http://www.japf.fr/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.japf.fr/2009/03/mix09-starts-today/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Why should I use Model-View-ViewModel pattern</title>
		<link>http://www.japf.fr/2008/12/why-should-i-use-model-view-viewmodel-pattern/</link>
		<comments>http://www.japf.fr/2008/12/why-should-i-use-model-view-viewmodel-pattern/#comments</comments>
		<pubDate>Mon, 22 Dec 2008 13:47:23 +0000</pubDate>
		<dc:creator>Jeremy</dc:creator>
				<category><![CDATA[WPF]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[model-view-viewmodel]]></category>
		<category><![CDATA[mvvm]]></category>
		<category><![CDATA[patterns]]></category>
		<category><![CDATA[testability]]></category>

		<guid isPermaLink="false">http://www.japf.fr/?p=90</guid>
		<description><![CDATA[Recently, while discussing a WPF issue on a forum, I discovered that some people didn&#8217;t know anything about the Model-View-ViewModel pattern. I&#8217;m not an expert of MVVM as I discovered it a couple of months ago. I started to use it on my first real project at work, which involve a pretty big application using [...]]]></description>
			<content:encoded><![CDATA[<p>Recently, while discussing a WPF issue on a forum, I discovered that some people didn&#8217;t know anything about the Model-View-ViewModel pattern. I&#8217;m not an expert of MVVM as I discovered it a couple of months ago. I started to use it on my first real project at work, which involve a pretty big application using advanced TreeView, Ribbon, on-demand graphic creation, a C++ kernel, datagrid, etc. The MVVM pattern helps me to keep my design as clean as possible. In this post, I&#8217;d like to give you some of the aspects of the MVVM pattern, and useful links across the web.</p>
<p>If you find yourself:</p>
<ul>
<li>having huge .xaml.cs code behind file</li>
<li>using event handler (such as Click&#8230;) everywhere</li>
<li>tweaking TreeViewItem (using ItemContainerGenerator for example) to manipulate a TreeView</li>
<li>having tons of IValueConverter</li>
<li>… then MVVM might come to the rescue :p</li>
</ul>
<p><strong>What MVVM can offer?</strong></p>
<ul>
<li>a clean and well defined separation between the Model and the View</li>
<li>the possibility to easily leverage the power of WPF: databinding, commands, validation, and more</li>
<li>a code that is testable</li>
<li>an organization that facilitate the workflow between designers and developers</li>
<li>minimalist code-behind file (which leads to testable code)</li>
<li>facilitate the deployment of an application in multiple environment (WPF / Silverlight)</li>
</ul>
<p><strong>How is that possible?</strong></p>
<p>Here is a part of the introduction of John Gossman:</p>
<p><em>“In simple examples, the View is data bound directly to the Model. For example, a boolean in the Model can be data bound to a CheckBox, or a string field to a TextBox. In practice however, only a small subset of application UI can be data bound directly to the Model, especially if the Model is a pre-existing class or data schema over which the application developer has no control.<br />
The Model is very likely to have a data types that cannot be mapped directly to controls.  Finally we need a place to put view state such as selection or modes.<br />
The ViewModel is responsible for these tasks.  In this latter role the ViewModel contains data-transformers that convert Model types into View types, and it contains Commands the View can use to interact with the Model.”</em></p>
<p><img class="alignnone size-full wp-image-92" title="viewmodel" src="http://www.japf.fr/wp-content/uploads/2008/12/viewmodel.png" alt="viewmodel" width="468" height="164" /></p>
<ul>
<li>The View has the associated ViewModel set as its DataContext so that the View can easily data bind to ViewModel properties</li>
<li>The ViewModel reflects its changes to the Model by calling appropriate methods on the Model</li>
<li>The ViewModel exposes ICommand that the View data bind to, in order to execute actions</li>
<li>The Model signals its changes to the ViewModel by raising events</li>
</ul>
<p><strong>What are good resources to start working with MVVM?</strong></p>
<ul>
<li>Karl Shifflett started a series about MVVM, you can find his work <a href="http://karlshifflett.wordpress.com/mvvm/">here</a>.</li>
<li>Karl and Josh Smith wrote a very nice application that uses MVVM pattern. Moreover the application contains also information about internalization support. Check out the CodeProject article <a href="http://karlshifflett.wordpress.com/mvvm/internationalized-wizard-in-wpf-using-m-v-vm/">here</a>.</li>
<li>Karl wrote <a href="http://karlshifflett.wordpress.com/mvvm/input-validation-ui-exceptions-model-validation-errors/">an article</a> about a very important concept: user input validation. This is the first article of his new MVVM series.</li>
<li>WPF architect, John Gossman wrote a series of blog post about MVVM on his blog. An introduction to MVVM is <a href="http://blogs.msdn.com/johngossman/archive/2005/10/08/478683.aspx">available</a> and a good point to start.</li>
<li>Josh Smith wrote an excellent tool, Crack.Net which is built using MVVM. Crack.Net is hosted on <a href="http://www.codeplex.com/cracknetproject">CodePlex</a>, and studying the source code is a very good manner to understand how stuff fits together in the MVVM world.</li>
<li>Josh Smith wrote <a href="http://www.codeproject.com/KB/WPF/TreeViewWithViewModel.aspx">an article</a> about applying MVVM concepts to the WPF treeview. If you must work with a complex treeview, then you MUST read this article.</li>
<li>Marlon Grech wrote <a href="http://marlongrech.wordpress.com/2008/11/22/icollectionview-explained/">an article</a> about ICollectionView. ICollectionView is a useful interface that can be used in ViewModel classes to keep track user selection</li>
</ul>
<p>If you never heard about MVVM, or never take the time to look at it, I suggest you to take a look at some of those links. Trust me, the investisment worth it !</p>
]]></content:encoded>
			<wfw:commentRss>http://www.japf.fr/2008/12/why-should-i-use-model-view-viewmodel-pattern/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Read on a forum: only problems with WPF&#8230;</title>
		<link>http://www.japf.fr/2008/07/am-i-missing-something-about-wpf/</link>
		<comments>http://www.japf.fr/2008/07/am-i-missing-something-about-wpf/#comments</comments>
		<pubDate>Fri, 04 Jul 2008 14:02:43 +0000</pubDate>
		<dc:creator>Jeremy</dc:creator>
				<category><![CDATA[WPF]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[patterns]]></category>

		<guid isPermaLink="false">http://www.japf.fr/?p=16</guid>
		<description><![CDATA[A couple of days ago, I found a post on a WPF forum with the title &#8220;Only problems with WPF&#8230;&#8221;, and it basically looks like the following: &#8220;When I installed VS.net express 2008, I was happy because I thought that with WPF I&#8217;ll be able to build nice UI. Unfortunately, I have the felling this [...]]]></description>
			<content:encoded><![CDATA[<p>A couple of days ago, I found a post on a WPF forum with the title &#8220;Only problems with WPF&#8230;&#8221;, and it basically looks like the following:</p>
<p><em>&#8220;When I installed VS.net express 2008, I was happy because I thought that with WPF I&#8217;ll be able to build nice UI. Unfortunately, I have the felling this is more like a source of problems&#8230; I spent several hours to fill a ListView with some data and the result is dirtier than with WinForms. The designer in VS.net sucks and  many controls are missing. It was so simple before&#8230;&#8221;</em></p>
<p>I wanted to give my point of view about that kind of reasoning because a couple of months ago, I think I had more or less the same&#8230; So, what makes WPF so different ? Or why I cannot just use my WinForms background and start to build wonderfull apps ?</p>
<p>I think that WPF is more than just a new framework or new classes. It is more than that because when you work with WPF, you have to change the way you think and design your apps.</p>
<ul>
<li>You have to change the way your work with controls because you can apply new Style and Template to them so that you can completely change the way they look</li>
<li>You have to change the way you design your apps because of DataBinding and Commands</li>
<li>You have to&#8230; forget almost every things you already know, and be ready to learn again !</li>
</ul>
<p>If I can give an advice, I would suggest to read a good WPF book. A couple of weeks ago, I finished to read WPF unleashed, by Adam Nathan <sup class='footnote'><a href='#fn-16-1' id='fnref-16-1'>1</a></sup>, and I really think that having this kind of the book is the right way start working with WPF. A lot of cool website are also full of interesting resources, <a href="http://www.codeproject.com">CodeProject</a> is maybe the one that I like the most.</p>
<p>To conlude, I would like to give a quick example <sup class='footnote'><a href='#fn-16-2' id='fnref-16-2'>2</a></sup>.</p>
<p>Imagine you&#8217;d like to build an application to browse a catalog of products. For each product, you need to see the name of the product, its designer, a description and an image. You also would like to have navigation build around the use of 2 arrows to browse products:</p>
<p><a href="http://www.japf.fr/wp-content/uploads/2008/07/demo1.jpg" rel="lightbox[16]"><img class="alignnone size-medium wp-image-17" title="demo1" src="http://www.japf.fr/wp-content/uploads/2008/07/demo1-300x196.jpg" alt="Building a WPF application" width="300" height="196" /></a></p>
<p>How could you achieve this ? You might think about several ways to do it. The point is that you can do this by only using a ListBox and changing its style ! Isn&#8217;t amazing ? Go ahead and check the full video at <a href="http://sessions.visitmix.com/">http://sessions.visitmix.com/</a>.
<div class='footnotes'>
<div class='footnotedivider'></div>
<ol>
<li id='fn-16-1'>available at <a href="http://www.amazon.com/Windows-Presentation-Foundation-Unleashed-WPF/dp/0672328917">amazon.com</a> <span class='footnotereverse'><a href='#fnref-16-1'>&#8617;</a></span></li>
<li id='fn-16-2'>I was inspired by CT06: Applications = Designers + Developpers at Mix08 available <a href="http://sessions.visitmix.com/">here</a> <span class='footnotereverse'><a href='#fnref-16-2'>&#8617;</a></span></li>
</ol>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.japf.fr/2008/07/am-i-missing-something-about-wpf/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
