<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.infragistics.com/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>/dev/null [tony lombardo]</title><link>http://blogs.infragistics.com/blogs/tony_lombardo/default.aspx</link><description>Anything and everything ASP.NET and more.  Expect to see tips and tricks, opinions on new technology, and fun code samples, along with the occasional rant.</description><dc:language>en</dc:language><generator>CommunityServer 2.1 SP2 (Build: 61129.1)</generator><item><title>NetAdvantage Silverlight Roadmap - it's here!</title><link>http://blogs.infragistics.com/blogs/tony_lombardo/archive/2008/10/08/netadvantage-silverlight-roadmap-it-s-here.aspx</link><pubDate>Wed, 08 Oct 2008 16:12:59 GMT</pubDate><guid isPermaLink="false">7a8b7c76-b7ad-48e0-9694-5b04ca132ed0:16992</guid><dc:creator>Tony Lombardo</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.infragistics.com/blogs/tony_lombardo/comments/16992.aspx</comments><wfw:commentRss>http://blogs.infragistics.com/blogs/tony_lombardo/commentrss.aspx?PostID=16992</wfw:commentRss><wfw:comment>http://blogs.infragistics.com/blogs/tony_lombardo/rsscomments.aspx?PostID=16992</wfw:comment><description>&lt;p&gt;Believe it or not, I'm more excited than anyone since I no longer have to speak in riddles revolving around what we're doing for Silverlight.&amp;nbsp; The &lt;a href="http://www.infragistics.com/dotnet/netadvantage/silverlight.aspx"&gt;NetAdvantage Silverlight Roadmap&lt;/a&gt; is officially public!&amp;nbsp; Here's a quick summary.&lt;/p&gt; &lt;p&gt;The Line of Business controls will be included in NetAdvantage for WebClient and NetAdvantage for .NET.&lt;/p&gt; &lt;p&gt;There will be two sets of Silverlight controls available.&amp;nbsp; &lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;a href="http://www.infragistics.com/hot/silverlight.aspx#InfragisticsandSilverlight"&gt;Data Visualization&lt;/a&gt;&amp;nbsp; &lt;li&gt;&lt;a href="http://www.infragistics.com/dotnet/netadvantage/silverlight.aspx"&gt;Line of Business&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;h4&gt;The Tools&lt;/h4&gt; &lt;p&gt;Silverlight LOB controls will include:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;xamWebGrid  &lt;li&gt;xamWebTree  &lt;li&gt;xamWebChart  &lt;li&gt;xamWebOutlookBar  &lt;li&gt;xamDialogWindow  &lt;li&gt;xamDocumentExporter  &lt;li&gt;xamSpellChecker  &lt;li&gt;xamGroupBox  &lt;li&gt;xamEditors  &lt;li&gt;and Sharepoint WebParts&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;BTW, xam is pronounced "zam" which is a takeaway on xaml (the declarative language used in WPF and Silverlight).&lt;/p&gt; &lt;p&gt;Aside from the individual control listing, the basis of the roadmap is to allow you to build Line of Business supporting applications like you're building today, on the latest Microsoft technologies like Silverlight and WPF.&amp;nbsp; &lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;h4&gt;Timeline&lt;/h4&gt; &lt;table cellspacing="0" cellpadding="5"&gt;  &lt;tr&gt; &lt;td style="font-weight:bold;color:white;"&gt;Milestone&lt;/td&gt; &lt;td style="font-weight:bold;color:white;text-align:right;"&gt;Date&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td&gt;Roadmap Announced&lt;/td&gt; &lt;td style="text-align:right;"&gt;October 2008&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td&gt;First Community Tech Preview (CTP)&lt;/td&gt; &lt;td style="text-align:right;"&gt;End of 2008&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td&gt;Second Community Tech Preview (CTP)&lt;/td&gt; &lt;td style="text-align:right;"&gt;March 2009&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td&gt;2009 Vol. 1 Release&lt;/td&gt; &lt;td style="text-align:right;"&gt;Q2 2009&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt; &lt;p&gt;There are still a couple of cards that haven't been turned over yet, so look for more announcements around PDC (actually we'll be making them AT PDC).&amp;nbsp; Speaking of which, if you're going to PDC this year you have to stop by the Infragistics booth.&amp;nbsp; I can't give too much away, but I think it will certainly be worth the visit - and I'm a bit bummed that I can't make it this year.. &lt;/p&gt;&lt;img src="http://blogs.infragistics.com/aggbug.aspx?PostID=16992" width="1" height="1"&gt;</description></item><item><title>Do you jQuery?</title><link>http://blogs.infragistics.com/blogs/tony_lombardo/archive/2008/10/07/do-you-jquery.aspx</link><pubDate>Tue, 07 Oct 2008 20:48:50 GMT</pubDate><guid isPermaLink="false">7a8b7c76-b7ad-48e0-9694-5b04ca132ed0:16978</guid><dc:creator>Tony Lombardo</dc:creator><slash:comments>3</slash:comments><comments>http://blogs.infragistics.com/blogs/tony_lombardo/comments/16978.aspx</comments><wfw:commentRss>http://blogs.infragistics.com/blogs/tony_lombardo/commentrss.aspx?PostID=16978</wfw:commentRss><wfw:comment>http://blogs.infragistics.com/blogs/tony_lombardo/rsscomments.aspx?PostID=16978</wfw:comment><description>&lt;p&gt;There has been a steadily growing buzz over jQuery, and many development teams have already introduced it as a standard library in their Ajax applications.&amp;nbsp; The buzz just got much much louder, when Microsoft announced that &lt;a href="http://weblogs.asp.net/scottgu/archive/2008/09/28/jquery-and-microsoft.aspx"&gt;jQuery will now be included&lt;/a&gt; and officially supported inside of Visual Studio .NET.&amp;nbsp; &lt;/p&gt; &lt;p&gt;Even though I haven't yet embraced jQuery, it looks like it has huge promise and potential.&amp;nbsp; It's a well crafted light weight Javascript framework that makes most common tasks trivial.&amp;nbsp; It has great support for css selectors, meaning you can find an element based on a css selector instead of hard coding id's into every element.&amp;nbsp; What's even better, you can get references to multiple elements and treat them as a single entity - setting the css class on hundreds of elements in a single line of Javascript.&amp;nbsp; That's something I KNOW I can quickly get used to..&lt;/p&gt; &lt;p&gt;So my next step is to start playing around with this new (to me) framework, though I think I've already decided that I'm a fan.&amp;nbsp; &lt;/p&gt; &lt;p&gt;I'm interested in what you think.&amp;nbsp; Are you already using jQuery?&amp;nbsp; Are you planning on using it?&amp;nbsp; Is the fact that Microsoft is now standing behind this library make it more attractive to you?&amp;nbsp; Leave your feedback in the comments. &lt;/p&gt;&lt;img src="http://blogs.infragistics.com/aggbug.aspx?PostID=16978" width="1" height="1"&gt;</description><category domain="http://blogs.infragistics.com/blogs/tony_lombardo/archive/tags/AJAX/default.aspx">AJAX</category><category domain="http://blogs.infragistics.com/blogs/tony_lombardo/archive/tags/asp.net/default.aspx">asp.net</category></item><item><title>New Products and Packages - What You Should Know, And Why You Care</title><link>http://blogs.infragistics.com/blogs/tony_lombardo/archive/2008/09/23/new-products-and-packages-what-you-should-know-and-why-you-care.aspx</link><pubDate>Tue, 23 Sep 2008 20:34:20 GMT</pubDate><guid isPermaLink="false">7a8b7c76-b7ad-48e0-9694-5b04ca132ed0:16818</guid><dc:creator>Tony Lombardo</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.infragistics.com/blogs/tony_lombardo/comments/16818.aspx</comments><wfw:commentRss>http://blogs.infragistics.com/blogs/tony_lombardo/commentrss.aspx?PostID=16818</wfw:commentRss><wfw:comment>http://blogs.infragistics.com/blogs/tony_lombardo/rsscomments.aspx?PostID=16818</wfw:comment><description>&lt;h4&gt;New Packages&lt;/h4&gt; &lt;p&gt;There's been a few changes to products and packages offered by Infragistics lately, read on for the details.&lt;/p&gt; &lt;p&gt;A picture is worth a thousand words, so here goes.&lt;/p&gt; &lt;p&gt;&lt;a href="http://blogs.infragistics.com/blogs/tony_lombardo/WindowsLiveWriter/NewProductsandPackagesWhatYouShouldKnowA_E8D9/clip_image001_2.jpg"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" height="303" alt="clip_image001" src="http://blogs.infragistics.com/blogs/tony_lombardo/WindowsLiveWriter/NewProductsandPackagesWhatYouShouldKnowA_E8D9/clip_image001_thumb.jpg" width="640" border="0"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Key takeaway: NetAdvantage for .NET includes ASP.NET, Windows Forms, Silverlight and WPF controls.&amp;nbsp; You asked for it, you got it.&amp;nbsp; If you already own NetAdvantage, you're likely &lt;a href="http://www.infragistics.com/dotnet/netadvantage/new.aspx"&gt;entitled to some new (free) stuff&lt;/a&gt; which is detailed on our site.&lt;/p&gt; &lt;h4&gt;&amp;nbsp;&lt;/h4&gt; &lt;h4&gt;New Products&lt;/h4&gt; &lt;p&gt;&lt;img height="109" src="http://www.infragistics.com/uploadedImages/Products/NetAdvantage_ICONS/officeRight.jpg" width="420"&gt;&lt;/p&gt; &lt;p&gt;&lt;img height="109" src="http://www.infragistics.com/uploadedImages/Products/NetAdvantage_ICONS/BizRight.jpg" width="420"&gt;&lt;/p&gt; &lt;p&gt;In addition to the repackaging, we've introduced a completely new product - &lt;a href="http://www.infragistics.com/dotnet/netadvantage/icons.aspx#Overview"&gt;Icons&lt;/a&gt;.&amp;nbsp; There are packages for both Office Basics and Business &amp;amp; Finance which can be purchased separately, or combined for an even better value.&amp;nbsp; For $299, you can buy over 51,000 images to give your application the finishing touch of a professional designer.&amp;nbsp; By the way, if you do the math that comes out to $0.0059 per image.&amp;nbsp; I think you'll agree with me that you can't beat that deal.&amp;nbsp; Images come with PDF and XPS catalogs which can be printed so you can flip through them easily.&amp;nbsp; &lt;/p&gt;&lt;img src="http://blogs.infragistics.com/aggbug.aspx?PostID=16818" width="1" height="1"&gt;</description><category domain="http://blogs.infragistics.com/blogs/tony_lombardo/archive/tags/Announcements/default.aspx">Announcements</category><category domain="http://blogs.infragistics.com/blogs/tony_lombardo/archive/tags/.NET/default.aspx">.NET</category></item><item><title>Debugging Linq To Sql</title><link>http://blogs.infragistics.com/blogs/tony_lombardo/archive/2008/09/18/debugging-linq-to-sql.aspx</link><pubDate>Thu, 18 Sep 2008 16:51:59 GMT</pubDate><guid isPermaLink="false">7a8b7c76-b7ad-48e0-9694-5b04ca132ed0:16749</guid><dc:creator>Tony Lombardo</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.infragistics.com/blogs/tony_lombardo/comments/16749.aspx</comments><wfw:commentRss>http://blogs.infragistics.com/blogs/tony_lombardo/commentrss.aspx?PostID=16749</wfw:commentRss><wfw:comment>http://blogs.infragistics.com/blogs/tony_lombardo/rsscomments.aspx?PostID=16749</wfw:comment><description>&lt;p&gt;I've decided that the LinqDataSource is my favorite datasource to use these days, because it allows me to consume my LinqToSql classes.&amp;nbsp; My fondness of Linq to Sql also leads towards frustration when I try to figure out what's going on behind the scenes.&amp;nbsp;&amp;nbsp; &lt;/p&gt; &lt;p&gt;One method for debugging is to use Sql Profiler to see exactly what the sql server was asked to do.&amp;nbsp; This is a great starting point, because you can see exactly how your application interfaces with your database server.&amp;nbsp; It could be an eye opening experience.&amp;nbsp; In my case, it showed me that there was a select statement being done which asked for all rows in my table (hence the performance problem I was trying to understand)&lt;/p&gt; &lt;p&gt;Here's what a typical profile session will look like:&lt;/p&gt; &lt;p&gt;&lt;a href="http://blogs.infragistics.com/blogs/tony_lombardo/WindowsLiveWriter/DebuggingLinqToSql_B4DE/sqlprofilertrace_2.png"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" height="159" alt="sqlprofilertrace" src="http://blogs.infragistics.com/blogs/tony_lombardo/WindowsLiveWriter/DebuggingLinqToSql_B4DE/sqlprofilertrace_thumb.png" width="244" border="0"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;After staring at the Sql Profiler, I still needed more information.&amp;nbsp; Why was a select being done on my entire database?&amp;nbsp; Where was this coming from?&amp;nbsp; That led me back to my DataContext which was generated from my Linq To Sql designer.&amp;nbsp; The DataContext has a great feature - "Log".&amp;nbsp; It's a property right off of the context which accepts a TextWriter.&amp;nbsp; When you attach a TextWriter, it will output useful information to the stream.&amp;nbsp; In my case, I attached the log to the Debug window.&amp;nbsp; I found some great examples of how to do this (and use other output mechanisms) on &lt;a href="http://damieng.com/blog/2008/07/30/linq-to-sql-log-to-debug-window-file-memory-or-multiple-writers"&gt;DamienGuard's blog&lt;/a&gt;&lt;/p&gt; &lt;p&gt;I modified his example slightly to attach the Log writer in the OnCreated partial method for my datacontext.&amp;nbsp; This again is one of my favorite things about Linq To Sql - everything is a partial class.&amp;nbsp; &lt;/p&gt; &lt;p&gt;The DataContext.Log gives you the exact Sql Query, which is certainly useful, but it still doesn't help me track down where that query originated from.&amp;nbsp; So I turned to my DebugTextWriter one more time, and in the TextWriter.Write implementation, I added a StackTrace.&amp;nbsp; Now I could see the Sql Query followed by the StackTrace which forced that Query.&amp;nbsp; The code needs some tweaking, since the TextWriter.Write command could be used to simply output a /r/n or even a space, and I don't think we need to generate a callstack just for that..&amp;nbsp; but this still gives you more than you had to start with.&amp;nbsp; The code below can be dropped into your project. Just change the Northwind_SimpleDataContext class name to match your DataContext.&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;&lt;font face="conso" color="#000080" size="1"&gt;&lt;strong&gt;public partial class Northwind_SimpleDataContext&lt;br&gt;{ &lt;/strong&gt;&lt;/font&gt; &lt;p&gt;&lt;font face="conso" color="#000080" size="1"&gt;&lt;strong&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; partial void OnCreated()&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.Log = new DebugTextWriter();&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; class DebugTextWriter : System.IO.TextWriter&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public override void Write(char[] buffer, int index, int count)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.Diagnostics.Debug.Write(new String(buffer, index, count));&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; StackTrace trace = new StackTrace(true);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.Diagnostics.Debug.Write(trace.ToString());&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;/strong&gt;&lt;/font&gt; &lt;p&gt;&lt;font face="conso" color="#000080" size="1"&gt;&lt;strong&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public override void Write(string value)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.Diagnostics.Debug.Write(value);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;/strong&gt;&lt;/font&gt; &lt;p&gt;&lt;font face="conso" color="#000080" size="1"&gt;&lt;strong&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public override Encoding Encoding&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; get { return System.Text.Encoding.Default; }&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;/strong&gt;&lt;/font&gt; &lt;p&gt;&lt;font face="conso" color="#000080" size="1"&gt;&lt;strong&gt;}&lt;/strong&gt;&lt;/font&gt; &lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;&amp;nbsp;&lt;a href="http://blogs.infragistics.com/blogs/tony_lombardo/WindowsLiveWriter/DebuggingLinqToSql_B4DE/debugout_2.png"&gt;&lt;img style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px;" height="172" alt="debugout" src="http://blogs.infragistics.com/blogs/tony_lombardo/WindowsLiveWriter/DebuggingLinqToSql_B4DE/debugout_thumb.png" width="244" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;Above - An example of the Debug Output from the DataContext.Log when using the custom DebugTextWriter above.&lt;/p&gt;&lt;img src="http://blogs.infragistics.com/aggbug.aspx?PostID=16749" width="1" height="1"&gt;</description><category domain="http://blogs.infragistics.com/blogs/tony_lombardo/archive/tags/Tips+and+Tricks/default.aspx">Tips and Tricks</category><category domain="http://blogs.infragistics.com/blogs/tony_lombardo/archive/tags/.NET/default.aspx">.NET</category><category domain="http://blogs.infragistics.com/blogs/tony_lombardo/archive/tags/asp.net/default.aspx">asp.net</category></item><item><title>LinqDataSource Woes</title><link>http://blogs.infragistics.com/blogs/tony_lombardo/archive/2008/09/16/linqdatasource-woes.aspx</link><pubDate>Tue, 16 Sep 2008 21:51:48 GMT</pubDate><guid isPermaLink="false">7a8b7c76-b7ad-48e0-9694-5b04ca132ed0:16719</guid><dc:creator>Tony Lombardo</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.infragistics.com/blogs/tony_lombardo/comments/16719.aspx</comments><wfw:commentRss>http://blogs.infragistics.com/blogs/tony_lombardo/commentrss.aspx?PostID=16719</wfw:commentRss><wfw:comment>http://blogs.infragistics.com/blogs/tony_lombardo/rsscomments.aspx?PostID=16719</wfw:comment><description>&lt;p&gt;So here I am, all ready to test out the blazing performance of the new WebDataGrid.&amp;nbsp; I set up my million row table, and bind the grid to it... the page loads blazingly fast.&amp;nbsp; Believe it or not, this has more to do with setting up your table indexes properly than anything else.&amp;nbsp; &lt;/p&gt; &lt;p&gt;Anyway, paging is working perfectly, and I'm flying through the data.&amp;nbsp; Then I derailed the train.. I enabled filtering and figured LinqToSql would translate my filtering efficiently, but that doesn't appear to be the case.&amp;nbsp; I've been digging through SqlProfiler trying to shed some light on the subject.&amp;nbsp; From the looks of it, the LinqDataSource doesn't convert it's DataView's "RowFilter" string into a sql Where clause.&amp;nbsp; Instead, it looks like it wants to pull all data down, and then apply a filter.&amp;nbsp; Either that, or I've been staring at SqlProfiler too long.&amp;nbsp; I think I'm going to have to get some professional help on this one.&amp;nbsp; No, not a shrink.. Brad - the SQL Guru.&amp;nbsp; After all, he built this million row table in the first place.&lt;/p&gt;&lt;img src="http://blogs.infragistics.com/aggbug.aspx?PostID=16719" width="1" height="1"&gt;</description><category domain="http://blogs.infragistics.com/blogs/tony_lombardo/archive/tags/asp.net/default.aspx">asp.net</category><category domain="http://blogs.infragistics.com/blogs/tony_lombardo/archive/tags/Aikido/default.aspx">Aikido</category></item><item><title>Countdown to WebDataGrid</title><link>http://blogs.infragistics.com/blogs/tony_lombardo/archive/2008/09/15/countdown-to-webdatagrid.aspx</link><pubDate>Mon, 15 Sep 2008 15:28:22 GMT</pubDate><guid isPermaLink="false">7a8b7c76-b7ad-48e0-9694-5b04ca132ed0:16706</guid><dc:creator>Tony Lombardo</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.infragistics.com/blogs/tony_lombardo/comments/16706.aspx</comments><wfw:commentRss>http://blogs.infragistics.com/blogs/tony_lombardo/commentrss.aspx?PostID=16706</wfw:commentRss><wfw:comment>http://blogs.infragistics.com/blogs/tony_lombardo/rsscomments.aspx?PostID=16706</wfw:comment><description>&lt;p&gt;The WebDataGrid countdown has begun, as we near another volume release of NetAdvantage for ASP.NET. &lt;/p&gt; &lt;p&gt;If you haven't been following, the WebDataGrid is the WebGrid's successor.&amp;nbsp; It has a brand new architecture, and is built on top of Microsoft's ASP.NET AJAX framework. &lt;/p&gt; &lt;p&gt;The new architecture should be mainly transparent, but if you're the type that likes really tweak and customize things, you'll really appreciate the modular design used for this grid.&lt;/p&gt; &lt;p&gt;Satuday, September 20th, is &lt;a href="http://blogs.msdn.com/cbowen/rss.xml"&gt;New England's Code Camp 10&lt;/a&gt;.&amp;nbsp; If you're going to be in the area, you should stop by.&amp;nbsp; I'm doing a session in the morning where I'll be covering the new WebDataGrid.&amp;nbsp; I'll go over some of the design aspects of it, as well as discuss where it may differ from it's predecessor.&amp;nbsp; &lt;/p&gt; &lt;p&gt;I'm going to be working on my presentation this week, which means I'll be dogfooding the WebDataGrid all week, and you can count on hearing about my experiences.&amp;nbsp; If you're the kind of developer who just has to get a sneak peak, send me an email and I'll see if I can get you a preview build - as long as you promise to give me feedback.&amp;nbsp; Hope to see you in Boston!&lt;/p&gt;&lt;img src="http://blogs.infragistics.com/aggbug.aspx?PostID=16706" width="1" height="1"&gt;</description></item><item><title>VS2008 SP1 - When NOT to install..</title><link>http://blogs.infragistics.com/blogs/tony_lombardo/archive/2008/08/14/vs2008-sp1-when-not-to-install.aspx</link><pubDate>Thu, 14 Aug 2008 21:09:13 GMT</pubDate><guid isPermaLink="false">7a8b7c76-b7ad-48e0-9694-5b04ca132ed0:16318</guid><dc:creator>Tony Lombardo</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.infragistics.com/blogs/tony_lombardo/comments/16318.aspx</comments><wfw:commentRss>http://blogs.infragistics.com/blogs/tony_lombardo/commentrss.aspx?PostID=16318</wfw:commentRss><wfw:comment>http://blogs.infragistics.com/blogs/tony_lombardo/rsscomments.aspx?PostID=16318</wfw:comment><description>&lt;p&gt;So I'm sitting here in southern California making some final preparations for my talk this evening at the &lt;a href="http://southbaynet.org"&gt;South Bay .NET UG&lt;/a&gt;.&amp;nbsp; I ran into a wacky scenario where my event handlers for my silverlight components weren't firing.. So after verifying it wasn't just a silly coding error (which I'm certainly not immune to) I decided to 'clean up' my dev environment.&amp;nbsp; I had installed the IE8 beta the other day, so I started by uninstalling that.&amp;nbsp; I was also running on one of the pre-release Silverlight 2 Beta 2 builds, so I figured this would be a good time to bump up to the actual bits.&amp;nbsp; &lt;/p&gt; &lt;p&gt;I ran the uninstall, and downloaded the new chainer.&amp;nbsp; BTW, 86mb feels like you're downloading the whole world when you're running off of Hotel wifi.&amp;nbsp; So with my 86mb chainer downloaded, I ran the installer.. That's when everything went wrong.&lt;/p&gt; &lt;p&gt;The new Silverlight 2 Beta 2 installer has a prereq for Visual Studio 2008 SP1 (which was JUST released).&amp;nbsp; I hadn't yet installed VS2008 SP1, and was still running one of the final SP1 beta's.&amp;nbsp; So of course, I had to first uninstall the SP1 beta.&amp;nbsp; If it were only that easy.. the &lt;a href="http://download.microsoft.com/download/9/9/b/99bbd5ef-90a3-41fd-9df0-176988522eea/VS2008-PatchRemovalTool-x86.exe"&gt;removal tool&lt;/a&gt; requires that you have the original VS2008 install media handy, which of course I did not.&amp;nbsp; I finally convinced a co-worker to share a cdrom with the bits on it back at the office, and I connected via VPN.&amp;nbsp; &lt;/p&gt; &lt;p&gt;Sounds like a success, right?&amp;nbsp; Wrong.&amp;nbsp; This has got to be the slowest install/uninstall I've ever experienced.&amp;nbsp; I'm sure working off of crummy wifi and through a VPN network share isn't helping..&amp;nbsp; At this point, I'm just hoping I have a functioning Visual Studio for this evening - forget about the last minute tweaks to my code..&lt;/p&gt; &lt;p&gt;The moral of the story is - don't decide to install or uninstall software while on the road, especially when you don't have access to a high speed internet connection.&amp;nbsp; You never know what 'chain' of events you may have just started.&lt;/p&gt;&lt;img src="http://blogs.infragistics.com/aggbug.aspx?PostID=16318" width="1" height="1"&gt;</description><category domain="http://blogs.infragistics.com/blogs/tony_lombardo/archive/tags/rant/default.aspx">rant</category></item><item><title>Multiple Assembly Versions in a single Web Site - How to deal with a CS0433 compiler error</title><link>http://blogs.infragistics.com/blogs/tony_lombardo/archive/2008/07/31/multiple-assembly-versions-in-a-single-web-site-how-to-deal-with-a-cs0433-compiler-error.aspx</link><pubDate>Thu, 31 Jul 2008 16:26:06 GMT</pubDate><guid isPermaLink="false">7a8b7c76-b7ad-48e0-9694-5b04ca132ed0:16124</guid><dc:creator>Tony Lombardo</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.infragistics.com/blogs/tony_lombardo/comments/16124.aspx</comments><wfw:commentRss>http://blogs.infragistics.com/blogs/tony_lombardo/commentrss.aspx?PostID=16124</wfw:commentRss><wfw:comment>http://blogs.infragistics.com/blogs/tony_lombardo/rsscomments.aspx?PostID=16124</wfw:comment><description>&lt;p&gt;Web development is all about breaking up your application into pieces. Multiple pages make up a site.&amp;nbsp; UserControls are used to break up pages into smaller pieces, and custom libraries are often used for either framework value, or as GUI libraries.&amp;nbsp; Any time you start working with these scenarios, assemblies and references are going to start to enter the equation.&amp;nbsp; &lt;/p&gt; &lt;p&gt;In a perfect world, assembly references would be easy, and in many cases they are.&amp;nbsp; But what happens when you need to support more complex scenarios?&amp;nbsp; I happen to live and breathe components, working for a UI tools company, so I run into these questions every day.&amp;nbsp; &lt;/p&gt; &lt;p&gt;Yesterday, I had a customer who needed to get an update for a bugfix, but wanted to limit the exposure (and regression testing) by applying the fix to a single page (or component) rather than the entire site.&amp;nbsp; I happen to think this is a great idea and can dramatically reduce 'risk' when updating software.&amp;nbsp; &lt;/p&gt; &lt;h4&gt;Solution 1: Binding Redirects&lt;/h4&gt; &lt;p&gt;Applying an update for a single assembly is easy to do, except when you have to start worrying about shared references.&amp;nbsp; For instance, the Infragistics tools have a common "Shared" assembly that acts as the framework library for all other assemblies.&amp;nbsp; When you want to update a single assembly (Infragistics2.WebUI.UltraWebGrid.v8.2 for example) you need to also update that assemblies referenced assemblies - specifically the "shared" assembly.&amp;nbsp; But what about the other assemblies?&amp;nbsp; If you replace the "shared" assembly with a new version, the other assemblies will no longer load since they can't find the version they were originally compiled with.&amp;nbsp; This is where binding redirects come into play.&amp;nbsp; &lt;/p&gt; &lt;p&gt;A Binding Redirect is a way to tell the fusion assembly loader that even though an assembly with version a.b.c.d is being requested, load a.b.c.z instead.&amp;nbsp; I've covered this topic before in my &lt;a href="http://blogs.infragistics.com/blogs/tony_lombardo/archive/2006/08/08/291.aspx"&gt;Surgical Hotfixes with Binding Redirects&lt;/a&gt; post.&lt;/p&gt; &lt;p&gt;Binding Redirects are great if you want to update an assembly reference for your entire site, but in many cases this is still too broad of a change.&amp;nbsp; There must be a way to apply an update to a single page - right?&amp;nbsp; Luckily, the answer is yes.. but there are a few requirements.&amp;nbsp; First the solution.&lt;/p&gt; &lt;h4&gt;Solution 2: Page Specific Web.config file&lt;/h4&gt; &lt;p&gt;Web.config files have the great ability to cascade through your site, so you can put a web.config in any folder.&amp;nbsp; The Web.config file is also where you specify assembly references - how convenient!&amp;nbsp; The trick is to specify assembly references specific to a page by creating a web.config for your 'special' page.&amp;nbsp; Which brings us to the requirements.&lt;/p&gt; &lt;p&gt;You must put your 'special' page in its own directory since web.config files are organized at directory levels.&amp;nbsp; You also must use the GAC for your assembly references.&amp;nbsp; This was where I got tripped up.&amp;nbsp; I had my original assemblies in the bin and tried creating a second page with it's own web.config all set up perfectly.&amp;nbsp; The visual studio compiler doesn't like this, as it will automatically load the assemblies in the bin directory and give you the CS0433 error upon compilation.&amp;nbsp; Once I deleted the local bin assemblies everything was happy.&amp;nbsp; &lt;/p&gt; &lt;p&gt;Here's an example of a subdirectory web.config file - &lt;/p&gt; &lt;p&gt;&lt;a href="http://blogs.infragistics.com/blogs/tony_lombardo/WindowsLiveWriter/MultipleAssemblyVersionsinasingleWebSite_AEE8/image_4.png"&gt;&lt;img style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px;" height="75" alt="image" src="http://blogs.infragistics.com/blogs/tony_lombardo/WindowsLiveWriter/MultipleAssemblyVersionsinasingleWebSite_AEE8/image_thumb_1.png" width="244" border="0"&gt;&lt;/a&gt;  &lt;p&gt;And here's what my website looks like&lt;/p&gt; &lt;p&gt;&lt;a href="http://blogs.infragistics.com/blogs/tony_lombardo/WindowsLiveWriter/MultipleAssemblyVersionsinasingleWebSite_AEE8/image_2.png"&gt;&lt;img style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px;" height="154" alt="image" src="http://blogs.infragistics.com/blogs/tony_lombardo/WindowsLiveWriter/MultipleAssemblyVersionsinasingleWebSite_AEE8/image_thumb.png" width="244" border="0"&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.infragistics.com/aggbug.aspx?PostID=16124" width="1" height="1"&gt;</description><category domain="http://blogs.infragistics.com/blogs/tony_lombardo/archive/tags/Tips+and+Tricks/default.aspx">Tips and Tricks</category><category domain="http://blogs.infragistics.com/blogs/tony_lombardo/archive/tags/asp.net/default.aspx">asp.net</category></item><item><title>WebDialogWindow (Part 2 of 3) - Getting acquainted with properties</title><link>http://blogs.infragistics.com/blogs/tony_lombardo/archive/2008/07/30/webdialogwindow-part-2-of-3-getting-acquainted-with-properties.aspx</link><pubDate>Wed, 30 Jul 2008 14:53:15 GMT</pubDate><guid isPermaLink="false">7a8b7c76-b7ad-48e0-9694-5b04ca132ed0:16121</guid><dc:creator>Tony Lombardo</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.infragistics.com/blogs/tony_lombardo/comments/16121.aspx</comments><wfw:commentRss>http://blogs.infragistics.com/blogs/tony_lombardo/commentrss.aspx?PostID=16121</wfw:commentRss><wfw:comment>http://blogs.infragistics.com/blogs/tony_lombardo/rsscomments.aspx?PostID=16121</wfw:comment><description>&lt;p&gt;The WebDialogWindow is a powerful addition to any AJAX developer's toolkit.&amp;nbsp; In the second of a 3 part series, you'll learn about the properties and settings which control the behaviors of the WebDialogWindow.&amp;nbsp; &lt;p&gt;Thanks to &lt;a href="http://weblogs.asp.net/craigshoemaker/"&gt;Craig Shoemaker&lt;/a&gt; for putting this series together!  &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;div id="media"&gt; &lt;object id="csSWF" codebase="http://active.macromedia.com/flash7/cabs/ swflash.cab#version=9,0,28,0" height="498" width="640" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"&gt;&lt;param name="_cx" value="16933"&gt;&lt;param name="_cy" value="13176"&gt;&lt;param name="FlashVars" value=""&gt;&lt;param name="Movie" value="http://download.infragistics.com/users/craigs/webdialogwindow/properties/properties.swf"&gt;&lt;param name="Src" value="http://download.infragistics.com/users/craigs/webdialogwindow/properties/properties.swf"&gt;&lt;param name="WMode" value="Window"&gt;&lt;param name="Play" value="0"&gt;&lt;param name="Loop" value="-1"&gt;&lt;param name="Quality" value="High"&gt;&lt;param name="SAlign" value=""&gt;&lt;param name="Menu" value="-1"&gt;&lt;param name="Base" value=""&gt;&lt;param name="AllowScriptAccess" value="always"&gt;&lt;param name="Scale" value="ShowAll"&gt;&lt;param name="DeviceFont" value="0"&gt;&lt;param name="EmbedMovie" value="0"&gt;&lt;param name="BGColor" value="1A1A1A"&gt;&lt;param name="SWRemote" value=""&gt;&lt;param name="MovieData" value=""&gt;&lt;param name="SeamlessTabbing" value="1"&gt;&lt;param name="Profile" value="0"&gt;&lt;param name="ProfileAddress" value=""&gt;&lt;param name="ProfilePort" value="0"&gt;&lt;param name="AllowNetworking" value="all"&gt;&lt;param name="AllowFullScreen" value="true"&gt;                                                                                                                                   &lt;embed src="http://download.infragistics.com/users/craigs/webdialogwindow/properties/properties.swf" name="csSWF" bgcolor="#1a1a1a" quality="best" allowscriptaccess="always" allowfullscreen="true" scale="showall" flashvars="autostart=false" pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash" height="498" width="640"&gt;             &lt;/object&gt;&lt;/div&gt;&lt;img src="http://blogs.infragistics.com/aggbug.aspx?PostID=16121" width="1" height="1"&gt;</description><category domain="http://blogs.infragistics.com/blogs/tony_lombardo/archive/tags/AJAX/default.aspx">AJAX</category><category domain="http://blogs.infragistics.com/blogs/tony_lombardo/archive/tags/how+to/default.aspx">how to</category><category domain="http://blogs.infragistics.com/blogs/tony_lombardo/archive/tags/Video+Tutorials/default.aspx">Video Tutorials</category></item><item><title>Script Combining - What's the big deal?</title><link>http://blogs.infragistics.com/blogs/tony_lombardo/archive/2008/07/28/script-combining-what-s-the-big-deal.aspx</link><pubDate>Mon, 28 Jul 2008 19:40:03 GMT</pubDate><guid isPermaLink="false">7a8b7c76-b7ad-48e0-9694-5b04ca132ed0:16086</guid><dc:creator>Tony Lombardo</dc:creator><slash:comments>7</slash:comments><comments>http://blogs.infragistics.com/blogs/tony_lombardo/comments/16086.aspx</comments><wfw:commentRss>http://blogs.infragistics.com/blogs/tony_lombardo/commentrss.aspx?PostID=16086</wfw:commentRss><wfw:comment>http://blogs.infragistics.com/blogs/tony_lombardo/rsscomments.aspx?PostID=16086</wfw:comment><description>&lt;p&gt;Microsoft is about to ship Visual Studio 2008 SP1, and .NET Framework 3.5 SP1.&amp;nbsp; Now service patches aren't always very exciting, but these are because they contain some great new features.&amp;nbsp; You've probably already heard the buzz around AJAX History support, and Dynamic Data.&amp;nbsp; Script Combining is also part of SP1, and it's something that you should certainly be interested in.&lt;/p&gt; &lt;p&gt;So why is script combining is important?&amp;nbsp; ..it's all about network latency.&amp;nbsp; Conventional thinking was to break apart script files into small chunks so that the browser only needs to download the minimal set required.&amp;nbsp; The idea was great, and it could even have a positive impact on your application, until the laws of the internet start to interfere.&amp;nbsp; The problem is that each script file must initiate a connection to the server.&amp;nbsp; Connections have some degree of overhead involved from the aspect of the server, so splitting a file in 2 and serving it up over 2 requests instead of one, will take slightly longer.&amp;nbsp; But that's nothing compared to the effects of network latency.&lt;/p&gt; &lt;p&gt;Latency, is the minimum time it takes for a packet to travel from one location to the next.&amp;nbsp; We're all familiar with the idea of latency, as it's clearly evident when you're speaking on the phone to someone across the world.&amp;nbsp; Think of the delay before they hear what you said, and vice-versa.&amp;nbsp; The same laws of physics apply to HTTP connections.&amp;nbsp; For HTTP, the latency is assessed per connection.&amp;nbsp; So for every connection your site makes back to the server during a page load (or partial AJAX load), your load time increases by a given number.&amp;nbsp;&amp;nbsp; If we go back to our phone conversation analogy, there's no noticeable delay while you're talking, but think about what happens each time you stop talking and wait for a response from the other side.&amp;nbsp; Those delays are all additive, just like in our HTTP request/response pairs.&amp;nbsp; &lt;/p&gt; &lt;p&gt;To put this to some hard numbers, imagine your site has 30 'objects' on the page.&amp;nbsp; An object is something that requires making a connection to the server - this could be a javascript file, an Image, a flash video, or even a stylesheet.&amp;nbsp; Now let's imagine some unfortunate soul on the other side of the world is viewing your site, or running your web application.&amp;nbsp; If their average latency is 300ms, you're talking about a minimum page load time of 4.5 seconds based on the browsers ability to have 2 simultaneous connections (300ms/roundtrip * 9 connections /2 connections per roundtrip) = 4.5 seconds&lt;/p&gt; &lt;p&gt;If you want to simulate this in an ASP.NET application, add a HTTPModule to your application and insert a System.Threading.Thread.Sleep(300) into the BeginRequest event.&amp;nbsp; Now for each request made to your application, there will be a 300ms delay representing the latency.&lt;/p&gt; &lt;h4&gt;Caching Effect on Latency&lt;/h4&gt; &lt;p&gt;So what about the effects of browser caching?&amp;nbsp; Javascript files along with CSS and Images are all cached resources for a browser.&amp;nbsp; As long as these items are in the browse's cache, the client does not need to initiate a request (http connection) with the server, which means no latency penalty is incurred.&amp;nbsp; Tip: When setting cache headers, remember that using a conditional request (If-Modified-Since header) will still require an HTTP connection.&amp;nbsp; Stick with Expires or Cache-Control headers, which will alleviate the need for any HTTP connection once the item has been added to the cache.&amp;nbsp; Learn more about caching from &lt;a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec13.html"&gt;w3.org&lt;/a&gt;. You can set the cache characteristics of specific filetypes through your webserver, or by adding response headers dynamically.&amp;nbsp; &lt;/p&gt; &lt;p&gt;A recent study published from &lt;a href="http://yuiblog.com/blog/2007/01/04/performance-research-part-2/"&gt;yahoo&lt;/a&gt; though, shows an astonishing 20% of page views are done with an empty cache.&amp;nbsp; While that number seems high, it certainly points out that empty cache visits are not edge case, and should be given some attention.&amp;nbsp; Besides, we all know how important first impressions are, so even if your application only loads slow the first time a user visits, that may also be the last time.&lt;/p&gt; &lt;h4&gt;Taking Action&lt;/h4&gt; &lt;p&gt;It should be pretty clear now that latency has a significant impact on your web site/application performance.&amp;nbsp; And the to make matter worse, it's not something that you're likely to notice during testing since your latency will be minimal.&amp;nbsp; That's why defensive programming is a priority here.&amp;nbsp; And it's not that difficult either..&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Step 1&lt;/strong&gt; - Analyze.&amp;nbsp; Download an HTTP monitor like Fiddler (&lt;a title="http://www.fiddlertool.com/fiddler/version.asp" href="http://www.fiddlertool.com/fiddler/version.asp"&gt;http://www.fiddlertool.com/fiddler/version.asp&lt;/a&gt;)&amp;nbsp; Use the tool to examine how many connections are made during an empty and full cache request.&amp;nbsp; &lt;/p&gt; &lt;p&gt;&lt;strong&gt;Step 2&lt;/strong&gt; - Minimize Connections.&amp;nbsp; Minimize the total number of HTTP requests by combining separate script or css files into a single file.&amp;nbsp; There are utilities out there to combine CSS files and even shorten class names.&amp;nbsp; If you're using ASP.NET 3.5 SP1 you can combine Javascript resources by using the ScriptManager's CompositeScript element.&amp;nbsp; Simply add each script element as part of a "CompositeScript" and the ScriptManager will do the combining for you.&amp;nbsp; This is especially useful when you're using 3rd party tools which may contain embedded resources, and there's no actual script file to work with.&amp;nbsp; If for instance you're using NetAdvantage for ASP.NET and have made use of the WebGrid, you can combine the multiple script files into a single through the following CompositeScript block:&lt;/p&gt; &lt;p&gt;&amp;lt;asp:ScriptManager runat="server" ID="sm1"&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;CompositeScript&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Scripts&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;asp:ScriptReference Name="MicrosoftAjax.js" /&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;asp:ScriptReference Name="MicrosoftAjaxWebForms.js" /&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;asp:ScriptReference Name="Infragistics.WebUI.Shared.JS.ig_shared.js" Assembly="Infragistics35.WebUI.Shared.v8.3, Version=8.3.20083.1, Culture=neutral, PublicKeyToken=7dd5c3163f2cd0cb" /&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;asp:ScriptReference Name="Infragistics.WebUI.UltraWebGrid.js.ig_WebGrid_dom.js"&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Assembly="Infragistics35.WebUI.UltraWebGrid.v8.3, Version=8.3.20083.1, Culture=neutral, PublicKeyToken=7dd5c3163f2cd0cb" /&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;asp:ScriptReference Name="Infragistics.WebUI.UltraWebGrid.js.ig_WebGrid_cb.js" Assembly="Infragistics35.WebUI.UltraWebGrid.v8.3, Version=8.3.20083.1, Culture=neutral, PublicKeyToken=7dd5c3163f2cd0cb" /&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;asp:ScriptReference Name="Infragistics.WebUI.UltraWebGrid.js.ig_WebGrid_an.js" Assembly="Infragistics35.WebUI.UltraWebGrid.v8.3, Version=8.3.20083.1, Culture=neutral, PublicKeyToken=7dd5c3163f2cd0cb" /&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;asp:ScriptReference Name="Infragistics.WebUI.UltraWebGrid.js.ig_WebGrid_kb.js" Assembly="Infragistics35.WebUI.UltraWebGrid.v8.3, Version=8.3.20083.1, Culture=neutral, PublicKeyToken=7dd5c3163f2cd0cb" /&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;asp:ScriptReference Name="Infragistics.WebUI.UltraWebGrid.js.ig_WebGrid_xml.js"&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Assembly="Infragistics35.WebUI.UltraWebGrid.v8.3, Version=8.3.20083.1, Culture=neutral, PublicKeyToken=7dd5c3163f2cd0cb" /&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;asp:ScriptReference Name="Infragistics.WebUI.UltraWebGrid.js.ig_WebGrid.js" Assembly="Infragistics35.WebUI.UltraWebGrid.v8.3, Version=8.3.20083.1, Culture=neutral, PublicKeyToken=7dd5c3163f2cd0cb" /&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/Scripts&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/CompositeScript&amp;gt;&lt;br&gt;&amp;lt;/asp:ScriptManager&amp;gt;  &lt;p&gt;The best part about this type of performance tuning is that you can figure out the exact performance gains you will achieve before you begin making any changes.&amp;nbsp; Even better, by reducing the number of requests for each user, you're reducing the load on your webserver as well.&amp;nbsp; If you run Fiddler again at this point, you will see that in the place of these 9 separate javascript files, is a single script file with whitespace removed.&amp;nbsp; In our example above with a 300ms latency, you've just shaved almost 2 seconds off of your page load time.  &lt;p&gt;As one final note, if you're using NetAdvantage, be sure to get the latest hotfix once SP1 has been released (RTM) in order to take advantage of Script Combining.&lt;/p&gt;&lt;img src="http://blogs.infragistics.com/aggbug.aspx?PostID=16086" width="1" height="1"&gt;</description><category domain="http://blogs.infragistics.com/blogs/tony_lombardo/archive/tags/AJAX/default.aspx">AJAX</category><category domain="http://blogs.infragistics.com/blogs/tony_lombardo/archive/tags/Tips+and+Tricks/default.aspx">Tips and Tricks</category><category domain="http://blogs.infragistics.com/blogs/tony_lombardo/archive/tags/asp.net/default.aspx">asp.net</category></item><item><title>Infragistics Sponsors Silverlight Control Builder Contest '08</title><link>http://blogs.infragistics.com/blogs/tony_lombardo/archive/2008/07/15/infragistics-sponsors-silverlight-control-builder-contest-08.aspx</link><pubDate>Tue, 15 Jul 2008 13:59:40 GMT</pubDate><guid isPermaLink="false">7a8b7c76-b7ad-48e0-9694-5b04ca132ed0:15871</guid><dc:creator>Tony Lombardo</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.infragistics.com/blogs/tony_lombardo/comments/15871.aspx</comments><wfw:commentRss>http://blogs.infragistics.com/blogs/tony_lombardo/commentrss.aspx?PostID=15871</wfw:commentRss><wfw:comment>http://blogs.infragistics.com/blogs/tony_lombardo/rsscomments.aspx?PostID=15871</wfw:comment><description>&lt;h4&gt;Build A Cool Silverlight Control, Win Free Stuff!&lt;/h4&gt; &lt;p align="justify"&gt;&lt;a href="http://gosilverlight.org/Rules.aspx"&gt;&lt;img style="border-right:0px;border-top:0px;margin:5px 5px 5px 15px;border-left:0px;border-bottom:0px;" height="116" alt="stacked_small_slbc_08" src="http://blogs.infragistics.com/blogs/tony_lombardo/WindowsLiveWriter/InfragisticsSponsorsSilverlightControlBu_8C53/stacked_small_slbc_08_3.png" width="260" align="right" border="0"&gt;&lt;/a&gt;There's a really cool contest going on right now, promoting both Silverlight and open source.&amp;nbsp; If you check out &lt;a href="http://gosilverlight.org/Default.aspx" target="_blank"&gt;Silverlight Control Builder Contest '08&lt;/a&gt; over at &lt;a href="http://gosilverlight.org" target="_blank"&gt;gosilverlight.org&lt;/a&gt;, you can read up on the details.&amp;nbsp; To state it simply, build the coolest Silverlight control, and win some great stuff including NetAdvantage for .NET (ASP.NET and Windows Forms) + NetAdvantage for WPF.&amp;nbsp; Additionally contest winners are entitled to NetAdvantage for Silverlight once it ships.&amp;nbsp; All in all, there are thousands of dollars in prizes available, all to reward you for building cool stuff and sharing it with others.&amp;nbsp;&amp;nbsp; &lt;/p&gt; &lt;p&gt;So check out the contest details, but even more importantly the &lt;a href="http://gosilverlight.org/Prizes.aspx" target="_blank"&gt;prizes&lt;/a&gt;.&amp;nbsp; &lt;/p&gt; &lt;p&gt;And if building controls happens to turn into a full time love affair for you, shoot me an email.&amp;nbsp; I just may be able to hook you up with your dream job...&lt;/p&gt;&lt;img src="http://blogs.infragistics.com/aggbug.aspx?PostID=15871" width="1" height="1"&gt;</description></item><item><title>Introduction to WebDialogWindow - Hello World! Part 1 of 3</title><link>http://blogs.infragistics.com/blogs/tony_lombardo/archive/2008/06/27/introduction-to-webdialogwindow-hello-world-part-1-of-3.aspx</link><pubDate>Fri, 27 Jun 2008 15:55:00 GMT</pubDate><guid isPermaLink="false">7a8b7c76-b7ad-48e0-9694-5b04ca132ed0:15626</guid><dc:creator>Tony Lombardo</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.infragistics.com/blogs/tony_lombardo/comments/15626.aspx</comments><wfw:commentRss>http://blogs.infragistics.com/blogs/tony_lombardo/commentrss.aspx?PostID=15626</wfw:commentRss><wfw:comment>http://blogs.infragistics.com/blogs/tony_lombardo/rsscomments.aspx?PostID=15626</wfw:comment><description>
&lt;p&gt;The WebDialogWindow is a powerful addition to any AJAX developer's toolkit.&amp;nbsp; In this first of a 3 part series, you'll see how to accomplish the equivalent of a "Hello World" application using the WebDialogWindow.&amp;nbsp; Thanks to &lt;a href="http://weblogs.asp.net/craigshoemaker/" target="_blank"&gt;Craig Shoemaker&lt;/a&gt; for putting this series together!&lt;/p&gt;
&lt;div id="media"&gt;
&lt;object id="csSWF" codebase="http://active.macromedia.com/flash7/cabs/ swflash.cab#version=9,0,28,0" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" height="498" width="640"&gt;
&lt;param name="_cx" value="16933"&gt;
&lt;param name="_cy" value="13176"&gt;
&lt;param name="FlashVars" value=""&gt;
&lt;param name="Movie" value="http://download.infragistics.com/users/craigs/webdialogwindow/helloworld/HelloWorld.swf"&gt;
&lt;param name="Src" value="http://download.infragistics.com/users/craigs/webdialogwindow/helloworld/HelloWorld.swf"&gt;
&lt;param name="WMode" value="Window"&gt;
&lt;param name="Play" value="-1"&gt;
&lt;param name="Loop" value="-1"&gt;
&lt;param name="Quality" value="High"&gt;
&lt;param name="SAlign" value=""&gt;
&lt;param name="Menu" value="-1"&gt;
&lt;param name="Base" value=""&gt;
&lt;param name="AllowScriptAccess" value="always"&gt;
&lt;param name="Scale" value="ShowAll"&gt;
&lt;param name="DeviceFont" value="0"&gt;
&lt;param name="EmbedMovie" value="0"&gt;
&lt;param name="BGColor" value="1A1A1A"&gt;
&lt;param name="SWRemote" value=""&gt;
&lt;param name="MovieData" value=""&gt;
&lt;param name="SeamlessTabbing" value="1"&gt;
&lt;param name="Profile" value="0"&gt;
&lt;param name="ProfileAddress" value=""&gt;
&lt;param name="ProfilePort" value="0"&gt;
&lt;param name="AllowNetworking" value="all"&gt;
&lt;param name="AllowFullScreen" value="true"&gt;
                                                                                
                                
                
