<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://cs.mseducommunity.com/utility/FeedStylesheets/atom.xsl" media="screen"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en"><title type="html">Semblio Community Blog</title><subtitle type="html" /><id>http://cs.mseducommunity.com/blogs/semblio_community_blog/atom.aspx</id><link rel="alternate" type="text/html" href="http://cs.mseducommunity.com/blogs/semblio_community_blog/default.aspx" /><link rel="self" type="application/atom+xml" href="http://cs.mseducommunity.com/blogs/semblio_community_blog/atom.aspx" /><generator uri="http://communityserver.org" version="4.1.31106.3070">Community Server</generator><updated>2009-02-03T12:15:00Z</updated><entry><title>Activity Lifecycle and why Activities should avoid using MessageBox</title><link rel="alternate" type="text/html" href="/blogs/semblio_community_blog/archive/2009/03/16/activity-lifecycle-and-why-activities-should-avoid-using-messagebox.aspx" /><id>/blogs/semblio_community_blog/archive/2009/03/16/activity-lifecycle-and-why-activities-should-avoid-using-messagebox.aspx</id><published>2009-03-17T05:26:00Z</published><updated>2009-03-17T05:26:00Z</updated><content type="html">&lt;h2&gt;Abstract&lt;/h2&gt;
&lt;p style="MARGIN:0in;FONT-FAMILY:Calibri;FONT-SIZE:16pt;"&gt;Semblio Activity publishers have access to almost all of the power of WPF, but are constrained in some specific ways to ensure safety during playback.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;The Semblio hosting mechanism and lifecycle are described in this blog, along with specific rules concerning the use of the MessageBox API.&lt;/p&gt;
&lt;p style="MARGIN:0in;FONT-FAMILY:Calibri;FONT-SIZE:16pt;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="MARGIN:0in;FONT-FAMILY:Calibri;FONT-SIZE:16pt;FONT-WEIGHT:bold;"&gt;Activities live in a PartialTrust Sandbox&lt;/p&gt;
&lt;p style="MARGIN:0in;FONT-FAMILY:Calibri;FONT-SIZE:16pt;"&gt;Many non-trivial Semblio files (or packages) contain multiple Activities.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;Activities are hosted using the CLR Add-In mechanism and Activity &amp;quot;Content&amp;quot; is loaded into a Partial Trust AppDomain (a secure sandbox) to restrict the Activity to safe operations.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;Much effort has been expended to ensure that this architecture is safe, performant and supports Semblio scenarios.&lt;/p&gt;
&lt;p style="MARGIN:0in;FONT-FAMILY:Calibri;FONT-SIZE:16pt;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="MARGIN:0in;FONT-FAMILY:Calibri;FONT-SIZE:16pt;"&gt;While the sandbox restricts the Activity Content to &amp;quot;safe&amp;quot; operations, it is still possible for an Activity, maliciously or otherwise, to interfere with normal Playback.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;This is partially because the sandboxing technique in use is not perfect, but also because the balance between restrictive/non-restrictive permissions needs to be powerful enough to allow for useful Content, while preventing egregious damage to the client system at Playback time.&lt;/p&gt;
&lt;p style="MARGIN:0in;FONT-FAMILY:Calibri;FONT-SIZE:16pt;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="MARGIN:0in;FONT-FAMILY:Calibri;FONT-SIZE:16pt;FONT-WEIGHT:bold;"&gt;Sometimes it&amp;#39;s Hard to say Goodbye&lt;/p&gt;
&lt;p style="MARGIN:0in;FONT-FAMILY:Calibri;FONT-SIZE:16pt;"&gt;Specific behavior that is known to cause issues during Playback generally occur during &amp;quot;unload&amp;quot;.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;This is generally most interesting for Activities in multi-Activity packages, but because any Activity should expect to be repurposed into a package with other Activities, it should be a general design principle for Activity publishers.&lt;/p&gt;
&lt;p style="MARGIN:0in;FONT-FAMILY:Calibri;FONT-SIZE:16pt;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="MARGIN:0in;FONT-FAMILY:Calibri;FONT-SIZE:16pt;"&gt;While a v1 Activity never actually receives an &amp;quot;unload&amp;quot; command, v2 Activities can register for, and react to, the newly-introduced &lt;span style="FONT-STYLE:italic;FONT-WEIGHT:bold;"&gt;NavigationStartedEvent&lt;/span&gt;.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;If the NavigationStartedEvent it receives indicates that the destination is an ActivityId different than that of the current Activity (this is accomplished by inspecting the Uri), this can be seen as a reliable indication that the current Activity will be unloaded shortly.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;In fact, this is the recommended way for the Activity to &amp;quot;clean up&amp;quot; and do whatever it needs to do to ensure that it unloads gracefully.&lt;/p&gt;
&lt;p style="MARGIN:0in;FONT-FAMILY:Calibri;FONT-SIZE:16pt;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="MARGIN:0in;FONT-FAMILY:Calibri;FONT-SIZE:16pt;FONT-WEIGHT:bold;"&gt;Bad Activity&amp;hellip; Bad!&lt;/p&gt;
&lt;p style="MARGIN:0in;FONT-FAMILY:Calibri;FONT-SIZE:16pt;"&gt;With that background, we can get to the details of a specific Activity behavior that will lead to issues at Playback time:&lt;/p&gt;
&lt;p style="MARGIN:0in;FONT-FAMILY:Calibri;FONT-SIZE:16pt;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="MARGIN:0in;FONT-FAMILY:Calibri;FONT-SIZE:16pt;"&gt;&lt;span style="text-decoration:underline;"&gt;Raising MessageBox&amp;#39;s during Event Handlers&lt;/span&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;br /&gt;While the Semblio sandbox allows MessageBox&amp;#39;s to be raised by Activities, much care must be taken when doing so, especially during the processing of event handlers.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;The reason for concern is that MessageBox&amp;#39;s are raised asynchronously.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;Once displayed, a MessageBox&amp;#39;s lifetime is dependent on direct user involvement.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;If an Activity switch occurs before the MessageBox is dismissed, the Semblio runtime will unload the owning Activity (via IDispose.Dispose() but also by forcibly unloading it&amp;#39;s AppDomain) which will most likely lead to a non-recoverable runtime crash.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;There is no way for the runtime to predict and/or prevent this.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;Use MessageBox&amp;#39;s with caution.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://cs.mseducommunity.com/aggbug.aspx?PostID=693" width="1" height="1"&gt;</content><author><name>brucemac</name><uri>http://cs.mseducommunity.com/members/brucemac/default.aspx</uri></author><category term="Microsoft Semblio" scheme="http://cs.mseducommunity.com/blogs/semblio_community_blog/archive/tags/Microsoft+Semblio/default.aspx" /><category term="Semblio SDK" scheme="http://cs.mseducommunity.com/blogs/semblio_community_blog/archive/tags/Semblio+SDK/default.aspx" /></entry><entry><title>Semblio .NET 3.5 SP 1 and Activity Data </title><link rel="alternate" type="text/html" href="/blogs/semblio_community_blog/archive/2009/02/19/semblio-net-3-5-sp-1-and-activity-data.aspx" /><id>/blogs/semblio_community_blog/archive/2009/02/19/semblio-net-3-5-sp-1-and-activity-data.aspx</id><published>2009-02-19T23:53:00Z</published><updated>2009-02-19T23:53:00Z</updated><content type="html">&lt;p&gt;Hello All-&lt;/p&gt;
&lt;p&gt;We&amp;#39;ve had a couple of repeat questions in the Semblio Forums that I thought we&amp;#39;d elaborate on.&amp;nbsp; The two topics center on hosting HTML content and Activity data in the Authoring Tool.&amp;nbsp;&amp;nbsp; Enjoy! &lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-size:small;"&gt;&lt;span style="font-family:Calibri;"&gt;Hosting HTML in Semblio with .NET 3.5&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:small;"&gt;&lt;span style="font-family:Calibri;"&gt;Late in the ship cycle the Semblio team determined that hosting HTML content within a Semblio Activity was prone to hanging on app shutdown or navigation away from the Activity.&amp;nbsp; Consultation with the WPF team confirmed that this issue was corrected in .NET 3.5 SP1.&amp;nbsp; Since no simple mitigation is available, we are recommending that anyone delivering content that hosts HTML in a Semblio Activity ensure that client machines be upgraded to use SP1 of the .NET 3.5 Framework&lt;span style="color:#1f497d;"&gt; &lt;/span&gt;(which was not an official pre-requisite).&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-size:small;"&gt;&lt;span style="font-family:Calibri;"&gt;Activity Data in the Authoring Tool&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:small;"&gt;&lt;span style="font-family:Calibri;"&gt;In a recent forum we had an exchange around how activity data is treated in the future authoring tool and will the package manifest hold all activity data or will each activity have its own activity data file? &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:small;"&gt;&lt;span style="font-family:Calibri;"&gt;To elaborate on Bruce Mackenzie&amp;rsquo;s&lt;span style="color:#1f497d;mso-themecolor:dark2;"&gt; &lt;/span&gt;response: &amp;nbsp;for the Semblio Authoring tool, the Activities it produces puts a minimal amount of information into the package manifest.&amp;nbsp; We have a single XML file that contains all the data to drive the Activity.&amp;nbsp; What goes into the manifest is a string property with the ID of the library for the activity and a Uri property that points to the XML data file.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:small;font-family:Calibri;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-size:small;"&gt;&lt;span style="font-family:Calibri;"&gt;And yes, Authoring can import Semblio activities that were created outside of Authoring.&amp;nbsp; In those cases, Authoring reads the information placed in the Manifest and will transfer that and all dependencies to the new manifest.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://cs.mseducommunity.com/aggbug.aspx?PostID=601" width="1" height="1"&gt;</content><author><name>Anonymous</name><uri>http://cs.mseducommunity.com/members/Anonymous/default.aspx</uri></author><category term="Semblio Authoring Tool" scheme="http://cs.mseducommunity.com/blogs/semblio_community_blog/archive/tags/Semblio+Authoring+Tool/default.aspx" /><category term=".NET 3.5 SP 1" scheme="http://cs.mseducommunity.com/blogs/semblio_community_blog/archive/tags/.NET+3.5+SP+1/default.aspx" /></entry><entry><title>Semblio Blog Now Live!</title><link rel="alternate" type="text/html" href="/blogs/semblio_community_blog/archive/2009/02/03/semblio-blog-now-live.aspx" /><id>/blogs/semblio_community_blog/archive/2009/02/03/semblio-blog-now-live.aspx</id><published>2009-02-03T20:15:00Z</published><updated>2009-02-03T20:15:00Z</updated><content type="html">&lt;p&gt;
&lt;p&gt;&lt;span style="font-size:9pt;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ascii-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;"&gt;Hello MS EDU Community-&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;span style="font-size:9pt;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ascii-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;"&gt;I&amp;#39;m happy you&amp;#39;ve stumbled upon the Semblio community blog.&amp;nbsp; Over the days, weeks, and months to come we&amp;#39;ll use this forum as a means to foster a two way communication between you, the partners, customers, and service providers, and us, the Semblio Product, Marketing, and Management Team.&lt;span&gt; &lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;span style="font-size:9pt;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ascii-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;"&gt;As a way of introduction, my name is Scott Burmester, I am the Product Manger (read: overhead) for Microsoft Semblio. &lt;span&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;There are a number of formal definitions and standards which are incumbent of a Product Manager, but when you get right down to it, the main aspect of my role is being the Grava, now Semblio, traffic cop to ensure product development doesn&amp;rsquo;t run head-on into product marketing.&lt;span&gt; &lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;The great aspect of our Semblio community blog is you won&amp;rsquo;t have to solely deal with the overhead in the group.&lt;span&gt; &lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;Through the power of persuasion, not to mention straight bribery, I&amp;rsquo;ve been able to secure folks much smarter than I to participate in our blog.&lt;span&gt; &lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;These are the hard working people on the development, test, design, and PM teams who are responsible for creating Semblio from the ground up.&lt;span&gt; &lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;We will be on-boarding these folks over the next few days and will allow them to introduce themselves and their area of expertise.&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;span style="font-size:9pt;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ascii-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;"&gt;With most of the introductions out of the way, let&amp;rsquo;s get to the big news of the week&amp;hellip;the public announcement of Microsoft Semblio and the &lt;span style="color:#4f81bd;mso-themecolor:accent1;"&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=d22204fc-ab74-4d99-a5bd-bd56b32ff59f&amp;amp;DisplayLang=en"&gt;&lt;span style="color:#4f81bd;mso-themecolor:accent1;"&gt;availability of the Semblio SDK&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;.&lt;span&gt; &lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;To see the press release and accompanying quote sheet from the supporting partners, visit: &lt;span style="color:#4f81bd;mso-themecolor:accent1;"&gt;&lt;a href="http://www.microsoft.com/presspass/press/2009/feb09/02-03SemblioPR.mspx"&gt;&lt;span style="color:#4f81bd;mso-themecolor:accent1;"&gt;http://www.microsoft.com/presspass/press/2009/feb09/02-03SemblioPR.mspx&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;.&lt;span&gt; &lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;This announcement really marks the beginning of our work. While we&amp;rsquo;ve had the pleasure of working closely with twelve partners and have had a year and a half worth of partner and customer feedback, we&amp;rsquo;re looking for more.&lt;span&gt; &lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;More opinions on what we need to do in order to make Semblio relevant for your content development workflow.&lt;span&gt; &lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;More suggestions on what needs we need to meet in order to make sense for your business model.&lt;span&gt; &lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;More thoughts on how to increase the level of discoverability of your material, and how to lower the scale for usage. &lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;span style="font-size:9pt;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ascii-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;"&gt;Thanks again for your interest in what we&amp;rsquo;re up to with Semblio and we look forward to hearing from you soon.&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;span style="font-size:9pt;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ascii-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;"&gt;Cheers,&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;span style="font-size:9pt;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ascii-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;"&gt;Scott&lt;/span&gt;&lt;/p&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://cs.mseducommunity.com/aggbug.aspx?PostID=501" width="1" height="1"&gt;</content><author><name>Anonymous</name><uri>http://cs.mseducommunity.com/members/Anonymous/default.aspx</uri></author><category term="Microsoft Semblio" scheme="http://cs.mseducommunity.com/blogs/semblio_community_blog/archive/tags/Microsoft+Semblio/default.aspx" /><category term="Semblio SDK" scheme="http://cs.mseducommunity.com/blogs/semblio_community_blog/archive/tags/Semblio+SDK/default.aspx" /></entry></feed>