<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://www.infragistics.com/community/utility/FeedStylesheets/atom.xsl" media="screen"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en"><title type="html">/dev/null [Tony Lombardo]</title><subtitle type="html" /><id>http://www.infragistics.com/community/blogs/tony_lombardo/atom.aspx</id><link rel="alternate" type="text/html" href="http://www.infragistics.com/community/blogs/tony_lombardo/default.aspx" /><link rel="self" type="application/atom+xml" href="http://www.infragistics.com/community/blogs/tony_lombardo/atom.aspx" /><generator uri="http://communityserver.org" version="4.1.36.8414">Community Server</generator><updated>2009-03-26T14:17:00Z</updated><entry><title>A Decade In Review</title><link rel="alternate" type="text/html" href="/community/blogs/tony_lombardo/archive/2009/08/12/a-decade-in-review.aspx" /><id>/community/blogs/tony_lombardo/archive/2009/08/12/a-decade-in-review.aspx</id><published>2009-08-12T14:47:23Z</published><updated>2009-08-12T14:47:23Z</updated><content type="html">&lt;p&gt;Before I had even graduated college, I was made an offer to join ProtoView, a small software company in Cranbury New Jersey.&amp;#160; I was excited to say the least, and couldn’t wait to to take my last final exam so I could start collecting a pay check!&amp;#160; But it was more than just a paycheck, it was my start as a professional in the software industry.&lt;/p&gt;  &lt;p&gt;At the time that I joined, the company (ProtoView) was small, really small.. with less than 20 employees; my Employee Number was somewhere in the low 50’s.&amp;#160; As a part-time technical support intern, my office was a folding table in front of the bathroom door.&amp;#160; I felt like a high school hallway monitor.&amp;#160; Through the years I’ve watched the company grow from a single small office in Cranbury to a worldwide corporation with offices around the globe.&amp;#160; The company also went from ProtoView to Infragistics, as the result of a merger back in 2001.&amp;#160; Reaching occupancy limits for the second time during my tenure, a new corporate headquarters for Infragistics is being built as I write this, just a couple of miles from the place where my journey began 10 years ago.&lt;/p&gt;  &lt;p&gt;Looking back 10 years, I can still remember my first development project - a java web tree.&amp;#160; I had no idea what a “tree” was at the time, but I was confident I could build anything I put my mind to.&amp;#160; The project got shelved after I was about 80% complete, and I was understandably a bit disappointed at first.&amp;#160; But the project was put on hold so that I could move onto a new platform that Microsoft was developing – ASP.NET.&amp;#160; It was an update to the classic ASP platform, and showed some promise even in the early alpha bits.&amp;#160; I didn’t know it at the time, but the software industry was about to go through a huge transition.&amp;#160; If I had any idea how successful that product was going to be, I would have been a lot more nervous about the development project ahead of me!&amp;#160; The code I wrote 10 years ago is still being used and sold to this day.&amp;#160; It took me a good 2 years to get over the feeling of “I wrote that!!!&amp;#160; And someone is buying it!!”&amp;#160; It was proof of my success as a software developer.&amp;#160; In an atmosphere filled with change and growth, I eventually ended up with a title that I didn’t even know existed in the software business - “Evangelist”.&amp;#160; If you would have asked me when I first started, what I thought my title would be in 10 years, Evangelist surely wouldn’t have even been on the list.&amp;#160; But that’s the wonderful thing about this industry, and a company like Infragistics – there are always exciting and new opportunities.&amp;#160; &lt;/p&gt;  &lt;p&gt;My 10 years with Infragistics has provided me with memories that I will never forget, and a collection of stories that I’m sure I’ll be telling for years.&amp;#160; Even though I knew the day would come, I never really imagined working anywhere else.&amp;#160; But after a decade with Infragistics, I have decided to move on to a new opportunity.&amp;#160; As excited as I am about starting a new chapter in my life, I’ll never forget my ‘first’, and my time with Infragistics.&amp;#160; &lt;/p&gt;  &lt;p&gt;But fret not dear reader, for even as I pen the final words on this blog, others are preparing their first.&amp;#160; The future stars of Infragistics are just as bright today, as they were the day that I joined that small little software shop in Cranbury.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://www.infragistics.com/community/aggbug.aspx?PostID=159477" width="1" height="1"&gt;</content><author><name>tonylii</name><uri>http://www.infragistics.com/profile/MjEwNg==</uri></author></entry><entry><title>NetAdvantage Silverlight Line of Business is Here!</title><link rel="alternate" type="text/html" href="/community/blogs/tony_lombardo/archive/2009/07/28/netadvantage-silverlight-line-of-business-is-here.aspx" /><id>/community/blogs/tony_lombardo/archive/2009/07/28/netadvantage-silverlight-line-of-business-is-here.aspx</id><published>2009-07-28T16:00:00Z</published><updated>2009-07-28T16:00:00Z</updated><content type="html">&lt;p&gt;As Microsoft put the final touches on Silverlight 3, the developers here at Infragistics were eagerly awaiting the golden bits, so they could begin lockdown themselves.&amp;nbsp; After two weeks of tweaking and polishing, the bits are ready!&amp;nbsp; So what&amp;rsquo;s included in the release?&amp;nbsp; A dozen high performance, visually stunning controls including the xamWebGrid which provides excel like features and performance.&amp;nbsp; To compliment the excel features of the grid, there&amp;rsquo;s also the Infragistics.Excel libraries, capable of reading and writing excel (.xls) files. Below is a quick introduction to the tools, and&amp;nbsp; a highlight of some of the features included.&lt;/p&gt;
&lt;h3&gt;xamWebGrid&lt;/h3&gt;
&lt;p&gt;The xamWebGrid gives you features including filtering, sorting, grouping, editing, selection, and speed! all in a hierarchical enabled grid.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.infragistics.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/tony_5F00_lombardo/image_5F00_7E1098C3.png"&gt;&lt;img height="205" width="640" src="http://blogs.infragistics.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/tony_5F00_lombardo/image_5F00_thumb_5F00_7618F661.png" alt="Figure 1" border="0" title="Figure 1" style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;In the image above, the xamWebGrid is updating data (and cell Style) in sub-second times.&lt;/p&gt;
&lt;h3&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3&gt;xamWebTree&lt;/h3&gt;
&lt;p&gt;The xamWebTree, like the xamWebGrid builds on the true nature of a XAML based control, giving the developer the ability to style and template every aspect of the control.&amp;nbsp; In addition to a highly flexible visual model, the xamWebTree also supports Drag and Drop and tri-state checkboxes.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.infragistics.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/tony_5F00_lombardo/image_5F00_35E2DCE7.png"&gt;&lt;img height="240" width="128" src="http://blogs.infragistics.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/tony_5F00_lombardo/image_5F00_thumb_5F00_75ACC36C.png" alt="Figure 2" border="0" title="Figure 2" style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" /&gt;&lt;/a&gt; &lt;a href="http://blogs.infragistics.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/tony_5F00_lombardo/image_5F00_1C7AD9AD.png"&gt;&lt;img height="240" width="169" src="http://blogs.infragistics.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/tony_5F00_lombardo/image_5F00_thumb_5F00_0A3212EB.png" alt="Figure 3" border="0" title="Figure 3" style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;In Figure 2 above (left) the xamWebTree with custom node icons.&amp;nbsp; In Figure 3 above (right) the xamWebTree with tri-state checkboxes enabled.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3&gt;xamWebOutlookBar&lt;/h3&gt;
&lt;p&gt;Possibly the most recognizable navigation control, the xamWebOutlookBar gives your users a completely familiar UI, even down to the collapsible view.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.infragistics.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/tony_5F00_lombardo/image_5F00_10E51C6E.png"&gt;&lt;img height="240" width="208" src="http://blogs.infragistics.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/tony_5F00_lombardo/image_5F00_thumb_5F00_02A6A37E.png" alt="Figure 4" border="0" title="Figure 4" style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" /&gt;&lt;/a&gt; &lt;a href="http://blogs.infragistics.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/tony_5F00_lombardo/image_5F00_0959AD01.png"&gt;&lt;img height="240" width="37" src="http://blogs.infragistics.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/tony_5F00_lombardo/image_5F00_thumb_5F00_544D1DD0.png" alt="Figure 5" border="0" title="Figure 5" style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;In Figure 4 above (left) the xamWebOutlookBar with Groups defined.&amp;nbsp; Figure 5 shows the same bar in a collapsed/minimized state.&lt;/p&gt;
&lt;h3&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3&gt;xamWebNumericEditor, xamWebMaskedEditor&lt;/h3&gt;
&lt;p&gt;The editor controls provide a major usability enhancement over a standard Textbox.&amp;nbsp; With the ability to set masks, limit values through setting a minimum and maximum, as well as support for SL3 DataBinding Validation these editors are a must have for any user-input area of a Silverlight application.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.infragistics.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/tony_5F00_lombardo/image_5F00_621F63CB.png"&gt;&lt;img height="180" width="381" src="http://blogs.infragistics.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/tony_5F00_lombardo/image_5F00_thumb_5F00_21E94A51.png" alt="Figure 6" border="0" title="Figure 6" style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;In Figure 6 above, the editor control on the top shows a visual cue that the value is invalid.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3&gt;xamWebSpellChecker&lt;/h3&gt;
&lt;p&gt;With 9 separate language dictionaries, along with the ability to load custom user dictionaries, the xamWebSpellChecker is an extremely versatile spell checking solution.&amp;nbsp; The dialog can be completely styled, and the control supports checking multiple fields in your application.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.infragistics.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/tony_5F00_lombardo/image_5F00_33C5DE1E.png"&gt;&lt;img height="369" width="431" src="http://blogs.infragistics.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/tony_5F00_lombardo/image_5F00_thumb_5F00_4F6A6A14.png" alt="Figure 7" border="0" title="Figure 7" style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;In Figure 7 above, the xamWebSpellChecker dialog.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3&gt;xamWebMenu&lt;/h3&gt;
&lt;p&gt;Creating a windows client like menu becomes a simple task with the xamWebMenu.&amp;nbsp; Support for hierarchical menus, screen boundary detection, vertical or horizontal style menus, and of course styles and templates are all built-in.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.infragistics.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/tony_5F00_lombardo/image_5F00_133E9E6C.png"&gt;&lt;img height="235" width="350" src="http://blogs.infragistics.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/tony_5F00_lombardo/image_5F00_thumb_5F00_2110E467.png" alt="Figure 8" border="0" title="Figure 8" style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;In Figure 8 above, the xamWebMenu shown as a horizontal, hierarchical menu.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3&gt;xamWebDialogWindow&lt;/h3&gt;
&lt;p&gt;Opening new windows in a browser has always been a troublesome task.&amp;nbsp; With the xamWebDialogWindow, that&amp;rsquo;s no longer the case.&amp;nbsp; The xamWebDialogWindow supports modal/modeless operation, custom header icons, caption buttons for minimize, maximize, as well as built-in resizing capabilities.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.infragistics.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/tony_5F00_lombardo/image_5F00_40BFBE2F.png"&gt;&lt;img height="218" width="367" src="http://blogs.infragistics.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/tony_5F00_lombardo/image_5F00_thumb_5F00_4772C7B2.png" alt="Figure 9" border="0" title="Figure 9" style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;In Figure 9 above, the xamWebDialogWindow with custom Header Icon, and caption buttons.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3&gt;xamWebTileView&lt;/h3&gt;
&lt;p&gt;The xamWebTileView provides an automatic layout engine, and is the perfect choice for combining navigation with showing lists and galleries.&amp;nbsp; The xamWebTileView can be styled and templated to look exactly how you need, and allows you to specify a storyboard animation when switching between items.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.infragistics.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/tony_5F00_lombardo/image_5F00_594F5B7F.png"&gt;&lt;img height="247" width="644" src="http://blogs.infragistics.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/tony_5F00_lombardo/image_5F00_thumb_5F00_19194205.png" alt="Figure 10" border="0" title="Figure 10" style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;In Figure 10 above, the xamWebTileView taken from the avee samples application.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3&gt;xamWebTagCloud&lt;/h3&gt;
&lt;p&gt;A perfect solution for showing weighted results, the xamWebTagCloud can scale any item based on a numeric weight, whether standard text, or image icons.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.infragistics.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/tony_5F00_lombardo/image_5F00_1FCC4B88.png"&gt;&lt;img height="269" width="217" src="http://blogs.infragistics.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/tony_5F00_lombardo/image_5F00_thumb_5F00_469A61C8.png" alt="Figure 11" border="0" title="Figure 11" style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;In Figure 11 above, the xamWebTagCloud set to scale text size according to a weighted number.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3&gt;xamWebChart&lt;/h3&gt;
&lt;p&gt;The xamWebChart includes the most common chart types used to build line of business applications.&amp;nbsp; The xamWebChart offers animations for data values to enhance the presentation of the data.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.infragistics.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/tony_5F00_lombardo/image_5F00_3F7B2550.png"&gt;&lt;img height="271" width="644" src="http://blogs.infragistics.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/tony_5F00_lombardo/image_5F00_thumb_5F00_66493B90.png" alt="Figure 12" border="0" title="Figure 12" style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;In Figure 12 above, a line chart is drawn by the xamWebChart with a star Marker.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Each of the screenshots above was taken from the samples, which are available online.&amp;nbsp; &lt;a href="http://samples.infragistics.com/silverlight"&gt;View the online samples.&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;To learn more about the controls in this release, take a look at the community content available at &lt;a href="http://community.infragistics.com/silverlight"&gt;http://community.infragistics.com/silverlight&lt;/a&gt;.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://www.infragistics.com/community/aggbug.aspx?PostID=128881" width="1" height="1"&gt;</content><author><name>tonylii</name><uri>http://www.infragistics.com/profile/MjEwNg==</uri></author><category term="silverlight" scheme="http://www.infragistics.com/community/blogs/tony_lombardo/archive/tags/silverlight/default.aspx" /></entry><entry><title>Information Overload</title><link rel="alternate" type="text/html" href="/community/blogs/tony_lombardo/archive/2009/07/22/information-overload.aspx" /><id>/community/blogs/tony_lombardo/archive/2009/07/22/information-overload.aspx</id><published>2009-07-22T21:12:01Z</published><updated>2009-07-22T21:12:01Z</updated><content type="html">&lt;p&gt;For years, the biggest complaint about Microsoft was their slow release cycle.&amp;#160; Software would take years to be updated, and by the time you got your hands on the RTM bits, you were already anticipating alphas of the v-next bits.&amp;#160; Things were generally tied together in release packages, which meant if you wanted the next big feature of the .NET Framework, you were also going to have to wait for a new version of Visual Studio.&amp;#160; &lt;/p&gt;  &lt;p&gt;That model worked, but it was flawed.&amp;#160; Small projects that could have been more agile, were held back because they were tied to a larger release.&amp;#160; That’s no longer the case today, as evidenced by things like Dynamic Data, MVC, Microsoft AJAX Extensions, ADO.NET DataServices, RIA Services.&amp;#160; The list goes on and on.&amp;#160; The problem is that this fluid release schedule creates a ton of background noise and churn.&amp;#160; Just when you started to use ADO.NET DataServices, you start to hear about RIA Services – now which do you use?&amp;#160; Or should you stick with a (now classic) WCF service, or go old school back to asmx web services? &lt;/p&gt;  &lt;p&gt;Part of me wishes that Microsoft would turn down the speed controls on their software conveyer belt, but we’ve already been there and asked them to turn it up.&amp;#160; The answer seems to be to tune out the background noise and focus on what’s important to YOU.&amp;#160; What are the core technologies that impact your day to day work?&amp;#160; Which new technology or feature has the potential to have a positive impact on you or your development team?&amp;#160; Of course, it’s easier to say than do.&amp;#160; Interestingly enough, now I know exactly how Infragistics customers felt with our older release schedule.&amp;#160; With a new major version coming out every 4 months, most dev teams struggled just to stay current.&amp;#160; I think that was a perfect example of too fast.&amp;#160; With a new release schedule of 2 major versions per year, it seems to be the perfect balance of quick releases and innovation, without the excess churn.&amp;#160; &lt;/p&gt;  &lt;p&gt;So what do you think?&amp;#160; Do you prefer to see slower releases, or do you like to see software come at you as fast as possible, giving you the opportunity to filter out what you do or do not care about?&amp;#160; I want to be in latter group, though I’m realistically probably somewhere closer to the middle of the road.&amp;#160; &lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://www.infragistics.com/community/aggbug.aspx?PostID=124493" width="1" height="1"&gt;</content><author><name>tonylii</name><uri>http://www.infragistics.com/profile/MjEwNg==</uri></author></entry><entry><title>Silverlight UX: Sum Of The Parts</title><link rel="alternate" type="text/html" href="/community/blogs/tony_lombardo/archive/2009/06/30/silverlight-ux-sum-of-the-parts.aspx" /><id>/community/blogs/tony_lombardo/archive/2009/06/30/silverlight-ux-sum-of-the-parts.aspx</id><published>2009-06-30T20:08:00Z</published><updated>2009-06-30T20:08:00Z</updated><content type="html">&lt;p&gt;When talking about Silverlight, it is only natural to compare it to standard web based applications (ASP.NET, PHP, JSF, etc.).&amp;nbsp; Silverlight has some clear advantages when dealing with large quantities of data, or speed and performance in say grid operations, but there&amp;rsquo;s another aspect of Silverlight that may be hard to notice at first.&amp;nbsp; It&amp;rsquo;s the &amp;lsquo;little&amp;rsquo; things.&amp;nbsp; I call them little, because alone, each of these features isn&amp;rsquo;t something that will shock or amaze you.&amp;nbsp; But combined, these features create a User Experience that is specific to Silverlight.&amp;nbsp; Let&amp;rsquo;s take a look at a few examples.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.infragistics.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/tony_5F00_lombardo/image_5F00_25090B40.png"&gt;&lt;img height="284" width="394" src="http://blogs.infragistics.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/tony_5F00_lombardo/image_5F00_thumb_5F00_5DB3B54D.png" alt="image" border="0" title="image" style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;Above is the Infragistics XamWebGrid in GroupBy mode.&amp;nbsp; The part to notice is the small x that shows up when you mouse over the Group indicator.&amp;nbsp; It makes it easy for a user to figure out how to ungroup the data, and that&amp;rsquo;s just the start.&amp;nbsp; Notice the shape of the Group indicator?&amp;nbsp; When you group by multiple columns, these fit together like puzzle pieces.&amp;nbsp; Again, indicating to the user exactly what&amp;rsquo;s happening as shown below.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.infragistics.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/tony_5F00_lombardo/image_5F00_0F3F22E3.png"&gt;&lt;img height="282" width="411" src="http://blogs.infragistics.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/tony_5F00_lombardo/image_5F00_thumb_5F00_6AAD955E.png" alt="image" border="0" title="image" style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The differences are very subtle, like a glow animation when you mouse over a button; the same type of differences you see between Windows Forms and WPF.&amp;nbsp; But these subtle differences can create a totally different experience for a user.&amp;nbsp; The application feels more alive, and when these features are put to good use, like in the example above, the UX of the application can be improved.&amp;nbsp; And here I thought storyboards and animations were only used for 3D rotating textboxes with movies playing in the background.. &lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://www.infragistics.com/community/aggbug.aspx?PostID=108438" width="1" height="1"&gt;</content><author><name>tonylii</name><uri>http://www.infragistics.com/profile/MjEwNg==</uri></author><category term="silverlight" scheme="http://www.infragistics.com/community/blogs/tony_lombardo/archive/tags/silverlight/default.aspx" /></entry><entry><title>The Chains that Hold Us Back</title><link rel="alternate" type="text/html" href="/community/blogs/tony_lombardo/archive/2009/06/29/the-chains-that-hold-us-back.aspx" /><id>/community/blogs/tony_lombardo/archive/2009/06/29/the-chains-that-hold-us-back.aspx</id><published>2009-06-29T19:32:00Z</published><updated>2009-06-29T19:32:00Z</updated><content type="html">&lt;p&gt;I’m not sure there’s ever been quite as much activity in the world of Web development as in the past couple of years.&amp;#160; The browser ‘wars’ have been re-ignited, and technology is advancing at a frantic pace.&amp;#160; It’s almost too much to keep up with.&amp;#160; Right now as a web developer you have Silverlight 2 at your disposal, and a beta of Silverlight 3, with talks of Silverlight 4 already taking place.&amp;#160; Then there’s the CSS 3 specs, HTML 5 specs.. it’s almost too much to comprehend.&amp;#160; I guess we’re lucky in a way, that there are currently significant barriers keeping us from these technologies.&lt;/p&gt;  &lt;p&gt;Let’s take a look at Silverlight first.&amp;#160; With clear advantages in performance and usability over standard HTML/JavaScript, Silverlight looked like a definite winner for many web applications.&amp;#160; But Silverlight suffers from one big disadvantage – the plugin that needs to be installed.&amp;#160; That simple plugin which only takes a minute to install, is preventing widespread adoption of Silverlight across corporate America.&amp;#160; As with any new software, IT must first test Silverlight on their systems, and then come up with a rollout plan which as many of you know, is not something that happens overnight.&amp;#160; So even with 3 versions of Silverlight in 1 year, many developers are just now getting the nod from corporate to start discussing the option of using Silverlight.&amp;#160; &lt;/p&gt;  &lt;p&gt;CSS3 and HTML5 promise to change web development (in a good way), but are both being held back by standards committees and browser support (or lack there of).&amp;#160; In all likelihood browsers will implement the features of these specs before the specs are actually complete.&amp;#160; But even the implementation will likely happen at different rates for each browser.&amp;#160; The reason most of us write web applications in the first place is so that one page can be viewed in any browser on any computer by any user.&amp;#160; Which brings us back to IT, the guys who will inevitably be forced to hold back the latest versions of these browsers from being installed, so that they can be properly tested and a deployment strategy can be planned.&amp;#160; &lt;/p&gt;  &lt;p&gt;While all of these new technologies promise to revolutionize web development, it’s unlikely the revolution will happen as quickly as any of us would like to see.&amp;#160; IE6 is still the corporate standard browser in many organizations.&amp;#160; The good news for developers is that it gives you extra time to learn the new technologies.&amp;#160; And if there’s one thing I know, it’s that you can accelerate rollouts if you prove a valid business case.&amp;#160; Show the IT director a prototype of the app you just put together using Silverlight 3 that took you half the time to write and solved the UX and Performance problems of the current html based application, and a Silverlight rollout is likely to be around the corner.&amp;#160; &lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://www.infragistics.com/community/aggbug.aspx?PostID=107526" width="1" height="1"&gt;</content><author><name>tonylii</name><uri>http://www.infragistics.com/profile/MjEwNg==</uri></author><category term="rant" scheme="http://www.infragistics.com/community/blogs/tony_lombardo/archive/tags/rant/default.aspx" /></entry><entry><title>Visual Designer : A Developer’s BFF</title><link rel="alternate" type="text/html" href="/community/blogs/tony_lombardo/archive/2009/06/26/visual-designer-a-developer-s-bff.aspx" /><id>/community/blogs/tony_lombardo/archive/2009/06/26/visual-designer-a-developer-s-bff.aspx</id><published>2009-06-26T16:20:45Z</published><updated>2009-06-26T16:20:45Z</updated><content type="html">&lt;p&gt;Developers are often cast into a group and stereotyped as &amp;quot;visual design challenged”.&amp;#160; The fact is, a true Visual Designer picks colors and creates designs for applications that make my attempts look like grade school arts and crafts project.&amp;#160; But that doesn’t mean developer’s don’t care about design.&amp;#160; Actually, I think most developers put a tremendous effort into trying to make their applications look good.&amp;#160; It’s just that the results aren’t always award winning..&lt;/p&gt;  &lt;p&gt;I used to get insulted when people would mention that developers weren’t good at styling applications.&amp;#160; From the first day I started coding, I was the only one working on my applications.&amp;#160; The application was my creation, and I was responsible for every aspect of it, including the design.&amp;#160; By hearing generalized statements about how developers are bad at visual design, it was like telling me that I don’t have the entire skills I need to build a successful application.&amp;#160; &lt;/p&gt;  &lt;p&gt;Luckily, I’ve grown up a little since then.&amp;#160; While I still don’t like hearing I’m not good at something, I can certainly respect that there are professionals in the visual design world who can do a much better job of making my applications look good.&amp;#160; I can spend 2 years writing the most beautiful code, but at the end of the day, the user only sees the User Interface.&amp;#160; UX is perhaps the most important aspect of an application, because it encompasses all aspects of the application.&amp;#160; If the code was buggy, the UX will be poor.&amp;#160; But more importantly, if the code was perfect and the UI design was not, the UX will be sub-par.&amp;#160; Want proof of just how important the UI/UX is?&amp;#160; Take a look at Facebook vs. MySpace.&amp;#160; &lt;/p&gt;  &lt;p&gt;MySpace was the clear favorite two years ago, so what happened?&amp;#160; The MySpace page was ugly by default, and users could do anything they wanted to make it even uglier.&amp;#160; Sure, customizing your page sounds like a good idea, until you realize that you’re not that good at it.&amp;#160; Facebook took a different approach – a fixed&amp;#160; UI that looked good out of the box.&amp;#160; Facebook users didn’t need to spend time making their page look good, and more importantly, you didn’t have to look at hundreds of other bad looking sites.&amp;#160; Take another example, the iPhone.&amp;#160; Apple cares about it’s image so much, that all iPhone applications need to follow design guidelines, and must be approved before they can be made available to iPhone customers.&amp;#160; Still not sold on the importance of UI?&amp;#160; Remember geocities?&amp;#160; How could you not.&amp;#160; An entire domain of horrendous designs.&amp;#160; The negative experience associated with those bad designs is something that sticks with you.&amp;#160; I don’t remember if I ever found anything functional on geocities, I’m sure I did.&amp;#160; But that’s not what I remember.&amp;#160; I remember the horrible color choices, images with choppy edges (that of course weren’t transparent), and JavaScript errors.&amp;#160; &lt;/p&gt;  &lt;p&gt;There’s a point in here somewhere.&amp;#160; Oh yeah – designers are a developers best friend.&amp;#160; Designers make developers look better.&amp;#160; After I spent 2 years on a project, of course I want people to think it’s the coolest thing they ever saw.&amp;#160; But my late nights of coding are essentially going to be judged on how good the application looks, not how well I wrote the code.&amp;#160; I remember the days of getting beta feedback like, “It’s not colorful enough, can you add some color to it?”&amp;#160; I would go back to my desk, bummed that no one shared the same excitement as I did that the project was complete.&amp;#160; But in actuality, it wasn’t complete.&amp;#160; It was functional, but that doesn’t make an application “done”.&amp;#160;&amp;#160; So, I’d go back to my desk and throw a few different colors around the application (usually different shades of blue) and try again.&amp;#160;&amp;#160; I spent weeks just experimenting with different colors to see if I could produce something a *slightly* more visually appealing.&amp;#160; Weeks that I could have spent on my next project.&amp;#160; I certainly don’t miss those days.&amp;#160; Today, visual designers take the code that I wrote, and bring it to life, and they do it in far less time than I ever could have, with far better results.&amp;#160; They might hand me back a wireframe or a mock-up that I need to convert to code, or if I’m lucky, they’re just modifying the XAML or CSS directly for me.&amp;#160; And when I hear comments about how cool an application is, I know that without my code, that would have been nothing more than a static image.&amp;#160; I bring designs to life, designers bring my code to life.&amp;#160; It’s amazing that I ever did both the design and development.&amp;#160; And it’s even more amazing that I resisted change at first.&amp;#160; &lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://www.infragistics.com/community/aggbug.aspx?PostID=105845" width="1" height="1"&gt;</content><author><name>tonylii</name><uri>http://www.infragistics.com/profile/MjEwNg==</uri></author><category term="asp.net" scheme="http://www.infragistics.com/community/blogs/tony_lombardo/archive/tags/asp.net/default.aspx" /><category term="silverlight" scheme="http://www.infragistics.com/community/blogs/tony_lombardo/archive/tags/silverlight/default.aspx" /></entry><entry><title>MVC vs. WebForms, A Clear Loser Emerging</title><link rel="alternate" type="text/html" href="/community/blogs/tony_lombardo/archive/2009/06/23/mvc-vs-webforms-a-clear-loser-emerging.aspx" /><id>/community/blogs/tony_lombardo/archive/2009/06/23/mvc-vs-webforms-a-clear-loser-emerging.aspx</id><published>2009-06-23T19:44:52Z</published><updated>2009-06-23T19:44:52Z</updated><content type="html">&lt;p&gt;Working with WebControls and WebForms for the past 8 years has taught me a lot about web development.&amp;#160; The one thing that I learned above everything is that the onus is on the developer to write good code.&amp;#160; Now that may not sound like something revolutionary, but the fact is that ASP.NET WebForms makes building web applications easy by abstracting away some of the difficulties of a stateless protocol.&amp;#160; And it also makes it easy to forget about what’s actually happening behind the scenes to make everything possible.&amp;#160; Does that mean WebForms is flawed?&amp;#160; No.&lt;/p&gt;  &lt;p&gt;MVC offers a fix for some of the problems that WebForms has been plagued with.&amp;#160; Problems like bloated ViewState, and that ‘pesky postback model.’&amp;#160; On the surface, this looks like an attractive solution for every web developer out there.&amp;#160; A promise to get rid of ViewState – a web application’s mortal enemy?&amp;#160; It has to be good. That is until the application your building needs some sort of state mechanism, and you begin re-inventing the wheel.&amp;#160; I think it would have been much easier just to go back to you WebForms application and disable ViewState.&amp;#160; &lt;/p&gt;  &lt;p&gt;The problem right now is that there is so much focus over why MVC is better than WebForms, that everyone is forgetting a basic rule of software development: use the right tool for the job.&amp;#160; I’ve said it dozens of times, MVC has a set of scenarios that it first very nicely, as does WebForms.&amp;#160; One platform does not need to be declared a winner – they’re two equals that should be placed into your metaphorical toolbox.&amp;#160; So who is actually losing right now?&amp;#160; The developer community that is caught in the middle of this faux war.&amp;#160; Developers who think that they have to move to MVC out of pride or fear that WebForms will be replaced by MVC.&amp;#160; Developers who are only hearing one side of the story right now at local community events and tradeshows because let’s face it.. WebForms isn’t sexy anymore at 8 years old.&amp;#160; Ironically, this same issue of “sexy talks” was &lt;a href="http://channel9.msdn.com/posts/Glucose/Hanselminutes-on-9-Why-Arent-There-More-WinForms-Talks-with-Rocky-Lhotka/"&gt;discussed last week at NDC&lt;/a&gt; with Scott Hanselman behind the camera. &lt;/p&gt;  &lt;p&gt;Conferences aren’t picking talks about “the old stuff”, because they’d rather focus on what’s new.&amp;#160; New is sexier, and conferences are all about attendance numbers.&amp;#160; But here’s what these conferences don’t seem to understand – every day there’s a new developer joining the community who needs to start from zero.&amp;#160; Developers gauge what’s important by what’s being talked about, it’s why we have trends and tag clouds.&amp;#160; It’s human nature.&amp;#160; If I hear 100 people talking about a subject, it must be important.&amp;#160; Right now I hear 100 people talking about MVC, and no one talking about WebForms, so I guess MVC is more important, right?&amp;#160; That’s the type of thinking happening right now, and it’s nothing new. &lt;/p&gt;  &lt;p&gt;“MVC brings web development back into ASP.NET”, is one of the most common arguments I hear for its use.&amp;#160; Yet the whole reason for WebForms existence was to free you of the dirty details of building a web application, and let you focus on your business logic.&amp;#160; To give you a set of functionality to be able to build on top of, the same focus for every library and framework out there.&amp;#160; It’s why you don’t have to write browser specific JavaScript when using jQuery or ASP.NET AJAX, and it’s the reason we don’t still program in machine language.&amp;#160; Can I write a tighter loop in assembly than I can in JavaScript?&amp;#160; Sure.&amp;#160; But for the applications I’m writing that’s not going to be an issue.&amp;#160; Maybe I’m writing an application where performance is the top and only concern.&amp;#160; Now writing the application in assembly doesn’t sound like a crazy idea.&amp;#160; If my requirements were to build a spreadsheet like application that offers filtering, copy and paste and exporting to excel, I’m going to jump to WebForms.&amp;#160; That’s the whole point behind using the right tools for the job.&amp;#160; &lt;/p&gt;  &lt;p&gt;I read a blog post today that talked about how you should dump WebForms and go with MVC as soon as possible, so you can get back to web development roots.&amp;#160; The argument just didn’t make sense to me.&amp;#160; It’s like asking me to stop coding in C# and move to C++ because C# developers just don’t understand pointers and memory allocation.&amp;#160; &lt;/p&gt;  &lt;p&gt;So here’s my call to action.&amp;#160; Rather than talking about why one framework or platform is better than the other, start discussing when one is better than the other.&amp;#160; What scenarios is MVC geared for?&amp;#160; When would you use WebForms (MVP) instead?&amp;#160; &lt;/p&gt;  &lt;p&gt;The best advice I’ve seen so far is that WebForms is the platform of choice for building web applications, where MVC is more suited to building web sites.&amp;#160; This is still a bit abstract since there’s no clear definition of web applications, but I think it’s safe to say that if you’re building a web version of a win client application, you’re building a web application.&amp;#160; If you have a ‘grid’ in your page for purposes above that of just layout, you’re building a web application.&amp;#160; &lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://www.infragistics.com/community/aggbug.aspx?PostID=103666" width="1" height="1"&gt;</content><author><name>tonylii</name><uri>http://www.infragistics.com/profile/MjEwNg==</uri></author><category term="asp.net" scheme="http://www.infragistics.com/community/blogs/tony_lombardo/archive/tags/asp.net/default.aspx" /></entry><entry><title>ASP.NET 4.0 &amp; Why it Matters</title><link rel="alternate" type="text/html" href="/community/blogs/tony_lombardo/archive/2009/06/08/asp-net-4-0-amp-why-it-matters.aspx" /><id>/community/blogs/tony_lombardo/archive/2009/06/08/asp-net-4-0-amp-why-it-matters.aspx</id><published>2009-06-08T21:48:32Z</published><updated>2009-06-08T21:48:32Z</updated><content type="html">&lt;p&gt;I hear a lot of overused and overloaded terms these days like “leaky abstraction” when talking about WebForms.&amp;#160; As people repeat these items like robot drones, I wonder if they truly understand what it means, and more importantly how it affects a developers ability to build software.&amp;#160; But whether it’s a group of robot drones, or an increasing number of well educated software engineers, we’ll leave for the subject of another debate.&amp;#160; Back to the matter at hand.&amp;#160; Of all of the WebForms complaints, it usually boils down to a few key issues – ViewState, ID generation and HTML Markup &amp;amp; Postbacks; each of which is undergoing changes in ASP.NET 4.0.&lt;/p&gt;  &lt;h2&gt;ViewState&lt;/h2&gt;  &lt;p&gt;To understand the first issue of ViewState, you have to understand the ViewState model.&amp;#160; It works recursively in nature, with each control responsible for initiating the loading and saving of ViewState from it’s child controls.&amp;#160; The problem comes when you turn off ViewState at a root level.&amp;#160; Since the parent control is no longer storing ViewState, it’s child controls get ignored.&amp;#160; Basically, you can turn ViewState off selectively for children, but you can’t turn it on selectively if it’s disabled for the parent control.&amp;#160;&amp;#160; The solution?&amp;#160; ASP.NET 4.0 introduces the ViewStateMode pattern which is separate from the EnableViewState property.&amp;#160; ViewStateMode has 3 values, Enabled, Disabled and Inherit (the default).&amp;#160; When ViewStateMode is set to disabled, any child control that is set to Disabled or Inherit will have it’s ViewState turned off.&amp;#160; If a parent control has ViewStateMode=Disabled, and the child control has ViewStateMode=Enabled (the important new scenario), the child control will still have it’s ViewState saved.&amp;#160; This in essence, is what the feature is all about.&amp;#160; The net gain for a Web developer is a lighter weight page, because you now have the ability to turn off ViewState in places that you didn’t really need it on in the first place.&amp;#160;&amp;#160; &lt;/p&gt;  &lt;h2&gt;ID generation&lt;/h2&gt;  &lt;p&gt;Have you ever taken a look at the html markup produced by an ASP.NET WebForms application?&amp;#160; I have.&amp;#160; Actually, I spend a good portion of my time examining html markup and discerning how a page can be made lighter or faster based on what I see.&amp;#160; One of the big offenders happens to be ID strings.&amp;#160; If you want to address an element, you need to give it an ID.&amp;#160; If you want to address it uniquely, you need to come up with a mechanism to make that ID unique.&amp;#160; In ASP.NET WebForms this was done by pre-pending the parent control’s id to the ID string of a control.&amp;#160; The problem is that as applications became more complex, so did the control hierarchies, which then caused UniqueID and ClientID strings to become unmanageable.&amp;#160; Looking at an application today, it’s not out of the question to see something like “contentPlaceHolder1:ctl0:ctl0:UpdatePanel1:Panel1:GridView1” Now if you use that string a few times to address id’s or create css class names, you’re bloating your HTML.&amp;#160; Even worse, you’re creating a recipe for cascading failures if you ever change the containership or the ID of one of the parent controls.&amp;#160; Suddenly, your element’s ClientID has changed, and you need to go through and update your code.&amp;#160; &lt;/p&gt;  &lt;p&gt;In ASP.NET 4.0, you’ll have the ability to set the ClientIdMode to “Static” which solves most of these problems.&amp;#160; With a Static ClientIdMode, the ID string you set for the control, is the same string that will be used for the ClientID.&amp;#160; This has the benefit of being less fragile, and gives you the ability to clean up your markup by shortening ID’s considerably.&amp;#160; The drawback to using ClientIdMode=Static is that ID’s will not be ensured to be Unique by the framework, making this a manual task for the developer.&amp;#160; Not sure about you, but if that’s the biggest challenge of my day, I’ll be smiling.&lt;/p&gt;  &lt;h2&gt;HTML Markup &amp;amp; Postbacks&lt;/h2&gt;  &lt;p&gt;Postbacks were the bread and butter of ASP.NET 1.0.&amp;#160; Luckily ASP.NET has come a long way since then, and developers today understand that creating a good User Experience means limiting postbacks.&amp;#160; The amount of HTML rendered to the client also has a direct correlation on User Experience.&amp;#160; The more HTML/Markup, the longer a page will take to load.&amp;#160; ASP.NET 4.0 improves this key scenario by adding Client-Side DataBinding and templating.&amp;#160; Think of client-side templates as a repeater that get’s populated by JavaScript.&amp;#160; Why populate the repeater on the client-side rather than the server-side?&amp;#160; It’s a matter of multiplication.&amp;#160; Take the same 4 lines of HTML in a repeater template and multiply it by the number of items in your datasource.&amp;#160; Now push all of that HTML down over the wire to the client.&amp;#160; Make matters even more interesting, use the same datasource to populate a grid.&amp;#160; In a typical scenario, you’re pushing the same data down two times, once for the repeater, once for the grid.&amp;#160; If you had that data available as a client-side DataSource, you only send the data down once, and re-use it on multiple controls.&amp;#160; At the price of a little extra processing power to create the dom elements through JavaScript, you get the benefit of possibly drastically reduced HTML markup, and free yourself from relying on Postbacks in order to populate a list.&amp;#160; &lt;/p&gt;  &lt;p&gt;The three features listed above are just a short list taken from the &lt;a href="http://www.asp.net/learn/whitepapers/aspnet40/"&gt;ASP.NET 4.0 features whitepaper&lt;/a&gt;.&amp;#160; Even in this short list, it’s easy to see that ASP.NET 4.0 is changing the face of WebForms.&amp;#160; Many of the concerns that developers have expressed and many of the advantages that MVC touts over WebForms are being addressed.&amp;#160; The point is, WebForms isn’t dead, it’s quite the opposite.&amp;#160; &lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://www.infragistics.com/community/aggbug.aspx?PostID=98981" width="1" height="1"&gt;</content><author><name>tonylii</name><uri>http://www.infragistics.com/profile/MjEwNg==</uri></author><category term="asp.net" scheme="http://www.infragistics.com/community/blogs/tony_lombardo/archive/tags/asp.net/default.aspx" /></entry><entry><title>Surveys, Polls, Voting, and why they usually stink</title><link rel="alternate" type="text/html" href="/community/blogs/tony_lombardo/archive/2009/05/28/surveys-polls-voting-and-why-they-usually-stink.aspx" /><id>/community/blogs/tony_lombardo/archive/2009/05/28/surveys-polls-voting-and-why-they-usually-stink.aspx</id><published>2009-05-28T21:05:25Z</published><updated>2009-05-28T21:05:25Z</updated><content type="html">&lt;p&gt;I’ve never been a big fan of surveys or polls.&amp;#160; Not because I don’t like them, but because I always disagree with their validity and the conclusions that are drawn from the results.&amp;#160; Lets take a look at a couple of examples.&amp;#160; Readers Choice awards were recently handed out.&amp;#160; I received an email from a customer who wanted to let me know that he was contacted by a component vendor to go out and vote for them, and he didn’t even own their product.&amp;#160; To my surprise, he wanted to know where the Infragistics email was.&amp;#160; My answer – we make a very conscious effort to limit the number of emails we send out to our customer base.&amp;#160; At the end of the day, our decision to keep spam out of our customer’s inboxes also meant that we were at a disadvantage in the survey/poll/award.&amp;#160; Does the poll actually show which product is the best?&amp;#160; Or does it show who spent more time and energy on campaigning for votes?&lt;/p&gt;  &lt;p&gt;Now let’s look at case #2.&amp;#160; There’s a &lt;a href="http://www.zoomerang.com/Survey/survey-intro.zgi?p=WEB22973CYKW2H"&gt;survey out right now&lt;/a&gt; asking questions about AJAX tools and frameworks, and which ones developers are using.&amp;#160; I don’t know exactly what the results of this survey look like, but here were my first impressions.&amp;#160; The survey is hosted on a &lt;a href="http://codeclimber.net.nz/archive/2009/05/25/survey-on-ajax-adoption-some-quick-stats.aspx"&gt;personal blog&lt;/a&gt;, where most readers likely share similar interests.&amp;#160; Simone Chiaretta (the blogger) respectfully acknowledges that this blog has a limited audience and is likely biased toward the ALT.NET kind of developer.&amp;#160; I’m sure Simone has the best intentions about publishing the survey, but it will be very difficult to not get a skewed response.&amp;#160; In addition, what does the response actually mean?&lt;/p&gt;  &lt;p&gt;A current snapshot of results shows that 76% of developers are using jQuery, compared with 48% using ASP.NET AJAX and 58% using AJAX Toolkit.&amp;#160; Does that really mean that there are more jQuery developers than WebForms/ASP.NET AJAX developers?&amp;#160; To confuse matters, AJAX Control Toolkit is built ONTOP of ASP.NET AJAX.&amp;#160; Yet these results show that there are more people using the toolkit than ASP.NET AJAX (which is actually impossible).&amp;#160; I know from experience that there is a huge portion of web developers out there who never want to hear the word “Javascript”.&amp;#160; Does that mean they’re not doing AJAX?&amp;#160; No, they’re simply relying on the tools that were handed to them.&amp;#160; Microsoft created the Microsoft ASP.NET AJAX stack and made doing things like partial rendering a breeze.&amp;#160; It’s all part of ASP.NET 3.5.&amp;#160; I don’t even call it “AJAX Extensions” anymore, it’s just ASP.NET 3.5, or Visual Studio 2008.&amp;#160;&amp;#160; It’s actually so easy to do Partial Updates at this point, that a developer can ‘do AJAX’ with out even knowing how to write a line of JavaScript.&amp;#160; It’s very unlikely that those developers are or will be represented in this survey.&amp;#160; How many web developers still use the term DHTML?&amp;#160; That usually only shows up on resumes.&amp;#160; But in actuality, most web developers today are doing DHTML, and aren’t even aware of it.&amp;#160; I expect the same will be true of AJAX.&amp;#160; It’s so commonplace that there’s no reason to differentiate it from web development in the first place.&amp;#160; &lt;/p&gt;  &lt;p&gt;So what spawned all of this?&amp;#160; Well, I saw a post from Betrand Le Roy on Twitter about this survey.&amp;#160; He immediately got a response asking “will the results of this survey be used to finally convince Microsoft to dump ASP.NET AJAX, and go with jQuery instead”.&amp;#160; I can only hope not.&amp;#160; jQuery is an awesome Javascript framework, but it absolutely abandons the web developer who doesn’t want to spend his days writing custom Javascript.&amp;#160; Microsoft created the idea of a server-side webcontrol for this very reason.&amp;#160; If I’m given the choice to drop an UpdatePanel on a form and have a label update on a button click via AJAX, or hand code it myself using a Javascript framework, I’m going to go with the UpdatePanel just about every time.&amp;#160; Will I get more satisfaction out of building it from scratch?&amp;#160; Certainly.&amp;#160; But personal satisfaction doesn’t pay the bills. And I’d be much more satisfied spending the two weeks time I saved, on the beach fishing.&amp;#160; The Infragistics ASP.NET controls try to find a comfortable balance between these two worlds.&amp;#160; They abstract away the client-side javascript for developers who don’t want to or have the time to deal with it, and they provide a client-side object model for developers who want to dive in and play.&amp;#160; We call it our CSOM (Client-Side Object Model) and it’s been around for years.&amp;#160; I think this is the path Microsoft needs to continue to take, supporting both of these key scenarios.&amp;#160; &lt;/p&gt;  &lt;p&gt;But back to the topic at hand.&amp;#160; Polls and surveys are just that.&amp;#160; They represent a a sentiment of a select audience.&amp;#160; Was the audience wide enough to capture multiple views (usually not).&amp;#160; Was the survey done by an impartial third party (usually not).&amp;#160; Did others have a chance to influence the results (unfortunately yes most of the time).&amp;#160; And even when you get past all of that, it’s most important to look at what the questions were actually asking in the first place.&amp;#160; Each time I see the results of a poll, I argue that the answer that was being deduced was not actually the question that was being asked.&amp;#160;&amp;#160; &lt;/p&gt;  &lt;p&gt;My question to you – do you participate in these polls?&amp;#160; How much weight/validity do you give the to results?&amp;#160; And better yet, what do you think about “lobbying for votes” in readers choice type polls/awards?&amp;#160; Is that something you would be happy to hear about, or would you prefer not to hear at all?&amp;#160; &lt;/p&gt;  &lt;p&gt;Perhaps I’m too analytical, but I generally tear apart survey results and the conclusions that are drawn from them. &lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://www.infragistics.com/community/aggbug.aspx?PostID=97359" width="1" height="1"&gt;</content><author><name>tonylii</name><uri>http://www.infragistics.com/profile/MjEwNg==</uri></author><category term="asp.net" scheme="http://www.infragistics.com/community/blogs/tony_lombardo/archive/tags/asp.net/default.aspx" /><category term="rant" scheme="http://www.infragistics.com/community/blogs/tony_lombardo/archive/tags/rant/default.aspx" /></entry><entry><title>Conditional Formatting in XamWebGrid</title><link rel="alternate" type="text/html" href="/community/blogs/tony_lombardo/archive/2009/05/07/conditional-formatting-in-xamwebgrid.aspx" /><id>/community/blogs/tony_lombardo/archive/2009/05/07/conditional-formatting-in-xamwebgrid.aspx</id><published>2009-05-07T14:09:00Z</published><updated>2009-05-07T14:09:00Z</updated><content type="html">&lt;p&gt;With the latest &lt;a href="http://www.infragistics.com/dotnet/netadvantage/silverlight/line-of-business.aspx#Downloads"&gt;NetAdvantage Silverlight LOB CTP&lt;/a&gt; there are a few hidden gems.&amp;nbsp; I just got done with an example showing how to do conditional formatting in the XamWebGrid, and it&amp;rsquo;s all thanks to the CellControlAttached event.&amp;nbsp; An even may not sound significant, but the fact that this event is only fired for visible cells, and is fired each time the underlying data changes, makes this event priceless. With the help of this single event, I was able to fire updates on the grid at 20ms intervals.&amp;nbsp; In case you&amp;rsquo;re wondering, yeah &amp;ndash; that&amp;rsquo;s faster than it takes the human brain to process what it&amp;rsquo;s looking at.&amp;nbsp; Luckily, PrintScreen processes faster than the human brain...&lt;/p&gt;
&lt;p&gt;&lt;a href="http://dl.infragistics.com/community/aspnet/articles/ConditionalFormattingintheXamWebGrid_8E9C/image_thumb.png"&gt;&lt;img height="393" width="640" src="http://blogs.infragistics.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/tony_5F00_lombardo/image_5F00_thumb1_5F00_57253EB2.png" alt="image_thumb[1]" border="0" title="image_thumb[1]" style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;Read the Article: &lt;a href="http://community.infragistics.com/silverlight/articles/conditional-formatting-with-the-xamwebgrid.aspx"&gt;Conditional Formatting With The XamWebGrid&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://www.infragistics.com/community/aggbug.aspx?PostID=93274" width="1" height="1"&gt;</content><author><name>tonylii</name><uri>http://www.infragistics.com/profile/MjEwNg==</uri></author><category term="silverlight" scheme="http://www.infragistics.com/community/blogs/tony_lombardo/archive/tags/silverlight/default.aspx" /></entry><entry><title>Building A Silverlight 3 Dashboard With Composite UI</title><link rel="alternate" type="text/html" href="/community/blogs/tony_lombardo/archive/2009/04/14/building-a-silverlight-3-dashboard-with-composite-ui.aspx" /><id>/community/blogs/tony_lombardo/archive/2009/04/14/building-a-silverlight-3-dashboard-with-composite-ui.aspx</id><published>2009-04-14T22:05:00Z</published><updated>2009-04-14T22:05:00Z</updated><content type="html">&lt;p&gt;If you&amp;rsquo;ve been following me on Twitter (&lt;a href="http://twitter.com/igtony"&gt;igtony&lt;/a&gt;), you&amp;rsquo;ve probably heard me grumbling about Visual Studio crashing, services not working, or various other gremlins I&amp;rsquo;ve been fighting with for the past few days.&amp;nbsp; Well, I&amp;rsquo;ve finally got something to show for all of my pain!&amp;nbsp; &lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.infragistics.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/tony_5F00_lombardo/image_5F00_421EDAB8.png"&gt;&lt;img height="500" width="644" src="http://blogs.infragistics.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/tony_5F00_lombardo/image_5F00_thumb_5F00_4F84EDBE.png" alt="Image 1" border="0" title="Image 1" style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;My goal when I started building this application was to build a POC Silverlight Application which dynamically loaded sub-applications.&amp;nbsp; In essence, I wanted to build a Silverlight shell that could load N applications unknown at compile time.&amp;nbsp; I started out by choosing from the new Navigation project template in Silverlight 3.&amp;nbsp; This gives a MasterPage scenario that works as a good starting point for an application which may have multiple distinct Views.&amp;nbsp; I tweaked the base appearance of the template around just to make it look a little more presentable.&amp;nbsp; The White background used in the &amp;lt;Frame&amp;gt; element and the big 10px borders reminded me of Windows 3.1, and IE4.&amp;nbsp; I used a Border element to create the rounded edges which wrapped around my Frame, and I set my Frame background to be transparent.&amp;nbsp; With some of the UI tweaks out of the way, it was down to business.&lt;/p&gt;
&lt;p&gt;The first task I needed to tackle was loading a XAML page (UserControl) dynamically.&amp;nbsp; It turns out this is a pretty simple task as long as that user control is in the same XAP file.&amp;nbsp; The Frame element has a Navigate method which takes a URI and will fill the Frame&amp;rsquo;s Content with the UserControl specified via the URI.&amp;nbsp; Unfortunately, the solution I was looking for places my UserControl in a separate XAP file, which meant I couldn&amp;rsquo;t use the simple Frame.Navigate(URI) method.&amp;nbsp; Instead I needed to dynamically load the UserControl in question.&amp;nbsp; Luckily, this is a pretty straight forward task with the help of the WebClient.OpenReadAsync method, and AssemblyPart class.&amp;nbsp; Here&amp;rsquo;s the code I used:&lt;/p&gt;
&lt;div class="wlWriterEditableSmartContent" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:9724a6d8-f724-40dd-985d-098d9a308d11" style="padding-bottom:0px;margin:0px;padding-left:0px;padding-right:0px;display:inline;float:none;padding-top:0px;"&gt;
&lt;pre name="code" class="c#"&gt;        private void NavButton_Click(object sender, RoutedEventArgs e)
        {
            Button navigationButton = sender as Button;
            //Create a WebClient instance to download our separate XAP file
            WebClient client=new WebClient();

            client.OpenReadCompleted+=new OpenReadCompletedEventHandler(client_OpenReadCompleted);
            //Download the XAP file
            client.OpenReadAsync(new Uri(&amp;quot;CompositeApp.xap&amp;quot;,UriKind.Relative));
        }

        void client_OpenReadCompleted(object sender, OpenReadCompletedEventArgs e)
        {

			//Create a StreamResourceInfo object out of our XAP stream            
			StreamResourceInfo sri = new StreamResourceInfo(e.Result, null);
			
			//Get a StreamResourceInfo for the Application&amp;#39;s DLL
			//The one that houses our main XAML UserControl
            StreamResourceInfo mainAppSRI = Application.GetResourceStream(sri, new Uri(&amp;quot;CompositeApp.dll&amp;quot;, UriKind.Relative));
			
			//Load the Assembly using AssemblyPart.Load
            AssemblyPart loader = new AssemblyPart();
            Assembly assembly = loader.Load(mainAppSRI.Stream);
			
			//Now that the Assembly is loaded, create an instance of our UserControl
            this.Frame.Content = assembly.CreateInstance(&amp;quot;CompositeApp.MainPage&amp;quot;);
           
        }
