<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://weblogs.asp.net/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>ScottGu's Blog  : jQuery</title><link>http://weblogs.asp.net/scottgu/archive/tags/jQuery/default.aspx</link><description>Tags: jQuery</description><dc:language>en</dc:language><generator>CommunityServer 2007 SP1 (Build: 20510.895)</generator><item><title>April 14th Links: ASP.NET, ASP.NET MVC, ASP.NET Web API and Visual Studio</title><link>http://weblogs.asp.net/scottgu/archive/2012/04/14/april-14th-links-asp-net-asp-net-mvc-net-and-nuget.aspx</link><pubDate>Sun, 15 Apr 2012 02:19:14 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:8391154</guid><dc:creator>ScottGu</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/scottgu/rsscomments.aspx?PostID=8391154</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/scottgu/commentapi.aspx?PostID=8391154</wfw:comment><comments>http://weblogs.asp.net/scottgu/archive/2012/04/14/april-14th-links-asp-net-asp-net-mvc-net-and-nuget.aspx#comments</comments><description>&lt;p&gt;Here is the latest in my link-listing blog series:&lt;/p&gt;
&lt;h2&gt;&lt;u&gt;ASP.NET&lt;/u&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="http://www.hanselman.com/blog/FeaturesNOONENOTICEDInVisualStudio11ExpressBetaForWeb.aspx"&gt;Easily overlooked features in VS 11 Express for Web&lt;/a&gt;: Good post by Scott Hanselman that highlights a bunch of easily overlooked improvements that are coming to VS 11 (and specifically the free express editions) for web development: unit testing, browser chooser/launcher, IIS Express, CSS Color Picker, Image Preview in Solution Explorer and more.&lt;/p&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="http://www.asp.net/web-forms/tutorials/aspnet-45/getting-started-with-aspnet-45-web-forms/introduction-and-overview"&gt;Get Started with ASP.NET 4.5 Web Forms&lt;/a&gt;: Good 5-part tutorial that walks-through building an application using ASP.NET Web Forms and highlights some of the nice improvements coming with ASP.NET 4.5.&lt;/p&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="http://vibrantcode.com/blog/2012/4/10/whats-new-in-razor-v2.html"&gt;What is New in Razor V2&lt;/a&gt; and &lt;a href="http://vibrantcode.com/blog/2012/4/13/what-else-is-new-in-razor-v2.html"&gt;What Else is New in Razor V2&lt;/a&gt;: Great posts by Andrew Nurse, a dev on the ASP.NET team, about some of the new improvements coming with ASP.NET Razor v2.&lt;/p&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="http://www.davidhayden.me/blog/asp.net-mvc-4-allowanonymous-attribute-and-authorize-attribute"&gt;ASP.NET MVC 4 AllowAnonymous Attribute&lt;/a&gt;: Nice post from David Hayden that talks about the new [AllowAnonymous] filter introduced with ASP.NET MVC 4.&lt;/p&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="http://stephenwalther.com/blog/archive/2012/03/05/introduction-to-the-asp-net-web-api.aspx"&gt;Introduction to the ASP.NET Web API:&lt;/a&gt; Great tutorial by Stephen Walher that covers how to use the new ASP.NET Web API support built-into ASP.NET 4.5 and ASP.NET MVC 4.&lt;/p&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="http://www.tugberkugurlu.com/archive/getting-started-with-asp-net-web-api-tutorials-videos-samples"&gt;Comprehensive List of ASP.NET Web API Tutorials and Articles:&lt;/a&gt; Tugberk Ugurlu links to a huge collection of articles, tutorials, and samples about the new ASP.NET Web API capability.&lt;/p&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="http://blogs.msdn.com/b/henrikn/archive/2012/03/03/async-mashups-using-asp-net-web-api.aspx"&gt;Async Mashups using ASP.NET Web API:&lt;/a&gt; Nice post by Henrik on how you can use the new async language support coming with .NET 4.5 to easily and efficiently make asynchronous network requests that do not block threads within ASP.NET.&lt;/p&gt;
&lt;/ul&gt;
&lt;h2&gt;&lt;u&gt;ASP.NET and Front-End Web Development&lt;/u&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="http://www.hanselman.com/blog/VisualStudio11ExpressForWebForFrontEndDevelopmentJavaScriptHTML5CSS3.aspx"&gt;Visual Studio 11 and Front End Web Development - JavaScript/HTML5/CSS3&lt;/a&gt;: Nice post by Scott Hanselman that highlights some of the great improvements coming with VS 11 (including the free express edition) for front-end web development.&lt;/p&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="http://www.strathweb.com/2012/04/html5-drag-and-drop-asynchronous-multi-file-upload-with-asp-net-webapi/"&gt;HTML5 Drag/Drop and Async Multi-file Upload with ASP.NET Web API:&lt;/a&gt; Great post by Filip W. that demonstrates how to implement an async file drag/drop uploader using HTML5 and ASP.NET Web API.&lt;/p&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="http://rachelappel.com/a-device-emulator-guide-for-cross-platform-development-on-asp.net-and-jquery-mobile-development"&gt;Device Emulator Guide for Mobile Development with ASP.NET&lt;/a&gt;: Good post from Rachel Appel that covers how to use various device emulators with ASP.NET and VS to develop cross platform mobile sites.&lt;/p&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="http://fixingthesejquery.com/#slide1"&gt;Fixing these jQuery: A Guide to Debugging&lt;/a&gt;: Great presentation by Adam Sontag on debugging with JavaScript and jQuery.  Some really good tips, tricks and gotchas that can save a lot of time.&lt;/p&gt;
&lt;/ul&gt;

&lt;h2&gt;&lt;u&gt;ASP.NET and Open Source&lt;/u&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="http://blogs.msdn.com/b/henrikn/archive/2012/04/09/getting-started-with-asp-net-web-stack-source-on-codeplex.aspx"&gt;Getting Started with ASP.NET Web Stack Source on CodePlex:&lt;/a&gt; Fantastic post by Henrik (an architect on the ASP.NET team) that provides step by step instructions on how to work with the ASP.NET source code we recently open sourced.&lt;/p&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="http://blogs.msdn.com/b/henrikn/archive/2012/04/10/using-forks-with-asp-net-web-stack-source-on-codeplex.aspx"&gt;Contributing to ASP.NET Web Stack Source on CodePlex:&lt;/a&gt; Follow-on to the post above (also by Henrik) that walks-through how you can submit a code contribution to the ASP.NET MVC, Web API and Razor projects.&lt;/p&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="http://pedroreys.com/2012/04/04/webapicontrib/"&gt;Overview of the WebApiContrib project&lt;/a&gt;: Nice post by Pedro Reys on the new open source WebApiContrib project that has been started to deliver cool extensions and libraries for use with ASP.NET Web API.&lt;/p&gt;
&lt;/ul&gt;