&lt;embed src="http://download.infragistics.com/users/craigs/webdialogwindow/helloworld/HelloWorld.swf" name="csSWF" bgcolor="#1a1a1a" quality="best" allowscriptaccess="always" allowfullscreen="true" scale="showall" flashvars="autostart=false" pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash" height="498" width="640"&gt;
            &lt;/object&gt;
&lt;/div&gt;&lt;img src="http://blogs.infragistics.com/aggbug.aspx?PostID=15626" width="1" height="1"&gt;</description><category domain="http://blogs.infragistics.com/blogs/tony_lombardo/archive/tags/Video+Tutorials/default.aspx">Video Tutorials</category></item><item><title>Infragistics NetAdvantage 2008 Volume 2 is here!</title><link>http://blogs.infragistics.com/blogs/tony_lombardo/archive/2008/06/24/infragistics-netadvantage-2008-volume-2-is-here.aspx</link><pubDate>Tue, 24 Jun 2008 15:35:20 GMT</pubDate><guid isPermaLink="false">7a8b7c76-b7ad-48e0-9694-5b04ca132ed0:15575</guid><dc:creator>Tony Lombardo</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.infragistics.com/blogs/tony_lombardo/comments/15575.aspx</comments><wfw:commentRss>http://blogs.infragistics.com/blogs/tony_lombardo/commentrss.aspx?PostID=15575</wfw:commentRss><wfw:comment>http://blogs.infragistics.com/blogs/tony_lombardo/rsscomments.aspx?PostID=15575</wfw:comment><description>&lt;p&gt;I know, I'm a little late on this announcement - but this has been one crazy summer!&amp;nbsp; Ok, we've officially only been in summer for less that a week, but considering the temp was 98 degrees when I got back from TechEd a couple of weeks ago, I say summer has been with us for a while.&amp;nbsp; &lt;/p&gt; &lt;p&gt;Anyway, back to the release.. After another 4 month cycle, there's some really great stuff that has been added to &lt;a href="http://www.infragistics.com/downloads/default.aspx" target="_blank"&gt;NetAdvantage for .NET&lt;/a&gt;.&amp;nbsp; Here's a quick rundown of the new features.&amp;nbsp; &lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;h3&gt;Windows Forms&lt;/h3&gt; &lt;h4&gt;WinValidator&lt;/h4&gt; &lt;p&gt;This extender control can be used to perform validations on input fields in your app.&amp;nbsp; Classically seen in ASP.NET applications, validators make it quick and easy to accomplish certain scenarios while improving the overall user experience by providing real-time feedback.&amp;nbsp; &lt;/p&gt; &lt;p&gt;&lt;a href="http://blogs.infragistics.com/blogs/tony_lombardo/WindowsLiveWriter/InfragisticsNetAdvantage2008Volume2isher_A29E/image_2.png"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" height="177" alt="image" src="http://blogs.infragistics.com/blogs/tony_lombardo/WindowsLiveWriter/InfragisticsNetAdvantage2008Volume2isher_A29E/image_thumb.png" width="244" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;In the example above (included in the &lt;a href="http://www.infragistics.com/downloads/DownloadLinkGenerator.aspx?DownloadId=00000000-0000-0000-0000-000000001309" target="_blank"&gt;samples SDK&lt;/a&gt;) I've demonstrated using a balloon tip style message to show that this was a required field.&amp;nbsp; &lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;h4&gt;Row Edit Template for WinGrid&lt;/h4&gt; &lt;p&gt;Editing tabular data doesn't always have to be reminiscent of your &lt;em&gt;favorite&lt;/em&gt; spreadsheet application.&amp;nbsp;&amp;nbsp; You can use the Row Edit Template to modify the editing experience of a grid row.&amp;nbsp; Because this is a template, you have total control over appearance and functionality.&amp;nbsp; The edit template can be displayed directly beneath a row (as shown in the image below), or it can be 'detached' and positioned exactly where you'd like.&amp;nbsp; The net effect... happy users.&lt;/p&gt; &lt;p&gt;&lt;a href="http://blogs.infragistics.com/blogs/tony_lombardo/WindowsLiveWriter/InfragisticsNetAdvantage2008Volume2isher_A29E/image_4.png"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" height="172" alt="image" src="http://blogs.infragistics.com/blogs/tony_lombardo/WindowsLiveWriter/InfragisticsNetAdvantage2008Volume2isher_A29E/image_thumb_1.png" width="244" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;h4&gt;Suggest mode Typeahead&lt;/h4&gt; &lt;p&gt;Typeahead has evolved through the years..&amp;nbsp; I'm sure you can remember the days when a dropdown first allowed you to type in a letter and scrolled through the list automatically for you.&amp;nbsp; Next came multi-character typeahead, where words would actually be completed for you.&amp;nbsp; So how do you make that better?&amp;nbsp; Easily - live filter the results based on the characters being typed in.&amp;nbsp; Using the new Suggest AutoComplete mode, you can provide your users with a much improved interface for picking from a list of values.&amp;nbsp; This behavior is commonly seen today with search engines, where they will begin to show you search suggestions as you type.&amp;nbsp; &lt;/p&gt; &lt;p&gt;&lt;a href="http://blogs.infragistics.com/blogs/tony_lombardo/WindowsLiveWriter/InfragisticsNetAdvantage2008Volume2isher_A29E/image_6.png"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" height="78" alt="image" src="http://blogs.infragistics.com/blogs/tony_lombardo/WindowsLiveWriter/InfragisticsNetAdvantage2008Volume2isher_A29E/image_thumb_2.png" width="244" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;In the example above, typing "A" into the combobox the user is prompted with the 3 choices displayed in the dropdown.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;h4&gt;Visual Studio 2008 Docking Indicators&lt;/h4&gt; &lt;p&gt;For those of you who have moved up to VS2008 (and I'd recommend that move to anyone!), you've likely noticed that Microsoft updated the docking indicators once more.&amp;nbsp; But fear not, we've added the 2008 style to our DockManager as seen below.&lt;/p&gt; &lt;p&gt;&lt;a href="http://blogs.infragistics.com/blogs/tony_lombardo/WindowsLiveWriter/InfragisticsNetAdvantage2008Volume2isher_A29E/image_8.png"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" height="160" alt="image" src="http://blogs.infragistics.com/blogs/tony_lombardo/WindowsLiveWriter/InfragisticsNetAdvantage2008Volume2isher_A29E/image_thumb_3.png" width="244" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;h3&gt;ASP.NET&lt;/h3&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;h4&gt;TreeMap &lt;/h4&gt; &lt;p&gt;Ever need to show hierarchical data in a visual way?&amp;nbsp; That's the sole purpose of the TreeMap.&amp;nbsp; If you're not familiar with TreeMap, you can get a great explanation and some common examples from &lt;a href="http://en.wikipedia.org/wiki/Treemap" target="_blank"&gt;Wikipedia&lt;/a&gt;.&amp;nbsp; An example of a TreeMap is shown below.&amp;nbsp; BTW, this new visualization type has been added to the UltraChart (win and web).&lt;/p&gt; &lt;p&gt;&lt;a href="http://blogs.infragistics.com/blogs/tony_lombardo/WindowsLiveWriter/InfragisticsNetAdvantage2008Volume2isher_A29E/image_10.png"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" height="107" alt="image" src="http://blogs.infragistics.com/blogs/tony_lombardo/WindowsLiveWriter/InfragisticsNetAdvantage2008Volume2isher_A29E/image_thumb_4.png" width="244" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;h4&gt;WebSlider&lt;/h4&gt; &lt;p&gt;I personally, am tired of textboxes.&amp;nbsp; It seems that every time an application wants me to enter data, I have to use a plain old standard textbox.&amp;nbsp; Enter the WebSlider.&amp;nbsp; You can use the WebSlider to enter a single value, or a 2 value range.&amp;nbsp; And the user never has to type in a single character.&amp;nbsp; The 'data entry' is done entirely through the needle movment, which just feels better.&amp;nbsp; This is perfect for touch screen devices, where pointing and clicking is much more natural than typing.&lt;/p&gt; &lt;p&gt;&lt;a href="http://blogs.infragistics.com/blogs/tony_lombardo/WindowsLiveWriter/InfragisticsNetAdvantage2008Volume2isher_A29E/image_12.png"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" height="104" alt="image" src="http://blogs.infragistics.com/blogs/tony_lombardo/WindowsLiveWriter/InfragisticsNetAdvantage2008Volume2isher_A29E/image_thumb_5.png" width="244" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;The example above, taken from the new &lt;a href="http://samples.infragistics.com/2008.2/webshowcase/infrarealty/default.aspx" target="_blank"&gt;InfraRealty showcase sample&lt;/a&gt; uses the WebSlider to set a min/max value as a range for search criteria.&amp;nbsp; Personally, after seeing how natural this implementation felt, I wish that all of the RealEstate sites out there would update their UI's!&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;h4&gt;WebHierarchicalDataSource&lt;/h4&gt; &lt;p&gt;At the risk of sounding like a car salesman, I'm going to give you my honest opinion on this control - it's the bomb.&amp;nbsp; Not only can you set up hierarchical relationships at design-time, it does the CRUD for you as well!&amp;nbsp; No more worrying about how to update your hierarchical data when bound to the webgrid, just use the WebHierarchicalDataSource (WDHS from here on).&amp;nbsp; How about self related hierarchies?&amp;nbsp; This is a pain point for some of you I know, as you've been asking for this type of support for the grid for as long as I can remember.&amp;nbsp; The WHDS is here to relieve your pain.&amp;nbsp; You can set up your self related hierarchy in the WHDS, and then bind it to the WebGrid.&amp;nbsp; The WHDS is built on top of Microsof'ts datasource control framework - so the WHDS can be used to bind to anything that can consume hierarchical data (ie. trees and menus).&amp;nbsp; &lt;/p&gt; &lt;p&gt;&lt;a href="http://blogs.infragistics.com/blogs/tony_lombardo/WindowsLiveWriter/InfragisticsNetAdvantage2008Volume2isher_A29E/image_14.png"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" height="168" alt="image" src="http://blogs.infragistics.com/blogs/tony_lombardo/WindowsLiveWriter/InfragisticsNetAdvantage2008Volume2isher_A29E/image_thumb_6.png" width="244" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;Above, the WHDS designer is being used to create a 2 level hierarchy, taking info from two separate DataSources.&amp;nbsp; Note that you can take data for any level, from any datasource.&amp;nbsp; So if you wanted to map your LINQDataSource data to parent data coming from your SQLDataSource - it's a simple task.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;You can download NetAdvantage for .NET 2008 Volume 2 (in various packages) from the &lt;a href="http://www.infragistics.com/downloads/default.aspx" target="_blank"&gt;download page&lt;/a&gt;, and begin using these new features today.&amp;nbsp; &lt;/p&gt;&lt;img src="http://blogs.infragistics.com/aggbug.aspx?PostID=15575" width="1" height="1"&gt;</description><category domain="http://blogs.infragistics.com/blogs/tony_lombardo/archive/tags/Announcements/default.aspx">Announcements</category><category domain="http://blogs.infragistics.com/blogs/tony_lombardo/archive/tags/.NET/default.aspx">.NET</category></item><item><title>Quick Tip - Migrating TagPrefixes to Web.config</title><link>http://blogs.infragistics.com/blogs/tony_lombardo/archive/2008/06/23/quick-tip-migrating-tagprefixes-to-web-config.aspx</link><pubDate>Mon, 23 Jun 2008 20:30:19 GMT</pubDate><guid isPermaLink="false">7a8b7c76-b7ad-48e0-9694-5b04ca132ed0:15563</guid><dc:creator>Tony Lombardo</dc:creator><slash:comments>6</slash:comments><comments>http://blogs.infragistics.com/blogs/tony_lombardo/comments/15563.aspx</comments><wfw:commentRss>http://blogs.infragistics.com/blogs/tony_lombardo/commentrss.aspx?PostID=15563</wfw:commentRss><wfw:comment>http://blogs.infragistics.com/blogs/tony_lombardo/rsscomments.aspx?PostID=15563</wfw:comment><description>&lt;p&gt;I've written about moving the &amp;lt;%@ Register TagPrefix ... %&amp;gt; directives out of your ASPX pages, and into your web.config.&amp;nbsp; But one thing I never talked about was - how to do that step.&amp;nbsp; I always did it manually, but about a year ago, I remember talking with one of the developers on the Project Upgrade Utility.. Well, that discussion to my surprise spawned off a lovely feature..&amp;nbsp; So here's the simple 2 step process&lt;/p&gt; &lt;p&gt;1) Launch the Infragistics Project Upgrade utility&lt;/p&gt; &lt;p&gt;&lt;a href="http://blogs.infragistics.com/blogs/tony_lombardo/WindowsLiveWriter/QuickTipMigratingTagPrefixestoWeb.config_E815/image_2.png"&gt;&lt;img style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px;" height="244" alt="image" src="http://blogs.infragistics.com/blogs/tony_lombardo/WindowsLiveWriter/QuickTipMigratingTagPrefixestoWeb.config_E815/image_thumb.png" width="196" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;2) Open the options dialog by click on the File menu, and selecting the Settings menu item.&amp;nbsp; In the options dialog, check off "Add register tags to web.config" (optionally, choose "Add&amp;nbsp; all assemblies to web.config" which will add assembly references as well).&lt;/p&gt; &lt;p&gt;&lt;a href="http://blogs.infragistics.com/blogs/tony_lombardo/WindowsLiveWriter/QuickTipMigratingTagPrefixestoWeb.config_E815/image_4.png"&gt;&lt;img style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px;" height="92" alt="image" src="http://blogs.infragistics.com/blogs/tony_lombardo/WindowsLiveWriter/QuickTipMigratingTagPrefixestoWeb.config_E815/image_thumb_1.png" width="244" border="0"&gt;&lt;/a&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;After saving your settings, the next time you run the Infragistics Project Upgrade utility, it will remove all Infragistics &amp;lt;%@ Register .. %&amp;gt; directives from your ASPX pages, and replace them with the appropriate TagPrefix nodes in your web.config.&amp;nbsp; Using the settings above, the upgrade utility will also add all Infragistics assembly references to your web.config.&amp;nbsp; &lt;/p&gt;&lt;img src="http://blogs.infragistics.com/aggbug.aspx?PostID=15563" width="1" height="1"&gt;</description><category domain="http://blogs.infragistics.com/blogs/tony_lombardo/archive/tags/Tips+and+Tricks/default.aspx">Tips and Tricks</category><category domain="http://blogs.infragistics.com/blogs/tony_lombardo/archive/tags/asp.net/default.aspx">asp.net</category></item><item><title>A sad day for my laptop bag</title><link>http://blogs.infragistics.com/blogs/tony_lombardo/archive/2008/06/19/a-sad-day-for-my-laptop-bag.aspx</link><pubDate>Thu, 19 Jun 2008 15:40:13 GMT</pubDate><guid isPermaLink="false">7a8b7c76-b7ad-48e0-9694-5b04ca132ed0:15520</guid><dc:creator>Tony Lombardo</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.infragistics.com/blogs/tony_lombardo/comments/15520.aspx</comments><wfw:commentRss>http://blogs.infragistics.com/blogs/tony_lombardo/commentrss.aspx?PostID=15520</wfw:commentRss><wfw:comment>http://blogs.infragistics.com/blogs/tony_lombardo/rsscomments.aspx?PostID=15520</wfw:comment><description>&lt;a href="http://blogs.infragistics.com/blogs/tony_lombardo/WindowsLiveWriter/Asaddayformylaptopbag_A3F8/image_2.png"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" height="155" alt="image" src="http://blogs.infragistics.com/blogs/tony_lombardo/WindowsLiveWriter/Asaddayformylaptopbag_A3F8/image_thumb.png" width="166" align="right" border="0"&gt;&lt;/a&gt;  &lt;p&gt;Well, it finally happened.. my PDC 2005 laptop bag started to tear apart at the seams.&amp;nbsp; It took me about a week to finally choose its replacement.&amp;nbsp; I had was looking for three things.&amp;nbsp; It had to look good for one.&amp;nbsp; For the amount of time I carry my laptop around with me, it's almost like a fashion accessory.&amp;nbsp; My second requirement was that it was small.&amp;nbsp; With the amount of traveling I do, the last thing I want is a big clunky bag.&amp;nbsp; My final requirement was that it looked professional enough for me to comfortably take it into business meetings without being embarrassed.&amp;nbsp; I finally decided on the Case Logic bag.&lt;/p&gt; &lt;p&gt;When the bag arrived my first impression was that it was bigger than I thought it would be.&amp;nbsp; But the canvas fabric was an improvement over my last bag.&amp;nbsp; The bag itself doesn't have much structure, so with out any contents in it, it shrinks down nicely.&amp;nbsp; When it came time to move the contents of my old bag to the new one, I was happy to see that there was plenty of room.&amp;nbsp; My only complaint is that there's no good single pocket organizer like there was in my PDC bag.&amp;nbsp; There are a few different pockets, but they're just large pockets with no separators/organizers in them.&amp;nbsp; I was still able to organize my things to some degree, so it wasn't a total loss.&amp;nbsp; The strap feels a lot more sturdy than the PDC 2005 bag did.&amp;nbsp; Its a wider strap, so it doesn't have the tendency to cut into your shoulder.&amp;nbsp; &lt;/p&gt; &lt;p&gt;The bag is a little more faded than it looks in the picture, and the graphics aren't as crisp.&amp;nbsp; I'm glad the graphics aren't as crisp, because I was worried they were a bit too 'busy'.&amp;nbsp; I tend dislike the whole idea of "street art" on mainstream items anyway.&amp;nbsp; It's like putting flame stickers on your car's hood.&amp;nbsp; If you got a good flame job from a quality paint shop, it just feels different than the stick on one sold at the local auto parts store.&amp;nbsp; Anyway, back to the laptop bag.. All in all I give it a 7 out of 10. It's close to what I wanted, but not exactly.&amp;nbsp; But for $30, I can't complain at all.&lt;/p&gt;&lt;img src="http://blogs.infragistics.com/aggbug.aspx?PostID=15520" width="1" height="1"&gt;</description></item></channel></rss>