<?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>Market Data Trader &#187; .Net</title>
	<atom:link href="http://marketdatatrader.com/category/net/feed/" rel="self" type="application/rss+xml" />
	<link>http://marketdatatrader.com</link>
	<description></description>
	<lastBuildDate>Wed, 06 Apr 2011 20:31:05 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1</generator>
		<item>
		<title>Windows Phone 7 / Seattle Silverlight Users Group</title>
		<link>http://marketdatatrader.com/2010/10/26/windows-phone-7-seattle-silverlight-users-group/</link>
		<comments>http://marketdatatrader.com/2010/10/26/windows-phone-7-seattle-silverlight-users-group/#comments</comments>
		<pubDate>Tue, 26 Oct 2010 17:30:03 +0000</pubDate>
		<dc:creator>Alpha</dc:creator>
				<category><![CDATA[.Net]]></category>
		<category><![CDATA[Silverlight]]></category>
		<category><![CDATA[WP7]]></category>

		<guid isPermaLink="false">http://marketdatatrader.com/2010/10/26/windows-phone-7-seattle-silverlight-users-group/</guid>
		<description><![CDATA[I mean to post this back in August.&#160; But, I have some detailed notes from the second in a series of four Seattle Silverlight User Group meetings dedicated to WP7 development.&#160; Looking back, these meetings were gems.&#160; It was really strong Microsoft representation at these meetings including: Pete Blois, Jaime Rodriquez, and Karl Shifflett.&#160; I [...]]]></description>
			<content:encoded><![CDATA[<p>I mean to post this back in August.&#160; But, I have some detailed notes from the second in a series of four <a href="http://marketdatatrader.com/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3NlYXR0bGVzaWx2ZXJsaWdodC5uZXQvYmxvZ2VuZ2luZS8=" target=\"_blank\">Seattle Silverlight User Group</a> meetings dedicated to WP7 development.&#160; Looking back, these meetings were gems.&#160; It was really strong Microsoft representation at these meetings including: <a href="http://marketdatatrader.com/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3d3dy5ibG9pcy51cy9ibG9nLw==" target=\"_blank\">Pete Blois</a>, <a href="http://marketdatatrader.com/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL2Jsb2dzLm1zZG4uY29tL2IvamFpbWVyLw==" target=\"_blank\">Jaime Rodriquez</a>, and <a href="http://marketdatatrader.com/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL2thcmxzaGlmZmxldHQud29yZHByZXNzLmNvbS8=" target=\"_blank\">Karl Shifflett</a>.&#160; I believe this meeting ran just over two hours.&#160; I think there are still some useful comments in this notes for individuals scrambling to get a perspective on WP7 development opportunities.</p>
<p>Note: for those of you who follow Karl Shifflett, he switched from the Cider team over to patterns and practices and now has more than one blog that he is actively contributing to: the <a href="http://marketdatatrader.com/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL2thcmxzaGlmZmxldHQud29yZHByZXNzLmNvbS8=" target=\"_blank\">original</a> and the <a href="http://marketdatatrader.com/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL2Jsb2dzLm1zZG4uY29tL2Iva2FzaGlmZmwv" target=\"_blank\">patterns and practices blog</a>.</p>
<p>Also, patterns and practices has put out <a href="http://marketdatatrader.com/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3dwN2d1aWRlLmNvZGVwbGV4LmNvbS8=" target=\"_blank\">guidance on WP7 development</a> which should NOT be ignored.</p>
<p>With that… here are the raw notes from August 2nd:</p>
<p>&#160;</p>
<p><em>Peter Blois and Jaime Rodigeuz will be speaking</em></p>
<ul>
<li><em>Lead program manager on expression blend</em></li>
</ul>
<p><em>Blend features that Peter covered:</em></p>
<ul>
<li><em>Sample data</em></li>
</ul>
<ul>
<li><em>Window phone styles in blend &#8212; so you get the look and feel of the phone off the bat in blend</em></li>
<li><em>There is a number of built in styles for text in phone</em>
<ul>
<li><em>You are expected to follow the look and feel in phone &#8212; the metro style</em></li>
</ul>
<ul>
<li><em>You will see built in &quot;OS&quot; fonts (built into the phone)</em></li>
</ul>
<ul>
<li><em>There are &quot;themes&quot; in the phone that blend supports, such as &quot;the blue theme&quot; and &quot;green theme&quot;</em>
<ul>
<li><em>Themes cover specific uses of color</em></li>
</ul>
</li>
</ul>
<ul>
<li><em>There is a light vs. dark theme that will invert colors</em></li>
</ul>
<ul>
<li><em>Instead of taking explicit colors, take from the system resources</em></li>
</ul>
</li>
</ul>
<ul>
<li><em>This is important especially in text where you go from light to dark and dark to light</em>
<ul>
<li><em>(assuming you will support themes</em></li>
</ul>
</li>
</ul>
<ul>
<li><em>ANIMATION</em>
<ul>
<li><em>Seamless transitions, seamless interactions should be very easy</em></li>
</ul>
<ul>
<li><em>VSM states &#8212; visual state manager</em>
<ul>
<li><em>Allows you to define different states of your UI</em></li>
</ul>
<ul>
<li><em>He demoed how to do the page flip</em>
<ol>
<li><em>Set the center popint of the rotation</em></li>
</ol>
<ol>
<li><em>Then set two states in the VM: in and out</em></li>
</ol>
<ol>
<li><em>Then do the rotate on the y axis</em></li>
<li><em>And set the opacity to invisible when it is fully &quot;out&quot;</em></li>
</ol>
<ol>
<li><em>Set the transition time to about half second</em></li>
</ol>
<ol>
<li><em>In code just call: goto &quot;out&quot; state</em></li>
<li><em>You can also give a little easing to make it a little cooler</em></li>
</ol>
</li>
</ul>
<ol>
<li><em>If you aer doing full on page transitions &#8211;</em>
<ol>
<li><em>Look on the web</em>
<ol>
<li><em>Transitioning content control samples and just follow Win7 look and feel guidelines</em></li>
</ol>
</li>
</ol>
</li>
</ol>
</li>
</ul>
</li>
</ul>
<ul>
<li><em>Another thing the transitions are cool for is orientation support</em></li>
<li><em>Blend has landscape to portrait feature</em></li>
<li><em>If you double click the button and auto set it, it will pick up the recommended style size for the buttons</em></li>
<li><em>Don&#8217;t forget to turn on orientation support if you are going to support orientations</em></li>
</ul>
<ul>
<li><em>To use transition with orientations:</em>
<ul>
<li><em>Create two states: portrait and landscape</em></li>
</ul>
</li>
</ul>
<ul>
<li><em>BEHAVIORS</em>
<ul>
<li><em>Drag drop interactivity</em></li>
</ul>
<ul>
<li><em>Team is really excited about this and likes to use this</em></li>
</ul>
<ul>
<li><em>Example: GoToState</em>
<ul>
<li><em>You can just wire up the controls</em></li>
</ul>
</li>
</ul>
<ul>
<li><em>Example: Orientation</em>
<ul>
<li><em>Just listens for orientation event</em>
<ul>
<li><em>Blog samples: look for food samples</em>
<ul>
<li><em>20 minute PDC talk &#8212; all code is available</em></li>
</ul>
<ul>
<li><em>Kenny Young / food layout / animations</em></li>
</ul>
</li>
</ul>
<ul>
<li><em>This stuff will blow your mind for trying to get animations in silverlight</em></li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
<ul>
<li><em>Question: can we change app title sizes or not use them?</em>
<ul>
<li><em>Pivot and panarama controls you can&#8217;t change… they don&#8217;t use titles… but, you can&#8217;t change the style… that is controlled</em></li>
</ul>
<ul>
<li><em>Those controls are coming.</em></li>
<li><em>Look at applications that are out there on codeplex and see what they are doing</em></li>
</ul>
</li>
</ul>
<ul>
<li><em>APPLICATIONBAR</em>
<ul>
<li><em>Something they built into blend to make it really easy to add</em></li>
<li><em>Click in the control / properties tray o Application Bar and then &quot;new&quot; and customize it and can add buttons…</em>
<ul>
<li><em>There is the list of &quot;suggested&quot; icon button, such as the + and menu items</em></li>
</ul>
</li>
</ul>
<ul>
<li><em>Question: is there any databinding in the applicationbar?</em>
<ul>
<li><em>No. It&#8217;s a platform limitation. We can add it later when we can overcome that limitation.</em></li>
</ul>
<ul>
<li><em>Applicationbar is used on the phone in XNA apps and they don&#8217;t have the concept of dependencyproperties, etc. It&#8217;s the OS&#8217;s application bar.</em></li>
<li><em>There are blogs that use RX or other APIs that make them look databound, but, they are not. There are only four buttons, so, it&#8217;s not a lot of code to support them.</em></li>
</ul>
</li>
</ul>
</li>
</ul>
<ul>
<li><em>MISC IDEA: become a control vendor and provide BLEND support for your control libraries</em></li>
</ul>
<ul>
<li><em>TIP: RE ANIMATIONS: if you are doing animations, animate doing render transforms. Do storyboard animations as much as possible. (Render transforms or perspective transforms)… stick to storyboards &#8212; states are animating storyboards</em></li>
</ul>
<ul>
<li><em>Question: how is the behavior support for drag and drop?</em>
<ul>
<li><em>Laurent bugnion has the code for multi-touch rotate pinch, translate, rotate</em></li>
</ul>
<ul>
<li><em>You are dealing with gestures or raw touch input</em></li>
</ul>
<ul>
<li><em>Rotate has to deal with raw touch input</em></li>
</ul>
</li>
</ul>
<p><em>JAIME &#8212;</em></p>
<p><em>&quot;the software session&quot;</em></p>
<p><em>If you are going to write an application, what are the new concepts: &quot;navigation&quot;, etc.</em></p>
<p><em>Next month we will look at the hardware such as accellerometers</em></p>
<p><em>Beta2 is pretty code complete… if you are going to write an app, beta2 is a pretty good place to start. (beta2 is the july release)</em></p>
<p><em>Three things missing</em></p>
<ul>
<li><em>Missing some core controls</em></li>
<li><em>Tombstone install is hopefully going to get a little better</em></li>
<li><em>The rest of it is pretty good, except for bug fixes</em></li>
<li><em>They will not cut a lot of things here on…</em></li>
<li><em>Runtime is stable &#8212; a lot of performance improvements</em></li>
</ul>
<ul>
<li><em>Uninstall is getting better</em></li>
</ul>
<p><em>Maybe next month some of you will have phones…</em></p>
<p><em>Last time recap:</em></p>
<ul>
<li><em>Silverlight 3+ optimized</em></li>
<li><em>New controls on the phone</em></li>
<li><em>Navigation and navigation models</em></li>
</ul>
<ul>
<li><em>The controls on the phone are the same controls that are the CORE SILVERLIGHT controsl… (the 5meg download… not the SDK… datagrid, etc., not the TOOLKIT, which is ms people writing controls that are still churning)….</em>
<ul>
<li><em>Most of the SDK controls don&#8217;t make sense on the phone</em></li>
<li><em>In the future, they will release a control toolkit on the phone</em>
<ul>
<li><em>Wrap panel, view box</em></li>
</ul>
<ul>
<li><em>They have the code in-house… if you need it, email them, they will hook you up.</em></li>
</ul>
</li>
</ul>
</li>
</ul>
<ul>
<li><em>InputScope gives a hint ot the system which Soft Input Panel layout to use</em>
<ul>
<li><em>&lt;TextBox&gt;</em>
<ul>
<li><em>&lt;TextBox.InputScope&gt;</em>
<ul>
<li><em>&lt;InputScope&gt;</em>
<ul>
<li><em>&lt;InputScopeName NameValue=&quot;EmailNameOrAddress&quot;/&gt;</em></li>
</ul>
</li>
</ul>
<ul>
<li><em>&lt;/InputScope&gt;</em></li>
</ul>
</li>
</ul>
<ul>
<li><em>&lt;/TextBox.InputScope&gt;</em></li>
</ul>
</li>
</ul>
<ul>
<li><em>&lt;/TextBox&gt;</em></li>
<li><em>This is an optimization done on textbox</em></li>
<li><em>Use it if a user is going to input a specific type of entry, such as numbers or email address and you will get a slightly different keyboard</em></li>
<li><em>Examples: Chat, EmailNameOrAddress, CurrencyAmount, PostalCode, Digits</em></li>
</ul>
</li>
</ul>
<ul>
<li><em>Also password box, was optimized with the 1 second delay so you can see the character before it&#8217;s masked</em></li>
</ul>
<ul>
<li><em>Keyboard is shown whenever the control has focus… </em>
<ul>
<li><em>Set focus onto something else, if you want to programmatically hide the keyboard</em></li>
</ul>
</li>
</ul>
<ul>
<li><em>WebBrowser control is new…</em>
<ul>
<li><em>It just brings HTML or web content into your application</em></li>
<li><em>If it has javascript, you can communicate back and forth between your C# and javascript</em>
<ul>
<li><em>ScriptNotifyEvent &#8212; is event used to contact C# from JavaScript</em></li>
</ul>
<ul>
<li><em>BrowserControl.InvokeScript method used to call JavaScript from C#</em></li>
</ul>
</li>
</ul>
<ul>
<li><em>Displays network and local content</em></li>
<li><em>Gesures: pan, double tap and pinch</em></li>
<li><em>Supports transforms &amp; projections</em>
<ul>
<li><em>No input on transform</em></li>
</ul>
</li>
</ul>
<ul>
<li><em>Optimized for privacy</em>
<ul>
<li><em>Script is disabled by default</em></li>
</ul>
<ul>
<li><em>Cookies and cache are isolated</em></li>
</ul>
</li>
</ul>
</li>
</ul>
<ul>
<li><em>The application model on the phone works like this</em>
<ul>
<li><em>You have one application, with one isolated storage, and own http connection</em></li>
</ul>
<ul>
<li><em>It&#8217;s all isolated</em></li>
<li><em>The cookie set by your app logging into facebook app is different than the cookie and cache and so forth set by the main browser on the phone</em></li>
<li><em>Everything for your application is separate </em></li>
</ul>
<ul>
<li><em>It was a design choice they made</em></li>
</ul>
</li>
</ul>
<ul>
<li><em>Paradigms for navigating:</em>
<ul>
<li><em>For most applications we expect to navigate through PANORAMA or PIVOT</em></li>
</ul>
<ul>
<li><em>&quot;Panorama&quot; &#8212; takes one page….</em>
<ul>
<li><em>Turns your application into a really fun to navigate, interactive page</em></li>
</ul>
<ul>
<li><em>We go &quot;broad&quot;</em></li>
</ul>
<ul>
<li><em>Put three screens or more and the user navigates across the pages with a flick</em></li>
</ul>
<ul>
<li><em>Good for &quot;exploring&quot; content</em></li>
</ul>
<ul>
<li><em>This will NOT have an application bar</em></li>
</ul>
<ul>
<li><em>These are ALWAYS portrait &#8212; we WILL NOT support landscape</em></li>
</ul>
<ul>
<li><em>Has TITLE at the top</em></li>
</ul>
<ul>
<li><em>Has SECTION titles</em></li>
</ul>
<ul>
<li><em>Panorama title moves at different speed than the section titles</em></li>
</ul>
<ul>
<li><em>They do all that for you in the control</em></li>
</ul>
<ul>
<li><em>It always give you a little &quot;peak&quot; of what is coming next, a teaser</em></li>
</ul>
<ul>
<li><em>These things go in a circle, it&#8217;s a real that turns around… they do all that for you… you just give them the IM&#8217;s</em></li>
</ul>
<ul>
<li><em>It&#8217;s not in beta2… they have it in house… if you need it email Jaime or Karl or whoever</em></li>
</ul>
<ul>
<li><em>You can scroll up or down… still will support deep zoom or pinch gestures</em></li>
</ul>
<ul>
<li><em>It should be 6 or 7 screens tops &#8212; then the user gets tired scrolling back and forth</em></li>
</ul>
<ul>
<li><em>4 panels seems really straightforward</em></li>
</ul>
<ul>
<li><em>Question: programmatic access to go to a specific panel? Take me home or goto page 4…</em></li>
</ul>
</li>
</ul>
<ul>
<li><em>&quot;Pivots&quot; &#8212; horizontal list with a list box down</em>
<ul>
<li><em>It&#8217;s just like a tab control</em></li>
</ul>
<ul>
<li><em>You have tabs on the top and you press on it and it will bring in new data</em></li>
</ul>
<ul>
<li><em>Zune HD does pivots for just about everything</em></li>
</ul>
<ul>
<li><em>This is not in beta2… it will be in the upcoming release once they RTM</em></li>
</ul>
</li>
</ul>
<ul>
<li><em>There are codeplex examples out there both Panorama and Pivot</em>
<ul>
<li><em>You can play with those…</em></li>
</ul>
<ul>
<li><em>But, there are some significant differences… so wait for them</em></li>
</ul>
</li>
</ul>
</li>
</ul>
<ul>
<li><em>BING MAPS CONTROL</em>
<ul>
<li><em>Not in beta bits</em></li>
</ul>
<ul>
<li><em>Can use it inside your app</em></li>
</ul>
<ul>
<li><em>In-App bing maps control</em></li>
</ul>
<ul>
<li><em>Use it to show maps and data and pins</em></li>
</ul>
<ul>
<li><em>It has gesture support for zoom, pinch, flick</em></li>
</ul>
<ul>
<li><em>Programmable</em></li>
</ul>
<ul>
<li><em>Show pins, hide pins, replace pins</em></li>
</ul>
<ul>
<li><em>You need an APPID to use it, but, it won&#8217;t be a paid license, it will be free</em></li>
</ul>
<ul>
<li><em>For most developers it will be free… if you have a real-estate app…</em>
<ul>
<li><em>You used to have to license it</em></li>
</ul>
<ul>
<li><em>You don&#8217;t have to do that… just get your app ID and code against it</em></li>
</ul>
</li>
</ul>
</li>
</ul>
<ul>
<li><em>THEMES</em>
<ul>
<li><em>Their controls support themes</em></li>
</ul>
<ul>
<li><em>Select from a choice of 10 accent colors</em></li>
</ul>
<ul>
<li><em>Select between light or dark background</em></li>
</ul>
<ul>
<li><em>Many applications won&#8217;t support the themes and that&#8217;s ok.</em></li>
</ul>
<ul>
<li><em>If your application is simple… and you support the OS, you&#8217;ll get theme support out of the box</em></li>
</ul>
</li>
</ul>
<ul>
<li><em>Question: standard support for ResourceDictionary is there</em>
<ul>
<li><em>Just like WPF, walks up the tree looking for themes, if it doesn&#8217;t find it, it goes out the top and grabs the system themes</em></li>
</ul>
</li>
</ul>
<ul>
<li><em>APPLICATION MODEL + NAVIGATION:</em>
<ul>
<li><em>&quot;how is my application going to work / what&#8217;s the difference between the app I have and what I&#8217;m supposed to do outside of the desktop&quot;</em>
<ul>
<li><em>Phone has three buttons: back button, home button, and search</em>
<ul>
<li><em>There is little to nothing you can do with search…</em>
<ul>
<li><em>It&#8217;s for bing</em></li>
</ul>
<ul>
<li><em>Might be opened up later</em></li>
</ul>
</li>
</ul>
<ul>
<li><em>Back button is interesting, you can use it to navigate the phone and in your app</em>
<ul>
<li><em>Example: of a wizard app with a &quot;goto next step button&quot;</em>
<ul>
<li><em>Asks survey… in your code you have a button that will programatically take you back</em></li>
</ul>
<ul>
<li><em>BUT the phone back button you can use to navigate back too.</em></li>
</ul>
<ul>
<li><em>Integrates seemlessly with the phone and the OS</em></li>
</ul>
</li>
</ul>
<ul>
<li><em>SILVERLIGHT FRAME AND PAGE REFRESHER</em>
<ul>
<li><em>You have a &quot;frame&quot; object on the phone and a &quot;page&quot; object… this takes care of all the navigation</em></li>
<li><em>The operating system takes care of all that for you</em></li>
<li><em>Frame is really just a dummy object</em></li>
</ul>
<ul>
<li><em>Page is really a more interesting object &#8212; has a bit more weight… there are some events at the page level that handle saving state… when they leave page and come back</em></li>
</ul>
<ul>
<li><em>Standard silverlight stuff that they are using on the phone</em></li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
<ul>
<li><em>APPLICATION CHROME</em>
<ul>
<li><em>SYSTEM TRAY and APPLICATION BAR</em>
<ul>
<li><em>SYSTEM TRAY</em>
<ul>
<li><em>Your application has the client area and you may have a System Tray up above that…</em>
<ul>
<li><em>It&#8217;s like the windows task bar</em></li>
<li><em>You can NOT interact with it</em></li>
<li><em>You can NOT put buttons in there</em></li>
<li><em>ONLY windows and operators for things like battery</em></li>
<li><em>The one thing you can do there is to HIDE or SHOW it </em>
<ul>
<li><em>It&#8217;s just an attached property</em>
<ul>
<li><em>Microsoft.Phone.Shell.SystemTray.IsVisible = true</em></li>
</ul>
<ul>
<li><em>Design your app so it fits when the tray is visible</em></li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
<ul>
<li><em>APPLICATION BAR</em>
<ul>
<li><em>It&#8217;s sort of the menu on the phone</em></li>
</ul>
<ul>
<li><em>It&#8217;s always on the button</em></li>
</ul>
<ul>
<li><em>They always handle it</em></li>
</ul>
<ul>
<li><em>You can&#8217;t control the animation on it…</em></li>
</ul>
<ul>
<li><em>You CAN control the background color</em></li>
</ul>
<ul>
<li><em>You can have UP TO (but no MORE than) 4 buttons</em></li>
</ul>
<ul>
<li><em>Icons should be one color &#8212; they will overwrite and apply a mask on your button colors</em></li>
</ul>
<ul>
<li><em>From the application bar you can have MenuItems (click on the …)</em>
<ul>
<li><em>Logical limit is 6 items</em></li>
</ul>
<ul>
<li><em>Although there isn&#8217;t a hard limit</em></li>
</ul>
</li>
</ul>
<ul>
<li><em>Automatic support for rotation on buttons and menu items</em></li>
</ul>
<ul>
<li><em>These 4 buttons should be pretty &quot;global&quot; &#8212; things that should be global in your APP &#8212; NOT context sensitive things… like &quot;home&quot; or &quot;refresh&quot;</em>
<ul>
<li><em>If you want to do something context sensitive… you might look to the menus</em></li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
<ul>
<li><em>ORIENTATION SUPPORT</em>
<ul>
<li><em>You can NOT programmatically change the orientation</em></li>
</ul>
<ul>
<li><em>PhoneApplicationPage.SupportedOrientations property states Portrait, Landscape, or Both</em></li>
</ul>
</li>
</ul>
<ul>
<li><em>WP7 APP MANAGEMENT</em>
<ul>
<li><em>Windows Phone execution model is designed to provdie end users with a fast, responsive experience</em>
<ul>
<li><em>Only one application can run at a time</em></li>
</ul>
<ul>
<li><em>System terminates application when user navigates away</em></li>
</ul>
</li>
</ul>
<ul>
<li><em>It&#8217;s a multiasking phoen (three layers underneath it&#8217;s WindowsCE)</em>
<ul>
<li><em>But, higher up… it&#8217;s ONLY one app at a time</em></li>
</ul>
</li>
</ul>
<ul>
<li><em>App is TOMBSTOED when user navigates away</em>
<ul>
<li><em>System saves state information then terminates your app</em></li>
</ul>
<ul>
<li><em>When user navigates back to the application, system restarts the app and passes state information back</em></li>
</ul>
</li>
</ul>
<ul>
<li><em>It&#8217;s how you restore your state that makes the illusion that your app didn&#8217;t get shut down</em></li>
<li><em>Developer must write code to respond to lifecycle events</em>
<ul>
<li><em>Save and restore state</em></li>
</ul>
<ul>
<li><em>Maintain illusion that app wasn&#8217;t stopped</em></li>
</ul>
</li>
</ul>
<ul>
<li><em>RUNNING -&gt; EXIT -&gt; NOT RUNNNING -&gt; START</em></li>
</ul>
<ul>
<li><em>Interruptions: lock screen, low battery, app switch, reminder, text, phone calls… (these are things that will interrupt your application</em></li>
</ul>
<ul>
<li><em>Approach #1: Obscuring</em>
<ul>
<li><em>Scenario: Playing game and phone rings</em>
<ul>
<li><em>Dims and a little bit of a pop up on the phone…</em></li>
<li><em>&quot;hey, you have something to look at&quot;</em></li>
</ul>
<ul>
<li><em>Your game is still the main thing that is running…</em></li>
</ul>
<ul>
<li><em>You still have the main phone</em></li>
</ul>
<ul>
<li><em>If you are playing a game… your game should automatically PAUSE &#8212; so you don&#8217;t get &quot;shot&quot; in your game</em></li>
</ul>
<ul>
<li><em>All the background threading is still running</em></li>
</ul>
<ul>
<li><em>All that happened is that your UI got obscured a little bit</em></li>
</ul>
<ul>
<li><em>If the user took the call then…</em></li>
</ul>
</li>
</ul>
</li>
</ul>
<ul>
<li><em>Approach #2: Tombstoning</em>
<ul>
<li><em>Scenario: you were gaming, incoming call, you click on take call</em>
<ul>
<li><em>Your app is toast</em></li>
</ul>
<ul>
<li><em>You get an event called &quot;Deactivate&quot;</em></li>
</ul>
<ul>
<li><em>This is what you get before you get into &quot;Suspended&quot;</em>
<ul>
<li><em>Suspended == dead… your app is dead</em></li>
</ul>
<ul>
<li><em>It&#8217;s called suspended because in the future eventually they will open that up a little bit</em></li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
<ul>
<li><em>Approach #: Activate</em>
<ul>
<li><em>If they click the back button, they are activated again, your app is live</em></li>
</ul>
<ul>
<li><em>To the user it looks like they never left</em></li>
</ul>
<ul>
<li><em>When they were deactivated, you saved all the state, the viewmodel all of it… they give you a property to store all this</em></li>
</ul>
<ul>
<li><em>Then they kill you</em></li>
</ul>
<ul>
<li><em>When you come back, you get this property back and you restore all the state and everything that is going on…</em></li>
</ul>
</li>
</ul>
</li>
</ul>
<ul>
<li><em>Events:</em>
<ul>
<li><em>Application_Launching</em></li>
<li><em>Application_Activated</em></li>
<li><em>Application_Deactivated</em></li>
<li><em>Application_Closing</em></li>
</ul>
</li>
</ul>
<ul>
<li><em>There is no &quot;exit&quot; code in the phone.</em></li>
</ul>
<ul>
<li><em>You don&#8217;t call return or Exit</em></li>
</ul>
<ul>
<li><em>If the user clicks the back button, you are dead, app closed.</em></li>
</ul>
<ul>
<li><em>The other time your app will die is if a user clicks on an application</em></li>
</ul>
<ul>
<li><em>Look at sample app:</em>
<ul>
<li><em>Joie kyriorte on jaimie&#8217;s team cleaned it up</em></li>
</ul>
<ul>
<li><em>And shows &quot;App Lifecycle&quot;</em></li>
</ul>
<ul>
<li><em>&quot;Learning Windows Phone &#8211; App Lifecycle&quot;</em></li>
</ul>
<ul>
<li><em>It&#8217;s out on the web</em></li>
<li><em>It shows all the event log in the body of the application</em></li>
</ul>
</li>
</ul>
<ul>
<li><em>In the emulator you can not simulate a phone call…</em>
<ul>
<li><em>But you can use &quot;PushNotifications&quot; or something to create an interruption to simulate the Obscured state</em></li>
</ul>
</li>
</ul>
<ul>
<li><em>One example that they are still working through…</em>
<ul>
<li><em>Rebuffering of a youtube video with tombstone</em></li>
</ul>
</li>
</ul>
<ul>
<li><em>Question: how much time do you have… still being debated… rule of thumb is about a second or 2… you won&#8217;t be able to extend it. (it will be between 1 and 5)… </em></li>
</ul>
<ul>
<li><em>Question: saving state is not done in background</em></li>
<li><em>When Deactivated is called:</em>
<ul>
<li><em>#1: kill any running threads</em></li>
</ul>
<ul>
<li><em>#2: save your state</em></li>
</ul>
<ul>
<li><em>&#8211; don&#8217;t do any UI</em></li>
<li><em>&#8211; don&#8217;t save your state on the internet</em></li>
<li><em>&#8211; the will kill it</em></li>
</ul>
<ul>
<li><em>&#8211; save locally as much as you can</em>
<ul>
<li><em>When you come back you can get at it and save it out to the internet</em></li>
</ul>
</li>
</ul>
</li>
</ul>
<ul>
<li><em>If you launch your app from the home page… it&#8217;s a new instance</em></li>
<li><em>If you launch your app from the back button… you get the instance on the &quot;back stack&quot; &#8212; it won&#8217;t have the prior state</em></li>
</ul>
<ul>
<li><em>You can have two instances of the same app… </em>
<ul>
<li><em>You can use isolated storage OR ???</em>
<ul>
<li><em>You can save to either place</em></li>
</ul>
</li>
</ul>
</li>
</ul>
<ul>
<li><em>When you are on your main page and you click the back button…</em>
<ul>
<li><em>That is the one time that you have a closing event.</em></li>
</ul>
</li>
</ul>
<ul>
<li><em>There is a great blog post on Tombstoning</em></li>
</ul>
<ul>
<li><em>THERE IS NO CONCEPT OF FORWARD…</em>
<ul>
<li><em>There is a back stack that keeps growing…</em></li>
<li><em>There is no forward</em></li>
<li><em>They don&#8217;t allow you to control the journaling yourself…</em>
<ul>
<li><em>On the internet you can make them think they went from 3 to 1</em></li>
</ul>
</li>
</ul>
</li>
</ul>
<ul>
<li><em>Scenario 1: Launch and Clsoe</em></li>
<li><em>Scenario 2: deactivated &gt; user completes choser or navs back </em>
<ul>
<li><em>Then app is restored and Activated Event</em></li>
</ul>
</li>
</ul>
<ul>
<li><em>LAUNCHER or CHOOSER</em>
<ul>
<li><em>These is how you interact with the phone OS</em></li>
</ul>
<ul>
<li><em>LAUNCHER</em>
<ul>
<li><em>Launches on of the built-in applications through which a user complets a task</em></li>
</ul>
<ul>
<li><em>No data is returned to calling application</em></li>
</ul>
<ul>
<li><em>Example: PhoneCallTask</em></li>
</ul>
</li>
</ul>
<ul>
<li><em>CHOOSER</em>
<ul>
<li><em>Launches one of the built in apps through which a user completes a task and which returns some data to calling application</em></li>
</ul>
<ul>
<li><em>When caller completes, calling application is activated and supplied with the Chooser result</em></li>
</ul>
<ul>
<li><em>Example: </em>
<ul>
<li><em>Common file dialog</em></li>
<li><em>Want to choose a picture… go choose the picture from facebook</em></li>
</ul>
</li>
</ul>
</li>
</ul>
<ul>
<li><em>These are very simple</em></li>
</ul>
<ul>
<li><em>Launchers</em>
<ul>
<li><em>Emailcomposetask</em></li>
</ul>
<ul>
<li><em>Marketplacedetailtask</em></li>
</ul>
<ul>
<li><em>Phonecalltask</em></li>
</ul>
<ul>
<li><em>Searchtask</em></li>
</ul>
<ul>
<li><em>Mediaplayerlauncher</em></li>
</ul>
<ul>
<li><em>Webbrwosertask</em></li>
</ul>
</li>
</ul>
<ul>
<li><em>Choosers</em>
<ul>
<li><em>Cameracapturetask</em></li>
</ul>
<ul>
<li><em>Emailaddresschoosertask</em></li>
</ul>
<ul>
<li><em>Phonenumberchoosertask</em></li>
</ul>
<ul>
<li><em>Photochoosertask</em></li>
</ul>
<ul>
<li><em>Saveemailaddresstask</em></li>
</ul>
<ul>
<li><em>Savephonenumbertask</em></li>
</ul>
</li>
</ul>
<ul>
<li><em>If it ain&#8217;t on the list, you can&#8217;t do it.</em></li>
</ul>
<ul>
<li><em>Example: how do I call office? If it ain&#8217;t on the list for V1, you can&#8217;t do it.</em></li>
</ul>
<ul>
<li><em>These make tombstoning a little more complicated</em>
<ul>
<li><em>When you launch a Launcher or Chooser your app is terminated.</em></li>
</ul>
<ul>
<li><em>Chooser</em>
<ul>
<li><em>Assign a dleegate for the Chooser&#8217;s Completed event</em></li>
</ul>
<ul>
<li><em>Implement the event handler for the Completed</em></li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
<ul>
<li><em>HARDWARE AND THE CLOUD IS PART #3… next months session&#8230;</em></li>
</ul>
 <img src="http://marketdatatrader.com/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=153" width="1" height="1" style="display: none;" /><p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fmarketdatatrader.com%2F2010%2F10%2F26%2Fwindows-phone-7-seattle-silverlight-users-group%2F&amp;title=Windows%20Phone%207%20%2F%20Seattle%20Silverlight%20Users%20Group" onclick="pageTracker._trackPageview('/outgoing/www.addtoany.com/share_save_url=http_3A_2F_2Fmarketdatatrader.com_2F2010_2F10_2F26_2Fwindows-phone-7-seattle-silverlight-users-group_2F_amp_title=Windows_20Phone_207_20_2F_20Seattle_20Silverlight_20Users_20Group?referer=');"><img src="http://marketdatatrader.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://marketdatatrader.com/2010/10/26/windows-phone-7-seattle-silverlight-users-group/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>IronPython and Trading Systems</title>
		<link>http://marketdatatrader.com/2010/07/15/ironpython-and-trading-systems/</link>
		<comments>http://marketdatatrader.com/2010/07/15/ironpython-and-trading-systems/#comments</comments>
		<pubDate>Fri, 16 Jul 2010 06:42:56 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[.Net]]></category>
		<category><![CDATA[IronPython]]></category>

		<guid isPermaLink="false">http://marketdatatrader.com/2010/07/15/ironpython-and-trading-systems/</guid>
		<description><![CDATA[I’ve long believed that scripting languages are an integral part of any legitimate Quant platform or strategy development framework.&#160; First I started playing with Matlab, using M as script and Java as a host to my QuantPipes trading platform.&#160; Later, I messed around with GroovyScript.&#160; But, now that I am entirely committed to the .NET [...]]]></description>
			<content:encoded><![CDATA[<p>I’ve long believed that scripting languages are an integral part of any legitimate Quant platform or strategy development framework.&#160; First I started playing with Matlab, using M as script and Java as a host to my QuantPipes trading platform.&#160; Later, I messed around with GroovyScript.&#160; But, now that I am entirely committed to the .NET platform, I’m playing with dynamic languages such as IronPython.</p>
<p>At first blush, it has everything I was looking for.&#160; It took only a couple hours to come up to speed and get a scriptable widget dropped into my latest trading framework that enables me real-time control of the underlying libraries.&#160; Great job Microsoft!&#160; They are doing some powerful things with the framework.</p>
 <img src="http://marketdatatrader.com/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=144" width="1" height="1" style="display: none;" /><p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fmarketdatatrader.com%2F2010%2F07%2F15%2Fironpython-and-trading-systems%2F&amp;title=IronPython%20and%20Trading%20Systems" onclick="pageTracker._trackPageview('/outgoing/www.addtoany.com/share_save_url=http_3A_2F_2Fmarketdatatrader.com_2F2010_2F07_2F15_2Fironpython-and-trading-systems_2F_amp_title=IronPython_20and_20Trading_20Systems?referer=');"><img src="http://marketdatatrader.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://marketdatatrader.com/2010/07/15/ironpython-and-trading-systems/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