&lt;h2&gt;&lt;u&gt;Entity Framework&lt;/u&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="http://blogs.msdn.com/b/adonet/archive/2012/02/14/sneak-preview-entity-framework-5-0-performance-improvements.aspx"&gt;Entity Framework 5 Performance Improvements&lt;/a&gt; and &lt;a href="http://msdn.microsoft.com/en-us/data/hh949853"&gt;Performance Considerations for EF5&lt;/a&gt;:  Good articles that describes some of the big performance wins coming with EF5 (which will ship with both .NET 4.5 and ASP.NET MVC 4). Automatic compilation of LINQ queries will yield some significant performance wins (up to 600% faster).&lt;/p&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="http://www.davidhayden.me/blog/asp.net-mvc-4-and-entity-framework-database-migrations"&gt;ASP.NET MVC 4 and EF Database Migrations:&lt;/a&gt; Good post by David Hayden that covers the new database migrations support within EF 4.3 which allows you to easily update your database schema during development - without losing any of the data within it.&lt;/p&gt;
&lt;/ul&gt;
&lt;h2&gt;&lt;u&gt;Visual Studio&lt;/u&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="http://www.peterprovost.org/blog/post/Whats-New-in-Visual-Studio-11-Beta-Unit-Testing.aspx"&gt;What's New in Visual Studio 11 Unit Testing&lt;/a&gt;: Nice post by Peter Provost (from the VS team) that talks about some of the great improvements coming to VS11 for unit testing - including built-in VS tooling support for a broad set of unit test frameworks (including NUnit, XUnit, Jasmine, QUnit and more)&lt;/p&gt;
&lt;/ul&gt;
&lt;p&gt;Hope this helps,&lt;/p&gt;
&lt;p&gt;Scott&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=8391154" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/scottgu/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://weblogs.asp.net/scottgu/archive/tags/Visual+Studio/default.aspx">Visual Studio</category><category domain="http://weblogs.asp.net/scottgu/archive/tags/.NET/default.aspx">.NET</category><category domain="http://weblogs.asp.net/scottgu/archive/tags/Link+Listing/default.aspx">Link Listing</category><category domain="http://weblogs.asp.net/scottgu/archive/tags/MVC/default.aspx">MVC</category><category domain="http://weblogs.asp.net/scottgu/archive/tags/jQuery/default.aspx">jQuery</category><category domain="http://weblogs.asp.net/scottgu/archive/tags/Web+API/default.aspx">Web API</category></item><item><title>36 Hour Free Offer: jQuery Fundamentals Training</title><link>http://weblogs.asp.net/scottgu/archive/2011/02/23/36-hour-free-offer-jquery-fundamentals-training.aspx</link><pubDate>Wed, 23 Feb 2011 18:19:46 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:7711622</guid><dc:creator>ScottGu</dc:creator><slash:comments>22</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/scottgu/rsscomments.aspx?PostID=7711622</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/scottgu/commentapi.aspx?PostID=7711622</wfw:comment><comments>http://weblogs.asp.net/scottgu/archive/2011/02/23/36-hour-free-offer-jquery-fundamentals-training.aspx#comments</comments><description>&lt;font size="2" face="arial"&gt;   &lt;p&gt;Pluralsight (a great .NET training company) is offering the opportunity to watch their &lt;a href="http://www.pluralsight-training.net/microsoft/olt/Course/Toc.aspx?n=jquery-fundamentals" target="_blank"&gt;jQuery Fundamentals course&lt;/a&gt; for free for the next 36 hours.&lt;/p&gt;    &lt;p&gt;&lt;a href="http://www.pluralsight-training.net/microsoft/olt/Course/Toc.aspx?n=jquery-fundamentals" target="_blank"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://weblogs.asp.net/blogs/scottgu/image_4F99CA99.png" width="687" height="453" /&gt;&lt;/a&gt; &lt;/p&gt;    &lt;p&gt;The course is presented by the most excellent &lt;a href="http://weblogs.asp.net/dwahlin" target="_blank"&gt;Dan Wahlin&lt;/a&gt; and contains 5 hours of great end to end content.&amp;#160; Pluralsight will be offering &lt;a href="http://www.pluralsight-training.net/microsoft/olt/Course/Toc.aspx?n=jquery-fundamentals" target="_blank"&gt;this jQuery Fundamentals course&lt;/a&gt; for &lt;strong&gt;free until Thursday evening (9pm PST).&lt;/strong&gt;&lt;/p&gt;    &lt;p&gt;Pluralsight has about 100 other great training courses available similar to this one.&amp;#160; They recently launched a &lt;a href="http://www.pluralsight-training.net/microsoft/olt/subscriptions.aspx" target="_blank"&gt;new subscription plan&lt;/a&gt; that allows you to watch all of their courses online starting from $29 a month.&amp;#160; They also offer a 10 day free trial option that you can use to try it out.&amp;#160; You can learn more about it &lt;a href="http://www.pluralsight-training.net/microsoft/olt/subscriptions.aspx" target="_blank"&gt;here&lt;/a&gt;.&lt;/p&gt;    &lt;h3&gt;&lt;u&gt;Free jQuery 1.5 Visual Cheat Sheet&lt;/u&gt;&lt;/h3&gt;    &lt;p&gt;While on the topic of jQuery, I wanted to link to one other useful resource to download if you are using jQuery – which is a free &lt;a href="http://woorkup.com/2011/02/19/jquery-1-5-visual-cheat-sheet/" target="_blank"&gt;jQuery PDF “cheat sheet”&lt;/a&gt; for the jQuery 1.5 APIs.&lt;/p&gt;    &lt;p&gt;&lt;a href="http://woorkup.com/2011/02/19/jquery-1-5-visual-cheat-sheet/" target="_blank"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://weblogs.asp.net/blogs/scottgu/image_09E51AAE.png" width="605" height="434" /&gt;&lt;/a&gt; &lt;/p&gt;    &lt;p&gt;You can download it for free &lt;a href="http://woorkup.com/2011/02/19/jquery-1-5-visual-cheat-sheet/" target="_blank"&gt;here&lt;/a&gt;.&lt;/p&gt;    &lt;p&gt;Hope this helps,&lt;/p&gt;    &lt;p&gt;Scott&lt;/p&gt;    &lt;p&gt;&lt;em&gt;P.S. I am also now using Twitter for quick updates and to share links. Follow me at: &lt;a href="http://twitter.com/scottgu"&gt;twitter.com/scottgu&lt;/a&gt;&lt;/em&gt;&lt;/p&gt; &lt;/font&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=7711622" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/scottgu/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://weblogs.asp.net/scottgu/archive/tags/Talks/default.aspx">Talks</category><category domain="http://weblogs.asp.net/scottgu/archive/tags/jQuery/default.aspx">jQuery</category></item><item><title>Feb 2nd Links: Visual Studio, ASP.NET, ASP.NET MVC, JQuery, Windows Phone</title><link>http://weblogs.asp.net/scottgu/archive/2011/02/02/feb-2nd-links-visual-studio-asp-net-asp-net-mvc-jquery-windows-phone.aspx</link><pubDate>Thu, 03 Feb 2011 07:15:11 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:7696513</guid><dc:creator>ScottGu</dc:creator><slash:comments>16</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/scottgu/rsscomments.aspx?PostID=7696513</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/scottgu/commentapi.aspx?PostID=7696513</wfw:comment><comments>http://weblogs.asp.net/scottgu/archive/2011/02/02/feb-2nd-links-visual-studio-asp-net-asp-net-mvc-jquery-windows-phone.aspx#comments</comments><description>&lt;font size="2" face="arial"&gt;   &lt;p&gt;Here is the latest in my &lt;a href="http://weblogs.asp.net/scottgu/archive/2010/12/05/dec-5th-links-asp-net-asp-net-mvc-jquery-silverlight-visual-studio.aspx" target="_blank"&gt;link-listing series&lt;/a&gt;.&amp;#160; Also check out my &lt;a href="http://weblogs.asp.net/scottgu/archive/2010/12/31/links-to-my-best-of-2010-posts.aspx" target="_blank"&gt;Best of 2010 Summary&lt;/a&gt; for links to 100+ other posts I’ve done in the last year. &lt;/p&gt;    &lt;p&gt;&lt;em&gt;[I am also now using Twitter for quick updates and to share links. Follow me at: &lt;a href="http://twitter.com/scottgu" target="_blank"&gt;twitter.com/scottgu&lt;/a&gt;]&lt;/em&gt;&lt;/p&gt;    &lt;h3&gt;&lt;u&gt;Community News&lt;/u&gt;&lt;/h3&gt;    &lt;ul&gt;     &lt;li&gt;       &lt;p&gt;&lt;a href="http://www.mvcconf.com/attend" target="_blank"&gt;MVCConf Conference Next Tuesday&lt;/a&gt;: Attend the free, online ASP.NET MVC Conference being organized by the community next Tuesday.&amp;#160; Here is a &lt;a href="http://www.mvcconf.com/sessions" target="_blank"&gt;list of some of the talks&lt;/a&gt; you can watch live.&lt;/p&gt;     &lt;/li&gt;   &lt;/ul&gt;    &lt;h3&gt;&lt;u&gt;Visual Studio&lt;/u&gt;&lt;/h3&gt;    &lt;ul&gt;     &lt;li&gt;       &lt;p&gt;&lt;a href="http://blogs.msdn.com/b/webdevtools/archive/2011/01/27/html5-amp-css3-in-visual-studio-2010-sp1.aspx" target="_blank"&gt;HTML5 and CSS3 in VS 2010 SP1&lt;/a&gt;: Good post from the Visual Studio web tools team that talks about the new support coming in VS 2010 SP1 for HTML5 and CSS3. &lt;/p&gt;     &lt;/li&gt;   &lt;/ul&gt;    &lt;ul&gt;     &lt;li&gt;       &lt;p&gt;&lt;a href="http://rachelappel.com/deployment/database-deployment-with-the-vs-2010-package-publish-database-tool/" target="_blank"&gt;Database Deployment with the VS 2010 Package/Publish Database Tool&lt;/a&gt;: Rachel Appel has a nice post that covers how to enable database deployment using the built-in VS 2010 web deployment support.&amp;#160; Also check out her &lt;a href="http://rachelappel.com/deployment/making-asp-net-deployment-easy-with-the-package-publish-web-tool/" target="_blank"&gt;ASP.NET web deployment post&lt;/a&gt; from last month. &lt;/p&gt;     &lt;/li&gt;   &lt;/ul&gt;    &lt;ul&gt;     &lt;li&gt;       &lt;p&gt;&lt;a href="http://blogs.msdn.com/b/jaredpar/archive/2011/01/13/vsvim-update-released-version-0-9-4.aspx" target="_blank"&gt;VsVim Update Released&lt;/a&gt;: Jared posts about the latest update of his VsVim extension for Visual Studio 2010.&amp;#160; This free extension enables VIM based key-bindings within VS.&lt;/p&gt;     &lt;/li&gt;   &lt;/ul&gt;    &lt;h3&gt;&lt;u&gt;ASP.NET&lt;/u&gt;&lt;/h3&gt;    &lt;ul&gt;     &lt;li&gt;       &lt;p&gt;&lt;a href="http://www.asp.net/learn/whitepapers/add-mobile-pages-to-your-aspnet-web-forms-mvc-application" target="_blank"&gt;How to Add Mobile Pages to your ASP.NET Web Forms / MVC Apps:&lt;/a&gt; Great whitepaper by Steve Sanderson that covers how to mobile-enable your ASP.NET and ASP.NET MVC based applications.&lt;/p&gt;     &lt;/li&gt;   &lt;/ul&gt;    &lt;ul&gt;     &lt;li&gt;       &lt;p&gt;&lt;a href="http://blogs.msdn.com/b/aspnetue/archive/2011/01/26/more-entity-framework-tutorials-for-asp-net-developers.aspx" target="_blank"&gt;New Entity Framework Tutorials for ASP.NET Developers&lt;/a&gt;: The ASP.NET and EF teams have put together a bunch of nice tutorials on using the Entity Framework data library with ASP.NET Web Forms.&lt;/p&gt;     &lt;/li&gt;   &lt;/ul&gt;    &lt;ul&gt;     &lt;li&gt;       &lt;p&gt;&lt;a href="http://blog.davidebbo.com/2011/01/using-dynamic-data-with-ef-code-first.html" target="_blank"&gt;Using ASP.NET Dynamic Data with EF Code First (via NuGet)&lt;/a&gt;: Nice post from David Ebbo that talks about how to use the new EF Code First Library with ASP.NET Dynamic Data.&lt;/p&gt;     &lt;/li&gt;   &lt;/ul&gt;    &lt;ul&gt;     &lt;li&gt;       &lt;p&gt;&lt;a href="http://blogs.msdn.com/b/mcsuksoldev/archive/2011/01/19/common-performance-issues-on-asp-net-web-sites.aspx" target="_blank"&gt;Common Performance Issues with ASP.NET Web Sites&lt;/a&gt;: Good post with lots of performance tuning suggestions (mostly deployment settings) for ASP.NET apps.&lt;/p&gt;     &lt;/li&gt;   &lt;/ul&gt;    &lt;h3&gt;&lt;u&gt;ASP.NET MVC&lt;/u&gt;&lt;/h3&gt;    &lt;ul&gt;     &lt;li&gt;       &lt;p&gt;&lt;a href="https://github.com/telerik/razor-converter" target="_blank"&gt;Razor View Converter&lt;/a&gt;: Free, automated tool from Telerik that can convert existing .aspx view templates to Razor view templates.&lt;/p&gt;     &lt;/li&gt;   &lt;/ul&gt;    &lt;ul&gt;     &lt;li&gt;       &lt;p&gt;&lt;a href="http://afana.me/post/aspnet-mvc-internationalization.aspx" target="_blank"&gt;ASP.NET MVC 3 Internationalization&lt;/a&gt;: Nadeem has a great post that talks about a variety of techniques you can use to enable Globalization and Localization within your ASP.NET MVC 3 applications.&lt;/p&gt;     &lt;/li&gt;   &lt;/ul&gt;    &lt;ul&gt;     &lt;li&gt;       &lt;p&gt;&lt;a href="http://davidhayden.com/blog/dave/archive/2011/01/05/ASPNETMVC3TutorialsIndex.aspx" target="_blank"&gt;ASP.NET MVC 3 Tutorials by David Hayden&lt;/a&gt;: Great set of tutorials and posts by David Hayden on some of the new ASP.NET MVC 3 features.&lt;/p&gt;     &lt;/li&gt;   &lt;/ul&gt;    &lt;ul&gt;     &lt;li&gt;       &lt;p&gt;&lt;a href="http://www.sellsbrothers.com/Posts/Details/12699" target="_blank"&gt;EF Fixed Concurrency Mode and MVC&lt;/a&gt;: Chris Sells has a nice post that talks about how to handle concurrency with updates done with EF using ASP.NET MVC.&lt;/p&gt;     &lt;/li&gt;   &lt;/ul&gt;    &lt;h3&gt;&lt;u&gt;ASP.NET and jQuery&lt;/u&gt;&lt;/h3&gt;    &lt;ul&gt;     &lt;li&gt;       &lt;p&gt;&lt;a href="http://addyosmani.com/blog/jquery-performance-tips-2011/" target="_blank"&gt;jQuery Performance Tips and Tricks&lt;/a&gt;: A free 30 minute video that covers some great tips and tricks to keep in mind when using jQuery.&lt;/p&gt;     &lt;/li&gt;   &lt;/ul&gt;    &lt;ul&gt;     &lt;li&gt;       &lt;p&gt;&lt;a href="http://encosia.com/2011/02/02/jquery-1-5s-ajax-rewrite-and-asp-net-services-all-is-well/" target="_blank"&gt;jQuery 1.5’s AJAX rewrite and ASP.NET services - All is well&lt;/a&gt;: Nice post by Dave Ward that talks about using the new jQuery 1.5 to call ASP.NET ASMX Services. Good news according to Dave is that all is well :-)&lt;/p&gt;     &lt;/li&gt;   &lt;/ul&gt;    &lt;ul&gt;     &lt;li&gt;       &lt;p&gt;&lt;a href="http://www.codeproject.com/KB/ajax/jQuery-Modal-Dialogs.aspx" target="_blank"&gt;jQuery UI Modal Dialogs for ASP.NET MVC&lt;/a&gt;: Nice post by Rob Regan that talks about a few approaches you can use to implement dialogs with jQuery UI and ASP.NET MVC.&amp;#160; &lt;/p&gt;     &lt;/li&gt;   &lt;/ul&gt;    &lt;h3&gt;&lt;u&gt;Windows Phone 7&lt;/u&gt;&lt;/h3&gt;    &lt;ul&gt;     &lt;li&gt;       &lt;p&gt;&lt;a href="http://microsoftfeed.com/2011/free-ebook-silverlight-for-windows-phone/" target="_blank"&gt;Free PDF eBook on Building Windows Phone 7 Applications with Silverlight&lt;/a&gt;: Free book that walksthrough how to use Silverlight and Visual Studio to build Windows Phone 7 applications.&lt;/p&gt;     &lt;/li&gt;   &lt;/ul&gt;    &lt;p&gt;Hope this helps,&lt;/p&gt;    &lt;p&gt;Scott&lt;/p&gt; &lt;/font&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=7696513" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/scottgu/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://weblogs.asp.net/scottgu/archive/tags/.NET/default.aspx">.NET</category><category domain="http://weblogs.asp.net/scottgu/archive/tags/Community+News/default.aspx">Community News</category><category domain="http://weblogs.asp.net/scottgu/archive/tags/Link+Listing/default.aspx">Link Listing</category><category domain="http://weblogs.asp.net/scottgu/archive/tags/MVC/default.aspx">MVC</category><category domain="http://weblogs.asp.net/scottgu/archive/tags/jQuery/default.aspx">jQuery</category></item><item><title>Announcing release of ASP.NET MVC 3, IIS Express, SQL CE 4, Web Farm Framework, Orchard, WebMatrix</title><link>http://weblogs.asp.net/scottgu/archive/2011/01/13/announcing-release-of-asp-net-mvc-3-iis-express-sql-ce-4-web-farm-framework-orchard-webmatrix.aspx</link><pubDate>Thu, 13 Jan 2011 18:11:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:7681992</guid><dc:creator>ScottGu</dc:creator><slash:comments>230</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/scottgu/rsscomments.aspx?PostID=7681992</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/scottgu/commentapi.aspx?PostID=7681992</wfw:comment><comments>http://weblogs.asp.net/scottgu/archive/2011/01/13/announcing-release-of-asp-net-mvc-3-iis-express-sql-ce-4-web-farm-framework-orchard-webmatrix.aspx#comments</comments><description>&lt;font size="2" face="arial"&gt;   &lt;p&gt;I’m excited to announce the release today of several products:&lt;/p&gt;    &lt;ul&gt;     &lt;li&gt;ASP.NET MVC 3 &lt;/li&gt;      &lt;li&gt;NuGet &lt;/li&gt;      &lt;li&gt;IIS Express 7.5 &lt;/li&gt;      &lt;li&gt;SQL Server Compact Edition 4 &lt;/li&gt;      &lt;li&gt;Web Deploy and Web Farm Framework 2.0 &lt;/li&gt;      &lt;li&gt;Orchard 1.0 &lt;/li&gt;      &lt;li&gt;WebMatrix 1.0 &lt;/li&gt;   &lt;/ul&gt;    &lt;p&gt;The above products are all free. They build upon the &lt;a href="http://weblogs.asp.net/scottgu/archive/2010/04/12/visual-studio-2010-and-net-4-released.aspx" target="_blank"&gt;.NET 4 and VS 2010&lt;/a&gt; release, and add a ton of additional value to ASP.NET (both Web Forms and MVC) and the Microsoft Web Server stack.&lt;/p&gt;    &lt;h3&gt;&lt;u&gt;ASP.NET MVC 3&lt;/u&gt;&lt;/h3&gt;    &lt;p&gt;Today we are shipping the final release of ASP.NET MVC 3.&amp;#160; You can download and install ASP.NET MVC 3 &lt;a href="http://www.microsoft.com/downloads/en/details.aspx?FamilyID=d2928bc1-f48c-4e95-a064-2a455a22c8f6&amp;amp;displaylang=en" target="_blank"&gt;here&lt;/a&gt;.&amp;#160; The ASP.NET MVC 3 source code (released under an OSI-compliant open source license) can also optionally be downloaded &lt;a href="http://download.microsoft.com/download/3/4/A/34A8A203-BD4B-44A2-AF8B-CA2CFCB311CC/mvc3-rtm-mspl.zip" target="_blank"&gt;here&lt;/a&gt;.&lt;/p&gt;    &lt;p&gt;ASP.NET MVC 3 is a significant update that brings with it a bunch of great features.&amp;#160; Some of the improvements include:&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;&lt;u&gt;Razor&lt;/u&gt;&lt;/strong&gt; &lt;/p&gt;    &lt;p&gt;ASP.NET MVC 3 ships with a new view-engine option called “Razor” (in addition to continuing to support/enhance the existing .aspx view engine).&amp;#160; Razor minimizes the number of characters and keystrokes required when writing a view template, and enables a fast, fluid coding workflow. &lt;/p&gt;    &lt;p&gt;Unlike most template syntaxes, with Razor you do not need to interrupt your coding to explicitly denote the start and end of server blocks within your HTML. The Razor parser is smart enough to infer this from your code. This enables a compact and expressive syntax which is clean, fast and fun to type.&amp;#160; &lt;/p&gt;    &lt;p&gt;You can learn more about Razor from some of the blog posts I’ve done about it over the last 6 months&lt;/p&gt;    &lt;ul&gt;     &lt;li&gt;&lt;a href="http://weblogs.asp.net/scottgu/archive/2010/07/02/introducing-razor.aspx" target="_blank"&gt;Introducing Razor&lt;/a&gt; &lt;/li&gt;      &lt;li&gt;&lt;a href="http://weblogs.asp.net/scottgu/archive/2010/10/19/asp-net-mvc-3-new-model-directive-support-in-razor.aspx" target="_blank"&gt;New @model keyword in Razor&lt;/a&gt; &lt;/li&gt;      &lt;li&gt;&lt;a href="http://weblogs.asp.net/scottgu/archive/2010/10/22/asp-net-mvc-3-layouts.aspx" target="_blank"&gt;Layouts with Razor&lt;/a&gt; &lt;/li&gt;      &lt;li&gt;&lt;a href="http://weblogs.asp.net/scottgu/archive/2010/11/12/asp-net-mvc-3-server-side-comments-with-razor.aspx"&gt;Server-Side Comments with Razor&lt;/a&gt; &lt;/li&gt;      &lt;li&gt;&lt;a href="http://weblogs.asp.net/scottgu/archive/2010/12/15/asp-net-mvc-3-razor-s-and-lt-text-gt-syntax.aspx" target="_blank"&gt;Razor’s @: and &amp;lt;text&amp;gt; syntax&lt;/a&gt; &lt;/li&gt;      &lt;li&gt;&lt;a href="http://weblogs.asp.net/scottgu/archive/2010/12/16/asp-net-mvc-3-implicit-and-explicit-code-nuggets-with-razor.aspx" target="_blank"&gt;Implicit and Explicit code nuggets with Razor&lt;/a&gt; &lt;/li&gt;      &lt;li&gt;&lt;a href="http://weblogs.asp.net/scottgu/archive/2010/12/30/asp-net-mvc-3-layouts-and-sections-with-razor.aspx" target="_blank"&gt;Layouts and Sections with Razor&lt;/a&gt; &lt;/li&gt;   &lt;/ul&gt;    &lt;p&gt;Today’s release supports full code intellisense support for Razor (both VB and C#) with Visual Studio 2010 and the free Visual Web Developer 2010 Express.&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;&lt;u&gt;JavaScript Improvements&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;    &lt;p&gt;ASP.NET MVC 3 enables richer JavaScript scenarios and takes advantage of emerging HTML5 capabilities.&lt;/p&gt;    &lt;p&gt;The AJAX and Validation helpers in ASP.NET MVC 3 now use an &lt;a href="http://www.jeremyskinner.co.uk/2010/12/27/unobtrusive-ajax-helpers-in-mvc3/" target="_blank"&gt;Unobtrusive JavaScript&lt;/a&gt; based approach.&amp;#160; Unobtrusive JavaScript avoids injecting inline JavaScript into HTML, and enables cleaner separation of behavior using the new HTML 5 “data-“ attribute convention (which conveniently works on older browsers as well – including IE6). This keeps your HTML tight and clean, and makes it easier to optionally swap out or customize JS libraries.&amp;#160; &lt;/p&gt;    &lt;p&gt;ASP.NET MVC 3 now includes built-in support for &lt;a href="http://yobriefcase.posterous.com/aspnet-mvc3s-jsonvalueproviderfactory" target="_blank"&gt;posting JSON-based parameters&lt;/a&gt; from client-side JavaScript to action methods on the server.&amp;#160; This makes it easier to exchange data across the client and server, and build rich JavaScript front-ends.&amp;#160; We think this capability will be particularly useful going forward with scenarios involving &lt;a href="http://weblogs.asp.net/scottgu/archive/2010/05/07/jquery-templates-and-data-linking-and-microsoft-contributing-to-jquery.aspx"&gt;client templates and data binding&lt;/a&gt; (including the &lt;a href="http://weblogs.asp.net/scottgu/archive/2010/10/04/jquery-templates-data-link-and-globalization-accepted-as-official-jquery-plugins.aspx" target="_blank"&gt;jQuery plugins the ASP.NET team recently contributed&lt;/a&gt; to the jQuery project).&amp;#160; &lt;/p&gt;    &lt;p&gt;Previous releases of ASP.NET MVC included the core jQuery library.&amp;#160; ASP.NET MVC 3 also now ships the jQuery Validate plugin (which our validation helpers use for client-side validation scenarios).&amp;#160; We are also now shipping and including jQuery UI by default as well (which provides a rich set of client-side JavaScript UI widgets for you to use within projects).&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;&lt;u&gt;Improved Validation&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;    &lt;p&gt;ASP.NET MVC 3 includes a bunch of validation enhancements that make it even easier to work with data.&lt;/p&gt;    &lt;p&gt;Client-side validation is now enabled by default with ASP.NET MVC 3 (using an onbtrusive javascript implementation).&amp;#160; Today’s release also includes built-in support for &lt;a href="http://davidhayden.com/blog/dave/archive/2011/01/04/ASPNETMVC3RemoteValidationTutorial.aspx" target="_blank"&gt;Remote Validation&lt;/a&gt; - which enables you to annotate a model class with a validation attribute that causes ASP.NET MVC to perform a remote validation call to a server method when validating input on the client.&lt;/p&gt;    &lt;p&gt;The validation features introduced within .NET 4’s System.ComponentModel.DataAnnotations namespace are now supported by ASP.NET MVC 3.&amp;#160; This includes support for the new &lt;a href="http://weblogs.asp.net/scottgu/archive/2010/12/10/class-level-model-validation-with-ef-code-first-and-asp-net-mvc-3.aspx" target="_blank"&gt;IValidatableObject interface&lt;/a&gt; – which enables you to perform model-level validation, and allows you to provide validation error messages specific to the state of the overall model, or between two properties within the model.&amp;#160; &lt;/p&gt;    &lt;p&gt;ASP.NET MVC 3 also supports the improvements made to the ValidationAttribute class in .NET 4.&amp;#160; ValidationAttribute now supports a new IsValid overload that provides more information about the current validation context, such as what object is being validated.&amp;#160; This enables richer scenarios where you can validate the current value based on another property of the model.&amp;#160; We’ve shipped a &lt;a href="http://davidhayden.com/blog/dave/archive/2011/01/01/CompareAttributeASPNETMVC3.aspx" target="_blank"&gt;built-in [Compare] validation attribute&lt;/a&gt;&amp;#160; with ASP.NET MVC 3 that uses this support and makes it easy out of the box to compare and validate two property values.&lt;/p&gt;    &lt;p&gt;You can use any data access API or technology with ASP.NET MVC.&amp;#160; This past year, though, we’ve worked closely with the .NET data team to ensure that the new &lt;a href="http://weblogs.asp.net/scottgu/archive/2010/07/16/code-first-development-with-entity-framework-4.aspx" target="_blank"&gt;EF Code First library&lt;/a&gt; works really well for ASP.NET MVC applications.&amp;#160; These &lt;a href="http://weblogs.asp.net/scottgu/archive/2010/12/08/announcing-entity-framework-code-first-ctp5-release.aspx" target="_blank"&gt;two&lt;/a&gt; &lt;a href="http://weblogs.asp.net/scottgu/archive/2010/12/10/class-level-model-validation-with-ef-code-first-and-asp-net-mvc-3.aspx" target="_blank"&gt;posts&lt;/a&gt; of mine cover the latest EF Code First preview and demonstrates how to use it with ASP.NET MVC 3 to enable easy editing of data (with end to end client+server validation support).&amp;#160; The final release of EF Code First will ship in the next few weeks.&lt;/p&gt;    &lt;p&gt;Today we are also publishing the first preview of a new MvcScaffolding project.&amp;#160; It enables you to easily scaffold ASP.NET MVC 3 Controllers and Views, and works great with EF Code-First (and is pluggable to support other data providers).&amp;#160; You can learn more about it – and install it via NuGet today - from &lt;a href="http://blog.stevensanderson.com/2011/01/13/scaffold-your-aspnet-mvc-3-project-with-the-mvcscaffolding-package/" target="_blank"&gt;Steve Sanderson’s MvcScaffolding blog post&lt;/a&gt;.&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;&lt;u&gt;Output Caching&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;    &lt;p&gt;Previous releases of ASP.NET MVC supported output caching content at a URL or action-method level.&lt;/p&gt;    &lt;p&gt;With ASP.NET MVC V3 we are also enabling support for partial page output caching – which allows you to easily output cache regions or fragments of a response as opposed to the entire thing.&amp;#160; This ends up being super useful in a lot of scenarios, and enables you to dramatically reduce the work your application does on the server.&amp;#160; &lt;/p&gt;    &lt;p&gt;The new partial page output caching support in ASP.NET MVC 3 enables you to easily re-use cached sub-regions/fragments of a page across multiple URLs on a site.&amp;#160; It supports the ability to cache the content either on the web-server, or optionally cache it within a distributed cache server like Windows Server AppFabric or memcached.&lt;/p&gt;    &lt;p&gt;I’ll post some tutorials on my blog that show how to take advantage of ASP.NET MVC 3’s new output caching support for partial page scenarios in the future.&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;&lt;u&gt;Better Dependency Injection&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;    &lt;p&gt;ASP.NET MVC 3 provides better support for applying Dependency Injection (DI) and integrating with Dependency Injection/IOC containers.&lt;/p&gt;    &lt;p&gt;With ASP.NET MVC 3 you no longer need to author custom ControllerFactory classes in order to enable DI with Controllers.&amp;#160; You can instead just register a Dependency Injection framework with ASP.NET MVC 3 and it will resolve dependencies not only for Controllers, but also for Views, Action Filters, Model Binders, Value Providers, Validation Providers, and Model Metadata Providers that you use within your application.&lt;/p&gt;    &lt;p&gt;This makes it much easier to cleanly integrate dependency injection within your projects.&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;&lt;u&gt;Other Goodies&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;    &lt;p&gt;ASP.NET MVC 3 includes dozens of other nice improvements that help to both reduce the amount of code you write, and make the code you do write cleaner.&amp;#160; Here are just a few examples: &lt;/p&gt;    &lt;ul&gt;     &lt;li&gt;Improved New Project dialog that makes it easy to start new ASP.NET MVC 3 projects from templates. &lt;/li&gt;      &lt;li&gt;Improved Add-&amp;gt;View Scaffolding support that enables the generation of even cleaner view templates. &lt;/li&gt;      &lt;li&gt;New ViewBag property that uses .NET 4’s dynamic support to make it easy to pass late-bound data from Controllers to Views. &lt;/li&gt;      &lt;li&gt;Global Filters support that allows specifying cross-cutting filter attributes (like [HandleError]) across all Controllers within an app. &lt;/li&gt;      &lt;li&gt;New [AllowHtml] attribute that allows for more granular request validation when binding form posted data to models. &lt;/li&gt;      &lt;li&gt;Sessionless controller support that allows fine grained control over whether SessionState is enabled on a Controller. &lt;/li&gt;      &lt;li&gt;New ActionResult types like HttpNotFoundResult and &lt;a href="http://davidhayden.com/blog/dave/archive/2010/12/29/AspNetMvc3RedirectPermanentSEO.aspx" target="_blank"&gt;RedirectPermanent&lt;/a&gt; for common HTTP scenarios. &lt;/li&gt;      &lt;li&gt;New Html.Raw() helper to indicate that output should not be HTML encoded. &lt;/li&gt;      &lt;li&gt;New Crypto helpers for salting and hashing passwords. &lt;/li&gt;      &lt;li&gt;And much, much more… &lt;/li&gt;   &lt;/ul&gt;    &lt;p&gt;&lt;u&gt;&lt;strong&gt;Learn More about ASP.NET MVC 3&lt;/strong&gt;&lt;/u&gt;&lt;/p&gt;    &lt;p&gt;We will be posting lots of tutorials and samples on the &lt;a href="http://asp.net/mvc" target="_blank"&gt;http://asp.net/mvc&lt;/a&gt; site in the weeks ahead.&amp;#160; Below are two good ASP.NET MVC 3 tutorials available on the site today:&lt;/p&gt;    &lt;ul&gt;     &lt;li&gt;&lt;a href="http://www.asp.net/mvc/tutorials/getting-started-with-mvc3-part1-cs" target="_blank"&gt;Build your First ASP.NET MVC 3 Application&lt;/a&gt;: &lt;a href="http://www.asp.net/mvc/tutorials/getting-started-with-mvc3-part1-vb " target="_blank"&gt;VB&lt;/a&gt; and &lt;a href="http://www.asp.net/mvc/tutorials/getting-started-with-mvc3-part1-cs" target="_blank"&gt;C#&lt;/a&gt; &lt;/li&gt;      &lt;li&gt;&lt;a href="http://www.asp.net/mvc/tutorials/mvc-music-store-part-1" target="_blank"&gt;Building the ASP.NET MVC 3 Music Store&lt;/a&gt; &lt;/li&gt;   &lt;/ul&gt;    &lt;p&gt;We’ll post additional ASP.NET MVC 3 tutorials and videos on the &lt;a href="http://asp.net/mvc"&gt;http://asp.net/mvc&lt;/a&gt; site in the future. Visit it regularly to find new tutorials as they are published.&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;&lt;u&gt;How to Upgrade Existing Projects&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;    &lt;p&gt;ASP.NET MVC 3 is compatible with ASP.NET MVC 2 – which means it should be easy to update existing MVC projects to ASP.NET MVC 3.&amp;#160; &lt;/p&gt;    &lt;p&gt;The new features in ASP.NET MVC 3 build on top of the foundational work we’ve already done with the MVC 1 and MVC 2 releases – which means that the skills, knowledge, libraries, and books you’ve acquired are all directly applicable with the MVC 3 release.&amp;#160; MVC 3 adds new features and capabilities – it doesn’t obsolete existing ones.&lt;/p&gt;    &lt;p&gt;You can upgrade existing ASP.NET MVC 2 projects by following the &lt;a href="http://go.microsoft.com/fwlink/?LinkID=208140" target="_blank"&gt;manual upgrade steps in the release notes&lt;/a&gt;.&amp;#160; Alternatively, you can use this &lt;a href="http://blogs.msdn.com/b/marcinon/archive/2011/01/13/mvc-3-project-upgrade-tool.aspx" target="_blank"&gt;automated ASP.NET MVC 3 upgrade tool&lt;/a&gt; to easily update your&amp;#160; existing projects.&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;&lt;u&gt;Localized Builds&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;    &lt;p&gt;Today’s ASP.NET MVC 3 release is available in English.&amp;#160; We will be releasing localized versions of ASP.NET MVC 3 (in 9 languages) in a few days.&amp;#160; I’ll blog pointers to the localized downloads once they are available. &lt;/p&gt;    &lt;h3&gt;&lt;u&gt;NuGet&lt;/u&gt; &lt;/h3&gt;    &lt;p&gt;Today we are also shipping NuGet – a free, open source, package manager that makes it easy for you to find, install, and use open source libraries in your projects. It works with all .NET project types (including ASP.NET Web Forms, ASP.NET MVC, WPF, WinForms, Silverlight, and Class Libraries).&amp;#160; You can download and install it &lt;a href="http://nuget.org/" target="_blank"&gt;here&lt;/a&gt;.&lt;/p&gt;    &lt;p&gt;NuGet enables developers who maintain open source projects (for example, .NET projects like Moq, NHibernate, Ninject, StructureMap, NUnit, Windsor, Raven, Elmah, etc) to package up their libraries and register them with an online gallery/catalog that is searchable.&amp;#160; The client-side NuGet tools – which include full Visual Studio integration – make it trivial for any .NET developer who wants to use one of these libraries to easily find and install it within the project they are working on.&lt;/p&gt;    &lt;p&gt;NuGet handles dependency management between libraries (for example: library1 depends on library2). It also makes it easy to update (and optionally remove) libraries from your projects later. It supports updating web.config files (if a package needs configuration settings). It also allows packages to add PowerShell scripts to a project (for example: scaffold commands). Importantly, NuGet is transparent and clean – and does not install anything at the system level. Instead it is focused on making it easy to manage libraries you use with your projects.&lt;/p&gt;    &lt;p&gt;Our goal with NuGet is to make it as simple as possible to integrate open source libraries within .NET projects.&amp;#160; &lt;/p&gt;    &lt;p&gt;&lt;u&gt;&lt;strong&gt;NuGet Gallery&lt;/strong&gt;&lt;/u&gt;&lt;/p&gt;    &lt;p&gt;This week we also launched a beta version of the &lt;a href="http://nuget.org"&gt;http://nuget.org&lt;/a&gt; web-site – which allows anyone to easily search and browse an online gallery of open source packages available via NuGet.&amp;#160; The site also now allows developers to optionally submit new packages that they wish to share with others.&amp;#160; You can learn more about how to create and share a package &lt;a href="http://haacked.com/archive/2011/01/12/uploading-packages-to-the-nuget-gallery.aspx" target="_blank"&gt;here&lt;/a&gt;.&lt;/p&gt;    &lt;p&gt;There are hundreds of open-source .NET projects already within the &lt;a href="http://nuget.org/" target="_blank"&gt;NuGet Gallery&lt;/a&gt; today.&amp;#160; We hope to have thousands there in the future.&lt;/p&gt;    &lt;h3&gt;&lt;u&gt;IIS Express 7.5&lt;/u&gt;&lt;/h3&gt;    &lt;p&gt;Today we are also shipping IIS Express 7.5.&amp;#160; IIS Express is a free version of IIS 7.5 that is optimized for developer scenarios.&amp;#160; It works for both ASP.NET Web Forms and ASP.NET MVC project types.&lt;/p&gt;    &lt;p&gt;We think IIS Express combines the ease of use of the ASP.NET Web Server (aka Cassini) currently built-into Visual Studio today with the full power of IIS.&amp;#160; Specifically:&lt;/p&gt;    &lt;ul&gt;     &lt;li&gt;It’s lightweight and easy to install (less than 5Mb download and a quick install) &lt;/li&gt;      &lt;li&gt;It &lt;u&gt;does not&lt;/u&gt; require an administrator account to run/debug applications from Visual Studio &lt;/li&gt;      &lt;li&gt;It enables a &lt;u&gt;full web-server feature set&lt;/u&gt; – including SSL, URL Rewrite, and other IIS 7.x modules &lt;/li&gt;      &lt;li&gt;It supports and enables the same extensibility model and web.config file settings that IIS 7.x support &lt;/li&gt;      &lt;li&gt;It can be installed side-by-side with the full IIS web server as well as the ASP.NET Development Server (they do not conflict at all) &lt;/li&gt;      &lt;li&gt;It works on Windows XP and higher operating systems – giving you a full IIS 7.x developer feature-set on all Windows OS platforms &lt;/li&gt;   &lt;/ul&gt;    &lt;p&gt;IIS Express (like the ASP.NET Development Server) can be quickly launched to run a site from a directory on disk.&amp;#160; It &lt;u&gt;does not&lt;/u&gt; require any registration/configuration steps. This makes it really easy to launch and run for development scenarios.&amp;#160; You can also optionally redistribute IIS Express with your own applications if you want a lightweight web-server.&amp;#160; The standard IIS Express EULA now includes redistributable rights.&lt;/p&gt;    &lt;p&gt;Visual Studio 2010 SP1 adds support for IIS Express.&amp;#160; Read my &lt;a href="http://weblogs.asp.net/scottgu/archive/2011/01/03/vs-2010-sp1-beta-and-iis-developer-express.aspx" target="_blank"&gt;VS 2010 SP1 and IIS Express blog post&lt;/a&gt; to learn more about what it enables.&amp;#160; &lt;/p&gt;    &lt;h3&gt;&lt;u&gt;SQL Server Compact Edition 4&lt;/u&gt;&lt;/h3&gt;    &lt;p&gt;Today we are also shipping SQL Server Compact Edition 4 (aka SQL CE 4).&amp;#160; SQL CE is a free, embedded, database engine that enables easy database storage.&lt;/p&gt;    &lt;p&gt;&lt;u&gt;No Database Installation Required&lt;/u&gt;&lt;/p&gt;    &lt;p&gt;SQL CE &lt;u&gt;does not&lt;/u&gt; require you to run a setup or install a database server in order to use it.&amp;#160; You can simply copy the SQL CE binaries into the \bin directory of your ASP.NET application, and then your web application can use it as a database engine.&amp;#160; No setup or extra security permissions are required for it to run. You do not need to have an administrator account on the machine. Just copy your web application onto any server and it will work. This is true even of medium-trust applications running in a web hosting environment.&lt;/p&gt;    &lt;p&gt;SQL CE runs in-memory within your ASP.NET application and will start-up when you first access a SQL CE database, and will automatically shutdown when your application is unloaded.&amp;#160; SQL CE databases are stored as files that live within the \App_Data folder of your ASP.NET Applications.&lt;/p&gt;    &lt;p&gt;&lt;u&gt;Works with Existing Data APIs&lt;/u&gt;&lt;/p&gt;    &lt;p&gt;SQL CE 4 works with existing .NET-based data APIs, and supports a SQL Server compatible query syntax.&amp;#160; This means you can use existing data APIs like ADO.NET, as well as use higher-level ORMs like Entity Framework and NHibernate with SQL CE.&amp;#160; This enables you to use the same data programming skills and data APIs you know today.&lt;/p&gt;    &lt;p&gt;&lt;u&gt;Supports Development, Testing and Production Scenarios&lt;/u&gt;&lt;/p&gt;    &lt;p&gt;SQL CE can be used for development scenarios, testing scenarios, and light production usage scenarios.&amp;#160; With the SQL CE 4 release we’ve done the engineering work to ensure that SQL CE won’t crash or deadlock when used in a multi-threaded server scenario (like ASP.NET).&amp;#160; This is a big change from previous releases of SQL CE – which were designed for client-only scenarios and which explicitly blocked running in web-server environments.&amp;#160; Starting with SQL CE 4 you can use it in a web-server as well.&lt;/p&gt;    &lt;p&gt;There are no license restrictions with SQL CE.&amp;#160; It is also totally free.&lt;/p&gt;    &lt;p&gt;&lt;u&gt;Tooling Support with VS 2010 SP1&lt;/u&gt;&lt;/p&gt;    &lt;p&gt;Visual Studio 2010 SP1 adds support for SQL CE 4 and ASP.NET Projects.&amp;#160; Read my &lt;a href="http://weblogs.asp.net/scottgu/archive/2011/01/11/vs-2010-sp1-and-sql-ce.aspx" target="_blank"&gt;VS 2010 SP1 and SQL CE 4 blog post&lt;/a&gt; to learn more about what it enables.&amp;#160; &lt;/p&gt;    &lt;h3&gt;&lt;u&gt;Web Deploy and Web Farm Framework 2.0&lt;/u&gt;&lt;/h3&gt;    &lt;p&gt;Today we are also releasing Microsoft Web Deploy V2 and Microsoft Web Farm Framework V2.&amp;#160; These services provide a flexible and powerful way to deploy ASP.NET applications onto either a single server, or across a web farm of machines.&lt;/p&gt;    &lt;p&gt;You can learn more about these capabilities from my previous blog posts on them:&lt;/p&gt;    &lt;ul&gt;     &lt;li&gt;&lt;a href="http://weblogs.asp.net/scottgu/archive/2010/09/08/introducing-the-microsoft-web-farm-framework.aspx" target="_blank"&gt;Introducing the Microsoft Web Farm Framework&lt;/a&gt; &lt;/li&gt;      &lt;li&gt;&lt;a href="http://weblogs.asp.net/scottgu/archive/2010/09/13/automating-deployment-with-microsoft-web-deploy.aspx" target="_blank"&gt;Automating Deployment with Microsoft Web Deploy&lt;/a&gt; &lt;/li&gt;   &lt;/ul&gt;    &lt;p&gt;Visit the &lt;a href="http://iis.net" target="_blank"&gt;http://iis.net&lt;/a&gt; website to learn more and install them. Both are free.&lt;/p&gt;    &lt;h3&gt;&lt;u&gt;Orchard 1.0&lt;/u&gt;&lt;/h3&gt;    &lt;p&gt;Today we are also releasing Orchard v1.0.&amp;#160; &lt;/p&gt;    &lt;p&gt;Orchard is a free, open source, community based project.&amp;#160; It provides Content Management System (CMS) and Blogging System support out of the box, and makes it possible to easily create and manage web-sites without having to write code (site owners can customize a site through the browser-based editing tools built-into Orchard).&amp;#160; &lt;a href="http://www.orchardproject.net/docs/" target="_blank"&gt;Read these tutorials&lt;/a&gt; to learn more about how you can setup and manage your own Orchard site.&lt;/p&gt;    &lt;p&gt;Orchard itself is built as an ASP.NET MVC 3 application using Razor view templates (and by default uses SQL CE 4 for data storage).&amp;#160; Developers wishing to extend an Orchard site with custom functionality can open and edit it as a Visual Studio project – and add new ASP.NET MVC Controllers/Views to it.&amp;#160; &lt;/p&gt;    &lt;h3&gt;&lt;u&gt;WebMatrix 1.0&lt;/u&gt;&lt;/h3&gt;    &lt;p&gt;WebMatrix is a new, free, web development tool from Microsoft that provides a suite of technologies that make it easier to enable website development.&amp;#160; It enables a developer to start a new site by browsing and downloading an app template from an online gallery of web applications (which includes popular apps like Umbraco, DotNetNuke, Orchard, WordPress, Drupal and Joomla).&amp;#160; Alternatively it also enables developers to create and code web sites from scratch.&lt;/p&gt;    &lt;p&gt;WebMatrix is task focused and helps guide developers as they work on sites.&amp;#160; WebMatrix includes IIS Express, SQL CE 4, and ASP.NET - providing an integrated web-server, database and programming framework combination.&amp;#160; It also includes built-in web publishing support which makes it easy to find and deploy sites to web hosting providers.&lt;/p&gt;    &lt;p&gt;You can learn more about WebMatrix from my &lt;a href="http://weblogs.asp.net/scottgu/archive/2010/07/06/introducing-webmatrix.aspx" target="_blank"&gt;Introducing WebMatrix blog post&lt;/a&gt; this summer.&amp;#160; Visit &lt;a href="http://microsoft.com/web" target="_blank"&gt;http://microsoft.com/web&lt;/a&gt; to download and install it today.&lt;/p&gt;    &lt;h3&gt;&lt;u&gt;Summary&lt;/u&gt;&lt;/h3&gt;    &lt;p&gt;I’m really excited about today’s releases – they provide a bunch of additional value that makes web development with ASP.NET, Visual Studio and the Microsoft Web Server a lot better.&amp;#160; &lt;/p&gt;    &lt;p&gt;A lot of folks worked hard to share this with you today. On behalf of my whole team – we hope you enjoy them!&lt;/p&gt;    &lt;p&gt;Scott&lt;/p&gt;    &lt;p&gt;&lt;em&gt;P.S.&lt;/em&gt; &lt;em&gt;In addition to blogging, I am also now using Twitter for quick updates and to share links. Follow me at: &lt;/em&gt;&lt;a href="http://www.twitter.com/scottgu"&gt;twitter.com/scottgu&lt;/a&gt;&lt;/p&gt; &lt;/font&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=7681992" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/scottgu/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://weblogs.asp.net/scottgu/archive/tags/Visual+Studio/default.aspx">Visual Studio</category><category domain="http://weblogs.asp.net/scottgu/archive/tags/.NET/default.aspx">.NET</category><category domain="http://weblogs.asp.net/scottgu/archive/tags/IIS7/default.aspx">IIS7</category><category domain="http://weblogs.asp.net/scottgu/archive/tags/Community+News/default.aspx">Community News</category><category domain="http://weblogs.asp.net/scottgu/archive/tags/MVC/default.aspx">MVC</category><category domain="http://weblogs.asp.net/scottgu/archive/tags/jQuery/default.aspx">jQuery</category></item><item><title>Dec 5th Links: ASP.NET, ASP.NET MVC, jQuery, Silverlight, Visual Studio</title><link>http://weblogs.asp.net/scottgu/archive/2010/12/05/dec-5th-links-asp-net-asp-net-mvc-jquery-silverlight-visual-studio.aspx</link><pubDate>Mon, 06 Dec 2010 00:31:49 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:7656517</guid><dc:creator>ScottGu</dc:creator><slash:comments>13</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/scottgu/rsscomments.aspx?PostID=7656517</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/scottgu/commentapi.aspx?PostID=7656517</wfw:comment><comments>http://weblogs.asp.net/scottgu/archive/2010/12/05/dec-5th-links-asp-net-asp-net-mvc-jquery-silverlight-visual-studio.aspx#comments</comments><description>&lt;font size="2" face="arial"&gt;   &lt;p&gt;Here is the latest in my &lt;a href="http://weblogs.asp.net/scottgu/archive/2010/08/29/august-29th-links-net-asp-net-iis-express-silverlight-windows-phone-7.aspx" target="_blank"&gt;link-listing series&lt;/a&gt;.&amp;#160; Also check out my &lt;a href="http://weblogs.asp.net/scottgu/archive/2009/08/25/vs-2010-and-net-4-series.aspx" target="_blank"&gt;VS 2010 and .NET 4 series&lt;/a&gt; for another on-going blog series I’m working on.&lt;/p&gt;    &lt;p&gt;&lt;em&gt;[In addition to blogging, I am also now using Twitter for quick updates and to share links. Follow me at: &lt;a href="http://twitter.com/scottgu" target="_blank"&gt;twitter.com/scottgu&lt;/a&gt;]&lt;/em&gt;&lt;/p&gt;    &lt;h3&gt;&lt;u&gt;ASP.NET &lt;/u&gt;&lt;/h3&gt;    &lt;ul&gt;     &lt;li&gt;       &lt;p&gt;&lt;a href="http://blogs.msdn.com/b/jmeier/archive/2010/10/31/asp-net-code-samples-collection.aspx" target="_blank"&gt;ASP.NET Code Samples Collection&lt;/a&gt;: J.D. Meier has a great post that provides a detailed round-up of ASP.NET code samples and tutorials from a wide variety of sources.&amp;#160; Lots of useful pointers.&lt;/p&gt;     &lt;/li&gt;   &lt;/ul&gt;    &lt;ul&gt;     &lt;li&gt;       &lt;p&gt;&lt;a href="http://blog.lavablast.com/post/2010/12/01/Slash-your-ASPNET-compileload-time.aspx" target="_blank"&gt;Slash your ASP.NET compile/load time without any hard work&lt;/a&gt;: Nice article that details a bunch of optimizations you can make to speed up ASP.NET project load and compile times. You might also want to read my previous blog post on this topic &lt;a href="http://weblogs.asp.net/scottgu/archive/2007/11/01/tip-trick-hard-drive-speed-and-visual-studio-performance.aspx" target="_blank"&gt;here&lt;/a&gt;.&lt;/p&gt;     &lt;/li&gt;   &lt;/ul&gt;    &lt;ul&gt;     &lt;li&gt;       &lt;p&gt;&lt;a href="http://stephenwalther.com/blog/archive/2010/11/22/10-essential-tools-for-building-asp-net-websites.aspx" target="_blank"&gt;10 Essential Tools for Building ASP.NET Websites&lt;/a&gt;: Great article by Stephen Walther on 10 great (and free) tools that enable you to more easily build great ASP.NET Websites.&amp;#160; Highly recommended reading.&lt;/p&gt;     &lt;/li&gt;   &lt;/ul&gt;    &lt;ul&gt;     &lt;li&gt;       &lt;p&gt;&lt;a href="http://www.4guysfromrolla.com/articles/101310-1.aspx" target="_blank"&gt;Optimize Images using the ASP.NET Sprite and Image Optimization Framework&lt;/a&gt;: A nice article by 4GuysFromRolla that discusses how to use the open-source ASP.NET Sprite and Image Optimization Framework (one of the tools recommended by Stephen in the previous article).&amp;#160; You can use this to significantly improve the load-time of your pages on the client.&lt;/p&gt;     &lt;/li&gt;   &lt;/ul&gt;    &lt;ul&gt;     &lt;li&gt;       &lt;p&gt;&lt;a href="http://www.4guysfromrolla.com/articles/111010-1.aspx" target="_blank"&gt;Formatting Dates, Times and Numbers in ASP.NET&lt;/a&gt;: Scott Mitchell has a great article that discusses formatting dates, times and numbers in ASP.NET.&amp;#160; A very useful link to bookmark.&amp;#160; Also check out James Michael’s &lt;a href="http://geekswithblogs.net/BlackRabbitCoder/archive/2010/11/18/c.net-little-wonders-datetime-is-packed-with-goodies.aspx" target="_blank"&gt;DateTime is Packed with Goodies&lt;/a&gt; blog post for other DateTime tips.&lt;/p&gt;     &lt;/li&gt;   &lt;/ul&gt;    &lt;ul&gt;     &lt;li&gt;       &lt;p&gt;&lt;a href="http://www.4guysfromrolla.com/articles/110310-1.aspx" target="_blank"&gt;Examining ASP.NET’s Membership, Roles and Profile APIs (Part 18)&lt;/a&gt;: Everything you could possibly want to known about ASP.NET’s built-in Membership, Roles and Profile APIs must surely be in this tutorial series. Part 18 covers how to store additional user info with Membership.&lt;/p&gt;     &lt;/li&gt;   &lt;/ul&gt;    &lt;h3&gt;&lt;u&gt;ASP.NET with jQuery&lt;/u&gt;&lt;/h3&gt;    &lt;ul&gt;     &lt;li&gt;       &lt;p&gt;&lt;a href="http://stephenwalther.com/blog/archive/2010/11/30/an-introduction-to-jquery-templates.aspx" target="_blank"&gt;An Introduction to jQuery Templates&lt;/a&gt;: Stephen Walther has written an outstanding introduction and tutorial on the new jQuery Template plugin that the ASP.NET team has contributed to the jQuery project.&lt;/p&gt;     &lt;/li&gt;   &lt;/ul&gt;    &lt;ul&gt;     &lt;li&gt;       &lt;p&gt;&lt;a href="http://encosia.com/2010/11/10/composition-with-jquery-templates-why-and-how/" target="_blank"&gt;Composition with jQuery Templates&lt;/a&gt; and &lt;a href="http://encosia.com/2010/12/02/jquery-templates-composite-rendering-and-remote-loading/" target="_blank"&gt;jQuery Templates, Composite Rendering, and Remote Loading&lt;/a&gt;: Dave Ward has written two nice posts that talk about composition scenarios with jQuery Templates and some cool scenarios you can enable with them. &lt;/p&gt;     &lt;/li&gt;   &lt;/ul&gt;    &lt;ul&gt;     &lt;li&gt;       &lt;p&gt;&lt;a href="http://www.4guysfromrolla.com/articles/120110-1.aspx" target="_blank"&gt;Using jQuery and ASP.NET to Build a News Ticker&lt;/a&gt;: Scott Mitchell has a nice tutorial that demonstrates how to build a dynamically updated “news ticker” style UI with ASP.NET and jQuery.&lt;/p&gt;     &lt;/li&gt;   &lt;/ul&gt;    &lt;ul&gt;     &lt;li&gt;       &lt;p&gt;&lt;a href="http://scottonwriting.net/sowblog/archive/2010/12/04/checking-all-checkboxes-in-a-gridview-using-jquery.aspx" target="_blank"&gt;Checking All Checkboxes in a GridView using jQuery:&lt;/a&gt; Scott Mitchell has a nice post that covers how to use jQuery to enable a checkbox within a GridView’s header to automatically check/uncheck all checkboxes contained within rows of it.&lt;/p&gt;     &lt;/li&gt;   &lt;/ul&gt;    &lt;ul&gt;     &lt;li&gt;       &lt;p&gt;&lt;a href="http://west-wind.com/Weblog/posts/762753.aspx" target="_blank"&gt;Using jQuery to POST Form Data to an ASP.NET AJAX Web Service&lt;/a&gt;: Rick Strahl has a nice post that discusses how to capture form variables and post them to an ASP.NET AJAX Web Service (.asmx).&lt;/p&gt;     &lt;/li&gt;   &lt;/ul&gt;    &lt;h3&gt;&lt;u&gt;ASP.NET MVC&lt;/u&gt;&lt;/h3&gt;    &lt;ul&gt;     &lt;li&gt;       &lt;p&gt;&lt;a href="http://haacked.com/archive/2010/12/05/asp-net-mvc-diagnostics-using-nuget.aspx" target="_blank"&gt;ASP.NET MVC Diagnostics Using NuGet&lt;/a&gt;: Phil Haack has a nice post that demonstrates how to easily install a diagnostics page (using NuGet) that can help identify and diagnose common configuration issues within your apps.&lt;/p&gt;     &lt;/li&gt;   &lt;/ul&gt;    &lt;ul&gt;     &lt;li&gt;       &lt;p&gt;&lt;a href="http://yobriefcase.posterous.com/aspnet-mvc3s-jsonvalueproviderfactory" target="_blank"&gt;ASP.NET MVC 3 JsonValueProviderFactory&lt;/a&gt;: James Hughes has a nice post that discusses how to take advantage of the new JsonValueProviderFactory support built into ASP.NET MVC 3.&amp;#160; This makes it easy to post JSON payloads to MVC action methods.&lt;/p&gt;     &lt;/li&gt;   &lt;/ul&gt;    &lt;ul&gt;     &lt;li&gt;       &lt;p&gt;&lt;a href="http://yobriefcase.posterous.com/practical-jquery-mobile-with-aspnet-mvc" target="_blank"&gt;Practical jQuery Mobile with ASP.NET MVC&lt;/a&gt;: James Hughes has another nice post that discusses how to use the new jQuery Mobile library with ASP.NET MVC to build great mobile web applications.&lt;/p&gt;     &lt;/li&gt;   &lt;/ul&gt;    &lt;ul&gt;     &lt;li&gt;       &lt;p&gt;&lt;a href="http://benjii.me/2010/11/credit-card-validator-attribute-for-asp-net-mvc-3/" target="_blank"&gt;Credit Card Validator for ASP.NET MVC 3&lt;/a&gt;: Benjii Me has a nice post that demonstrates how to build a [CreditCard] validator attribute that can be used to easily validate credit card numbers are in the correct format with ASP.NET MVC.&lt;/p&gt;     &lt;/li&gt;   &lt;/ul&gt;    &lt;h3&gt;&lt;u&gt;Silverlight&lt;/u&gt;&lt;/h3&gt;    &lt;ul&gt;     &lt;li&gt;       &lt;p&gt;&lt;a href="http://johnpapa.net/silverlight/slfs10sessions/" target="_blank"&gt;Silverlight FireStarter Keynote and Sessions&lt;/a&gt;: A great blog post from John Papa that contains pointers and descriptions of all the great Silverlight content we published last week at the Silverlight FireStarter.&amp;#160; You can watch all of the talks online.&amp;#160; More details on my keynote and Silverlight 5 announcements can be found &lt;a href="http://weblogs.asp.net/scottgu/archive/2010/12/02/announcing-silverlight-5.aspx" target="_blank"&gt;here&lt;/a&gt;.&lt;/p&gt;     &lt;/li&gt;   &lt;/ul&gt;    &lt;ul&gt;     &lt;li&gt;       &lt;p&gt;&lt;a href="http://www.jeffblankenburg.com/post/31-Days-of-Windows-Phone-7.aspx" target="_blank"&gt;31 Days of Windows Phone 7:&lt;/a&gt; 31 great tutorials on how to build Windows Phone 7 applications (using Silverlight).&amp;#160; &lt;/p&gt;     &lt;/li&gt;   &lt;/ul&gt;    &lt;ul&gt;     &lt;li&gt;       &lt;p&gt;&lt;a href="http://blogs.msdn.com/b/delay/archive/2010/11/02/mo-controls-mo-controls-mo-controls-announcing-the-second-release-of-the-silverlight-for-windows-phone-toolkit.aspx" target="_blank"&gt;Silverlight for Windows Phone Toolkit Update&lt;/a&gt;: David Anson has a nice post that discusses some of the additional controls provided with the Silverlight for Windows Phone Toolkit.&lt;/p&gt;     &lt;/li&gt;   &lt;/ul&gt;    &lt;h3&gt;&lt;u&gt;Visual Studio&lt;/u&gt;&lt;/h3&gt;    &lt;ul&gt;     &lt;li&gt;       &lt;p&gt;&lt;a href="http://visualstudiogallery.msdn.microsoft.com/en-us/872d27ee-38c7-4a97-98dc-0d8a431cc2ed" target="_blank"&gt;JavaScript Editor Extensions&lt;/a&gt;: A nice (and free) Visual Studio plugin built by the web tools team that significantly improves the JavaScript intellisense support within Visual Studio.&lt;/p&gt;     &lt;/li&gt;   &lt;/ul&gt;    &lt;ul&gt;     &lt;li&gt;       &lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/gilf/archive/2010/12/04/quick-tip-html5-intellisense-for-visual-studio-2010.aspx" target="_blank"&gt;HTML5 Intellisense for Visual Studio&lt;/a&gt;: Gil has a blog post that discusses a new extension my team has posted to the Visual Studio Extension Gallery that adds HTML5 schema support to Visual Studio 2008 and 2010.&lt;/p&gt;     &lt;/li&gt;   &lt;/ul&gt;    &lt;ul&gt;     &lt;li&gt;       &lt;p&gt;&lt;a href="http://vishaljoshi.blogspot.com/2010/11/team-build-web-deployment-web-deploy-vs.html" target="_blank"&gt;Team Build + Web Deployment + Web Deploy + VS 2010 = Goodness&lt;/a&gt;: Visual blogs about how to enable a continuous deployment system with VS 2010, TFS 2010 and the Microsoft Web Deploy framework.&amp;#160; &lt;/p&gt;     &lt;/li&gt;   &lt;/ul&gt;    &lt;ul&gt;     &lt;li&gt;       &lt;p&gt;&lt;a href="http://blogs.msdn.com/b/visualstudio/archive/2010/09/01/emacs-emulation-extension-now-available.aspx" target="_blank"&gt;Visual Studio 2010 Emacs Emulation Extension&lt;/a&gt; and &lt;a href="http://blogs.msdn.com/b/jaredpar/archive/2010/11/30/vsvim-update-released-version-0-9-3.aspx" target="_blank"&gt;VIM Emulation Extension&lt;/a&gt;: Check out these two extensions if you are fond of Emacs and VIM key bindings and want to enable them within Visual Studio 2010.&lt;/p&gt;     &lt;/li&gt;   &lt;/ul&gt;    &lt;p&gt;Hope this helps,&lt;/p&gt;    &lt;p&gt;Scott&lt;/p&gt; &lt;/font&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=7656517" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/scottgu/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://weblogs.asp.net/scottgu/archive/tags/Visual+Studio/default.aspx">Visual Studio</category><category domain="http://weblogs.asp.net/scottgu/archive/tags/.NET/default.aspx">.NET</category><category domain="http://weblogs.asp.net/scottgu/archive/tags/MVC/default.aspx">MVC</category><category domain="http://weblogs.asp.net/scottgu/archive/tags/Ajax/default.aspx">Ajax</category><category domain="http://weblogs.asp.net/scottgu/archive/tags/jQuery/default.aspx">jQuery</category></item><item><title>jQuery Templates, Data Link, and Globalization Accepted as Official jQuery Plugins</title><link>http://weblogs.asp.net/scottgu/archive/2010/10/04/jquery-templates-data-link-and-globalization-accepted-as-official-jquery-plugins.aspx</link><pubDate>Mon, 04 Oct 2010 14:46:36 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:7623336</guid><dc:creator>ScottGu</dc:creator><slash:comments>68</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/scottgu/rsscomments.aspx?PostID=7623336</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/scottgu/commentapi.aspx?PostID=7623336</wfw:comment><comments>http://weblogs.asp.net/scottgu/archive/2010/10/04/jquery-templates-data-link-and-globalization-accepted-as-official-jquery-plugins.aspx#comments</comments><description>&lt;font size="2" face="arial"&gt;   &lt;p&gt;The jQuery library has a passionate community of developers, and it is now the most widely used JavaScript library on the web today.&lt;/p&gt;    &lt;p&gt;Two years ago I &lt;a href="http://weblogs.asp.net/scottgu/archive/2008/09/28/jquery-and-microsoft.aspx" target="_blank"&gt;announced&lt;/a&gt; that Microsoft would begin offering product support for jQuery, and that we’d be including it in new versions of Visual Studio going forward. By default, when you create new ASP.NET Web Forms and ASP.NET MVC projects with VS 2010, the core jQuery library is now automatically added to your project.&lt;/p&gt;    &lt;p&gt;Earlier this year at the MIX 2010 conference I announced that Microsoft would also begin contributing code to the jQuery project.&amp;#160; During one of my keynotes, John Resig -- the creator of the jQuery library – joined me on stage and talked a little about our participation and discussed an early prototype of a new client templating API for jQuery.&amp;#160; &lt;/p&gt;    &lt;p&gt;I later blogged more details about the &lt;a href="http://weblogs.asp.net/scottgu/archive/2010/05/07/jquery-templates-and-data-linking-and-microsoft-contributing-to-jquery.aspx" target="_blank"&gt;jQuery Templates plugin&lt;/a&gt;, &lt;a href="http://weblogs.asp.net/scottgu/archive/2010/05/07/jquery-templates-and-data-linking-and-microsoft-contributing-to-jquery.aspx" target="_blank"&gt;jQuery Data Link plugin&lt;/a&gt;, and &lt;a href="http://weblogs.asp.net/scottgu/archive/2010/06/10/jquery-globalization-plugin-from-microsoft.aspx" target="_blank"&gt;jQuery Globalization plugin&lt;/a&gt; that the ASP.NET team has been working on in conjunction with the jQuery team and jQuery community. We’ve had a lot of requests from ASP.NET customers looking to enable this type of functionality. We followed the standard jQuery open source model and posted prototypes of the plugins to Github.com, participated in the jQuery forums, and incorporated design feedback from the community. &lt;/p&gt;    &lt;h3&gt;&lt;u&gt;Official jQuery Plugins&lt;/u&gt;&lt;/h3&gt;    &lt;p&gt;Today, I am happy to make a &lt;a href="http://blog.jquery.com/2010/10/04/new-official-jquery-plugins-provide-templating-data-linking-and-globalization/" target="_blank"&gt;joint announcement with the jQuery team&lt;/a&gt; that the jQuery project has accepted these three plugins (jQuery Templates, jQuery Data Lin&lt;a name="_GoBack"&gt;&lt;/a&gt;k, and jQuery Globalization) as official jQuery plugins. &lt;/p&gt;    &lt;p&gt;As official jQuery plugins, the plugins will be maintained as part of the jQuery project.&amp;#160; Starting today, you can download these plugins by visiting the &lt;a href="http://jQuery.com" target="_blank"&gt;jQuery website&lt;/a&gt;. The documentation for these plugins is also now integrated within the &lt;a href="http://api.jQuery.com" target="_blank"&gt;official jQuery documentation&lt;/a&gt; site.&lt;/p&gt;    &lt;p&gt;Furthermore, in the next major release of jQuery (jQuery 1.5), the jQuery Templates plugin will be included as a standard part of the core jQuery library.&amp;#160; This means that the “jQuery Templates” functionality will be included in the jQuery.js file.&amp;#160; And it means that developers will be able to take advantage of a standard templating library and syntax when working with jQuery. &lt;/p&gt;    &lt;h3&gt;&lt;u&gt;Learning More&lt;/u&gt;&lt;/h3&gt;    &lt;blockquote&gt;     &lt;p&gt;&lt;a href="http://channel9.msdn.com/Shows/Web+Camps+TV/Web-Camps-TV-5-Microsoft-Commits-Code-to-jQuery" target="_blank"&gt;&lt;/a&gt;&lt;/p&gt;   &lt;/blockquote&gt;    &lt;p&gt;You can learn more about the plugins by watching the following Web Camps TV episode hosted by &lt;a href="http://www.twitter.com/jsenior" target="_blank"&gt;James Senior&lt;/a&gt; with &lt;a href="http://stephenwalther.com/blog/default.aspx" target="_blank"&gt;Stephen Walther&lt;/a&gt;: &lt;/p&gt;    &lt;blockquote&gt;     &lt;p&gt;&lt;a href="http://channel9.msdn.com/Shows/Web+Camps+TV/Web-Camps-TV-5-Microsoft-Commits-Code-to-jQuery" target="_blank"&gt;Web Camps TV #5 - Microsoft Commits Code to jQuery!&lt;/a&gt;&lt;/p&gt;   &lt;/blockquote&gt;    &lt;p&gt;Below is additional information (and links to the official documentation on jQuery.com) for the three plugins:&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;&lt;u&gt;jQuery Templates&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;    &lt;p&gt;The jQuery Templates plugin enables you to create client templates. For example, you can use the jQuery Templates plugin to format a set of database records that you have retrieved from the server through an Ajax request. &lt;/p&gt;    &lt;p&gt;You can learn more about jQuery templates by reading my earlier blog entry on &lt;a href="http://weblogs.asp.net/scottgu/archive/2010/05/07/jquery-templates-and-data-linking-and-microsoft-contributing-to-jquery.aspx" target="_blank"&gt;jQuery Templates and Data-Linking&lt;/a&gt; or by reading the &lt;a href="http://api.jquery.com/category/plugins/templates/" target="_blank"&gt;documentation about it&lt;/a&gt; on the &lt;a href="http://api.jquery.com/category/plugins/templates/" target="_blank"&gt;official jQuery website&lt;/a&gt;. In addition, Rey Bango, Boris Moore and James Senior have written some good blog posts on the jQuery Templates plugin:&lt;/p&gt;    &lt;ul&gt;     &lt;li&gt;&lt;a href="http://blog.reybango.com/2010/07/09/not-using-jquery-javascript-templates-youre-really-missing-out/" target="_blank"&gt;Not Using jQuery JavaScript Template? You’re Really Missing Out&lt;/a&gt; &lt;/li&gt;      &lt;li&gt;&lt;a href="http://blog.reybango.com/2010/07/12/jquery-javascript-templates-tutorial-nesting-templates/" target="_blank"&gt;jQuery JavaScript Templates Tutorial: Nesting Templates&lt;/a&gt; &lt;/li&gt;      &lt;li&gt;&lt;a href="http://www.borismoore.com/2010/09/introducing-jquery-templates-1-first.html" target="_blank"&gt;Introducing jQuery Templates&lt;/a&gt; &lt;/li&gt;      &lt;li&gt;&lt;a href="http://www.jamessenior.com/2010/09/30/jquery-templating-in-the-wild/" target="_blank"&gt;jQuery Templates in the Wild&lt;/a&gt;&lt;/li&gt;      &lt;li&gt;&lt;a href="http://trainingkit.webcamps.ms/JQuery.htm" target="_blank"&gt;Web Camps Demos: Adding jQuery to the ASP.NET MVC Music store&lt;/a&gt; &lt;/li&gt;   &lt;/ul&gt;    &lt;p&gt;When the next major version of jQuery is released -- jQuery 1.5 -- jQuery Templates will be included as a standard part of the jQuery library. &lt;/p&gt;    &lt;p&gt;&lt;strong&gt;&lt;u&gt;jQuery Data Link&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;    &lt;p&gt;The jQuery Data Link plugin enables you to easily keep your user interface and data synchronized. For example, you can use the Data Link plugin to automatically synchronize the input fields of an HTML product form with the properties of a JavaScript product object. &lt;/p&gt;    &lt;p&gt;You can learn more about the Data Link plugin by reading my previous blog entry on &lt;a href="http://weblogs.asp.net/scottgu/archive/2010/05/07/jquery-templates-and-data-linking-and-microsoft-contributing-to-jquery.aspx" target="_blank"&gt;jQuery Templates and Data-Linking&lt;/a&gt;. The &lt;a href="http://api.jquery.com/category/plugins/data-link/" target="_blank"&gt;documentation for the Data Link plugin&lt;/a&gt; is also now live at the &lt;a href="http://api.jquery.com/category/plugins/data-link/" target="_blank"&gt;official jQuery website&lt;/a&gt;. &lt;/p&gt;    &lt;p&gt;&lt;strong&gt;&lt;u&gt;jQuery Globalization&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;    &lt;p&gt;The jQuery Globalization plugin enables you to use different cultural conventions when formatting or parsing numbers, dates and times, calendars, and currencies. The Globalization plugin has information on over 350 cultures. You can use this plugin with the core jQuery library or plugins built on top of the jQuery library. &lt;/p&gt;    &lt;p&gt;You can learn more about the jQuery Globalization plugin by reading my previous &lt;a href="http://weblogs.asp.net/scottgu/archive/2010/06/10/jquery-globalization-plugin-from-microsoft.aspx" target="_blank"&gt;blog entry on the jQuery Globalization plugin&lt;/a&gt;. &lt;/p&gt;    &lt;h3&gt;&lt;u&gt;Summary&lt;/u&gt;&lt;/h3&gt;    &lt;p&gt;My team is excited to participate and contribute to the jQuery project. We hope these three plugins make it easier for all web developers to build great sites and applications.&amp;#160; We’ve made good progress the last few months, and are looking forward to making new announcements concerning jQuery in the future.&lt;/p&gt;    &lt;p&gt;You can learn even more about today’s announcement from the &lt;a href="http://blog.jquery.com/2010/10/04/new-official-jquery-plugins-provide-templating-data-linking-and-globalization/" target="_blank"&gt;jQuery team’s blog post about it&lt;/a&gt;.&lt;/p&gt;    &lt;p&gt;Hope this helps,&lt;/p&gt;    &lt;p&gt;Scott&lt;/p&gt;    &lt;p&gt;P.S. In addition to blogging, I am also now using Twitter for quick updates and to share links. Follow me at: &lt;a href="http://www.twitter.com/scottgu" target="_blank"&gt;twitter.com/scottgu&lt;/a&gt;&lt;/p&gt; &lt;/font&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=7623336" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/scottgu/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://weblogs.asp.net/scottgu/archive/tags/.NET/default.aspx">.NET</category><category domain="http://weblogs.asp.net/scottgu/archive/tags/Community+News/default.aspx">Community News</category><category domain="http://weblogs.asp.net/scottgu/archive/tags/Ajax/default.aspx">Ajax</category><category domain="http://weblogs.asp.net/scottgu/archive/tags/jQuery/default.aspx">jQuery</category></item><item><title>jQuery Globalization Plugin from Microsoft</title><link>http://weblogs.asp.net/scottgu/archive/2010/06/10/jquery-globalization-plugin-from-microsoft.aspx</link><pubDate>Fri, 11 Jun 2010 05:34:24 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:7524663</guid><dc:creator>ScottGu</dc:creator><slash:comments>66</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/scottgu/rsscomments.aspx?PostID=7524663</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/scottgu/commentapi.aspx?PostID=7524663</wfw:comment><comments>http://weblogs.asp.net/scottgu/archive/2010/06/10/jquery-globalization-plugin-from-microsoft.aspx#comments</comments><description>&lt;font size="2" face="arial"&gt;   &lt;p&gt;Last month I blogged about how Microsoft is starting to &lt;a href="http://weblogs.asp.net/scottgu/archive/2010/05/07/jquery-templates-and-data-linking-and-microsoft-contributing-to-jquery.aspx" target="_blank"&gt;make code contributions to jQuery&lt;/a&gt;, and about some of the first code contributions we were working on: &lt;a href="http://weblogs.asp.net/scottgu/archive/2010/05/07/jquery-templates-and-data-linking-and-microsoft-contributing-to-jquery.aspx" target="_blank"&gt;jQuery Templates and Data Linking support&lt;/a&gt;.&lt;/p&gt;    &lt;p&gt;Today, we released a prototype of a new jQuery Globalization Plugin that enables you to add globalization support to your JavaScript applications. This plugin includes globalization information for over 350 cultures ranging from Scottish Gaelic, Frisian, Hungarian, Japanese, to Canadian English.&amp;#160; We will be releasing this plugin to the community as open-source.&lt;/p&gt;    &lt;p&gt;You can download our prototype for the jQuery Globalization plugin from our Github repository: &lt;/p&gt;    &lt;blockquote&gt;     &lt;p&gt;&lt;a href="http://github.com/nje/jquery-glob" target="_blank"&gt;http://github.com/nje/jquery-glob&lt;/a&gt;&lt;/p&gt;   &lt;/blockquote&gt;    &lt;p&gt;You can also download a set of samples that demonstrate some simple use-cases with it &lt;a href="http://www.scottgu.com/blogposts/jQueryGlobalizationDemos.zip" target="_blank"&gt;here&lt;/a&gt;.&lt;/p&gt;    &lt;h3&gt;&lt;u&gt;Understanding Globalization&lt;/u&gt;&lt;/h3&gt;    &lt;p&gt;The jQuery Globalization plugin enables you to easily parse and format numbers, currencies, and dates for different cultures in JavaScript. For example, you can use the Globalization plugin to display the proper currency symbol for a culture:&lt;/p&gt;    &lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/scottgu/image_1DAC1393.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://weblogs.asp.net/blogs/scottgu/image_thumb_43A1C3E9.png" width="300" height="151" /&gt;&lt;/a&gt; &lt;/p&gt;    &lt;p&gt;You also can use the Globalization plugin to format dates so that the day and month appear in the right order and the day and month names are correctly translated:&lt;/p&gt;   &lt;a href="http://weblogs.asp.net/blogs/scottgu/image_7BE03B01.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://weblogs.asp.net/blogs/scottgu/image_thumb_02271190.png" width="367" height="222" /&gt;&lt;/a&gt;     &lt;p&gt;&lt;/p&gt;    &lt;p&gt;Notice above how the Arabic year is displayed as 1431. This is because the year has been converted to use the Arabic calendar.&lt;/p&gt;    &lt;p&gt;Some cultural differences, such as different currency or different month names, are obvious. Other cultural differences are surprising and subtle. For example, in some cultures, the grouping of numbers is done unevenly. In the &amp;quot;te-IN&amp;quot; culture (Telugu in India), groups have 3 digits and then 2 digits. The number 1000000 (one million) is written as &amp;quot;10,00,000&amp;quot;. Some cultures do not group numbers at all. All of these subtle cultural differences are handled by the jQuery Globalization plugin automatically.&lt;/p&gt;    &lt;p&gt;Getting dates right can be especially tricky. Different cultures have different calendars such as the Gregorian and UmAlQura calendars. A single culture can even have multiple calendars. For example, the Japanese culture uses both the Gregorian calendar and a Japanese calendar that has eras named after Japanese emperors. The Globalization Plugin includes methods for converting dates between all of these different calendars.&lt;/p&gt;    &lt;h3&gt;&lt;u&gt;Using Language Tags&lt;/u&gt;&lt;/h3&gt;    &lt;p&gt;The jQuery Globalization plugin uses the language tags defined in the RFC 4646 and RFC 5646 standards to identity cultures (see &lt;a href="http://tools.ietf.org/html/rfc5646" target="_blank"&gt;http://tools.ietf.org/html/rfc5646&lt;/a&gt;). A language tag is composed out of one or more subtags separated by hyphens. For example:&lt;/p&gt;    &lt;table border="0" cellspacing="0" cellpadding="0" width="400"&gt;&lt;tbody&gt;       &lt;tr&gt;         &lt;td valign="top" width="200"&gt;&lt;strong&gt;Language Tag&lt;/strong&gt;&lt;/td&gt;          &lt;td valign="top" width="200"&gt;&lt;strong&gt;Language Name (in English)&lt;/strong&gt;&lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="200"&gt;en-AU&lt;/td&gt;          &lt;td valign="top" width="200"&gt;English (Australia)&lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="200"&gt;en-BZ&lt;/td&gt;          &lt;td valign="top" width="200"&gt;English (Belize)&lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="200"&gt;en-CA&lt;/td&gt;          &lt;td valign="top" width="200"&gt;English (Canada)&lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="200"&gt;Id&lt;/td&gt;          &lt;td valign="top" width="200"&gt;Indonesian&lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="200"&gt;zh-CHS&lt;/td&gt;          &lt;td valign="top" width="200"&gt;Chinese (Simplified) Legacy&lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="200"&gt;Zu&lt;/td&gt;          &lt;td valign="top" width="200"&gt;isiZulu&lt;/td&gt;       &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt;    &lt;p&gt;Notice that a single language, such as English, can have several language tags. Speakers of English in Canada format numbers, currencies, and dates using different conventions than speakers of English in Australia or the United States.&amp;#160; You can find the language tag for a particular culture by using the &lt;b&gt;Language Subtag Lookup&lt;/b&gt; tool located here:&amp;#160; &lt;a href="http://rishida.net/utils/subtags/" target="_blank"&gt;http://rishida.net/utils/subtags/&lt;/a&gt;&lt;/p&gt;    &lt;p&gt;The jQuery Globalization plugin download includes a folder named &lt;b&gt;globinfo&lt;/b&gt; that contains the information for each of the 350 cultures. Actually, this folder contains more than 700 files because the folder includes both minified and un-minified versions of each file.&lt;/p&gt;    &lt;p&gt;For example, the &lt;b&gt;globinfo&lt;/b&gt; folder includes JavaScript files named jQuery.glob.en-AU.js for English Australia, jQuery.glob.id.js for Indonesia, and jQuery.glob.zh-CHS for Chinese (Simplified) Legacy.&lt;/p&gt;    &lt;h3&gt;&lt;u&gt;Example: Setting a Particular Culture&lt;/u&gt;&lt;/h3&gt;    &lt;p&gt;Imagine that you have been asked to create a German website and want to format all of the dates, currencies, and numbers using German formatting conventions correctly in JavaScript on the client. The HTML for the page might look like this:&lt;/p&gt;    &lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/scottgu/image_737C65AA.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://weblogs.asp.net/blogs/scottgu/image_thumb_79C33C38.png" width="586" height="384" /&gt;&lt;/a&gt; &lt;/p&gt;    &lt;p&gt;Notice the span tags above. They mark the areas of the page that we want to format with the Globalization plugin. We want to format the product price, the date the product is available, and the units of the product in stock.&lt;/p&gt;    &lt;p&gt;To use the jQuery Globalization plugin, we’ll add three JavaScript files to the page: the jQuery library, the jQuery Globalization plugin, and the culture information for a particular language:&lt;/p&gt;    &lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/scottgu/image_46F335C4.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://weblogs.asp.net/blogs/scottgu/image_thumb_461ACFDA.png" width="628" height="71" /&gt;&lt;/a&gt; &lt;/p&gt;    &lt;p&gt;In this case, I’ve statically added the jQuery.glob.de-DE.js JavaScript file that contains the culture information for German. The language tag “de-DE” is used for German as spoken in Germany.&lt;/p&gt;    &lt;p&gt;Now that I have all of the necessary scripts, I can use the Globalization plugin to format the &lt;i&gt;product price&lt;/i&gt;,&lt;i&gt; date available&lt;/i&gt;, and &lt;i&gt;units in stock&lt;/i&gt; values using the following client-side JavaScript:&lt;/p&gt;    &lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/scottgu/image_454269F0.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://weblogs.asp.net/blogs/scottgu/image_thumb_7D80E108.png" width="561" height="396" /&gt;&lt;/a&gt; &lt;/p&gt;    &lt;p&gt;The jQuery Globalization plugin extends the jQuery library with new methods - including new methods named &lt;strong&gt;preferCulture()&lt;/strong&gt; and &lt;strong&gt;format().&lt;/strong&gt; The &lt;strong&gt;preferCulture()&lt;/strong&gt; method enables you to set the default culture used by the jQuery Globalization plugin methods. Notice that the &lt;strong&gt;preferCulture()&lt;/strong&gt; method accepts a language tag. The method will find the closest culture that matches the language tag. &lt;/p&gt;    &lt;p&gt;The &lt;strong&gt;$.format()&lt;/strong&gt; method is used to actually format the currencies, dates, and numbers. The second parameter passed to the &lt;strong&gt;$.format()&lt;/strong&gt; method is a format specifier. For example, passing “c” causes the value to be formatted as a currency. The ReadMe file at github details the meaning of all of the various format specifiers: &lt;a href="http://github.com/nje/jquery-glob" target="_blank"&gt;http://github.com/nje/jquery-glob&lt;/a&gt;&lt;/p&gt;    &lt;p&gt;When we open the page in a browser, everything is formatted correctly according to German language conventions. A euro symbol is used for the currency symbol. The date is formatted using German day and month names. Finally, a period instead of a comma is used a number separator:&lt;/p&gt;    &lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/scottgu/image_63ACAAD9.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://weblogs.asp.net/blogs/scottgu/image_thumb_74B0D8BC.png" width="413" height="342" /&gt;&lt;/a&gt; &lt;/p&gt;    &lt;p&gt;You can see a running example of the above approach with the 3_GermanSite.htm file in this &lt;a href="http://www.scottgu.com/blogposts/jQueryGlobalizationDemos.zip" target="_blank"&gt;samples download&lt;/a&gt;.&lt;/p&gt;    &lt;h3&gt;&lt;u&gt;Example: &lt;/u&gt;&lt;u&gt;Enabling a User to Dynamically Select a Culture&lt;/u&gt;&lt;/h3&gt;    &lt;p&gt;In the previous example we explicitly said that we wanted to globalize in German (by referencing the jQuery.glob.de-DE.js file). Let’s now look at the first of a few examples that demonstrate how to dynamically set the globalization culture to use.&lt;/p&gt;    &lt;p&gt;Imagine that you want to display a dropdown list of all of the 350 cultures in a page. When someone selects a culture from the dropdown list, you want all of the dates in the page to be formatted using the selected culture.&lt;/p&gt;    &lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/scottgu/image_01AAB8CE.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://weblogs.asp.net/blogs/scottgu/image_thumb_19CE2329.png" width="413" height="300" /&gt;&lt;/a&gt; &lt;/p&gt;    &lt;p&gt;Here’s the HTML for the page:&lt;/p&gt;    &lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/scottgu/image_31F18D84.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://weblogs.asp.net/blogs/scottgu/image_thumb_5F067A52.png" width="628" height="120" /&gt;&lt;/a&gt; &lt;/p&gt;    &lt;p&gt;Notice that all of the dates are contained in a &amp;lt;span&amp;gt; tag with a data-date attribute (data-* attributes are a new feature of HTML 5 that conveniently also still work with older browsers). We’ll format the date represented by the data-date attribute when a user selects a culture from the dropdown list.&lt;/p&gt;    &lt;p&gt;In order to display dates for any possible culture, we’ll include the jQuery.glob.all.js file like this:&lt;/p&gt;   &lt;a href="http://weblogs.asp.net/blogs/scottgu/image_6238623A.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://weblogs.asp.net/blogs/scottgu/image_thumb_4144EF93.png" width="628" height="64" /&gt;&lt;/a&gt;     &lt;blockquote&gt;     &lt;p&gt;&lt;em&gt;The jQuery Globalization plugin includes a JavaScript file named jQuery.glob.all.js. This file contains globalization information for all of the more than 350 cultures supported by the Globalization plugin.&lt;/em&gt;&amp;#160; &lt;em&gt;At 367KB minified, this file is not small. Because of the size of this file, unless you really need to use all of these cultures at the same time, we recommend that you add the individual JavaScript files for particular cultures that you intend to support instead of the combined jQuery.glob.all.js to a page. In the next sample I’ll show how to dynamically load just the language files you need.&lt;/em&gt;&lt;/p&gt;   &lt;/blockquote&gt;    &lt;p&gt;Next, we’ll populate the dropdown list with all of the available cultures. We can use the $.cultures property to get all of the loaded cultures:&lt;/p&gt;   &lt;a href="http://weblogs.asp.net/blogs/scottgu/image_750CE5E4.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://weblogs.asp.net/blogs/scottgu/image_thumb_6D154382.png" width="628" height="119" /&gt;&lt;/a&gt;     &lt;p&gt;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;p&gt;Finally, we’ll write jQuery code that grabs every span element with a data-date attribute and format the date:&lt;/p&gt;    &lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/scottgu/image_45029463.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://weblogs.asp.net/blogs/scottgu/image_thumb_11C65AFA.png" width="628" height="245" /&gt;&lt;/a&gt; &lt;/p&gt;    &lt;p&gt;The jQuery Globalization plugin’s &lt;strong&gt;parseDate()&lt;/strong&gt; method is used to convert a string representation of a date into a JavaScript date. The plugin’s &lt;strong&gt;format()&lt;/strong&gt; method is used to format the date. The “D” format specifier causes the date to be formatted using the long date format.&lt;/p&gt;    &lt;p&gt;And now the content will be globalized correctly regardless of which of the 350 languages a user visiting the page selects.&amp;#160; You can see a running example of the above approach with the 4_SelectCulture.htm file in this &lt;a href="http://www.scottgu.com/blogposts/jQueryGlobalizationDemos.zip" target="_blank"&gt;samples download&lt;/a&gt;.&lt;/p&gt;    &lt;h3&gt;&lt;u&gt;Example: Loading Globalization Files Dynamically&lt;/u&gt;&lt;/h3&gt;    &lt;p&gt;As mentioned in the previous section, you should avoid adding the jQuery.glob.all.js file to a page whenever possible because the file is so large. A better alternative is to load the globalization information that you need dynamically.&lt;/p&gt;    &lt;p&gt;For example, imagine that you have created a dropdown list that displays a list of languages:&lt;/p&gt;    &lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/scottgu/image_17A0FE93.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://weblogs.asp.net/blogs/scottgu/image_thumb_10158F26.png" width="445" height="131" /&gt;&lt;/a&gt; &lt;/p&gt;    &lt;p&gt;The following jQuery code executes whenever a user selects a new language from the dropdown list. The code checks whether the globalization file associated with the selected language has already been loaded. If the globalization file has not been loaded then the globalization file is loaded dynamically by taking advantage of the jQuery &lt;strong&gt;$.getScript()&lt;/strong&gt; method.&lt;/p&gt;   &lt;a href="http://weblogs.asp.net/blogs/scottgu/image_2185EFFE.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://weblogs.asp.net/blogs/scottgu/image_thumb_55BA1944.png" width="597" height="333" /&gt;&lt;/a&gt;     &lt;p&gt;&lt;/p&gt;    &lt;p&gt;The globalizePage() method is called after the requested globalization file has been loaded, and contains the client-side code to perform the globalization. &lt;/p&gt;    &lt;p&gt;The advantage of this approach is that it enables you to avoid loading the entire jQuery.glob.all.js file. Instead you only need to load the files that you need and you don’t need to load the files more than once. &lt;/p&gt;    &lt;p&gt;The 5_Dynamic.htm file in this &lt;a href="http://www.scottgu.com/blogposts/jQueryGlobalizationDemos.zip" target="_blank"&gt;samples download&lt;/a&gt; demonstrates how to implement this approach.&lt;/p&gt;    &lt;h3&gt;&lt;u&gt;Example: Setting the User Preferred Language Automatically&lt;/u&gt;&lt;/h3&gt;    &lt;p&gt;Many websites detect a user’s preferred language from their browser settings and automatically use it when globalizing content. A user can set a preferred language for their browser. Then, whenever the user requests a page, this language preference is included in the request in the Accept-Language header. &lt;/p&gt;    &lt;p&gt;When using Microsoft Internet Explorer, you can set your preferred language by following these steps:&lt;/p&gt;    &lt;ol&gt;     &lt;li&gt;Select the menu option &lt;b&gt;Tools, Internet Options&lt;/b&gt;. &lt;/li&gt;      &lt;li&gt;Select the &lt;b&gt;General&lt;/b&gt; tab. &lt;/li&gt;      &lt;li&gt;Click the &lt;b&gt;Languages&lt;/b&gt; button in the &lt;b&gt;Appearance&lt;/b&gt; section. &lt;/li&gt;      &lt;li&gt;Click the &lt;b&gt;Add&lt;/b&gt; button to add a new language to the list of languages. &lt;/li&gt;      &lt;li&gt;Move your preferred language to the top of the list. &lt;/li&gt;   &lt;/ol&gt;    &lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/scottgu/image_74FCC017.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://weblogs.asp.net/blogs/scottgu/image_thumb_74245A2D.png" width="369" height="401" /&gt;&lt;/a&gt; &lt;/p&gt;    &lt;p&gt;Notice that you can list multiple languages in the Language Preference dialog. All of these languages are sent in the order that you listed them in the Accept-Language header: &lt;/p&gt;    &lt;blockquote&gt;     &lt;p&gt;Accept-Language: fr-FR,id-ID;q=0.7,en-US;q=0.3&lt;/p&gt;   &lt;/blockquote&gt;    &lt;p&gt;Strangely, you cannot retrieve the value of the Accept-Language header from client JavaScript. Microsoft Internet Explorer and Mozilla Firefox support a bevy of language related properties exposed by the window.navigator object, such as windows.navigator.browserLanguage and window.navigator.language, but these properties represent either the language set for the operating system or the language edition of the browser. These properties don’t enable you to retrieve the language that the user set as his or her preferred language.&lt;/p&gt;    &lt;p&gt;The only reliable way to get a user’s preferred language (the value of the Accept-Language header) is to write server code. For example, the following ASP.NET page takes advantage of the server Request.UserLanguages property to assign the user’s preferred language to a client JavaScript variable named &lt;em&gt;acceptLanguage &lt;/em&gt;(which then allows you to access the value using client-side JavaScript):&lt;/p&gt;    &lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/scottgu/image_77564215.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://weblogs.asp.net/blogs/scottgu/image_thumb_4BA57819.png" width="587" height="106" /&gt;&lt;/a&gt; &lt;/p&gt;    &lt;p&gt;In order for this code to work, the culture information associated with the value of acceptLanguage must be included in the page. For example, if someone’s preferred culture is fr-FR (French in France) then you need to include either the jQuery.glob.fr-FR.js or the jQuery.glob.all.js JavaScript file in the page or the culture information won’t be available.&amp;#160; The “6_AcceptLanguages.aspx” sample in this &lt;a href="http://www.scottgu.com/blogposts/jQueryGlobalizationDemos.zip" target="_blank"&gt;samples download&lt;/a&gt; demonstrates how to implement this approach.&lt;/p&gt;    &lt;p&gt;If the culture information for the user’s preferred language is not included in the page then the &lt;strong&gt;$.preferCulture()&lt;/strong&gt; method will fall back to using the neutral culture (for example, using jQuery.glob.fr.js instead of jQuery.glob.fr-FR.js). If the neutral culture information is not available then the &lt;strong&gt;$.preferCulture()&lt;/strong&gt; method falls back to the default culture (English).&lt;/p&gt;    &lt;h3&gt;&lt;u&gt;Example: Using the Globalization Plugin with the jQuery UI DatePicker&lt;/u&gt;&lt;/h3&gt;    &lt;p&gt;One of the goals of the Globalization plugin is to make it easier to build jQuery widgets that can be used with different cultures.&lt;/p&gt;    &lt;p&gt;We wanted to make sure that the jQuery Globalization plugin could work with existing jQuery UI plugins such as the DatePicker plugin. To that end, we created a patched version of the DatePicker plugin that can take advantage of the Globalization plugin when rendering a calendar. The following image illustrates what happens when you add the jQuery Globalization and the patched jQuery UI DatePicker plugin to a page and select Indonesian as the preferred culture:&lt;/p&gt;    &lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/scottgu/image_5D15D8F1.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://weblogs.asp.net/blogs/scottgu/image_thumb_62F07C8A.png" width="577" height="622" /&gt;&lt;/a&gt; &lt;/p&gt;    &lt;p&gt;Notice that the headers for the days of the week are displayed using Indonesian day name abbreviations. Furthermore, the month names are displayed in Indonesian.&lt;/p&gt;    &lt;p&gt;You can download the patched version of the jQuery UI DatePicker from our github website. Or you can use the version included in this &lt;a href="http://www.scottgu.com/blogposts/jQueryGlobalizationDemos.zip" target="_blank"&gt;samples download&lt;/a&gt; and used by the 7_DatePicker.htm sample file.&lt;/p&gt;    &lt;h3&gt;&lt;u&gt;Summary&lt;/u&gt;&lt;/h3&gt;    &lt;p&gt;I’m excited about our continuing participation in the jQuery community. This Globalization plugin is the third jQuery plugin that we’ve released. &lt;/p&gt;    &lt;p&gt;We’ve really appreciated all of the great feedback and design suggestions on the jQuery templating and data-linking prototypes that we released earlier this year.&amp;#160; We also want to thank the jQuery and jQuery UI teams for working with us to create these plugins.&lt;/p&gt;    &lt;p&gt;Hope this helps,&lt;/p&gt;    &lt;p&gt;Scott&lt;/p&gt;    &lt;p&gt;&lt;em&gt;P.S. In addition to blogging, I am also now using Twitter for quick updates and to share links. You can follow me at: &lt;/em&gt;&lt;a href="http://www.twitter.com/scottgu" target="_blank"&gt;twitter.com/scottgu&lt;/a&gt;&lt;/p&gt; &lt;/font&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=7524663" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/scottgu/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://weblogs.asp.net/scottgu/archive/tags/Community+News/default.aspx">Community News</category><category domain="http://weblogs.asp.net/scottgu/archive/tags/Ajax/default.aspx">Ajax</category><category domain="http://weblogs.asp.net/scottgu/archive/tags/jQuery/default.aspx">jQuery</category></item><item><title>jQuery Templates and Data Linking (and Microsoft contributing to jQuery)</title><link>http://weblogs.asp.net/scottgu/archive/2010/05/07/jquery-templates-and-data-linking-and-microsoft-contributing-to-jquery.aspx</link><pubDate>Fri, 07 May 2010 07:26:36 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:7473446</guid><dc:creator>ScottGu</dc:creator><slash:comments>64</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/scottgu/rsscomments.aspx?PostID=7473446</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/scottgu/commentapi.aspx?PostID=7473446</wfw:comment><comments>http://weblogs.asp.net/scottgu/archive/2010/05/07/jquery-templates-and-data-linking-and-microsoft-contributing-to-jquery.aspx#comments</comments><description>&lt;font size="2" face="arial"&gt;   &lt;p&gt;The jQuery library has a passionate community of developers, and it is now the most widely used JavaScript library on the web today.&lt;/p&gt;    &lt;p&gt;Two years ago I &lt;a href="http://weblogs.asp.net/scottgu/archive/2008/09/28/jquery-and-microsoft.aspx" target="_blank"&gt;announced&lt;/a&gt; that Microsoft would begin offering product support for jQuery, and that we’d be including it in new versions of Visual Studio going forward. By default, when you create new ASP.NET Web Forms and ASP.NET MVC projects with VS 2010 you’ll find jQuery automatically added to your project.&lt;/p&gt;    &lt;p&gt;A few weeks ago during my &lt;a href="http://live.visitmix.com/MIX10/Sessions/KEY02" target="_blank"&gt;second keynote&lt;/a&gt; at the MIX 2010 conference I announced that Microsoft would also begin contributing to the jQuery project.&amp;#160; During the talk, John Resig -- the creator of the jQuery library and leader of the jQuery developer team – talked a little about our participation and discussed an early prototype of a new client templating API for jQuery.&lt;/p&gt;    &lt;p&gt;In this blog post, I’m going to talk a little about how my team is starting to contribute to the jQuery project, and discuss some of the specific features that we are working on such as &lt;em&gt;client-side templating &lt;/em&gt;and &lt;em&gt;data linking&lt;/em&gt; (data-binding).&lt;/p&gt;    &lt;h3&gt;&lt;u&gt;Contributing to jQuery&lt;/u&gt;&lt;/h3&gt;    &lt;p&gt;jQuery has a fantastic developer community, and a very open way to propose suggestions and make contributions.&amp;#160; Microsoft is following the same process to contribute to jQuery as any other member of the community. &lt;/p&gt;    &lt;p&gt;As an example, when working with the jQuery community to improve support for templating to jQuery my team followed the following steps:&lt;/p&gt;    &lt;ol&gt;     &lt;li&gt;We created a proposal for templating and posted the proposal to the jQuery developer forum (&lt;a href="http://forum.jquery.com/topic/jquery-templates-proposal" target="_blank"&gt;http://forum.jquery.com/topic/jquery-templates-proposal&lt;/a&gt; and &lt;a href="http://forum.jquery.com/topic/templating-syntax" target="_blank"&gt;http://forum.jquery.com/topic/templating-syntax&lt;/a&gt; ). &lt;/li&gt;      &lt;li&gt;After receiving feedback on the forums, the jQuery team created a prototype for templating and posted the prototype at the Github code repository (&lt;a href="http://github.com/jquery/jquery-tmpl" target="_blank"&gt;http://github.com/jquery/jquery-tmpl&lt;/a&gt; ). &lt;/li&gt;      &lt;li&gt;We iterated on the prototype, creating a new fork on Github of the templating prototype, to suggest design improvements. Several other members of the community also provided design feedback by forking the templating code. &lt;/li&gt;   &lt;/ol&gt;    &lt;p&gt;There has been an amazing amount of participation by the jQuery community in response to the original templating proposal (over 100 posts in the jQuery forum), and the design of the templating proposal has evolved significantly based on community feedback.&lt;/p&gt;    &lt;p&gt;The jQuery team is the ultimate determiner on what happens with the templating proposal – they might include it in jQuery core, or make it an official plugin, or reject it entirely.&amp;#160; My team is excited to be able to participate in the open source process, and make suggestions and contributions the same way as any other member of the community.&lt;/p&gt;    &lt;h3&gt;&lt;u&gt;jQuery Template Support&lt;/u&gt;&lt;/h3&gt;    &lt;p&gt;Client-side templates enable jQuery developers to easily generate and render HTML UI on the client.&amp;#160; Templates support a simple syntax that enables either developers or designers to declaratively specify the HTML they want to generate.&amp;#160; Developers can then programmatically invoke the templates on the client, and pass JavaScript objects to them to make the content rendered completely data driven.&amp;#160; These JavaScript objects can optionally be based on data retrieved from a server.&lt;/p&gt;    &lt;p&gt;Because the jQuery templating proposal is still evolving in response to community feedback, the final version might look very different than the version below. This blog post gives you a sense of how you can try out and use templating as it exists today (you can download the prototype by the jQuery core team at &lt;a href="http://github.com/jquery/jquery-tmpl" target="_blank"&gt;http://github.com/jquery/jquery-tmpl&lt;/a&gt; or the latest submission from my team at &lt;a href="http://github.com/nje/jquery-tmpl" target="_blank"&gt;http://github.com/nje/jquery-tmpl&lt;/a&gt;).&amp;#160; &lt;/p&gt;    &lt;p&gt;&lt;u&gt;&lt;strong&gt;jQuery Client Templates&lt;/strong&gt;&lt;/u&gt;&lt;/p&gt;    &lt;p&gt;You create &lt;em&gt;client-side&lt;/em&gt; jQuery templates by embedding content within a &amp;lt;script type=&amp;quot;text/html&amp;quot;&amp;gt; tag.&amp;#160; For example, the HTML below contains a &amp;lt;div&amp;gt; template container, as well as a &lt;em&gt;client-side&lt;/em&gt; jQuery “contactTemplate” template (within the &amp;lt;script type=&amp;quot;text/html&amp;quot;&amp;gt; element) that can be used to dynamically display a list of contacts:&lt;/p&gt;    &lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/scottgu/image_1445A645.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://weblogs.asp.net/blogs/scottgu/image_thumb_6C32F725.png" width="374" height="216" /&gt;&lt;/a&gt; &lt;/p&gt;    &lt;p&gt;The {{= name }} and {{= phone }} expressions are used within the contact template above to display the names and phone numbers of “contact” objects passed to the template.&lt;/p&gt;    &lt;p&gt;We can use the template to display either an array of JavaScript objects or a single object. The JavaScript code below demonstrates how you can render a JavaScript array of “contact” object using the above template. The render() method renders the data into a string and appends the string to the “contactContainer” DIV element:&lt;/p&gt;    &lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/scottgu/image_3D6D3E83.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://weblogs.asp.net/blogs/scottgu/image_thumb_0A9D380F.png" width="584" height="259" /&gt;&lt;/a&gt; &lt;/p&gt;    &lt;p&gt;When the page is loaded, the list of contacts is rendered by the template.&amp;#160; All of this template rendering is happening on the client-side within the browser:&lt;/p&gt;    &lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/scottgu/image_42DBAF27.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://weblogs.asp.net/blogs/scottgu/image_thumb_0F9F75BE.png" width="284" height="378" /&gt;&lt;/a&gt;&amp;#160;&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;&lt;u&gt;Templating Commands and Conditional Display Logic&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;    &lt;p&gt;The current templating proposal supports a small set of template commands - including &lt;i&gt;if&lt;/i&gt;, &lt;i&gt;else&lt;/i&gt;, and &lt;em&gt;each &lt;/em&gt;statements. The number of template commands was deliberately kept small to encourage people to place more complicated logic outside of their templates.&lt;/p&gt;    &lt;p&gt;Even this small set of template commands is very useful though. Imagine, for example, that each contact can have zero or more phone numbers. The contacts could be represented by the JavaScript array below:&lt;/p&gt;    &lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/scottgu/image_6EAC0316.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://weblogs.asp.net/blogs/scottgu/image_thumb_470586EC.png" width="531" height="100" /&gt;&lt;/a&gt; &lt;/p&gt;    &lt;p&gt;The template below demonstrates how you can use the &lt;i&gt;if&lt;/i&gt; and &lt;i&gt;each&lt;/i&gt; template commands to conditionally display and loop the phone numbers for each contact:&lt;/p&gt;    &lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/scottgu/image_5875E7C4.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://weblogs.asp.net/blogs/scottgu/image_thumb_77B88E97.png" width="362" height="279" /&gt;&lt;/a&gt; &lt;/p&gt;    &lt;p&gt;If a contact has one or more phone numbers then each of the phone numbers is displayed by iterating through the phone numbers with the &lt;i&gt;each&lt;/i&gt; template command:&lt;/p&gt;    &lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/scottgu/image_650394E0.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://weblogs.asp.net/blogs/scottgu/image_thumb_1622CF81.png" width="338" height="464" /&gt;&lt;/a&gt; &lt;/p&gt;    &lt;p&gt;The jQuery team designed the template commands so that they are extensible. If you have a need for a new template command then you can easily add new template commands to the default set of commands. &lt;/p&gt;    &lt;h3&gt;&lt;u&gt;Support for Client Data-Linking&lt;/u&gt;&lt;/h3&gt;    &lt;p&gt;The ASP.NET team recently submitted another proposal and prototype to the jQuery forums (&lt;a href="http://forum.jquery.com/topic/proposal-for-adding-data-linking-to-jquery"&gt;http://forum.jquery.com/topic/proposal-for-adding-data-linking-to-jquery&lt;/a&gt;). This proposal describes a new feature named &lt;i&gt;data linking. Data Linking &lt;/i&gt;enables you to link a property of one object to a property of another object - so that when one property changes the other property changes.&amp;#160; Data linking enables you to easily keep your UI and data objects synchronized within a page.&lt;/p&gt;    &lt;p&gt;If you are familiar with the concept of data-binding then you will be familiar with data linking (in the proposal, we call the feature data linking because jQuery already includes a bind() method that has nothing to do with data-binding).&lt;/p&gt;    &lt;p&gt;Imagine, for example, that you have a page with the following HTML &amp;lt;input&amp;gt; elements:&lt;/p&gt;    &lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/scottgu/image_4337BC4F.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://weblogs.asp.net/blogs/scottgu/image_thumb_2DDA06E7.png" width="268" height="48" /&gt;&lt;/a&gt; &lt;/p&gt;    &lt;p&gt;The following JavaScript code links the two INPUT elements above to the properties of a JavaScript “contact” object that has a “name” and “phone” property:&lt;/p&gt;    &lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/scottgu/image_09487963.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://weblogs.asp.net/blogs/scottgu/image_thumb_6CCB8782.png" width="427" height="106" /&gt;&lt;/a&gt; &lt;/p&gt;    &lt;p&gt;When you execute this code, the value of the first INPUT element (#name) is set to the value of the contact &lt;i&gt;name&lt;/i&gt; property, and the value of the second INPUT element (#phone) is set to the value of the contact &lt;i&gt;phone&lt;/i&gt; property. The properties of the contact object and the properties of the INPUT elements are also linked – so that changes to one are also reflected in the other.&lt;/p&gt;    &lt;p&gt;Because the contact object is linked to the INPUT element, when you request the page, the values of the contact properties are displayed:&lt;/p&gt;    &lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/scottgu/image_132D6ACE.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://weblogs.asp.net/blogs/scottgu/image_thumb_4042579C.png" width="254" height="187" /&gt;&lt;/a&gt; &lt;/p&gt;    &lt;p&gt;More interesting, the values of the linked INPUT elements will change automatically whenever you update the properties of the contact object they are linked to. &lt;/p&gt;    &lt;p&gt;For example, we could programmatically modify the properties of the “contact” object using the &lt;em&gt;jQuery attr()&lt;/em&gt; method like below:&lt;/p&gt;    &lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/scottgu/image_2A786F3F.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://weblogs.asp.net/blogs/scottgu/image_thumb_1EE2B200.png" width="230" height="109" /&gt;&lt;/a&gt; &lt;/p&gt;    &lt;p&gt;Because our two INPUT elements are linked to the “contact” object, the INPUT element values will be updated automatically (without us having to write any code to modify the UI elements):&lt;/p&gt;    &lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/scottgu/image_506E1F95.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://weblogs.asp.net/blogs/scottgu/image_thumb_7D830C63.png" width="254" height="182" /&gt;&lt;/a&gt; &lt;/p&gt;    &lt;p&gt;Note that we updated the contact object above using the jQuery attr() method. In order for data linking to work, you must use jQuery methods to modify the property values. &lt;/p&gt;    &lt;p&gt;&lt;strong&gt;&lt;u&gt;Two Way Linking&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;    &lt;p&gt;The linkBoth() method enables &lt;i&gt;two-way&lt;/i&gt; data linking. The contact object and INPUT elements are linked in both directions. When you modify the value of the INPUT element, the contact object is also updated automatically.&lt;/p&gt;    &lt;p&gt;For example, the following code adds a client-side JavaScript click handler to an HTML button element. When you click the button, the property values of the contact object are displayed using an alert() dialog:&lt;/p&gt;    &lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/scottgu/image_4393C977.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://weblogs.asp.net/blogs/scottgu/image_thumb_5C2366C7.png" width="320" height="85" /&gt;&lt;/a&gt; &lt;/p&gt;    &lt;p&gt;The following demonstrates what happens when you change the value of the Name INPUT element and click the Save button. Notice that the name property of the “contact” object that the INPUT element was linked to was updated automatically:&lt;/p&gt;    &lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/scottgu/image_1B811A58.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://weblogs.asp.net/blogs/scottgu/image_thumb_4176CAAE.png" width="456" height="351" /&gt;&lt;/a&gt; &lt;/p&gt;    &lt;p&gt;The above example is obviously trivially simple.&amp;#160; Instead of displaying the new values of the contact object with a JavaScript alert, you can imagine instead calling a web-service to save the object to a database. The benefit of data linking is that it enables you to focus on your data and frees you from the mechanics of keeping your UI and data in sync.&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;&lt;u&gt;Converters&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;    &lt;p&gt;The current data linking proposal also supports a feature called &lt;i&gt;converters&lt;/i&gt;. A converter enables you to easily convert the value of a property during data linking. &lt;/p&gt;    &lt;p&gt;For example, imagine that you want to represent phone numbers in a standard way with the “contact” object phone property. In particular, you don’t want to include special characters such as ()- in the phone number - instead you only want digits and nothing else. In that case, you can wire-up a converter to convert the value of an INPUT element into this format using the code below:&lt;/p&gt;    &lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/scottgu/image_4B5BBC19.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://weblogs.asp.net/blogs/scottgu/image_thumb_0A4D3CB5.png" width="493" height="199" /&gt;&lt;/a&gt; &lt;/p&gt;    &lt;p&gt;Notice above how a converter function is being passed to the linkFrom() method used to link the phone property of the “contact” object with the value of the phone INPUT element. This convertor function strips any non-numeric characters from the INPUT element before updating the phone property.&amp;#160; Now, if you enter the phone number (206) 555-9999 into the phone input field then the value 2065559999 is assigned to the phone property of the contact object:&lt;/p&gt;    &lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/scottgu/image_251962C1.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://weblogs.asp.net/blogs/scottgu/image_thumb_4F1960E9.png" width="433" height="358" /&gt;&lt;/a&gt; &lt;/p&gt;    &lt;p&gt;You can also use a converter in the opposite direction also. For example, you can apply a standard phone format string when displaying a phone number from a phone property.&lt;/p&gt;    &lt;h3&gt;&lt;u&gt;Combining Templating and Data Linking&lt;/u&gt;&lt;/h3&gt;    &lt;p&gt;Our goal in submitting these two proposals for templating and data linking is to make it easier to work with data when building websites and applications with jQuery. Templating makes it easier to display a list of database records retrieved from a database through an Ajax call. Data linking makes it easier to keep the data and user interface in sync for update scenarios.&lt;/p&gt;    &lt;p&gt;Currently, we are working on an extension of the data linking proposal to support &lt;i&gt;declarative&lt;/i&gt; data linking. We want to make it easy to take advantage of data linking when using a template to display data.&lt;/p&gt;    &lt;p&gt;For example, imagine that you are using the following template to display an array of product objects:&lt;/p&gt;    &lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/scottgu/image_2E25EE42.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://weblogs.asp.net/blogs/scottgu/image_thumb_625A1788.png" width="400" height="144" /&gt;&lt;/a&gt; &lt;/p&gt;    &lt;p&gt;Notice the {{link name}} and {{link price}} expressions. These expressions enable declarative data linking between the SPAN elements and properties of the product objects. The current jQuery templating prototype supports extending its syntax with custom template commands. In this case, we are extending the default templating syntax with a custom template command named “link”.&lt;/p&gt;    &lt;p&gt;The benefit of using data linking with the above template is that the SPAN elements will be automatically updated whenever the underlying “product” data is updated.&amp;#160; Declarative data linking also makes it easier to create edit and insert forms. For example, you could create a form for editing a product by using declarative data linking like this:&lt;/p&gt;    &lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/scottgu/image_73CA7860.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://weblogs.asp.net/blogs/scottgu/image_thumb_053AD939.png" width="445" height="137" /&gt;&lt;/a&gt; &lt;/p&gt;    &lt;p&gt;Whenever you change the value of the INPUT elements in a template that uses declarative data linking, the underlying JavaScript data object is automatically updated. Instead of needing to write code to scrape the HTML form to get updated values, you can instead work with the underlying data directly – making your client-side code much cleaner and simpler.&lt;/p&gt;    &lt;h3&gt;&lt;u&gt;Downloading Working Code Examples of the Above Scenarios&lt;/u&gt;&lt;/h3&gt;    &lt;p&gt;You can &lt;a href="http://scottgu.com/blogposts/jquerytemplates.zip" target="_blank"&gt;download this .zip file&lt;/a&gt; to get with working code examples of the above scenarios.&amp;#160; &lt;a href="http://scottgu.com/blogposts/jquerytemplates.zip" target="_blank"&gt;The .zip file&lt;/a&gt; includes 4 static HTML page:&lt;/p&gt;    &lt;ul&gt;     &lt;li&gt;Listing1_Templating.htm – Illustrates basic templating. &lt;/li&gt;      &lt;li&gt;Listing2_TemplatingConditionals.htm – Illustrates templating with the use of the if and each template commands. &lt;/li&gt;      &lt;li&gt;Listing3_DataLinking.htm – Illustrates data linking. &lt;/li&gt;      &lt;li&gt;Listing4_Converters.htm – Illustrates using a converter with data linking. &lt;/li&gt;   &lt;/ul&gt;    &lt;p&gt;You can un-zip the file to the file-system and then run each page to see the concepts in action.&lt;/p&gt;    &lt;h3&gt;&lt;u&gt;Summary&lt;/u&gt;&lt;/h3&gt;    &lt;p&gt;We are excited to be able to begin participating within the open-source jQuery project.&amp;#160; We’ve received lots of encouraging feedback in response to our first two proposals, and we will continue to actively contribute going forward.&amp;#160; These features will hopefully make it easier for all developers (including ASP.NET developers) to build great Ajax applications.&lt;/p&gt;    &lt;p&gt;Hope this helps,&lt;/p&gt;    &lt;p&gt;Scott&lt;/p&gt;    &lt;p&gt;P.S. &lt;em&gt;[In addition to blogging, I am also now using Twitter for quick updates and to share links. Follow me at: &lt;/em&gt;&lt;a href="http://www.twitter.com/scottgu" target="_blank"&gt;twitter.com/scottgu&lt;/a&gt;&lt;em&gt;]&lt;/em&gt;&lt;/p&gt; &lt;/font&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=7473446" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/scottgu/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://weblogs.asp.net/scottgu/archive/tags/.NET/default.aspx">.NET</category><category domain="http://weblogs.asp.net/scottgu/archive/tags/Community+News/default.aspx">Community News</category><category domain="http://weblogs.asp.net/scottgu/archive/tags/Ajax/default.aspx">Ajax</category><category domain="http://weblogs.asp.net/scottgu/archive/tags/jQuery/default.aspx">jQuery</category></item></channel></rss>