<?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>Buta no Ie &#187; JavaScript</title>
	<atom:link href="http://singchan.com/category/development/javascript/feed/" rel="self" type="application/rss+xml" />
	<link>http://singchan.com</link>
	<description>The House of Pork and User Experience Development</description>
	<lastBuildDate>Tue, 11 Oct 2011 22:08:26 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>SharePoint 2010: var $ conflict between CMSSiteManager.js and jQuery</title>
		<link>http://singchan.com/2010/11/06/sharepoint-2010-var-conflict-between-cmssitemanager-js-and-jquery/</link>
		<comments>http://singchan.com/2010/11/06/sharepoint-2010-var-conflict-between-cmssitemanager-js-and-jquery/#comments</comments>
		<pubDate>Sat, 06 Nov 2010 18:27:18 +0000</pubDate>
		<dc:creator>Buta</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[2010]]></category>
		<category><![CDATA[CMSSiteManager.js]]></category>
		<category><![CDATA[conflict]]></category>
		<category><![CDATA[error]]></category>
		<category><![CDATA[js]]></category>
		<category><![CDATA[list]]></category>
		<category><![CDATA[thumbnail]]></category>
		<category><![CDATA[view]]></category>

		<guid isPermaLink="false">http://singchan.com/?p=296</guid>
		<description><![CDATA[I ran into an issue recently on a SharePoint 2010 project where a page containing a Thumbnails list view was throwing a JavaScript error. I actually took the wrong path troubleshooting this and burned through a lot of time as a result. I had incorrectly assumed the error had something to do with our custom [...]]]></description>
			<content:encoded><![CDATA[<p>I ran into an issue recently on a SharePoint 2010 project where a page containing a Thumbnails list view was throwing a JavaScript error. I actually took the wrong path troubleshooting this and burned through a lot of time as a result. I had incorrectly assumed the error had something to do with our custom master page.</p>
<p>Turns out the <em>CMSSiteManager.js</em> library that is used by the Thumbnails list view is also using the <strong>$</strong> variable! Argh!</p>
<p>Good thing the plug-in pattern we use only calls $ internally and not globally&#8230;</p>
<pre class="brush: plain; title: ; notranslate">
(function($) {
  // plug-in goodness here...
})(jQuery);
</pre>
<p>Unfortunately our scripts for invoking the plug-ins was referencing <strong>$</strong>&#8230; <img src='http://singchan.com/wordpress/wp-includes/images/smilies/icon_sad.gif' alt=':-(' class='wp-smiley' /> </p>
<pre class="brush: plain; title: ; notranslate">
$(document).ready(function(){
  $('.foo').samplePlugin();
});
</pre>
<p>A quick replacement of <strong>$</strong> to <strong>jQuery</strong> did the trick:</p>
<pre class="brush: plain; title: ; notranslate">
jQuery(document).ready(function(){
  jQuery('.foo').samplePlugin();
});
</pre>
<p>If you have large blocks of inline jQuery code on your page, you&#8217;ll probably want to use jQuery.noConflict():</p>
<pre class="brush: plain; title: ; notranslate">
jQuery.noConflict()(function() {
    // code using $ as alias to jQuery
});
</pre>
]]></content:encoded>
			<wfw:commentRss>http://singchan.com/2010/11/06/sharepoint-2010-var-conflict-between-cmssitemanager-js-and-jquery/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SharePoint 2010: Fixing the MSDN Contextual Tab Web Part Walkthrough</title>
		<link>http://singchan.com/2010/07/31/sharepoint-2010-fixing-the-msdn-contextual-tab-web-part-walkthrough/</link>
		<comments>http://singchan.com/2010/07/31/sharepoint-2010-fixing-the-msdn-contextual-tab-web-part-walkthrough/#comments</comments>
		<pubDate>Sat, 31 Jul 2010 21:49:54 +0000</pubDate>
		<dc:creator>Buta</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Ribbon]]></category>
		<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[Web Part]]></category>
		<category><![CDATA[2010]]></category>
		<category><![CDATA[contextual tab]]></category>
		<category><![CDATA[custom]]></category>
		<category><![CDATA[error]]></category>
		<category><![CDATA[fix]]></category>
		<category><![CDATA[js]]></category>
		<category><![CDATA[ribbon]]></category>
		<category><![CDATA[ue]]></category>
		<category><![CDATA[user experience]]></category>
		<category><![CDATA[web part]]></category>

		<guid isPermaLink="false">http://singchan.com/?p=268</guid>
		<description><![CDATA[UPDATE!!! The latest versions of the CKSDev for SharePoint 2010 include an SPI for stubbing out a contextual web part! I highly recommend that anyone coding for SP2010 to install the CKS Dev Tools! http://cksdev.codeplex.com/ I haven&#8217;t had much opportunity to work with SharePoint 2010 in the past few months. However, I did get to [...]]]></description>
			<content:encoded><![CDATA[<blockquote><p><strong>UPDATE!!!</strong></p>
<p>The latest versions of the CKSDev for SharePoint 2010 include an SPI for stubbing out a contextual web part! I highly recommend that anyone coding for SP2010 to install the CKS Dev Tools!</p>
<p><a href="http://cksdev.codeplex.com/" title="CKS: Development Tools Editon" target="_blank">http://cksdev.codeplex.com/</a></p></blockquote>
<p>I haven&#8217;t had much opportunity to work with SharePoint 2010 in the past few months. However, I did get to try out the MSDN walkthrough for creating a custom web part with contextual ribbon tab recently. You can find the article here: <a href="http://msdn.microsoft.com/en-us/library/ff407578.aspx" target="_blank">http://msdn.microsoft.com/en-us/library/ff407578.aspx</a></p>
<p>In a nutshell, what&#8217;s supposed to happen is when you click on the web part, there will be a custom tab that appears in the Ribbon. It all works great for the first instance of the custom web part you place onto a page, but if you try adding a second instance of the web part, your page blows up!</p>
<p>You&#8217;ll get the following error:<br />
<em>Item has already been added. Key in dictionary: &#8216;Ribbon.CustomContextualTabGroup&#8217;  Key being added: &#8216;Ribbon.CustomContextualTabGroup&#8217;</em></p>
<p>:-/ &#8230; looks like there wasn&#8217;t much QA done for the walkthrough. Anyways, to make a short story shorter&#8230; I posted a question on the <a href="http://social.technet.microsoft.com/Forums/en-US/sharepoint2010programming/thread/8604fda5-dad3-49e5-b820-af98ae2fb3cf" target="_blank">TechNet forums</a> and Dallas Tester from MS did get back to me with a bunch of suggestions.</p>
<p>Here are the changes you can make to allow for multiple instances of the custom web part to appear on the page without everything blowing up.</p>
<p><strong>Make the following modifications to the ContextualTabWebPart class.</strong></p>
<p>Add the global &#8216;_added&#8217; bool and OnInit event handler:</p>
<pre class="brush: csharp; title: ; notranslate">static bool _added = false;

protected override void OnInit(EventArgs e)
{
 base.OnInit(e);
 _added = false;
}</pre>
<p>Since we no longer have to get the unique component ID in the delay script, I changed DelayScript into a private string:</p>
<pre class="brush: csharp; title: ; notranslate">private string delayScript = @&quot;
 function _addCustomPageComponent()
 {
  for (var i = 0; i &lt; g_customWebPartIds.length; i++)
  {
    SP.Ribbon.PageManager.get_instance().addPageComponent(new ContextualTabWebPart.CustomPageComponent(g_customWebPartIds[i]));
  }
 }

 function _registerCustomPageComponent()
 {
  SP.SOD.registerSod(&quot;&quot;CustomContextualTabPageComponent.js&quot;&quot;, &quot;&quot;/_layouts/CustomContextualTabPageComponent.js&quot;&quot;);
  var isDefined = &quot;&quot;undefined&quot;&quot;;
  try
  {
   isDefined = typeof(ContextualTabWebPart.CustomPageComponent);
  }
  catch(e)
  {
  }
  EnsureScript(&quot;&quot;CustomContextualTabPageComponent.js&quot;&quot;,isDefined, _addCustomPageComponent);
 }
 SP.SOD.executeOrDelayUntilScriptLoaded(_registerCustomPageComponent, &quot;&quot;sp.ribbon.js&quot;&quot;);&quot;;</pre>
<p>Modify the OnPreRender event handler:</p>
<pre class="brush: csharp; title: ; notranslate">protected override void OnPreRender(EventArgs e)
{
 base.OnPreRender(e);

 ClientScriptManager csm = this.Page.ClientScript;
 string componentId = SPRibbon.GetWebPartPageComponentId(this); // the unique component id 

 // if this is the first instance of the custom web part,
 //we need to add the contextual tab to the ribbon
 if (!_added)
 {
  this.AddContextualTab();
  _added = true;
 }

 // we need to create an array which will store the IDs of all instances of our custom web part
 csm.RegisterClientScriptBlock(
  this.GetType(), &quot;DeclareCustomWebPartArray&quot;, &quot;var g_customWebPartIds = new Array();&quot;, true);

 // add this webpart's ID to our array
 csm.RegisterClientScriptBlock(
  this.GetType(), &quot;AddCustomWebPartId&quot; + componentId, &quot;g_customWebPartIds.push('&quot; + componentId + &quot;');&quot;, true);

 csm.RegisterClientScriptBlock(this.GetType(), &quot;ContextualTabWebPart&quot;, this.delayScript, true);
}</pre>
<p><strong>If you want to verify that the correct web part is trigger the Ribbon commands, you can modify the &#8216;<em>handleCommand</em>&#8216; method in &#8216;<em>CustomContextualTabPageComponent.js</em>&#8216;</strong></p>
<pre class="brush: jscript; title: ; notranslate">handleCommand: function ContextualTabWebPart_CustomPageComponent$handleCommand(commandId, properties, sequence) {
 if (commandId === 'CustomContextualTab.HelloWorldCommand') {
  alert(this._webPartPageComponentId + ' says: Hello, world!');
 }
 if (commandId === 'CustomContextualTab.GoodbyeWorldCommand') {
  alert(this._webPartPageComponentId + ' says: Good-bye, world!');
 }
}</pre>
<p>Here&#8217;s a <a href="http://singchan.com/wordpress/wp-content/uploads/2010/07/ContextualTabWebPart.zip">ZIP file of the entire solution</a> in case you&#8217;re too lazy to make the modifications yourself. <img src='http://singchan.com/wordpress/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://singchan.com/2010/07/31/sharepoint-2010-fixing-the-msdn-contextual-tab-web-part-walkthrough/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>SharePoint 2010: Show Dialog on Page Load</title>
		<link>http://singchan.com/2010/02/11/sharepoint-2010-show-dialog-on-page-load/</link>
		<comments>http://singchan.com/2010/02/11/sharepoint-2010-show-dialog-on-page-load/#comments</comments>
		<pubDate>Thu, 11 Feb 2010 19:16:01 +0000</pubDate>
		<dc:creator>Buta</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[2010]]></category>
		<category><![CDATA[dialog]]></category>

		<guid isPermaLink="false">http://singchan.com/?p=191</guid>
		<description><![CDATA[A quick tip&#8230; Because the sp.ui.dialog.js library is lazy-loaded, it may not be available when the page is ready/loaded. I&#8217;ve seen some early examples where if you wanted to do something on page load, you use: This will not work if you want to open a SharePoint dialog on page load. Instead use:]]></description>
			<content:encoded><![CDATA[<p>A quick tip&#8230;</p>
<p>Because the sp.ui.dialog.js library is lazy-loaded, it may not be available when the page is ready/loaded. I&#8217;ve seen some early examples where if you wanted to do something on page load, you use:</p>
<pre class="brush: plain; title: ; notranslate">
_spBodyOnLoadFunctionNames.push(&quot;YourInitFunction()&quot;);
</pre>
<p>This will not work if you want to open a SharePoint dialog on page load. Instead use:</p>
<pre class="brush: plain; title: ; notranslate">
ExecuteOrDelayUntilScriptLoaded(YourInitFunction, &quot;sp.ui.dialog.js&quot;);
</pre>
]]></content:encoded>
			<wfw:commentRss>http://singchan.com/2010/02/11/sharepoint-2010-show-dialog-on-page-load/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Vancouver Tech Fest &#8211; Creating jQuery Web Parts for SharePoint</title>
		<link>http://singchan.com/2009/11/21/vancouver-tech-fest-creating-jquery-web-parts-for-sharepoint/</link>
		<comments>http://singchan.com/2009/11/21/vancouver-tech-fest-creating-jquery-web-parts-for-sharepoint/#comments</comments>
		<pubDate>Sat, 21 Nov 2009 08:51:18 +0000</pubDate>
		<dc:creator>Buta</dc:creator>
				<category><![CDATA[AJAX]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[HTML/CSS]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[jquery; ue; javascript; js; sharepoint; techfest; vancouver; session; materials]]></category>

		<guid isPermaLink="false">http://singchan.com/?p=102</guid>
		<description><![CDATA[It&#8217;s always fun to have your presentation laptop completely meltdown the night before your presentation! Anyways, here are the presentation material and code: Slide Deck jQuery Sample Plug-in SharePoint jQuery Web Parts]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s always fun to have your presentation laptop completely meltdown the night before your presentation!</p>
<p>Anyways, here are the presentation material and code:</p>
<ul>
<li><a title="Presentation Slide Deck" href="http://singchan.com/wordpress/wp-content/uploads/2009/11/TechFest.SharePoint.JQuery.SlideDeck.zip" target="_blank">Slide Deck</a></li>
<li><a title="jQuery Sample Plug-in" href="http://singchan.com/wordpress/wp-content/uploads/2009/11/TechFest.jQuery.zip">jQuery Sample Plug-in</a></li>
<li><a title="SharePoint jQuery Web Parts" href="http://singchan.com/wordpress/wp-content/uploads/2009/11/TechFest.SharePoint.JQuery.zip" target="_blank">SharePoint jQuery Web Parts</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://singchan.com/2009/11/21/vancouver-tech-fest-creating-jquery-web-parts-for-sharepoint/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Microsoft announces Internet Explorer 9 at PDC</title>
		<link>http://singchan.com/2009/11/20/microsoft-announces-internet-explorer-9-at-pdc/</link>
		<comments>http://singchan.com/2009/11/20/microsoft-announces-internet-explorer-9-at-pdc/#comments</comments>
		<pubDate>Fri, 20 Nov 2009 16:25:29 +0000</pubDate>
		<dc:creator>Buta</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[HTML/CSS]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[css3]]></category>
		<category><![CDATA[html5]]></category>
		<category><![CDATA[ie]]></category>
		<category><![CDATA[ie9]]></category>
		<category><![CDATA[Internet Explorer]]></category>
		<category><![CDATA[js]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[ms]]></category>
		<category><![CDATA[pdc]]></category>
		<category><![CDATA[pdc09]]></category>
		<category><![CDATA[performance]]></category>
		<category><![CDATA[SunSpider]]></category>

		<guid isPermaLink="false">http://singchan.com/?p=99</guid>
		<description><![CDATA[Microsoft has announced they&#8217;re busy working away on the next version of Internet Explorer. Some of the more interesting things included: Much better JavaScript performance! IE8 was a nice first step at improving JS performance on IE but still woefully behind the JS profilers and JIT compilers of Firefox, Safari, et al. Early builds of [...]]]></description>
			<content:encoded><![CDATA[<p>Microsoft has announced they&#8217;re busy working away on the next version of Internet Explorer. Some of the more interesting things included:</p>
<ul>
<li>Much better JavaScript performance! IE8 was a nice first step at improving JS performance on IE but still woefully behind the JS profilers and JIT compilers of Firefox, Safari, et al. Early builds of IE9 are already 4 times faster in the <a title="SunSpider JavaScript Benchmark" href="http://www2.webkit.org/perf/sunspider-0.9/sunspider.html" target="_blank">SunSpider benchmark</a> than that of IE8 and putting it about par with Firefox 3.5.</li>
<li>CSS Level 3! Again early builds apparently are able to pass the majority of the <a title="CSS3 Selectors Testsuite" href="http://www.css3.info/selectors-test/test.html" target="_blank">CSS3 Selectors Testsuite</a>, 41 out of 43. Of course, Firefox 3.5 and Safari 4 already completely pass this test. IE8 only passed 22 of these tests by the way.</li>
</ul>
<h3>Where&#8217;s more HTML5?</h3>
<p>Microsoft was very non-committal about this. They made a good start in IE8 with things like DOM storage, cross document messaging (XDM) and have a built in JSON API, but where&#8217;s &lt;video&gt; or more importantly &lt;canvas&gt;?</p>
<p>It&#8217;s a promising start for Microsoft with news about IE9&#8242;s JS performance and CSS3 compliance. Here&#8217;s hoping to Microsoft finding time to implement some of the HTML elements that competitors have already integrated into their browsers. Don&#8217;t need IE10 to STILL be playing catch-up.</p>
]]></content:encoded>
			<wfw:commentRss>http://singchan.com/2009/11/20/microsoft-announces-internet-explorer-9-at-pdc/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SPC09: Status Bar and Notification APIs</title>
		<link>http://singchan.com/2009/11/03/spc09-status-bar-and-notification-apis/</link>
		<comments>http://singchan.com/2009/11/03/spc09-status-bar-and-notification-apis/#comments</comments>
		<pubDate>Tue, 03 Nov 2009 19:14:02 +0000</pubDate>
		<dc:creator>Buta</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[2010]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[las vegas]]></category>
		<category><![CDATA[notification]]></category>
		<category><![CDATA[SPC09]]></category>
		<category><![CDATA[status bar]]></category>
		<category><![CDATA[ue]]></category>
		<category><![CDATA[user experience]]></category>
		<category><![CDATA[ux]]></category>

		<guid isPermaLink="false">http://singchan.com/?p=86</guid>
		<description><![CDATA[Excuse the really bad screen cap to the right&#8230; the Status Bar and Notifications are two UI elements in SharePoint 2010 which allow us to give the user information in context without distracting them. The Status Bar and Notifications are both exposed as client-side JavaScript APIs. Status Bar The Status Bar lives below the Ribbon [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignright size-full wp-image-88" title="SharePoint 2010 Status Bar and Notification elements" src="http://singchan.com/wordpress/wp-content/uploads/2009/11/statusbar_notification.jpg" alt="SharePoint 2010 Status Bar and Notification elements" width="337" height="113" />Excuse the really bad screen cap to the right&#8230; the Status Bar and Notifications are two UI elements in SharePoint 2010 which allow us to give the user information in context without distracting them. The Status Bar and Notifications are both exposed as client-side JavaScript APIs.</p>
<h3>Status Bar</h3>
<p>The Status Bar lives below the Ribbon and displays persistent information such as page status or web site alerts. It already existed in SharePoint 2007 as an UI element but it&#8217;s functionality was not exposed as an API. It will display an HTML message, which can include links and/or images, on 1 of 4 pre-set background colours depending on the importance of the status defined.</p>
<p>There is a Server API to set statuses at page render time as well as a JavaScript API to dynamically add/remove messages.</p>
<p>The JavaScript API is in the SP.UI.Status namespace and is as follows:</p>
<pre class="brush: plain; title: ; notranslate">SP.UI.Status.addStatus(strTitle, strHtml, atBeginning)
SP.UI.Status.updateStatus(sid, strHtml)
SP.UI.Status.removeStatus(sid)
SP.UI.Status.removeAllStatus(hide)
SP.UI.Status.setStatusPriColor(sid, strColor)
</pre>
<h3>Notifications</h3>
<p>Notifications are brand new to SharePoint 2010 and they are used for transient or semi-transient messages such as action confirmations. Notifications appear on the right side of the page below the ribbon and default to a 5 second display period. Like the Status Bar, the message format is HTML with the ability of including links and/or images.</p>
<p>There is a JavaScript API to add/remove messages. You also have the option to make a Notification &#8220;sticky&#8221; which means it will continue to display until you manually remove it through the API.</p>
<p>Notifications are in the SP.UI.Notify namespace:</p>
<pre class="brush: plain; title: ; notranslate">SP.UI.Notify.addNotification(strTitle, bSticky, tooltip, onclickHandler)
SP.UI.Notify.removeNotification(id)</pre>
]]></content:encoded>
			<wfw:commentRss>http://singchan.com/2009/11/03/spc09-status-bar-and-notification-apis/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Contoso Riders Quick App</title>
		<link>http://singchan.com/2008/06/02/contoso-riders-quick-app/</link>
		<comments>http://singchan.com/2008/06/02/contoso-riders-quick-app/#comments</comments>
		<pubDate>Mon, 02 Jun 2008 23:31:24 +0000</pubDate>
		<dc:creator>Buta</dc:creator>
				<category><![CDATA[AJAX]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Silverlight]]></category>
		<category><![CDATA[2008]]></category>
		<category><![CDATA[chris dufour]]></category>
		<category><![CDATA[conference]]></category>
		<category><![CDATA[demo]]></category>
		<category><![CDATA[energizeit]]></category>
		<category><![CDATA[jean-luc david]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[quick app]]></category>
		<category><![CDATA[services]]></category>
		<category><![CDATA[virtual earth]]></category>
		<category><![CDATA[windows live]]></category>

		<guid isPermaLink="false">http://singchan.com/?p=40</guid>
		<description><![CDATA[Hey, what&#8217;s a couple of years between posts right? I recently had the opportunity to demo our Contoso Riders Quick App at EnergizeIT in Toronto. A big thanks to Jean-Luc David and Chris Dufour for being such great hosts and for making our Services track a great success! So you might be asking yourself; &#8220;What&#8217;s [...]]]></description>
			<content:encoded><![CDATA[<p>Hey, what&#8217;s a couple of years between posts right?</p>
<p>I recently had the opportunity to demo our Contoso Riders Quick App at <a title="Visit the EnergizeIT website" href="http://www.energizeit.ca" target="_blank">EnergizeIT</a> in Toronto. A  big thanks to Jean-Luc David and <a title="Visit Chris Dufour's blog." href="http://geekswithblogs.net/chrduf/Default.aspx" target="_blank">Chris Dufour</a> for  being such great hosts and for making our Services track a great success!</p>
<p><a href="http://singchan.com/wordpress/wp-content/uploads/2008/06/img_3132.jpg" rel="lightbox[40]" title="Presenting the Contoso Riders Quick App at EnergizeIT!"><img src="http://singchan.com/wordpress/wp-content/uploads/2008/06/img_3132-150x150.jpg" alt="Presenting the Contoso Riders Quick App at EnergizeIT!" title="Presenting the Contoso Riders Quick App at EnergizeIT!" width="150" height="150" class="alignright size-thumbnail wp-image-93" /></a><a href="http://singchan.com/wordpress/wp-content/uploads/2008/06/2520673475_bf0f24e226_b.jpg" rel="lightbox[40]" title="Chris Dufor and your&#039;s truly"><img src="http://singchan.com/wordpress/wp-content/uploads/2008/06/2520673475_bf0f24e226_b-150x150.jpg" alt="Chris Dufor and your&#039;s truly" title="Chris Dufor and your&#039;s truly" width="150" height="150" class="alignright size-thumbnail wp-image-92" /></a></p>
<p>So you might be asking yourself; &#8220;What&#8217;s a Quick App?&#8221;</p>
<p>Quick Apps are projects that showcase the <a title="View the Windows Live Platform services" href="http://dev.live.com" target="_blank">Microsoft Live Platform</a> service offerings and also serve as templates which developers can use as a  springboard to base their own projects off of. They are open-source projects  release under <a title="View the Ms-PL license" href="http://www.codeplex.com/WLQuickApps/license" target="_blank">Microsoft Public License  (Ms-PL)</a>.</p>
<p>In the case of Contoso Riders, we implemented services and APIs such as:</p>
<ul>
<li>Live ID for user authentication</li>
<li>Live Messenger Presence API and IM Control for Instant Messenging</li>
<li>Virtual Earth Map Control to display and Virtual Earth Collections for  storing map and routing information</li>
<li>Silverlight Streaming for hosting videos</li>
<li>Live Spaces Weblogs and the Metaweblog API to store and manage content</li>
<li>Live Spaces Photo Albums to store photos</li>
</ul>
<p>You can download the source for Contoso Riders on CodePlex as part of the <a title="Download the Windows Live Quick Apps project" href="http://www.codeplex.com/WLQuickApps" target="_blank">Windows Live Quick Apps</a> project.</p>
]]></content:encoded>
			<wfw:commentRss>http://singchan.com/2008/06/02/contoso-riders-quick-app/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Microsoft &#8220;Atlas&#8221; &#8211; Features vs Size and Performance</title>
		<link>http://singchan.com/2006/09/24/microsoft-atlas-features-vs-size-and-performance/</link>
		<comments>http://singchan.com/2006/09/24/microsoft-atlas-features-vs-size-and-performance/#comments</comments>
		<pubDate>Sun, 24 Sep 2006 21:42:48 +0000</pubDate>
		<dc:creator>Buta</dc:creator>
				<category><![CDATA[AJAX]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://singchan.com/2006/09/24/microsoft-atlas-features-vs-size-and-performance/</guid>
		<description><![CDATA[I attended the Microsoft presentation of &#8220;Atlas&#8220;, Microsoft AJAX Library and ASP.NET 2.0 AJAX Extensions, hosted by .Net BC this past Wednesday. Something that had me intrigued was when Shaun Walker of DotNetNuke fame showed how easily it was to integrate &#8220;Atlas&#8221; into DNN. I&#8217;m wondering if the simplicity of the changes is due to [...]]]></description>
			<content:encoded><![CDATA[<p>I attended the <a target="_blank" title="AJAX and ASP.NET " href="http://www.netbc.ca/DNCal/EventDetail.aspx?date=2006/09/20">Microsoft presentation of &#8220;<strike>Atlas</strike>&#8220;</a>, Microsoft AJAX Library and ASP.NET 2.0 AJAX Extensions, hosted by <a target="_blank" title=".Net User Group of British Columbia, Canada" href="http://www.netbc.ca/">.Net BC</a> this past Wednesday.</p>
<p>Something that had me intrigued was when Shaun Walker of <a target="_blank" title="Open Source Framework for creating Enterprise Web Applications" href="http://www.dotnetnuke.com/">DotNetNuke</a> fame showed how easily it was to integrate &#8220;Atlas&#8221; into DNN. I&#8217;m wondering if the simplicity of the changes is due to the .Net Framework itself or if the DNN developers had pre-wired some hooks for &#8220;Atlas.&#8221;</p>
<p>While the rest of the presentation was pretty much the same top-level information I&#8217;ve heard in previous previews of &#8220;Atlas,&#8221; there are a few points about &#8220;Atlas&#8221; I would like to touch upon.</p>
<p><span id="more-39"></span></p>
<h2>Cross Platform Compatibility</h2>
<p>I have been keeping an eye out on &#8220;Atlas&#8221; ever since it was announced last year but haven&#8217;t really taken a close look at it due to its maturity. The <strike>&#8220;Atlas&#8221;</strike> <a target="_blank" href="http://atlas.asp.net/default.aspx?tabid=47&#038;subtabid=477">Microsoft AJAX Control Tookit</a>, up until recently, hasn&#8217;t been very cross-browser friendly. Colour me impressed by the <a title="Get the Sept 14, 2006 release of the " href="http://www.codeplex.com/Release/ProjectReleases.aspx?ProjectName=AtlasControlToolkit">September 14th release</a> though. All the controls seem to work just fine with FireFox and I&#8217;ll have to test everything with Safari and Opera the first chance I get.</p>
<h2>File Size</h2>
<p>The release version of the entire Microsoft AJAX Library is going to weigh in at around 350Kb. The core library alone is around 100Kb. That&#8217;s REALLY, REALLY big download the first time an user hits your page. Hopefully they have the browser&#8217;s file caching turned on.</p>
<h2>XML Script</h2>
<p>This both interests and concerns me at the same time. &#8220;Atlas&#8221; XML Script a new declarative script format for defining script object instances, their property values, and how they wire up to each other.</p>
<p>What excites me about XML Script is a non-JavaScript developer can now code up client-side functionality using simple to comprehend, XML-based markup. I can see tools being developed to format and debug XML Script client-side code because being XML, it can easily be parsed and styled.</p>
<p>The concern is XML Script IS STILL client-side code. It is interpreted by the &#8220;Atlas&#8221; JavaScript library within the browser runtime. So let me get this right:</p>
<ul>
<li>You take a hit loading the large &#8220;Atlas&#8221; JavaScript library.</li>
<li>You take a hit parsing the XML Script.</li>
<li>Then you finally execute whatever the XML Script you coded.</li>
</ul>
<p>Why MS didn&#8217;t give you an option to compile the XML Script into JavaScript on the server-side in .Net, or even at authoring time in Visual Studio, is beyond me.</p>
<h2>Deploying &#8220;Atlas&#8221; in the Real World</h2>
<p>&#8220;Atlas&#8221; has an incredible set of features that will make developing client-side code simpler but it does so by giving up performance and file size. I think Atlas will have a great home in intranet style applications where the client platform is standardized and bandwidth considerations aren&#8217;t usually as much of an issue as in public-facing web apps.</p>
]]></content:encoded>
			<wfw:commentRss>http://singchan.com/2006/09/24/microsoft-atlas-features-vs-size-and-performance/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>mootools from Valerio Proietti is now available</title>
		<link>http://singchan.com/2006/09/11/mootools-from-valerio-proietti-is-now-available/</link>
		<comments>http://singchan.com/2006/09/11/mootools-from-valerio-proietti-is-now-available/#comments</comments>
		<pubDate>Mon, 11 Sep 2006 19:03:02 +0000</pubDate>
		<dc:creator>Buta</dc:creator>
				<category><![CDATA[AJAX]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://singchan.com/2006/09/11/mootools-from-valerio-proietti-is-now-available/</guid>
		<description><![CDATA[mootools is a very compact, modular, object-oriented JavaScript framework and is less than 19Kb in size (compressed JS, 34Kb uncompressed) for the entire set of scripts and add-ons. mootools replaces the moo family of JavaScript libraries (moo.fx, moo.dom, moo.ajax, etc). I prefer the moo.* libraries over the Prototype/Script.aculo.us combo due to the former&#8217;s much smaller [...]]]></description>
			<content:encoded><![CDATA[<p><a target="_blank" title="mootools JavaScript framework" href="http://mootools.net/">mootools</a> is a very compact, modular, object-oriented JavaScript framework and is less than 19Kb in size (compressed JS, 34Kb uncompressed) for the entire set of scripts and add-ons. mootools replaces the moo family of JavaScript libraries (moo.fx, moo.dom, moo.ajax, etc).</p>
<p>I prefer the moo.* libraries over the <a target="_blank" title="Prototype JavaScript framework" href="http://prototype.conio.net/">Prototype</a>/<a target="_blank" title="Script.aculo.us JavaScript effects library" href="http://script.aculo.us/">Script.aculo.us</a> combo due to the former&#8217;s much smaller file size. Prototype by itself weighs in at 60Kb uncompressed and add at least another 30Kb for Script.aculo.us.</p>
<p>What&#8217;s really interesting is the way you can <a title="mootools download page" target="_blank" href="http://mootools.net/download/release">download mootools</a>. The download page allows you to pick and choose which parts of the library you want and whether or not you want to compress the JS source file.</p>
<p><span id="more-28"></span>With the availability of many quality client-side frameworks and the buzz surrounding AJAX and Web 2.0 these days, being able to minimize the library&#8217;s file size by ways of pruning unused features and code compression is really important in today&#8217;s web applications.</p>
<p>A lot of developers tend to forget that there are still quite a few users out there who aren&#8217;t hooked up on a broadband connection. You can build the slickest, fanciest front-end but if it takes forever for your target audience to even download it and get started, what&#8217;s the point?</p>
<p>mootools is released under the <a target="_blank" title="About MIT licensing" href="http://www.opensource.org/licenses/mit-license.php">MIT license</a> meaning you can use or modify it on all your projects, whether they&#8217;re commercial or not.</p>
]]></content:encoded>
			<wfw:commentRss>http://singchan.com/2006/09/11/mootools-from-valerio-proietti-is-now-available/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