&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;There&amp;rsquo;s one drawback to using this method to dynamically load a UserControl &amp;ndash; dependencies are not automatically loaded for you.&amp;nbsp; If your UserControl in the separate XAP has a dependency on 4 assemblies you must manually load those 4 assemblies before loading your UserControl or CreateInstance will fail.&amp;nbsp; The &lt;span style="text-decoration:line-through;"&gt;hack&lt;/span&gt; solution I used was to include the assembly references in the main shell application.&amp;nbsp; This doesn&amp;rsquo;t scale well though, since ideally you want the additional dependencies to be loaded dynamically as necessary.&amp;nbsp; There&amp;rsquo;s no way you&amp;rsquo;ll know today every assembly reference each sub app will need for the entire life of the shell.&amp;nbsp; It&amp;rsquo;s actually impossible since you&amp;rsquo;ll likely need a &amp;lsquo;new&amp;rsquo; assembly at some point down the road.&amp;nbsp; I saw some code fragments while looking for a solution which read the manifest in the XAP to determine what assemblies need to be loaded out of the (external) XAP.&amp;nbsp; If I were building this as a real world app, I would go that route.&amp;nbsp; If you know of a better way to handle this, I encourage you to share in the comments!&amp;nbsp; In a perfect world Frame.Navigate would allow you to specify a XAML file in a separate XAP and do all of this work for you.&amp;nbsp; Are you listening Silverlight team? ;)&lt;/p&gt;
&lt;p&gt;Ok, main hurdle down (dynamic loading of UserControl from separate XAP), it was time for the next challenge &amp;ndash; creating content!&amp;nbsp; I started out with a grid, because you can&amp;rsquo;t have a good application without a grid in there somewhere, right?&amp;nbsp; I used the XamWebGrid, and used it in a couple of places.&amp;nbsp; One on the main page which showed hierarchical data (Accounts and Transactions)&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.infragistics.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/tony_5F00_lombardo/image_5F00_3A273856.png"&gt;&lt;img height="500" width="644" src="http://blogs.infragistics.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/tony_5F00_lombardo/image_5F00_thumb_5F00_55CBC44C.png" alt="Image 2" border="0" title="Image 2" style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;Next I created another &amp;lsquo;page&amp;rsquo; or View which Visualized data in a Map.&amp;nbsp; In this scenario the map shapes came from my &amp;ldquo;Shapefile&amp;rdquo; and the data came from a SQL Database via WCF and LinqToSQL.&amp;nbsp; I think this probably mirrors the major use case out there, where the data is kept separate from the Shapefile.&amp;nbsp; &lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.infragistics.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/tony_5F00_lombardo/image_5F00_1595AAD2.png"&gt;&lt;img height="500" width="644" src="http://blogs.infragistics.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/tony_5F00_lombardo/image_5F00_thumb_5F00_673C2524.png" alt="Image 3" border="0" title="Image 3" style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;On the final Screen, I went with &amp;lsquo;live&amp;rsquo; updating data (Image 1).&amp;nbsp; Since this was just a demo, I used a DispatcherTimer to change my underlying datasource every second.&amp;nbsp; Since my underlying datasource was an ObservableCollection of INotifyPropertyChanged objects, my grid immediately showed any changes made to the underlying datasource.&amp;nbsp; The Grid does 2-way databinding by default.&amp;nbsp; Since my View still looked empty, I dropped a chart in there as well, and added a new datapoint to the chart&amp;rsquo;s DataPoints collection each second (representing the history of changes made to the grid).&amp;nbsp; The end result was a chart and grid showing updates every second, with the Chart &amp;ldquo;always in motion&amp;rdquo;.&amp;nbsp; It was a pretty impressive experience.&amp;nbsp; My next step is to see what this would look like with a real data feed.&amp;nbsp; I&amp;rsquo;m guessing with proper queuing in place, the experience should mirror my mock up almost exactly.&amp;nbsp; &lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://www.infragistics.com/community/aggbug.aspx?PostID=88744" width="1" height="1"&gt;</content><author><name>tonylii</name><uri>http://www.infragistics.com/profile/MjEwNg==</uri></author><category term="silverlight" scheme="http://www.infragistics.com/community/blogs/tony_lombardo/archive/tags/silverlight/default.aspx" /></entry><entry><title>Announcing the Infragistics MVP Program</title><link rel="alternate" type="text/html" href="/community/blogs/tony_lombardo/archive/2009/03/31/announcing-the-infragistics-mvp-program.aspx" /><id>/community/blogs/tony_lombardo/archive/2009/03/31/announcing-the-infragistics-mvp-program.aspx</id><published>2009-03-31T20:07:00Z</published><updated>2009-03-31T20:07:00Z</updated><content type="html">&lt;div style="position:relative;background-color:#ffc;padding:5px;"&gt;
&lt;p&gt;&lt;b&gt;Update:&lt;/b&gt; Since Tony has moved on from Infragistics, please contact Craig Shoemaker at cshoemaker [at] infragistics.com for any details regarding the MVP program.&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;I&amp;rsquo;m happy to announce that today marks the beginning of the formal Infragistics MVP program.&amp;nbsp; The program is designed to give thanks and recognition to those individuals who consistently go above and beyond to help out in the Infragistics community.&amp;nbsp; The awardees were chosen based on a number of characteristics, including activity in forums, community events, and sharing feedback with Infragistics.&amp;nbsp; &lt;/p&gt;
&lt;p&gt;So what do MVPs get?&amp;nbsp; Public recognition and fame of course.&amp;nbsp; Oh, and there&amp;rsquo;s a full subscription to &lt;a href="http://www.infragistics.com/dotnet/netadvantage.aspx#Overview"&gt;NetAdvantage for .NET&lt;/a&gt; as well as &lt;a href="http://www.infragistics.com/dotnet/netadvantage/silverlight/data-visualization.aspx#Overview"&gt;NetAdvantage for Silverlight Data Visualization&lt;/a&gt;.&amp;nbsp; In addition to the software, MVPs will be given access to early builds, and a private forum to facilitate feedback.&amp;nbsp; If you happen to run across one of the MVPs in the forums, be sure to congratulate him/her on the achievement.&amp;nbsp; &lt;/p&gt;
&lt;p&gt;I&amp;rsquo;m looking forward to watching the MVP community grow to include you one day as well.&amp;nbsp; If you ever want to nominate someone (including yourself) for the MVP award, send me an email with the nominee&amp;rsquo;s name and contact information along with a list of accomplishments.&amp;nbsp; &lt;/p&gt;
&lt;p&gt;&lt;i&gt;Coming Soon&lt;/i&gt;: You&amp;rsquo;ll also start to see content on the &lt;a href="http://community.infragistics.com/"&gt;community.infragistics.com&lt;/a&gt; site contributed by MVPs.&amp;nbsp; If you have content that you&amp;rsquo;d like to see go up on the &lt;a href="http://community.infragistics.com/"&gt;community.infragistics.com site&lt;/a&gt;, go ahead and email me with the details.&amp;nbsp; I&amp;rsquo;m always happy to see community members contributing content.&amp;nbsp; &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt; &lt;a href="http://blogs.infragistics.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/tony_5F00_lombardo/IgMvpLogoRotatedReflected_5F00_43836EBF.png"&gt;&lt;img style="border-right-width:0px;margin:8px 8px 0px 0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="IgMvpLogoRotatedReflected" alt="IgMvpLogoRotatedReflected" src="http://blogs.infragistics.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/tony_5F00_lombardo/IgMvpLogoRotatedReflected_5F00_thumb_5F00_69E5520A.png" align="left" border="0" height="240" width="156" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://www.infragistics.com/community/aggbug.aspx?PostID=85859" width="1" height="1"&gt;</content><author><name>tonylii</name><uri>http://www.infragistics.com/profile/MjEwNg==</uri></author><category term="community" scheme="http://www.infragistics.com/community/blogs/tony_lombardo/archive/tags/community/default.aspx" /></entry><entry><title>Another Code Camp, Another Good Time</title><link rel="alternate" type="text/html" href="/community/blogs/tony_lombardo/archive/2009/03/30/another-code-camp-another-good-time.aspx" /><id>/community/blogs/tony_lombardo/archive/2009/03/30/another-code-camp-another-good-time.aspx</id><published>2009-03-30T19:20:51Z</published><updated>2009-03-30T19:20:51Z</updated><content type="html">&lt;p&gt;Over the weekend I hopped a train up to Waltham where I spoke at the New England Code Camp 11.&amp;#160; As usual, there was a vibe in the air that made everything seem almost make believe – or maybe that was just the green tint on the projector..&amp;#160; Either way, if you haven’t been to a Code Camp yet, there’s no better time.&amp;#160; Free content, free food, and great opportunities for networking.&amp;#160; That’s not to mention the give-aways.&amp;#160; &lt;/p&gt;  &lt;p&gt;I spent a good amount of time in the Speakers lounge on Saturday and had the opportunity to meet some great people.&amp;#160; I was introduced to “Pocket Coffee”, a chocolate John Doucette’s his wife picked up in Rome.&amp;#160; It wasn’t any chocolate, it had an Espresso center.&amp;#160; After trying one, I was immediately hooked and started feverishly searching &lt;a href="http://www.amazon.com/Pocket-Coffee-Ferrero-Piece-Packs/dp/B000Y8Y5F4"&gt;Amazon.com&lt;/a&gt; to see where I could buy a case.&amp;#160; Right before I had to leave to catch my train,I got into a long discussion about HDD’s and what the platters are made out of.&amp;#160; Turned out I was talking to somewhat of an expert on the subject.&amp;#160; Igor Moochnick told me about how he re-uses computer parts in his robotics side projects.&amp;#160; All in all good fun, and it was great meeting you all.&amp;#160; &lt;/p&gt;  &lt;p&gt;The session itself was a hit (in my opinion).&amp;#160; I did an introductory level JavaScript talk, packing years of experience into an hour long discussion.&amp;#160; The session was more like a chalk talk than a standard “session”.&amp;#160; Actually I didn’t have a single PowerPoint slide prepared, and spent 99% of the time inside of Visual Studio or Internet Explorer.&amp;#160; If you were at the session and have any specific questions about the topics I covered feel free to use the comments section on this post.&amp;#160; &lt;/p&gt;  &lt;p&gt;I’m not sure who traveled the farthest to get to the Code Camp, but I know that I lost out to Steve Andrews and John Baird who drove up from the Philly area.&amp;#160; &lt;/p&gt;  &lt;p&gt;And speaking of Philly – The &lt;a href="http://www.phillydotnet.org/"&gt;Philly Code Camp&lt;/a&gt; is coming up on April 18th.&amp;#160; I’ll be there, just not speaking this time.&amp;#160; I’m doing something a little different that I think you’re going to like.&amp;#160; I’m setting up in the cafeteria all day, and I’ll be there to answer any questions you have about the Infragistics tools.&amp;#160; Want to know what’s in the next release?&amp;#160; Need help figuring out how to do something with one of the tools?&amp;#160; Just stop on by.&amp;#160; Feel free to bring your laptop and projects with you, we can do some hands on debugging.&amp;#160; &lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://www.infragistics.com/community/aggbug.aspx?PostID=85536" width="1" height="1"&gt;</content><author><name>tonylii</name><uri>http://www.infragistics.com/profile/MjEwNg==</uri></author><category term="community" scheme="http://www.infragistics.com/community/blogs/tony_lombardo/archive/tags/community/default.aspx" /></entry><entry><title>NetAdvantage ASP.NET Controls – The Next Generation</title><link rel="alternate" type="text/html" href="/community/blogs/tony_lombardo/archive/2009/03/26/netadvantage-asp-net-controls-the-next-generation.aspx" /><id>/community/blogs/tony_lombardo/archive/2009/03/26/netadvantage-asp-net-controls-the-next-generation.aspx</id><published>2009-03-26T20:33:00Z</published><updated>2009-03-26T20:33:00Z</updated><content type="html">&lt;p&gt;It’s a time of change here at Infragistics.&amp;#160; We’re way past the half way point on our “Aikido” (Now officially just AJAX) framework, and with the 9.1 release many of the remaining classic Infragistics controls are being re-born as Web 2.0 loving replacements.&amp;#160; I’ve got some mixed emotions, since I’ve been here long enough to have worked on these classics, but it’s an exciting time to see what the dev team has produced.&lt;/p&gt;  &lt;p&gt;I was just checking out the WebDataMenu for example, which replaces the WebMenu (part of UltraWebNavigator for those of you who have been with us from the start).&amp;#160; The WebDataMenu is databindable, and supports IEnumerable, XML, BindingList and ICollection.&amp;#160; Basically, if you’ve got data, the WebDataMenu can handle it.&amp;#160; DataBinding support is just the beginning though.&amp;#160; It’s also built with Web 2.0 ideals embedded in its core.&amp;#160; What do I mean?&amp;#160; Well, a quick look at the HTML source and you’ll see the WebDataMenu is composed of &amp;lt;ul&amp;gt;&amp;lt;/ul&amp;gt; elements.&amp;#160; Each Menu Item is a list item, meaning you can easily control the display of the WebDataMenu with CSS.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.infragistics.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/tony_5F00_lombardo/image_5F00_03AD055C.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://blogs.infragistics.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/tony_5F00_lombardo/image_5F00_thumb_5F00_0A600EDF.png" width="640" height="389" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Add keyboard navigation (IE, FireFox AND Safari) and you’ve got a killer menu.&amp;#160; Take it one step further and allow Menu Items to be templated and you’ve got the menu to rule them all!&amp;#160; Seriously though, this menu is uber cool.&amp;#160; The release is right around the corner, so you should be able to download and try it out very soon.&amp;#160; Like before you do your income taxes soon..&lt;/p&gt;  &lt;p&gt;Stay tuned for more about the 9.1 release.&amp;#160; You can also follow along on &lt;a href="http://twitter.com/igtony"&gt;Twitter&lt;/a&gt; as I push out information over the next couple of weeks.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://www.infragistics.com/community/aggbug.aspx?PostID=84770" width="1" height="1"&gt;</content><author><name>tonylii</name><uri>http://www.infragistics.com/profile/MjEwNg==</uri></author><category term="asp.net" scheme="http://www.infragistics.com/community/blogs/tony_lombardo/archive/tags/asp.net/default.aspx" /></entry><entry><title>Social Networking Fan? Information Junkie?</title><link rel="alternate" type="text/html" href="/community/blogs/tony_lombardo/archive/2009/03/26/social-networking-fan-information-junkie.aspx" /><id>/community/blogs/tony_lombardo/archive/2009/03/26/social-networking-fan-information-junkie.aspx</id><published>2009-03-26T18:17:00Z</published><updated>2009-03-26T18:17:00Z</updated><content type="html">&lt;p&gt;If you haven&amp;rsquo;t found us yet, Infragistics is on both &lt;a href="http://www.facebook.com/home.php#/pages/Infragistics/23425186508"&gt;Facebook&lt;/a&gt; and &lt;a href="http://twitter.com/infragistics"&gt;Twitter&lt;/a&gt;.&amp;nbsp; If you use either of these networks, you can follow us and get all of the latest information in a single place. &lt;/p&gt;
&lt;p&gt;There are also a bunch of Infragistics employees up on twitter, for example you can follow me &lt;a href="http://twitter.com/igtony"&gt;@igtony&lt;/a&gt;.&amp;nbsp; I&amp;rsquo;ve just started talking about the 2009.1 release which I&amp;rsquo;ve tagged with &lt;a href="http://search.twitter.com/search?q=%23na91"&gt;#na91&lt;/a&gt;.&amp;nbsp; Tagging allows you to easily search for a keyword.&amp;nbsp; The # (hash) is used to differentiate ordinary words from tags.&amp;nbsp; You can then use &lt;a href="http://search.twitter.com"&gt;search.twitter.com&lt;/a&gt; to search for a particular tag.&amp;nbsp; &lt;/p&gt;
&lt;p&gt;There&amp;rsquo;s your tip to staying connected for today!&lt;/p&gt;
&lt;p&gt;BTW, I&amp;rsquo;m headed up to Waltham MA tomorrow to speak at THE &lt;a href="http://blogs.msdn.com/cbowen/archive/2009/02/09/announcing-new-england-code-camp-11.aspx"&gt;New England Code Camp&lt;/a&gt;.&amp;nbsp; I&amp;rsquo;ll be up there tomorrow night (3/27/2009) looking for something to do.&amp;nbsp; Shoot me a message on twitter (a tweet) if you&amp;rsquo;re in the area!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://www.infragistics.com/community/aggbug.aspx?PostID=84738" width="1" height="1"&gt;</content><author><name>tonylii</name><uri>http://www.infragistics.com/profile/MjEwNg==</uri></author><category term="community" scheme="http://www.infragistics.com/community/blogs/tony_lombardo/archive/tags/community/default.aspx" /></entry></feed>