<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://xceed.com/CS/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>Component Insider</title><link>http://xceed.com/CS/blogs/componentinsider/default.aspx</link><description /><dc:language>en</dc:language><generator>CommunityServer 2.1 SP2 (Debug Build: 61120.2)</generator><item><title>Using Xceed DataGrid for Silverlight in SharePoint 2010</title><link>http://xceed.com/CS/blogs/componentinsider/archive/2010/12/16/using-xceed-datagrid-for-silverlight-in-sharepoint-2010.aspx</link><pubDate>Thu, 16 Dec 2010 18:46:00 GMT</pubDate><guid isPermaLink="false">14592c03-f9d0-4f6b-b4cd-71e0e1b1f679:29487</guid><dc:creator>Odi [Xceed]</dc:creator><slash:comments>1</slash:comments><comments>http://xceed.com/CS/blogs/componentinsider/comments/29487.aspx</comments><wfw:commentRss>http://xceed.com/CS/blogs/componentinsider/commentrss.aspx?PostID=29487</wfw:commentRss><description>&lt;P&gt;This is a guest blog post written by Johnny Tordgeman from &lt;A href="http://www.g-s.co.il/"&gt;Guardian Information Systems&lt;/A&gt;. He has his own &lt;A href="http://blogs.microsoft.co.il/blogs/johnnyt"&gt;blog&lt;/A&gt;, check it out.&lt;/P&gt;

&lt;P&gt;---&lt;/P&gt;

&lt;P&gt;Hey everyone, my name is Johnny Tordgeman and I will be posting some guest posts here on SharePoint 2010 integration with Xceed DataGrid for Silverlight. I would like to thank Odi for giving me the opportunity to show everyone how easy it is to combine Xceed DataGrid for Silverlight with the SharePoint 2010 platform.&lt;/P&gt;

&lt;P&gt;In this first post I’m going to show the basic connection of a SharePoint list with the datagrid by building a simple web part that will show all the fields of the default Tasks list using&amp;nbsp;Xceed’s datagrid.&lt;/P&gt;

&lt;P&gt;To keep things simple, I will only concentrate on the Silverlight&amp;nbsp;portion for this web part and display it using SharePoint’s Silverlight web part, but on a later post we will add a custom web part to render our Silverlight application and pass parameters such as the list we want to show from SharePoint.&lt;/P&gt;&lt;P&gt;[Ed. note: If you are going to try to run the Silverlight web part on your development machine, see the note at the end of this post]&lt;/P&gt;

&lt;P&gt;To get started, create a new Silverlight project and name it SLSPDataGrid then uncheck the “Host the Silverlight application in a new Web site” box and click OK.&lt;/P&gt;

&lt;P&gt;&lt;BR&gt;&lt;IMG src="http://xceed.com/CS/photos/odi/images/29488/original.aspx"&gt;&lt;/P&gt;

&lt;P&gt;To make this example as simple as possible we will use SharePoint’s REST web service to get the data from our Tasks list.&lt;/P&gt;

&lt;P&gt;Right click on the project name and select “Add Service Reference”. You will get the following screen:&lt;/P&gt;

&lt;P&gt;&lt;IMG style="width:635px;height:514px;" src="http://xceed.com/CS/photos/odi/images/29489/original.aspx" width="635" height="514"&gt;&lt;/P&gt;

&lt;P&gt;&lt;BR&gt;In the address box type in the address of your SharePoint site and add "/_vti_bin/ListData.svc" to it.&lt;/P&gt;

&lt;P&gt;For example, if your site is &lt;A href="http://jtordgeman"&gt;http://jtordgeman&lt;/A&gt; the address box should read: &lt;A href="http://jtordgeman/_vti_bin/ListData.svc"&gt;http://jtordgeman/_vti_bin/ListData.svc&lt;/A&gt;. [Ed. note: If you have trouble accessing this .svc file, see this solution: &lt;A href="http://blog.hompus.nl/2010/03/26/could-not-load-type-idataserviceupdateprovider-when-using-rest-with-sharepoint-2010/"&gt;http://blog.hompus.nl/2010/03/26/could-not-load-type-idataserviceupdateprovider-when-using-rest-with-sharepoint-2010/&lt;/A&gt;]&lt;/P&gt;

&lt;P&gt;Change the namespace to SharePointContext and click OK.&lt;/P&gt;

&lt;P&gt;Next, let’s add the Xceed datagrid dll to our project. Right click on "References" and choose "Add Reference", then click on “Browse” tab and navigate to where Xceed is installed. Click on "Bin" and then add "Xceed.Silverlight.DataGrid.v1.0.dll".&lt;BR&gt;&lt;BR&gt;Your solution should look similar to this:&lt;BR&gt;&lt;BR&gt;&lt;IMG src="http://xceed.com/CS/photos/odi/images/29490/original.aspx"&gt;&lt;/P&gt;

&lt;P&gt;In MainPage.xaml add the following line to the UserControl declaration:&lt;BR&gt;&lt;BR&gt;

&lt;SPAN style="font-family:Courier;"&gt;

xmlns:sldg="http://schemas.xceed.com/silverlight/xaml/datagrid"&lt;/SPAN&gt;&lt;/P&gt;&lt;SPAN style="font-family:Courier;"&gt;

&lt;/SPAN&gt;

&lt;P&gt;Now add the control under LayoutRoot using the sldg namespace. Your MainPage.xaml file should look like this:&lt;/P&gt;

&lt;SPAN style="font-family:Courier;"&gt;

&lt;P&gt;&amp;lt;UserControl x:Class="SLSPDataGrid.MainPage"&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; xmlns="&lt;A href="http://schemas.microsoft.com/winfx/2006/xaml/presentation"&gt;http://schemas.microsoft.com/winfx/2006/xaml/presentation&lt;/A&gt;"&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; xmlns:x="&lt;A href="http://schemas.microsoft.com/winfx/2006/xaml"&gt;http://schemas.microsoft.com/winfx/2006/xaml&lt;/A&gt;"&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; xmlns:d="&lt;A href="http://schemas.microsoft.com/expression/blend/2008"&gt;http://schemas.microsoft.com/expression/blend/2008&lt;/A&gt;"&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; xmlns:mc="&lt;A href="http://schemas.openxmlformats.org/markup-compatibility/2006"&gt;http://schemas.openxmlformats.org/markup-compatibility/2006&lt;/A&gt;"&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; mc:Ignorable="d"&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; xmlns:sldg="&lt;A href="http://schemas.xceed.com/silverlight/xaml/datagrid"&gt;http://schemas.xceed.com/silverlight/xaml/datagrid&lt;/A&gt;"&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; d:DesignHeight="300" d:DesignWidth="400"&amp;gt;&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Grid x:Name="LayoutRoot" Background="White"&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;sldg:DataGridControl x:Name="dataGrid" ItemsSource="{Binding}"/&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/Grid&amp;gt;&lt;BR&gt;&amp;lt;/UserControl&amp;gt;&lt;/P&gt;
&lt;/SPAN&gt;
&lt;P&gt;We have added the control to our UI layer, so all we need now is to set its data. Switch to MainPage.xaml.cs file and following using statements:&lt;/P&gt;

&lt;SPAN style="font-family:Courier;"&gt;

&lt;P&gt;using System.Data.Services.Client;&lt;BR&gt;using SLSPDataGrid.SharePointContext;&lt;/P&gt;

&lt;/SPAN&gt;

&lt;P&gt;Inside the MainPage constructor register the Loaded event by typing the following line under InitializeComponent():&lt;/P&gt;

&lt;SPAN style="font-family:Courier;"&gt;

&lt;P&gt;this.Loaded += new RoutedEventHandler(MainPage_Loaded);&lt;/P&gt;

&lt;/SPAN&gt;

&lt;P&gt;Finally, type the following method to your code:&lt;/P&gt;

&lt;SPAN style="font-family:Courier;"&gt;

&lt;P&gt;void MainPage_Loaded(object sender, RoutedEventArgs e)&lt;BR&gt;{&lt;BR&gt;&amp;nbsp; SharePointContext.HomeDataContext _context = new SharePointContext.HomeDataContext(new Uri("&lt;A href="http://jtordgeman/_vti_bin/ListData.svc/"&gt;http://jtordgeman/_vti_bin/ListData.svc/&lt;/A&gt;", UriKind.Absolute));&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR&gt;&amp;nbsp; this.DataContext = _context.Tasks.IncludeTotalCount();&lt;BR&gt;}&lt;/P&gt;

&lt;/SPAN&gt;

&lt;P&gt;A few things to note:&lt;BR&gt;&lt;BR&gt;1)&amp;nbsp;Your context name might be different then mine (HomeDataContext). It’s best to type SharePointContext. And check in the intellisense for your context name.&lt;BR&gt;2)&amp;nbsp;The url that you pass to the context instance must be the same one you typed when we added the service reference.&lt;/P&gt;

&lt;P&gt;Build your project, upload the .xap file to a dir in your SharePoint site and add the Silverlight web part to a page. Provide the web part with the address for your xap file and… you’re all done! You should see all the fields of the task list in your Xceed datagrid, with smooth scrolling, and automatic background data virtualization&amp;nbsp;(in case you have hundreds or thousands of tasks) already enabled.&lt;/P&gt;

&lt;P&gt;Please feel free to contact me on Twitter (@jtordgeman) or on my blog with any question you might have, and I’ll see you on the next post :)&lt;/P&gt;&lt;P&gt;---&lt;/P&gt;&lt;P&gt;Note: You will need to add a clientaccesspolicy.xml or crossdomain.xml file to the root of your SharePoint website if you don't use the Silverlight web part on the same server as SharePoint (for example if SharePoint is hosted on &lt;A href="http://mysharepoint.com"&gt;http://mysharepoint.com&lt;/A&gt; and you query it from a silverlight app hosted on &lt;A href="http://mysharepoint2.com"&gt;http://mysharepoint2.com&lt;/A&gt;).&lt;/P&gt;&lt;P&gt;&lt;BR&gt;&lt;BR&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://xceed.com/CS/aggbug.aspx?PostID=29487" width="1" height="1"&gt;</description><category domain="http://xceed.com/CS/blogs/componentinsider/archive/tags/Silverlight/default.aspx">Silverlight</category><category domain="http://xceed.com/CS/blogs/componentinsider/archive/tags/ODATA/default.aspx">ODATA</category><category domain="http://xceed.com/CS/blogs/componentinsider/archive/tags/SharePoint+2010/default.aspx">SharePoint 2010</category><category domain="http://xceed.com/CS/blogs/componentinsider/archive/tags/WCF+Data+Services/default.aspx">WCF Data Services</category></item><item><title>Datagrid’s very capable little brother.</title><link>http://xceed.com/CS/blogs/componentinsider/archive/2010/12/06/datagrid-s-very-capable-little-brother.aspx</link><pubDate>Mon, 06 Dec 2010 16:54:00 GMT</pubDate><guid isPermaLink="false">14592c03-f9d0-4f6b-b4cd-71e0e1b1f679:29373</guid><dc:creator>Odi [Xceed]</dc:creator><slash:comments>0</slash:comments><comments>http://xceed.com/CS/blogs/componentinsider/comments/29373.aspx</comments><wfw:commentRss>http://xceed.com/CS/blogs/componentinsider/commentrss.aspx?PostID=29373</wfw:commentRss><description>&lt;P&gt;Datagrids are very flexible controls. They often contain a lot of information and provide tools to visually organize this information and sift through it.&lt;/P&gt;&lt;P&gt;Before WPF/Silverlight, you could not create a data template for items in a listbox or other data controls. It was not feasible to attempt to present tabular data (e.g., name, age, description, photo) beautifully in a listbox item. Datagrids and listviews were therefore a handy solution.&lt;/P&gt;&lt;P&gt;Now that you can template the elements of a listbox to incorporate the key information you want to display, the lowly listbox has gained superhero data visualization powers.&lt;/P&gt;&lt;P&gt;That’s where Xceed comes in. As datagrid experts, we were naturally concerned with the trends we have been observing in the industry. Trends towards simpler interfaces, the multiplication of smaller screens, and touch interfaces. We saw not only that datagrids would have to adapt but that the listbox has gained in importance in a world where developers are simplifying the experience and hiding extra data until the end-user specifically requests to see it.&lt;/P&gt;&lt;P&gt;The listbox is a wonderful control not only for desktop experiences, but for Windows Phone 7 and mobile devices. We just have a tough time visualizing end users using a datagrid on a 4” screen. Columns and rows, and editing data within the cells of those columns and rows, don’t seem to play well there.&lt;/P&gt;&lt;P&gt;Some say that listboxes are the new datagrids. Here's&amp;nbsp;one&amp;nbsp;&lt;A title="Scott Barnes DataGrid versus ListBox: FIGHT!" href="http://www.riagenic.com/archives/193"&gt;blog post&lt;/A&gt; that had given us some food for thought.&lt;/P&gt;&lt;P&gt;So we set out to improve the listbox. Today, we launched &lt;A title="Xceed Ultimate ListBox for Silverlight" href="http://xceed.com/ListBox_Silverlight_Intro.html"&gt;Xceed Ultimate ListBox for Silverlight&lt;/A&gt;.&lt;/P&gt;&lt;P&gt;&lt;IMG style="width:428px;height:172px;" title="Listbox screenshot 1" alt="Listbox screenshot 1" align="baseline" src="http://xceed.com/CS/photos/odi/images/29378/original.aspx" width="428" height="172"&gt;&lt;/P&gt;&lt;P&gt;&lt;IMG style="width:428px;height:172px;" title="Listbox screenshot 2" alt="Listbox screenshot 2" align="baseline" src="http://xceed.com/CS/photos/odi/images/29376/original.aspx" width="428" height="172"&gt;&lt;/P&gt;&lt;P&gt;It is the first control Xceed has made that mimics an existing API (the one for the standard Silverlight listbox) instead of providing an entirely new one. We wanted as little of a learning curve as possible. It is also the first control Xceed has ever launched at such a low price point ($89 per developer). We want the barrier to entry to be as low as possible as well.&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Why a better listbox?&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;In the world of Silverlight clients, whether desktop ones or for mobile devices, a lot of the data loaded into listboxes comes over the air or wire. Listboxes aren’t just used to display 5-10 items from an array of objects in memory, they are also used to display hundreds or sometimes thousands of items from remote data sources.&lt;/P&gt;&lt;P&gt;But as the Silverlight listbox works today, it either has to load all of those remote items first, causing the end user to wait while that happens, or it will load only some of the data first, and load it on an as-needed basis. The latter technique is called data virtualization, or paging.&lt;/P&gt;&lt;P&gt;In practically all the implementations we’ve seen, listboxes implementing data virtualization always have usability problems. Some of them make the end user click a “load more” button and wait every time they want more data. Others load the data automatically when you reach the bottom, but still do so only just-in-time and make the end user wait. Most of them have scrollbar thumbs that jump around.&lt;/P&gt;&lt;P&gt;What if the listbox was built with the idea that end users should be able to have an effortless and snappy experience when data virtualization is being used, similar to when the entire data source has already been loaded into the listbox? That’s what Xceed has worked on. I want to call it “super data virtualization”, but on the web site it is simply called “advanced background record retrieval”. Here are the innovations we have put into our super data virtualization:&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;&lt;STRONG&gt;Automatic record retrieval.&lt;/STRONG&gt; No “load more” buttons.&lt;/LI&gt;&lt;LI&gt;&lt;STRONG&gt;Background record retrieval.&lt;/STRONG&gt; Listbox never freezes, always responds to end-user’s navigation commands.&lt;/LI&gt;&lt;LI&gt;&lt;STRONG&gt;Passive pre-fetching.&lt;/STRONG&gt; More than what appears in the listbox gets retrieved, but not more than is needed.&lt;/LI&gt;&lt;LI&gt;&lt;STRONG&gt;Active pre-fetching.&lt;/STRONG&gt; When the listbox UI is not scrolling, the listbox actively retrieves more records to fill its cache.&lt;/LI&gt;&lt;LI&gt;&lt;STRONG&gt;Fluid UI.&lt;/STRONG&gt; Without smooth scrolling, the perceived response time to load more data is that of the complete round-trip of request/response to the server. With smooth scrolling animating for about 0.8s and items that fade in when they arrive, the perceived response time begins only after the animation has completed if items still have not arrived.&lt;/LI&gt;&lt;LI&gt;&lt;STRONG&gt;Discovery-less start up.&lt;/STRONG&gt; To avoid scrollbar thumbs jumping around, or to support grouping, a data-virtualized listbox typically would need to know the total row count, number and size of groups, or other information about the data source. Not this listbox, allowing it to start up faster than any other can.&lt;/LI&gt;&lt;LI&gt;&lt;STRONG&gt;Optimized navigation.&lt;/STRONG&gt; The listbox requests data from the data source using relative queries instead of absolute index-based queries. Such queries execute faster on the server so navigating through the listbox is snappier. We know of no other listbox that works this way.&lt;/LI&gt;&lt;LI&gt;&lt;STRONG&gt;Query grouping and throttling.&lt;/STRONG&gt; During scrolling, queries to the server for more data rows are grouped together when possible. This works because queries are asynchronous and are typically obtaining data not currently in view. During heavy scrolling, queries that are no longer needed are canceled, thereby reducing the load on the server as well as the listbox’s own CPU use.&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;The goal is to provide lightning fast display of remote data in a listbox. See &lt;A title="'Impress Me' demo with Netflix ODATA catalog" href="http://demo.xceed.com/ListBox_Silverlight/Demo/#/ImpressMe/ImpressMe/ImpressMe"&gt;what we’ve accomplished&lt;/A&gt; with Netflix’s online catalog of 130,000+ movies thanks to the listbox connected via ODATA / WCF Data Services.&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;What else does Xceed Ultimate ListBox for Silverlight bring to the table?&lt;/STRONG&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;Built-in search box, of course it works with the data virtualization.&lt;/LI&gt;&lt;LI&gt;Completely fluid UI throughout. Slick and fast smooth scrolling, insert/delete items, etc.&lt;BR&gt;6 beautiful themes.&lt;/LI&gt;&lt;LI&gt;Deep built-in support for WCF Data Services / ODATA and WCF Ria Services.&lt;/LI&gt;&lt;LI&gt;Complete grouping support. Displays group headers between items in different groups.&lt;/LI&gt;&lt;LI&gt;Group headers are “sticky” just like with the iOS listbox. They are always visible.&lt;/LI&gt;&lt;LI&gt;Group navigation (prev/next) and WP7-like pop-up index to jump to specific groups.&lt;/LI&gt;&lt;LI&gt;Very little learning curve, simply replace your current listbox and turn on new features.&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;There’s more, see the &lt;A title="Features of Xceed Ultimate ListBox for Silverlight" href="http://xceed.xcd/Listbox_Silverlight_Features.html"&gt;complete feature list&lt;/A&gt;.&lt;/P&gt;&lt;P&gt;We hope you love this new control as much as we do and help us spread the word about it! Tweet it, Facebook it, blog it, show it to colleagues... it's all good!&lt;/P&gt;&lt;P&gt;Thanks,&lt;BR&gt;Odi&lt;BR&gt;&lt;/P&gt;&lt;img src="http://xceed.com/CS/aggbug.aspx?PostID=29373" width="1" height="1"&gt;</description><category domain="http://xceed.com/CS/blogs/componentinsider/archive/tags/Smooth+scrolling/default.aspx">Smooth scrolling</category><category domain="http://xceed.com/CS/blogs/componentinsider/archive/tags/data+virtualization/default.aspx">data virtualization</category><category domain="http://xceed.com/CS/blogs/componentinsider/archive/tags/list+box/default.aspx">list box</category><category domain="http://xceed.com/CS/blogs/componentinsider/archive/tags/longlistselector/default.aspx">longlistselector</category><category domain="http://xceed.com/CS/blogs/componentinsider/archive/tags/listbox/default.aspx">listbox</category><category domain="http://xceed.com/CS/blogs/componentinsider/archive/tags/paging/default.aspx">paging</category></item><item><title>Silverlight Datagrid: Magical results</title><link>http://xceed.com/CS/blogs/componentinsider/archive/2010/07/29/silverlight-datagrid-magical-results.aspx</link><pubDate>Thu, 29 Jul 2010 18:06:00 GMT</pubDate><guid isPermaLink="false">14592c03-f9d0-4f6b-b4cd-71e0e1b1f679:27810</guid><dc:creator>Odi [Xceed]</dc:creator><slash:comments>1</slash:comments><comments>http://xceed.com/CS/blogs/componentinsider/comments/27810.aspx</comments><wfw:commentRss>http://xceed.com/CS/blogs/componentinsider/commentrss.aspx?PostID=27810</wfw:commentRss><description>&lt;P&gt;Xceed has been working for over 1.5 years and has put over 18000 person-hours of work on one single new Silverlight control, so that with only a couple of lines of code, you can achieve some magic.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;A bit of history.&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;At Xceed, we've been&amp;nbsp;creating components and class libraries for Windows developers for 16 years. Our first datagrid control was started 10 years ago. We offered a variety of other UI controls as well, such as charts, treeviews, menus, navigation and docking window controls. Like other component vendors, we created a “collection” or “suite” of many controls. Five years ago, our entire UI controls team began to focus solely on developing datagrid controls.&lt;/P&gt;
&lt;P&gt;&lt;IMG style="WIDTH:164px;HEIGHT:141px;" title="Jack of all trades" alt="Jack of all trades" align=left src="http://xceed.com/CS/photos/odi/images/27808/original.aspx" width=164 height=141&gt;&lt;/P&gt;
&lt;P&gt;By putting all our energy exclusively behind datagrids, we felt we could do a better job than by spreading ourselves thin working on many controls. We could elevate datagrids to the next level, and cater to developers who would rather have a great datagrid than a collection of mediocre controls. We would target developers who value quality over quantity.&lt;/P&gt;
&lt;P&gt;This move was made when we began developing Xceed DataGrid for WPF. It allowed Xceed to be the first to market with a datagrid for WPF (released January 2007, months to years before the other component vendors had theirs ready). We were not only first, but we had an amazing product that got impressive &lt;A title="Xceed DataGrid for WPF Testimonials" href="http://xceed.com/Grid_WPF_Testimonials.html"&gt;testimonials&lt;/A&gt;. Microsoft even used it in parts of Visual Studio 2010.&lt;/P&gt;
&lt;P&gt;Our competitors kept their existing strategy of creating a wide variety of UI controls. Their datagrids received relatively little love. In contrast, with only one product type to think about, we were able to churn out an impressive 39 updates in 3.5 years. Customers were rarely kept waiting for resolutions to issues or new features. Today our WPF datagrid leads in stability and features, and offers perhaps the best user experience of any datagrid on any platform.&lt;/P&gt;
&lt;P&gt;&lt;IMG style="WIDTH:111px;HEIGHT:140px;" title="Rabbit out of a hat" alt="Rabbit out of a hat" align=middle src="http://xceed.com/CS/photos/odi/images/27807/secondarythumb.aspx" width=111 height=140&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;So what's new in the datagrid department that’s magical?&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;If you take a look at the competition's Silverlight datagrids and marketing for them, you'll see a recurring message: everyone claims that their datagrid is fast. "&lt;EM&gt;Blazing fast&lt;/EM&gt;" says one. "&lt;EM&gt;The fastest&lt;/EM&gt;" says another. Some of them are indeed fast, but in order to be fast, they have to load up the entire data source first.&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;&lt;/P&gt;
&lt;P&gt;&lt;IMG style="WIDTH:224px;HEIGHT:186px;" title=Spartan alt=Spartan align=right src="http://xceed.com/CS/photos/odi/images/27806/original.aspx" width=224 height=186&gt;&lt;/P&gt;
&lt;P&gt;That might be OK for Windows Forms applications accessing a local SQL server, however, this is &lt;STRIKE&gt;Sparta&lt;/STRIKE&gt; Silverlight. Many apps built with Silverlight will be accessing data sources that are somewhere else on the internet, not located on the user’s own computer or on a company’s speedy intranet. Having to wait for hundreds (or thousands) of data rows to be transferred over the internet before your datagrid is functional yields a poor user experience. It also drains server and network resources, and client memory.&lt;/P&gt;
&lt;P&gt;Web developers have been facing this challenge for years.&lt;/P&gt;
&lt;P&gt;To avoid having to load all the data, Web developers use a pattern called "paging". If you've ever performed a Google search, you are familiar with paging. A Google search often yields thousands or millions of results, but Google only displays the first 10, and then presents you with a paging interface, providing you with “next page” and “previous page” navigation.&lt;/P&gt;
&lt;P&gt;Most Silverlight datagrids have adopted paging as their solution to working with remote data sources. You put them into a special “virtual” or “server” mode. That’s where things fall apart.&lt;/P&gt;
&lt;P&gt;The fast scrollbar experience disappears, replaced with paging navigation. Clicking on “next page” does nothing until a round trip to the database is completed and the next page of results is delivered. Unlike with Google searches, this can take seconds, and meanwhile the datagrid’s user interface is frozen. These delays are frustrating and reflect upon your entire application.&lt;/P&gt;
&lt;P&gt;&lt;IMG style="WIDTH:160px;HEIGHT:107px;" title=Turtle alt=Turtle align=left src="http://xceed.com/CS/photos/odi/images/27809/secondarythumb.aspx" width=160 height=107&gt;There’s nothing blazing fast about it.&lt;/P&gt;
&lt;P&gt;That might explain why no other Silverlight datagrid currently provides a demo of the datagrid accessing a remote data source.&amp;nbsp; The paging or data virtualization demos all use local or randomly generated data, not data on a server somewhere&amp;nbsp;on the internet.&lt;/P&gt;
&lt;P&gt;Now wouldn’t it be great if a datagrid could feel and behave as if all the data was already loaded, even if the data was on a remote server? Using a scrollbar instead of a paging interface? Wouldn’t it be great if we didn’t have to wait every time we navigated forwards or backwards for the remote database to respond?&lt;/P&gt;
&lt;P&gt;That’s what Xceed set out to do, and we believe we have achieved this goal. We designed and built an entirely new datagrid built from the ground up with asynchronous data virtualization in mind. We implemented a number of important advances in data virtualization and datagrid user interface behavior&amp;nbsp;that all work together to make browsing and editing remote data feel almost as fast as as working with local data. None of these advances have ever been done in a datagrid up until now.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;These advances are, on a high-level:&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;A Fluid UI that helps mask network lag&lt;/LI&gt;
&lt;LI&gt;An intelligent background record retrieval system&lt;/LI&gt;
&lt;LI&gt;Optimized network communications&lt;/LI&gt;
&lt;LI&gt;Asynchronous editing and validation&lt;BR&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Let’s start with the Fluid UI. A Fluid UI is an animated one, where the content it presents is given a real-world feel. When items move in a Fluid UI, they don’t jump to their new position, they animate, with physics-like motion, to their new location. Things happen smoothly.&lt;/P&gt;
&lt;P&gt;So how does that help mask network lag? It’s all about perception. Here is the scenario with typical datagrids: the user clicks “line down” or “page down” or “next page”. The datagrid immediately launches a query for more data. When that data comes in, only then does the datagrid update its display by jumping down one line or displaying the next page. &lt;EM&gt;The perceived response time is that of the complete round-trip of request/response to the server.&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;For example, if clicking “next page” takes 1.5s to obtain and display data from the data source, then the perceived waiting time is the entire 1.5s, even if a “loading” animation is displayed somewhere on the grid’s surface to acknowledge the command.&lt;/P&gt;
&lt;P&gt;On the other hand, with a Fluid UI, when the user clicks “line down” or “page down”, an animation to the next line or page immediately begins. This animation typically takes about 0.8s to complete. During this time, the end user sees “dummy” data rows animate into view – exactly as expected. The end-user feels that everything is responding and working as expected, even if the dummy data rows have no data in them yet. When the data arrives, it fades in smoothly.&lt;/P&gt;
&lt;P&gt;In this scenario, even if the database query (launched at the same time as the animation starts) takes 1.5s to complete, the true perceived waiting time starts only after the animation has completed, and only if the data hasn't arrived by that time. The effective waiting time in the above example is reduced to 0.8s – half the time.&lt;/P&gt;
&lt;P&gt;The next advance is the use of an intelligent background record retrieval system. We also call it Asynchronous Data Virtualization, but either way, it’s new in datagrids.&lt;/P&gt;
&lt;P&gt;In order to be able to launch database queries for more rows to display without freezing the UI, the data virtualization mechanism has to work in the background. No other Silverlight datagrid does this (actually we believe no other company's datagrid on any platform does this). Without being asynchronous, when data is being accessed from the data source, all UI interaction is halted. That means users can’t click at their pace to move forward a few pages, nor change their mind and scroll in the opposite direction (until a round-trip to the server completes). It feels sluggish.&lt;/P&gt;
&lt;P&gt;One Silverlight datagrid has implemented “background loading”, but that only works when you are loading the entire data source into the datagrid, not when getting the data in portions as needed. It also means that while the entire data source is being transferred to the datagrid, the scrollbar thumb is constantly getting smaller, moving up, and the datagrid is slow. Another datagrid has implemented "Stealth Paging" but it offers no advantages whatsoever over regular paging UI except to provide a scrollbar.&lt;/P&gt;
&lt;P&gt;Why is Xceed’s background retrieval “intelligent”? Because we have added “passive and active pre-fetching” to the mix.&lt;/P&gt;
&lt;P&gt;What is passive pre-fetching? When a typical data virtualizing or paging datagrid first loads up, it queries for the first page of data to display. But why stop there? We know that there are two possible navigation commands an end-user can do. The first is to scroll down or go to the next page. The second is to go to a specific page. In a typical datagrid, if the user scrolls down (or up), it is guaranteed that the end-user will be kept waiting, because the next (or previous) page of data has to be requested from the server.&lt;/P&gt;
&lt;P&gt;Why not, when requesting data from the server, ask for a bit more data than we need to display on that first page? Why not ask for an additional few pages, if the overhead of doing so is acceptable? The result is that, when the user starts scrolling down, there is no waiting. When the buffer runs out, a new request is made for more data, again asking for more than the next page.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Active pre-fetching: the icing on the cake.&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;When the datagrid is idle, meaning the end-user is not performing any actions, the datagrid runs a background task that makes sure that the buffer of pages before and after the one currently being displayed is kept full. If the buffer is nearly empty, why should the datagrid just sit there doing nothing? Doing nothing means that it will be a near certainty that the buffer will run out sooner and the end-user will experience lag.&lt;/P&gt;
&lt;P&gt;Active pre-fetching makes the datagrid work harder to preserve the illusion that all the data is actually already loaded. It helps silently query for more data so that the datagrid is more often able to display the previous or next page with absolutely no lag at all.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Optimized network communications.&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;We’ve also advanced the state of the art in how queries are made to the data source. This comprises 3 innovations:&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;1. No discovery required:&lt;/STRONG&gt; Unlike other data virtualized datagrids, this datagrid does not require knowing the total row count, number and size of groups, or any other information about the data source. This eliminates a sizeable extra query that all other datagrids that support data virtualization require, making the Xceed datagrid load faster than any other.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;2. Optimized navigation:&lt;/STRONG&gt; The datagrid requests data from the data source using relative queries instead of absolute index-based queries. Such queries execute faster on the server so navigating through the datagrid is snappier. We know of no other datagrid that works this way.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;3. Query grouping and throttling:&lt;/STRONG&gt; During scrolling, queries to the server for more data rows are grouped together when possible. This works because queries are asynchronous and are typically obtaining data not currently in view. During heavy scrolling, queries that are no longer needed are cancelled, thereby reducing the load on the server as well as the datagrid’s own CPU use.&lt;/P&gt;
&lt;P&gt;So to conclude, I’ve talked about 7 techniques (Fluid UI, background data virtualization, passive and active pre-fetching, and three query optimizations) that we’ve applied to the datagrid’s data virtualization that all aim to make our Silverlight datagrid the only one to provide seemingly lightning fast access to remote data. Or put another way, it lets end-users access remote data as fast as local.&lt;/P&gt;
&lt;P&gt;For a description of what is actually happening under the hood, see &lt;A title="Data Virtualization: Load Smarter, Not Harder" href="http://xceed.com/CS/blogs/dontpanic/archive/2010/07/28/data-virtualization-load-smarter-not-harder.aspx"&gt;Jenny's blog post&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;Odi&lt;BR&gt;&lt;/P&gt;&lt;img src="http://xceed.com/CS/aggbug.aspx?PostID=27810" width="1" height="1"&gt;</description><category domain="http://xceed.com/CS/blogs/componentinsider/archive/tags/Silverlight/default.aspx">Silverlight</category><category domain="http://xceed.com/CS/blogs/componentinsider/archive/tags/Smooth+scrolling/default.aspx">Smooth scrolling</category><category domain="http://xceed.com/CS/blogs/componentinsider/archive/tags/performance/default.aspx">performance</category><category domain="http://xceed.com/CS/blogs/componentinsider/archive/tags/DataGrid/default.aspx">DataGrid</category><category domain="http://xceed.com/CS/blogs/componentinsider/archive/tags/data+virtualization/default.aspx">data virtualization</category><category domain="http://xceed.com/CS/blogs/componentinsider/archive/tags/asynchronous+stealth+paging/default.aspx">asynchronous stealth paging</category><category domain="http://xceed.com/CS/blogs/componentinsider/archive/tags/fluid+ui/default.aspx">fluid ui</category></item><item><title>Xceed Consulting Wins on WPF gig</title><link>http://xceed.com/CS/blogs/componentinsider/archive/2009/12/11/xceed-consulting-wins-on-wpf-gig.aspx</link><pubDate>Fri, 11 Dec 2009 15:12:00 GMT</pubDate><guid isPermaLink="false">14592c03-f9d0-4f6b-b4cd-71e0e1b1f679:25162</guid><dc:creator>Odi [Xceed]</dc:creator><slash:comments>1</slash:comments><comments>http://xceed.com/CS/blogs/componentinsider/comments/25162.aspx</comments><wfw:commentRss>http://xceed.com/CS/blogs/componentinsider/commentrss.aspx?PostID=25162</wfw:commentRss><description>&lt;P&gt;&lt;SPAN style="LINE-HEIGHT:115%;FONT-FAMILY:'Calibri','sans-serif';FONT-SIZE:11pt;mso-fareast-font-family:Calibri;mso-bidi-font-family:'Times New Roman';mso-ascii-theme-font:minor-latin;mso-fareast-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;mso-bidi-theme-font:minor-bidi;mso-ansi-language:EN-US;mso-fareast-language:EN-US;mso-bidi-language:AR-SA;"&gt;A few months back, Lee Sherry, Senior BI Manager at Microsoft Business Intelligence, contacted our sales director, Charles, about having an app created for the company. Charles understood right away what her needs were and proposed the project to Pierre-Luc (“PL” for short!), Lead Developer for Xceed DataGrid for WPF. Everyone involved with the project knew that the star of the app, our WPF datagrid, would make it easy to deliver the goods in short time!&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="LINE-HEIGHT:115%;FONT-FAMILY:'Calibri','sans-serif';FONT-SIZE:11pt;mso-fareast-font-family:Calibri;mso-bidi-font-family:'Times New Roman';mso-ascii-theme-font:minor-latin;mso-fareast-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;mso-bidi-theme-font:minor-bidi;mso-ansi-language:EN-US;mso-fareast-language:EN-US;mso-bidi-language:AR-SA;"&gt;What Lee wanted was a rich, cutting-edge XAML Browser Application that would let the company’s managers navigate easily through numerous selected reports, filtering, sorting, and grouping their data. But the application had to remain responsive at all times, and Lee wanted an all-purpose solution, one that avoided hard-coded, pre-defined views, which would have limited the flexibility of the application. She also emphasized that it had to work with their existing data structure.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="LINE-HEIGHT:115%;FONT-FAMILY:'Calibri','sans-serif';FONT-SIZE:11pt;mso-fareast-font-family:Calibri;mso-bidi-font-family:'Times New Roman';mso-ascii-theme-font:minor-latin;mso-fareast-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;mso-bidi-theme-font:minor-bidi;mso-ansi-language:EN-US;mso-fareast-language:EN-US;mso-bidi-language:AR-SA;"&gt;Xceed’s developers met this challenge head on and devised a solution that was a stream-lined XBAP that interfaced with a SQL data source, which ran in Partial Trust. By doing things this way, the less technically savvy users of the software didn’t need to install certificates on their machines. However, this architecture meant using a Windows Communication Foundation (WCF) Web service, which acted as an intermediary between the XBAP and the SQL server. A data paging system was also implemented to fetch the data through the Web service. Of course, our designer team played a big part in the process, creating a gorgeous and compelling user experience!&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;IMG title="Microsoft Business Intelligence app developed with Xceed" alt="Microsoft Business Intelligence app developed with Xceed" src="http://xceed.com/CS/photos/odi/images/25161/500x341.aspx"&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="LINE-HEIGHT:115%;FONT-FAMILY:'Calibri','sans-serif';FONT-SIZE:11pt;mso-fareast-font-family:Calibri;mso-bidi-font-family:'Times New Roman';mso-ascii-theme-font:minor-latin;mso-fareast-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;mso-bidi-theme-font:minor-bidi;mso-ansi-language:EN-US;mso-fareast-language:EN-US;mso-bidi-language:AR-SA;"&gt;The application was developed entirely by Xceed, and met Lee’s expectations fully, helping Microsoft reach its objectives and saving the company time and money. After receiving the app, Lee e-mailed the following to Charles: “The Xceed WPF grids allowed us to deliver some fantastic interactive tools to our executives and increase the impact of our information. We are extremely satisfied with the professional support by the entire Xceed team. The Xceed technology is visually striking and works beautifully with our Silverlight and WPF infrastructure.”&lt;BR&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;img src="http://xceed.com/CS/aggbug.aspx?PostID=25162" width="1" height="1"&gt;</description><category domain="http://xceed.com/CS/blogs/componentinsider/archive/tags/WPF/default.aspx">WPF</category><category domain="http://xceed.com/CS/blogs/componentinsider/archive/tags/Microsoft/default.aspx">Microsoft</category><category domain="http://xceed.com/CS/blogs/componentinsider/archive/tags/DataGrid/default.aspx">DataGrid</category><category domain="http://xceed.com/CS/blogs/componentinsider/archive/tags/Consulting/default.aspx">Consulting</category><category domain="http://xceed.com/CS/blogs/componentinsider/archive/tags/Business+Intelligence/default.aspx">Business Intelligence</category></item><item><title>Overview of the new v3.2 datagrid for WPF</title><link>http://xceed.com/CS/blogs/componentinsider/archive/2009/06/15/overview-of-the-new-v3-2-datagrid-for-wpf.aspx</link><pubDate>Mon, 15 Jun 2009 13:43:00 GMT</pubDate><guid isPermaLink="false">14592c03-f9d0-4f6b-b4cd-71e0e1b1f679:21611</guid><dc:creator>Odi [Xceed]</dc:creator><slash:comments>3</slash:comments><comments>http://xceed.com/CS/blogs/componentinsider/comments/21611.aspx</comments><wfw:commentRss>http://xceed.com/CS/blogs/componentinsider/commentrss.aspx?PostID=21611</wfw:commentRss><description>&lt;P style="MARGIN:0cm 0cm 10pt;" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY:Calibri;FONT-SIZE:16px;" class=Apple-style-span&gt;Today marks the release of v3.2 of Xceed DataGrid for WPF. This is the 9th major update since the product was first introduced 2.5 years ago. Another one is coming, hot on its heels for August, with smooth scrolling innovations&amp;nbsp;and other UI improvements, but here's what's new in today's release.&lt;/SPAN&gt;&lt;/P&gt;&lt;FONT size=3 face=Calibri&gt;
&lt;P style="TEXT-INDENT:-18pt;MARGIN:0cm 0cm 0pt 36pt;mso-list:l0 level1 lfo1;" class=MsoListParagraphCxSpMiddle&gt;&lt;SPAN style="mso-ascii-font-family:Calibri;mso-fareast-font-family:Calibri;mso-hansi-font-family:Calibri;mso-bidi-font-family:Calibri;"&gt;&lt;SPAN style="mso-list:Ignore;"&gt;&lt;FONT size=3 face=Calibri&gt;-&lt;/FONT&gt;&lt;SPAN style="FONT:7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3 face=Calibri&gt;There are now &lt;B style="mso-bidi-font-weight:normal;"&gt;two paid editions&lt;/B&gt; of the DatagGrid, the new &lt;A title="Standard Edition WPF datagrid" href="http://xceed.com/Grid_WPF_Standard_Intro.html"&gt;Standard Edition&lt;/A&gt;, and the existing &lt;A title="Professional Edition WPF datagrid" href="http://xceed.com/Grid_WPF_Intro.html"&gt;Professional Edition&lt;/A&gt;.&lt;BR&gt;&lt;BR&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;/FONT&gt;
&lt;P style="TEXT-INDENT:-18pt;MARGIN:0cm 0cm 0pt 36pt;mso-list:l0 level1 lfo1;" class=MsoListParagraphCxSpMiddle&gt;&lt;SPAN style="mso-ascii-font-family:Calibri;mso-fareast-font-family:Calibri;mso-hansi-font-family:Calibri;mso-bidi-font-family:Calibri;"&gt;&lt;SPAN style="mso-list:Ignore;"&gt;&lt;FONT size=3 face=Calibri&gt;-&lt;/FONT&gt;&lt;SPAN style="FONT:7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3 face=Calibri&gt;The new Standard Edition is aimed at folks who don’t need a whole lot of advanced features, but would still like to &lt;B style="mso-bidi-font-weight:normal;"&gt;save time and get better results&lt;/B&gt; than when using Microsoft’s upcoming datagrid for WPF. The time saved, from the more complete design, abundant data binding options, documentation and helpful Xceed staff should easily outweigh its &lt;B style="mso-bidi-font-weight:normal;"&gt;affordable $300&lt;/B&gt; cost. It also has more features than the Microsoft grid, such as rich grouping support, more cell editors and input validation. Best of all, there’s a built-in &lt;B style="mso-bidi-font-weight:normal;"&gt;instant upgrade path&lt;/B&gt;, so if your users eventually want filtering, printing, exporting, field chooser or other features, you can just upgrade and turn those capabilities on, instead of being painted in a corner with a control not designed to do them.&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN:0cm 0cm 0pt 36pt;" class=MsoListParagraphCxSpMiddle&gt;&lt;FONT size=3 face=Calibri&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="MARGIN:0cm 0cm 0pt 0pt;" class=MsoListParagraphCxSpMiddle&gt;&lt;FONT size=3 face=Calibri&gt;So what’s new in v3.2? For this release, we’ve made getting to your data, and presenting it properly, a lot easier to do. &lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN:0cm 0cm 0pt 36pt;" class=MsoListParagraphCxSpMiddle&gt;&lt;o:p&gt;&lt;FONT size=3 face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT:-18pt;MARGIN:0cm 0cm 0pt 36pt;mso-list:l0 level1 lfo1;" class=MsoListParagraphCxSpMiddle&gt;&lt;SPAN style="mso-ascii-font-family:Calibri;mso-fareast-font-family:Calibri;mso-hansi-font-family:Calibri;mso-bidi-font-family:Calibri;"&gt;&lt;SPAN style="mso-list:Ignore;"&gt;&lt;FONT size=3 face=Calibri&gt;-&lt;/FONT&gt;&lt;SPAN style="FONT:7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3 face=Calibri&gt;First, the datagrid now &lt;B style="mso-bidi-font-weight:normal;"&gt;autodetects foreign keys in your datatables&lt;/B&gt;, so now it is easier than ever to display the corresponding values you want to display, instead of IDs. It also works with enumerations. To activate this new feature, just set AutoCreateForeignKeyConfig to True.&lt;BR style="mso-special-character:line-break;"&gt;&lt;BR style="mso-special-character:line-break;"&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT:-18pt;MARGIN:0cm 0cm 0pt 36pt;mso-list:l0 level1 lfo1;" class=MsoListParagraphCxSpMiddle&gt;&lt;SPAN style="mso-ascii-font-family:Calibri;mso-fareast-font-family:Calibri;mso-hansi-font-family:Calibri;mso-bidi-font-family:Calibri;"&gt;&lt;SPAN style="mso-list:Ignore;"&gt;&lt;FONT size=3 face=Calibri&gt;-&lt;/FONT&gt;&lt;SPAN style="FONT:7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3 face=Calibri&gt;Next, we added support for &lt;B style="mso-bidi-font-weight:normal;"&gt;custom key value mappings&lt;/B&gt;. This makes it easy to map any kind of values or objects to fields in your data that represent keys. For example, if your table of employees has an Employee ID integer field representing an employee object, you can easily map that field so that the datagrid uses corresponding employee’s First name and Last name fields formatted as “Last name, First name”&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;as the value to be displayed instead of the integer.&lt;BR style="mso-special-character:line-break;"&gt;&lt;BR style="mso-special-character:line-break;"&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT:-18pt;MARGIN:0cm 0cm 0pt 36pt;mso-list:l0 level1 lfo1;" class=MsoListParagraphCxSpMiddle&gt;&lt;SPAN style="mso-ascii-font-family:Calibri;mso-fareast-font-family:Calibri;mso-hansi-font-family:Calibri;mso-bidi-font-family:Calibri;"&gt;&lt;SPAN style="mso-list:Ignore;"&gt;&lt;FONT size=3 face=Calibri&gt;-&lt;/FONT&gt;&lt;SPAN style="FONT:7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3 face=Calibri&gt;Next, for users of the powerful Data Virtualization feature – which in v3.2 now also supports grouping –&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;if your data source implements IQueriable, and LINQ does, we’ve made providing data to the datagrid a snap. &lt;B style="mso-bidi-font-weight:normal;"&gt;You no longer have to handle a bunch of events to provide the datagrid with data&lt;/B&gt;, and you no longer have to worry about how the datagrid is sorted or grouped. Doing so was tiresome, now it’s code free.&lt;BR style="mso-special-character:line-break;"&gt;&lt;BR style="mso-special-character:line-break;"&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT:-18pt;MARGIN:0cm 0cm 0pt 36pt;mso-list:l0 level1 lfo1;" class=MsoListParagraphCxSpMiddle&gt;&lt;SPAN style="mso-ascii-font-family:Calibri;mso-fareast-font-family:Calibri;mso-hansi-font-family:Calibri;mso-bidi-font-family:Calibri;"&gt;&lt;SPAN style="mso-list:Ignore;"&gt;&lt;FONT size=3 face=Calibri&gt;-&lt;/FONT&gt;&lt;SPAN style="FONT:7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3 face=Calibri&gt;We also completed full support for the &lt;B style="mso-bidi-font-weight:normal;"&gt;Entity Framework&lt;/B&gt;, which makes it super easy for Entity Framework users to get the grid to display hierarchical data. When binding the datagrid to a list of Entity objects, the datagrid will now automatically find and load the detail data into subgrids and use master/detail view. To turn this on, set AutoCreateDetailsDescription to True on the DataGridColectionViewSource and AutoCreateDetailConfigurations&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;to True on the datagrid.&lt;BR style="mso-special-character:line-break;"&gt;&lt;BR style="mso-special-character:line-break;"&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT:-18pt;MARGIN:0cm 0cm 0pt 36pt;mso-list:l0 level1 lfo1;" class=MsoListParagraphCxSpMiddle&gt;&lt;SPAN style="mso-ascii-font-family:Calibri;mso-fareast-font-family:Calibri;mso-hansi-font-family:Calibri;mso-bidi-font-family:Calibri;"&gt;&lt;SPAN style="mso-list:Ignore;"&gt;&lt;FONT size=3 face=Calibri&gt;-&lt;/FONT&gt;&lt;SPAN style="FONT:7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3 face=Calibri&gt;We’ve also made it easier to work with &lt;B style="mso-bidi-font-weight:normal;"&gt;unbound columns&lt;/B&gt;, in two ways. First, we support &lt;B style="mso-bidi-font-weight:normal;"&gt;unbound data&lt;/B&gt;, which appends data to business objects that the grid displays. This method is great for displaying calculated columns or anything else which depends on the data. Second, we now directly support &lt;B style="mso-bidi-font-weight:normal;"&gt;unbound columns&lt;/B&gt;, for displaying static information, such as a delete button for every row, progress bars, or any other controls or content which don’t depend on data.&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN:0cm 0cm 0pt 0pt;" class=MsoListParagraphCxSpMiddle&gt;&lt;BR&gt;&lt;FONT size=3 face=Calibri&gt;The other important updates in this release deal with filtering. In previous versions, we offered Excel-like auto filtering, which provides a button for each column so that users can filter in the same way Excel does. In this version, there are two important additions to filtering capabilities for end users.&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN:0cm 0cm 0pt 36pt;" class=MsoListParagraphCxSpMiddle&gt;&lt;o:p&gt;&lt;FONT size=3 face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT:-18pt;MARGIN:0cm 0cm 0pt 36pt;mso-list:l0 level1 lfo1;" class=MsoListParagraphCxSpMiddle&gt;&lt;SPAN style="mso-ascii-font-family:Calibri;mso-fareast-font-family:Calibri;mso-hansi-font-family:Calibri;mso-bidi-font-family:Calibri;"&gt;&lt;SPAN style="mso-list:Ignore;"&gt;&lt;FONT size=3 face=Calibri&gt;-&lt;/FONT&gt;&lt;SPAN style="FONT:7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3 face=Calibri&gt;First, we’ve added the ability for developers to define their own &lt;B style="mso-bidi-font-weight:normal;"&gt;custom distinct values&lt;/B&gt; to add to the AutoFilter drop-down. You can use this to make the auto-filtering choices a lot more useful for end-users. For example, on a column with dates, you can offer the choice to filter by month. For names, the filtering choices could now be “A-C”, “D-F”, and so on. For numbers, you could group them into appropriate ranges, such as “0-99”,”99-1000” or “Odd numbers” and “Even numbers” – anything you want.&lt;BR style="mso-special-character:line-break;"&gt;&lt;BR style="mso-special-character:line-break;"&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT:-18pt;MARGIN:0cm 0cm 0pt 36pt;mso-list:l0 level1 lfo1;" class=MsoListParagraphCxSpMiddle&gt;&lt;SPAN style="mso-ascii-font-family:Calibri;mso-fareast-font-family:Calibri;mso-hansi-font-family:Calibri;mso-bidi-font-family:Calibri;"&gt;&lt;SPAN style="mso-list:Ignore;"&gt;&lt;FONT size=3 face=Calibri&gt;-&lt;/FONT&gt;&lt;SPAN style="FONT:7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3 face=Calibri&gt;Next, we’ve added a new row type, called the &lt;B style="mso-bidi-font-weight:normal;"&gt;Filter Row&lt;/B&gt;. This row can be placed in the grid’s fixed or scrolling headers or footers, and provides users with an alternate way to set and view the datagrid’s current filter settings. It’s always visible, and works great with date ranges, as you can set a start and end date to filter by, or set value ranges such as “&amp;gt;5 AND&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;10”. You can filter Booleans using a three state checkbox, and strings can be filtered by typing a value that is contained in the string.&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN:0cm 0cm 0pt 36pt;" class=MsoListParagraphCxSpMiddle&gt;&lt;o:p&gt;&lt;FONT size=3 face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P style="MARGIN:0cm 0cm 0pt 0pt;" class=MsoListParagraphCxSpMiddle&gt;&lt;FONT size=3 face=Calibri&gt;One last thing. The datagrid is now compiled for &lt;B style="mso-bidi-font-weight:normal;"&gt;.NET 3.5 SP1&lt;/B&gt;. This service pack has been available for some time, and according to Microsoft, should be automatically pushed out and installed everywhere through Windows Update around the November timeframe.&lt;BR style="mso-special-character:line-break;"&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN:0cm 0cm 0pt 0pt;" class=MsoListParagraphCxSpMiddle&gt;&lt;FONT size=3 face=Calibri&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="MARGIN:0cm 0cm 0pt 0pt;" class=MsoListParagraphCxSpMiddle&gt;&lt;FONT size=3 face=Calibri&gt;Thanks, and I can’t wait to show you the a video of what’s in the next release, a release that’s coming soon, and has lots of amazingly responsive smooth scrolling and animation.&lt;BR&gt;&lt;BR&gt;Let us know what else you want us to implement, by posting in the &lt;A title="Xceed DataGrid for WPF Roadmap 2009 thread" href="http://xceed.com/CS/forums/thread/18805.aspx"&gt;Roadmap 2009 thread&lt;/A&gt; on the forums at Xceed.com.&lt;BR&gt;&lt;BR&gt;Good programming!&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN:0cm 0cm 10pt 0pt;" class=MsoListParagraphCxSpLast&gt;&lt;BR style="mso-special-character:line-break;"&gt;&lt;BR style="mso-special-character:line-break;"&gt;&lt;/P&gt;&lt;img src="http://xceed.com/CS/aggbug.aspx?PostID=21611" width="1" height="1"&gt;</description><category domain="http://xceed.com/CS/blogs/componentinsider/archive/tags/WPF/default.aspx">WPF</category><category domain="http://xceed.com/CS/blogs/componentinsider/archive/tags/Microsoft/default.aspx">Microsoft</category><category domain="http://xceed.com/CS/blogs/componentinsider/archive/tags/WPF+Toolkit/default.aspx">WPF Toolkit</category><category domain="http://xceed.com/CS/blogs/componentinsider/archive/tags/filtering/default.aspx">filtering</category><category domain="http://xceed.com/CS/blogs/componentinsider/archive/tags/data+virtualization/default.aspx">data virtualization</category><category domain="http://xceed.com/CS/blogs/componentinsider/archive/tags/3.2/default.aspx">3.2</category></item><item><title>How does Xceed DataGrid for WPF stack up against Microsoft’s?</title><link>http://xceed.com/CS/blogs/componentinsider/archive/2009/05/05/how-does-the-xceed-datagrid-stack-up-against-microsoft-s.aspx</link><pubDate>Tue, 05 May 2009 17:17:00 GMT</pubDate><guid isPermaLink="false">14592c03-f9d0-4f6b-b4cd-71e0e1b1f679:20727</guid><dc:creator>Odi [Xceed]</dc:creator><slash:comments>0</slash:comments><comments>http://xceed.com/CS/blogs/componentinsider/comments/20727.aspx</comments><wfw:commentRss>http://xceed.com/CS/blogs/componentinsider/commentrss.aspx?PostID=20727</wfw:commentRss><description>&lt;p&gt;Today I noticed this &lt;a title="Nigel Spencer on Xceed DataGrid for WPF" href="http://blog.spencen.com/2009/05/06/xceed-wpf-datagrid-ndash-part-1.aspx"&gt;blog post by Nigel Spencer&lt;/a&gt; discussing his experiences with both Microsoft's WPF datagrid and Xceed's. I liked that Nigel recognizes that any new datagrid coming out this year will be significantly behind in maturity. If you take a look at the &lt;a title="Xceed DataGrid for WPF releases / what's new" href="http://xceed.com/Grid_WPF_New.html"&gt;25 releases&lt;/a&gt; of Xceed's WPF grid so far, you'll see hundreds of improvements to the product over the 2.5 years it has been on the market. Not only would you have to live through that with any new datagrid coming out soon (or even in the past year), but the competition's pace will be slower. That's because Xceed's UI controls team, which used to make a variety of controls for Windows Forms, is now focused entirely on datagrids and hasn't spread its teams to design ribbons, charts and other WPF controls not directly related to datagrids.&lt;/p&gt;&lt;p&gt;Nigel also mentions the Microsoft WPF toolkit datagrid. Nice to see that he thinks we got a few things right that Microsoft might have missed in their v1. Here's a portion of his post:&lt;/p&gt;&lt;p&gt;&lt;i&gt;So how does the Xceed DataGrid stack up against Microsoft’s? Here are some of the benefits that I’ve found so far:&lt;/i&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a target="_blank" href="http://blog.spencen.com/2009/04/30/problems-binding-to-selectedvalue-with-microsoftrsquos-wpf-datagrid.aspx"&gt;&lt;i&gt;Binding to SelectedItem&lt;/i&gt;&lt;/a&gt;&lt;i&gt; works just fine. &lt;/i&gt;&lt;/li&gt;&lt;li&gt;&lt;i&gt;ReadOnly properties support at Grid, Column and &lt;/i&gt;&lt;a target="_blank" href="http://blog.spencen.com/2009/04/25/readonly-rows-and-cells-in-a-datagrid.aspx"&gt;&lt;i&gt;Row level&lt;/i&gt;&lt;/a&gt;&lt;i&gt;. &lt;/i&gt;&lt;/li&gt;&lt;li&gt;&lt;i&gt;CheckBox column allows simple styling &lt;/i&gt;&lt;a target="_blank" href="http://blog.spencen.com/2009/04/19/when-is-a-wpf-datagrid-readonly-checkbox-not-readonly.aspx"&gt;&lt;i&gt;whilst preserving ReadOnly&lt;/i&gt;&lt;/a&gt;&lt;i&gt; value. &lt;/i&gt;&lt;/li&gt;&lt;li&gt;&lt;i&gt;Automatically supports current selection and &lt;/i&gt;&lt;a target="_blank" href="http://blog.spencen.com/2009/04/26/editing-indicator-in-datagrid-row-header.aspx"&gt;&lt;i&gt;edit indicators&lt;/i&gt;&lt;/a&gt;&lt;i&gt; in the row header. &lt;/i&gt;&lt;/li&gt;&lt;li&gt;&lt;i&gt;The grid theme matches the OS theme out of the box. This is how it should be. Sure the grid can be custom styled to suit but it only makes sense that by default the grid should match the look and feel of the standard themed controls. &lt;/i&gt;&lt;/li&gt;&lt;li&gt;&lt;i&gt;When auto-generating column headers it correctly uses any System.ComponentModel.DisplayName attributes that have been applied to the underlying class. &lt;/i&gt;&lt;/li&gt;&lt;li&gt;&lt;i&gt;There are lots of options at grid and column level that determine how a cell should enter edit mode. This is very useful for columns such as CheckBox columns where requiring a click to enter edit mode can be highly annoying (since the user would expect the click to toggle the checkbox). &lt;/i&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Here are a couple of things Nigel suggests we could improve in an upcoming version:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;i&gt;An easier mechanism for custom sorting. Rather than having to specific custom IComparer implemenations often it is easier to refer to an unbound property that contains the raw data. Like Microsoft’s SortMemberPath property. Hmm… I wonder if you could use a generic SortComparer to provide the same functionality?&lt;/i&gt;&lt;br&gt;&lt;/li&gt;&lt;li&gt;&lt;i&gt;Smaller assembly size. I know these days 2.08Mb shouldn’t be an issue but for my current contract it is. We have a ClickOnce application that is deployed to machines in remote country areas. Many of these machines are still using dial-up! Adding another another 2Mb to our current 4.5Mb total is a decision not to be made too lightly. [We’ve already been burned with a ridiculously bloated NHibernate assembly (1.6Mb)]&lt;/i&gt; &lt;br&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Thanks for the suggestions. You can be sure the team has noticed them.&lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;img src="http://xceed.com/CS/aggbug.aspx?PostID=20727" width="1" height="1"&gt;</description><category domain="http://xceed.com/CS/blogs/componentinsider/archive/tags/WPF/default.aspx">WPF</category><category domain="http://xceed.com/CS/blogs/componentinsider/archive/tags/Microsoft/default.aspx">Microsoft</category><category domain="http://xceed.com/CS/blogs/componentinsider/archive/tags/WPF+Toolkit/default.aspx">WPF Toolkit</category><category domain="http://xceed.com/CS/blogs/componentinsider/archive/tags/DataGrid/default.aspx">DataGrid</category></item><item><title>WPF vs. Silverlight: it's the wrong debate</title><link>http://xceed.com/CS/blogs/componentinsider/archive/2009/03/23/wpf-vs-silverlight-it-s-the-wrong-debate.aspx</link><pubDate>Mon, 23 Mar 2009 18:43:00 GMT</pubDate><guid isPermaLink="false">14592c03-f9d0-4f6b-b4cd-71e0e1b1f679:19534</guid><dc:creator>Odi [Xceed]</dc:creator><slash:comments>3</slash:comments><comments>http://xceed.com/CS/blogs/componentinsider/comments/19534.aspx</comments><wfw:commentRss>http://xceed.com/CS/blogs/componentinsider/commentrss.aspx?PostID=19534</wfw:commentRss><description>&lt;P&gt;The question isn't "Wither WPF?" or "Will Silverlight marginalize WPF?"&lt;/P&gt;
&lt;P&gt;With announcements at MIX09 that Silverlight will gain many of the key features that made WPF special, developers, component vendors and the media are now concerned more than ever about the future of WPF.&lt;/P&gt;
&lt;P&gt;It's not WPF they should be worried about.&lt;/P&gt;
&lt;P&gt;When you elect to use Silverlight, you are really choosing to forego the full .NET framework and everything that goes along with it that isn't in the latest flavour of Silverlight. Tons of useful capabilities, thousands of APIs, file system access, you name it. And also lots of new .NET 4.0 capabilities as well, like dynamic languages, MEF, parallel programming, hard-core multi-touch support, and so on, that aren't in Silverlight.&lt;/P&gt;
&lt;P&gt;&lt;B&gt;Silverlight isn't just a compact, streamlined version of WPF, it is a compact, streamlined version of the entire .NET framework.&lt;/B&gt; To say the debate is about whether or not you want to forego some particular WPF features that aren't in Silverlight 3 is focusing on too fine a point. The issue at hand, and the choice being made when selecting the platform to use, is much larger than that.&lt;/P&gt;
&lt;P&gt;Think about this question instead: Do you think there will be a significant amount of developers that will continue to use the full .NET framework for their projects? Or will they be using the more cross-platform, quick-to-install Silverlight, whether they are targeting the web or not? Consider both run-of-the-mill business apps which Silverlight 3 tries to easily enable, as well as other kinds of apps, such as “media” apps like movie players and games.&lt;/P&gt;
&lt;P&gt;If your answer is that, Yes, there will still be many developers using the full .NET framework instead of Silverlight, then you have nothing to worry about when it comes to WPF. WPF is arguably at the point where it knocks the socks off of Windows Forms. With .NET 4, Visual Studio 2010 and Expression Blend 3, WPF will be the UI framework "par excellence" for those using the full .NET framework.&lt;/P&gt;
&lt;P&gt;If your answer is No, you think very few developers will resist Silverlight's temptations such as being able to run on OS X and potentially other platforms, then it isn't just WPF that you should be concerned about. It's the entire .NET framework, even the Windows platform itself.&lt;/P&gt;
&lt;P&gt;After all, if there weren't enough reasons left to develop specifically for Windows, well, all that would be left going for Windows would be features. There would be fewer and fewer Windows-only apps. That seems suicidal to me, Microsoft wouldn’t let it happen without a fight. What did Steve Jobs recently say? He insists it’s the apps that will differentiate Apple’s latest product, the iPhone, from the competition.&lt;/P&gt;
&lt;P&gt;So what’s my answer?&lt;/P&gt;
&lt;P&gt;Yes, moving forward, there will still be plenty of developers that choose to use the full .NET framework, for not-so-run-of-the-mill business apps as well as for a million and one other kinds of apps. I'm talking about a pretty big '&lt;A class="" title='Definition of "The Long Tail"' href="http://en.wikipedia.org/wiki/The_Long_Tail"&gt;Long Tail&lt;/A&gt;'. And many of those apps will need a UI, and that means WPF, not Silverlight. Sure, Silverlight 3 has multi-platinum superstar potential, but WPF should get a few &lt;A class="" title="Gold record" href="http://en.wikipedia.org/wiki/Gold_record"&gt;gold records&lt;/A&gt; as well. I think it’s far from withering away or being marginalized, as&amp;nbsp;many are worried about.&lt;/P&gt;&lt;img src="http://xceed.com/CS/aggbug.aspx?PostID=19534" width="1" height="1"&gt;</description><category domain="http://xceed.com/CS/blogs/componentinsider/archive/tags/Silverlight/default.aspx">Silverlight</category><category domain="http://xceed.com/CS/blogs/componentinsider/archive/tags/WPF/default.aspx">WPF</category><category domain="http://xceed.com/CS/blogs/componentinsider/archive/tags/Microsoft/default.aspx">Microsoft</category><category domain="http://xceed.com/CS/blogs/componentinsider/archive/tags/.NET+4.0/default.aspx">.NET 4.0</category><category domain="http://xceed.com/CS/blogs/componentinsider/archive/tags/Silverlight+3/default.aspx">Silverlight 3</category></item><item><title>Microsoft Tag in MSDN Magazine February 2009 issue.</title><link>http://xceed.com/CS/blogs/componentinsider/archive/2009/02/09/microsoft-tag-in-msdn-magazine-february-2009-issue.aspx</link><pubDate>Mon, 09 Feb 2009 20:55:00 GMT</pubDate><guid isPermaLink="false">14592c03-f9d0-4f6b-b4cd-71e0e1b1f679:18492</guid><dc:creator>Odi [Xceed]</dc:creator><slash:comments>3</slash:comments><comments>http://xceed.com/CS/blogs/componentinsider/comments/18492.aspx</comments><wfw:commentRss>http://xceed.com/CS/blogs/componentinsider/commentrss.aspx?PostID=18492</wfw:commentRss><description>&lt;P&gt;When Microsoft Tag was announced at &lt;A class="" title="Microsoft Tag Announcement at CES 2009 (on On10.net)" href="http://on10.net/blogs/larry/CES-2009-Microsoft-Tag-Youre-It/" target=_blank&gt;CES 2009&lt;/A&gt;&amp;nbsp;on&amp;nbsp;January 7th,&amp;nbsp;the official deadline for submitting ad material for the February 2009 issue of&amp;nbsp;&lt;A class="" title="MSDN Magazine online" href="http://msdn.microsoft.com/" target=_blank&gt;MSDN magazine&lt;/A&gt; (the print publication) was already passed. But I knew it still wasn't too late,&amp;nbsp;most magazines always keep a&amp;nbsp;safety buffer for late submissions.&amp;nbsp;So we created a tag on the &lt;A class="" title="Microsoft Tag main site" href="http://www.microsoft.com/tag/" target=_blank&gt;Microsoft Tag site&lt;/A&gt;, added the tag to our latest printed advertisement with the word "Surprise!" near it, and re-submitted February's material. It made it into the February issue! Visit the tag for a nice surprise (if you're interested in&amp;nbsp;a fantastic&amp;nbsp;datagrid for WPF development.)&lt;/P&gt;
&lt;P&gt;Here is what the ad looks like (it is a two page spread ad, and the tag has been partially hidden here on purpose, you must get your hands on an MSDN magazine to get to the tag itself):&lt;/P&gt;
&lt;P&gt;&lt;IMG title="Xceed two-page spread ad with Microsoft Tag" alt="Microsoft Tag used in Xceed printed advertisement in February 2009 MSDN Magazine" src="http://xceed.com/CS/photos/odi/images/18493/original.aspx"&gt;&lt;/P&gt;
&lt;P&gt;Is it the first use of Microsoft Tag in a printed magazine? Close, but there's &lt;A class="" title="Microsoft Tag used in Turkish magazine - LOG -" href="http://blogs.msdn.com/tag/archive/2009/02/03/microsoft-tag-on-a-turkish-magazine.aspx" target=_blank&gt;this one&lt;/A&gt;, and perhaps one in a newspaper which doesn't require materials so long in advance.&lt;/P&gt;
&lt;P&gt;Add this technology to &lt;A class="" title="Blog post about Xceed being early adopters of many Microsoft development technologies" href="http://xceed.com/CS/blogs/componentinsider/archive/2008/10/23/another-silverlight-2-component.aspx"&gt;the list&lt;/A&gt;&amp;nbsp;of Microsoft technologies Xceed has been the first (or one of the first) to use :)&lt;/P&gt;&lt;img src="http://xceed.com/CS/aggbug.aspx?PostID=18492" width="1" height="1"&gt;</description><category domain="http://xceed.com/CS/blogs/componentinsider/archive/tags/DataGrid/default.aspx">DataGrid</category><category domain="http://xceed.com/CS/blogs/componentinsider/archive/tags/Microsoft+Tag/default.aspx">Microsoft Tag</category><category domain="http://xceed.com/CS/blogs/componentinsider/archive/tags/MSDN+Magazine/default.aspx">MSDN Magazine</category></item><item><title>Ten reasons to use Xceed’s entry-level WPF datagrid instead of Microsoft’s</title><link>http://xceed.com/CS/blogs/componentinsider/archive/2009/01/26/ten-reasons-to-use-xceeds-free-wpf-datagrid-instead-of-microsofts.aspx</link><pubDate>Mon, 26 Jan 2009 16:48:00 GMT</pubDate><guid isPermaLink="false">14592c03-f9d0-4f6b-b4cd-71e0e1b1f679:18122</guid><dc:creator>Odi [Xceed]</dc:creator><slash:comments>13</slash:comments><comments>http://xceed.com/CS/blogs/componentinsider/comments/18122.aspx</comments><wfw:commentRss>http://xceed.com/CS/blogs/componentinsider/commentrss.aspx?PostID=18122</wfw:commentRss><description>Here are 10 reasons you should pass on using the basic Microsoft WPF grid and adopt Xceed’s free Express Edition instead....(&lt;a href="http://xceed.com/CS/blogs/componentinsider/archive/2009/01/26/ten-reasons-to-use-xceeds-free-wpf-datagrid-instead-of-microsofts.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://xceed.com/CS/aggbug.aspx?PostID=18122" width="1" height="1"&gt;</description><category domain="http://xceed.com/CS/blogs/componentinsider/archive/tags/WPF/default.aspx">WPF</category><category domain="http://xceed.com/CS/blogs/componentinsider/archive/tags/Free/default.aspx">Free</category><category domain="http://xceed.com/CS/blogs/componentinsider/archive/tags/Grid/default.aspx">Grid</category><category domain="http://xceed.com/CS/blogs/componentinsider/archive/tags/Microsoft/default.aspx">Microsoft</category><category domain="http://xceed.com/CS/blogs/componentinsider/archive/tags/WPF+Toolkit/default.aspx">WPF Toolkit</category><category domain="http://xceed.com/CS/blogs/componentinsider/archive/tags/DataGrid/default.aspx">DataGrid</category><category domain="http://xceed.com/CS/blogs/componentinsider/archive/tags/Codeplex/default.aspx">Codeplex</category><category domain="http://xceed.com/CS/blogs/componentinsider/archive/tags/Reasons/default.aspx">Reasons</category></item><item><title>Raising the bar with smooth scrolling</title><link>http://xceed.com/CS/blogs/componentinsider/archive/2008/11/17/continuing-to-raise-the-bar-for-datagrids.aspx</link><pubDate>Mon, 17 Nov 2008 20:35:00 GMT</pubDate><guid isPermaLink="false">14592c03-f9d0-4f6b-b4cd-71e0e1b1f679:16947</guid><dc:creator>Odi [Xceed]</dc:creator><slash:comments>0</slash:comments><comments>http://xceed.com/CS/blogs/componentinsider/comments/16947.aspx</comments><wfw:commentRss>http://xceed.com/CS/blogs/componentinsider/commentrss.aspx?PostID=16947</wfw:commentRss><description>&lt;P&gt;In the past two years,&amp;nbsp;Xceed has&amp;nbsp;worked on the performance of Xceed DataGrid for WPF, and&amp;nbsp;with August's release of&amp;nbsp;v3.0, we feel we've achieved a great level of performance. The best in the industry if you not only count scrolling speed, but loading, sorting and grouping time as well.&lt;/P&gt;
&lt;P&gt;Despite the new performance increases, there are still scenarios with slower systems on which the scrolling performance is not fast enough. The industry's solution to that (including Microsoft's own WPF datagrid) is to provide a "deferred scrolling mode". In deferred mode, a datagrid's display isn't updated while you are dragging the scrollbar, it updates only when you stop dragging.&amp;nbsp;This scheme doesn't let you know where you will land&amp;nbsp;when&amp;nbsp;you let go of the thumb, so "scroll tips" were invented to display information about the first row of the page you would land on. Not a very good experience.&lt;/P&gt;
&lt;P&gt;Earlier this year, we started working on Xceed DataGrid for WPF's "perceived performance". We added smooth scrolling to the datagrid, physics-like animation effects, and background generation and display of&amp;nbsp;data items. The combination of these features provides a much better experience than with deferred scrolling, and boy does it look and feel delicious. When a user performs a "page down" action, the datagrid immediately responds by starting to smooth scroll to the next page, while fading-in the datarows as their containers and contents&amp;nbsp;are generated. By the time the animation has slowed down, everything is properly displayed as expected. Instead of a delay on a slower computer when the user hits "page down", they get immediate feedback, giving the datagrid&amp;nbsp;a snappy and fast feel to it.&amp;nbsp;Here's a &lt;A class="" title="Smooth Scrolling Xceed DataGrid for WPF" href="http://mschnlnine.vo.llnwd.net/d1/ch9/5/7/0/2/4/4/TCSSmoothDatagridsXceed_2MB_ch9.wmv"&gt;Channel 9 video (WMV High)&lt;/A&gt; on the new feature, and a couple more new related features such as group headers that always stay in view and touch gesture support.&lt;/P&gt;&lt;IFRAME style="WIDTH:321px;HEIGHT:265px;" src="http://channel9.msdn.com/shows/Continuum/442075/player/" frameBorder=0 width=320 scrolling=no height=325 mce_src="http://channel9.msdn.com/shows/Continuum/442075/player/"&gt;&lt;/IFRAME&gt;&lt;BR&gt;&lt;BR&gt;&lt;A href="http://channel9.msdn.com/shows/Continuum/SmoothDatagridsXceed/"&gt;Smooth Scrolling Datagrids with Xceed on Microsoft Channel9&lt;/A&gt;&lt;BR&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I think it is clear that the industry looks toward Xceed as the trend-setter in WPF datagrid controls, and even WPF controls in general. We were the first to release one, the first to provide an XBAP demo (and a still unequaled one even after two years of availability), the first to announce the use in a major application&amp;nbsp;such as Visual Studio Team System 2010, the first to bring 3D to datagrids, and now the first to demonstrate smooth scrolling, physics effects, touch gesture support, and background generation of UI elements to increase perceived performance.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://xceed.com/CS/aggbug.aspx?PostID=16947" width="1" height="1"&gt;</description><category domain="http://xceed.com/CS/blogs/componentinsider/archive/tags/animation/default.aspx">animation</category><category domain="http://xceed.com/CS/blogs/componentinsider/archive/tags/Smooth+scrolling/default.aspx">Smooth scrolling</category><category domain="http://xceed.com/CS/blogs/componentinsider/archive/tags/performance/default.aspx">performance</category></item><item><title>Winners of the XBOX 360s drawn at PDC 2008!</title><link>http://xceed.com/CS/blogs/componentinsider/archive/2008/10/30/winners-of-the-xbox-360-s-drawn-at-pdc-2008.aspx</link><pubDate>Thu, 30 Oct 2008 17:35:00 GMT</pubDate><guid isPermaLink="false">14592c03-f9d0-4f6b-b4cd-71e0e1b1f679:16520</guid><dc:creator>Odi [Xceed]</dc:creator><slash:comments>0</slash:comments><comments>http://xceed.com/CS/blogs/componentinsider/comments/16520.aspx</comments><wfw:commentRss>http://xceed.com/CS/blogs/componentinsider/commentrss.aspx?PostID=16520</wfw:commentRss><description>&lt;p&gt;At PDC 2008, I just went over to the Channel 9 lounge this thursday morning 10:30 am and with the help of a third-party witness sitting near the folks playing Rock Band 2, Dan Morphis from AFHCAN.org Alaska, drew the three XBOX 360's, one for each day we spotted PDC 2008 attendees wearing the "Datagrids, transformed." badge.&lt;/p&gt;&lt;p&gt;Day 1 winner was: Bill Janczac&lt;/p&gt;&lt;p&gt;Day 2 winner was: Kris Bruland&lt;/p&gt;&lt;p&gt;Day 3 winner was: Bob Sampson&lt;/p&gt;&lt;p&gt;Congratulations to the winners, you will be contacted by email shortly to obtain your address information. Thanks to all the hundreds of people that wore the badge at PDC 2008, I was told it was the third most popular badge by a friend. The first being the default PDC badge, the second being the white "brains" badge, and Xceed's being third. Nice.&lt;/p&gt;&lt;img src="http://xceed.com/CS/aggbug.aspx?PostID=16520" width="1" height="1"&gt;</description><category domain="http://xceed.com/CS/blogs/componentinsider/archive/tags/PDC/default.aspx">PDC</category><category domain="http://xceed.com/CS/blogs/componentinsider/archive/tags/Giveaway/default.aspx">Giveaway</category><category domain="http://xceed.com/CS/blogs/componentinsider/archive/tags/xbox/default.aspx">xbox</category></item><item><title>Wear this PDC Badge and win one of three Xbox 360s!</title><link>http://xceed.com/CS/blogs/componentinsider/archive/2008/10/25/pdc-badges-datagrids-transformed.aspx</link><pubDate>Sat, 25 Oct 2008 14:35:00 GMT</pubDate><guid isPermaLink="false">14592c03-f9d0-4f6b-b4cd-71e0e1b1f679:16406</guid><dc:creator>Odi [Xceed]</dc:creator><slash:comments>0</slash:comments><comments>http://xceed.com/CS/blogs/componentinsider/comments/16406.aspx</comments><wfw:commentRss>http://xceed.com/CS/blogs/componentinsider/commentrss.aspx?PostID=16406</wfw:commentRss><description>&lt;p&gt;&lt;img title="PDC 2008 Datagrid Badge" style="WIDTH:290px;HEIGHT:184px;" height="184" alt="PDC 2008 Datagrid Badge" width="290" src="http://xceed.com/CS/photos/odi/images/16432/original.aspx"&gt;&lt;/p&gt;&lt;p&gt;As part of the &lt;a class="" title="PDC Badges as explained by Adam Kinney" href="http://adamkinney.com/blog/366/default.aspx"&gt;PDC Badges&lt;/a&gt; concept, if you are spotted by Xceed staff wearing the above badge at PDC 2008, you'll be entered into a draw to win one of 3 Xbox 360 consoles we're giving away. One Xbox 360 a day. Get your badge by dropping by the Xceed DataGrid for WPF booth in the exhibit hall during PDC 2008, and wear it throughout the conference to increase your chances of being spotted.&lt;/p&gt;&lt;p&gt;&lt;b style="mso-bidi-font-weight:normal;"&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;Xceed PDC 2008 Badges XBOX 360 Giveaway Rules:&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/font&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoListParagraphCxSpFirst" style="MARGIN:0cm 0cm 0pt 36pt;TEXT-INDENT:-18pt;mso-list:l0 level1 lfo1;"&gt;&lt;span style="FONT-FAMILY:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;&lt;span style="mso-list:Ignore;"&gt;&lt;font size="3"&gt;·&lt;/font&gt;&lt;span style="FONT:7pt 'Times New Roman';"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;Xceed will draw up to three Xbox 360 consoles, one on Oct. 27 2008, one on Oct. 28 2008, and one on Oct. 29 2008&lt;b style="mso-bidi-font-weight:normal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p class="MsoListParagraphCxSpMiddle" style="MARGIN:0cm 0cm 0pt 36pt;TEXT-INDENT:-18pt;mso-list:l0 level1 lfo1;"&gt;&lt;span style="FONT-FAMILY:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;&lt;span style="mso-list:Ignore;"&gt;&lt;font size="3"&gt;·&lt;/font&gt;&lt;span style="FONT:7pt 'Times New Roman';"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font face="Calibri" size="3"&gt;To enter the draw, wear the Xceed “Datagrids, transformed.” badge (the “Xceed Badge”) in the official PDC Badge holder you received with your PDC 2008 registration, and get spotted by an Xceed staff member.&lt;/font&gt;&lt;/p&gt;&lt;p class="MsoListParagraphCxSpMiddle" style="MARGIN:0cm 0cm 0pt 36pt;TEXT-INDENT:-18pt;mso-list:l0 level1 lfo1;"&gt;&lt;span style="FONT-FAMILY:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;&lt;span style="mso-list:Ignore;"&gt;&lt;font size="3"&gt;·&lt;/font&gt;&lt;span style="FONT:7pt 'Times New Roman';"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font face="Calibri" size="3"&gt;Xceed plans to have 5 staff members at PDC 2008 who will be on the lookout for PDC 2008 attendees wearing the Xceed Badge in the convention center. On any of the given days when a draw will take place, when an Xceed staff member spots an attendee wearing the Xceed Badge, they will ask the attendee for their name and email address, for inclusion in that day’s draw.&lt;/font&gt;&lt;/p&gt;&lt;p class="MsoListParagraphCxSpMiddle" style="MARGIN:0cm 0cm 0pt 36pt;TEXT-INDENT:-18pt;mso-list:l0 level1 lfo1;"&gt;&lt;span style="FONT-FAMILY:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;&lt;span style="mso-list:Ignore;"&gt;&lt;font size="3"&gt;·&lt;/font&gt;&lt;span style="FONT:7pt 'Times New Roman';"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font face="Calibri" size="3"&gt;At least 10 attendees must be spotted and entered into the day’s draw in order for the draw to take place.&lt;/font&gt;&lt;/p&gt;&lt;p class="MsoListParagraphCxSpMiddle" style="MARGIN:0cm 0cm 0pt 36pt;TEXT-INDENT:-18pt;mso-list:l0 level1 lfo1;"&gt;&lt;span style="FONT-FAMILY:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;&lt;span style="mso-list:Ignore;"&gt;&lt;font size="3"&gt;·&lt;/font&gt;&lt;span style="FONT:7pt 'Times New Roman';"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font face="Calibri" size="3"&gt;Xceed and Microsoft employees aren’t eligible to participate in these draws.&lt;/font&gt;&lt;/p&gt;&lt;p class="MsoListParagraphCxSpMiddle" style="MARGIN:0cm 0cm 0pt 36pt;TEXT-INDENT:-18pt;mso-list:l0 level1 lfo1;"&gt;&lt;span style="FONT-FAMILY:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;&lt;span style="mso-list:Ignore;"&gt;&lt;font size="3"&gt;·&lt;/font&gt;&lt;span style="FONT:7pt 'Times New Roman';"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font face="Calibri" size="3"&gt;When performing the draw, Xceed will assign an integer number sequentially to each person entered in the day’s draw, and select the winner randomly by using the result of an electronic calculator’s random number generator.&lt;/font&gt;&lt;/p&gt;&lt;p class="MsoListParagraphCxSpMiddle" style="MARGIN:0cm 0cm 0pt 36pt;TEXT-INDENT:-18pt;mso-list:l0 level1 lfo1;"&gt;&lt;span style="FONT-FAMILY:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;&lt;span style="mso-list:Ignore;"&gt;&lt;font size="3"&gt;·&lt;/font&gt;&lt;span style="FONT:7pt 'Times New Roman';"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;The winners will be contacted by email, and announced through various means, such as through the @DataGrid user on Twitter.com, in an Xceed blog post, a post in the forums, etc.&lt;b style="mso-bidi-font-weight:normal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p class="MsoListParagraphCxSpMiddle" style="MARGIN:0cm 0cm 0pt 36pt;TEXT-INDENT:-18pt;mso-list:l0 level1 lfo1;"&gt;&lt;span style="FONT-FAMILY:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;&lt;span style="mso-list:Ignore;"&gt;&lt;font size="3"&gt;·&lt;/font&gt;&lt;span style="FONT:7pt 'Times New Roman';"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;Xceed reserves the right to not “spot” attendees in front of or near Xceed’s exhibitor booth.&lt;b style="mso-bidi-font-weight:normal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p class="MsoListParagraphCxSpLast" style="MARGIN:0cm 0cm 10pt 36pt;TEXT-INDENT:-18pt;mso-list:l0 level1 lfo1;"&gt;&lt;span style="FONT-FAMILY:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;&lt;span style="mso-list:Ignore;"&gt;&lt;font size="3"&gt;·&lt;/font&gt;&lt;span style="FONT:7pt 'Times New Roman';"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;Prizes may be ordered by Xceed from Amazon.com or Amazon.co.uk and sent to attendees living in the USA, Canada and Europe. For attendees living in other countries, Xceed may elect obtain an Xbox 360 to personally hand to the attendee while at the convention center during PDC 2008 or find a suitable (at Xceed's discretion) replacement giveaway of similar value.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p class="MsoListParagraphCxSpLast" style="MARGIN:0cm 0cm 10pt 36pt;TEXT-INDENT:-18pt;mso-list:l0 level1 lfo1;"&gt;&lt;span style="FONT-FAMILY:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;&lt;span style="mso-list:Ignore;"&gt;&lt;font size="3"&gt;·&lt;/font&gt;&lt;span style="FONT:7pt 'Times New Roman';"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;No purchase necessary, and giveaway rules may be revised at any time (though changes will be listed here). We're aiming for a fair and honest giveaway so if there's anything these rules forgot to mention, please let Xceed know.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p class="MsoListParagraphCxSpLast" style="MARGIN:0cm 0cm 10pt 36pt;TEXT-INDENT:-18pt;mso-list:l0 level1 lfo1;"&gt;&lt;font face="Calibri" size="3"&gt;&lt;/font&gt; &lt;/p&gt;&lt;img src="http://xceed.com/CS/aggbug.aspx?PostID=16406" width="1" height="1"&gt;</description><category domain="http://xceed.com/CS/blogs/componentinsider/archive/tags/PDC/default.aspx">PDC</category><category domain="http://xceed.com/CS/blogs/componentinsider/archive/tags/Badges/default.aspx">Badges</category><category domain="http://xceed.com/CS/blogs/componentinsider/archive/tags/Giveaway/default.aspx">Giveaway</category></item><item><title>Another Silverlight 2 component!</title><link>http://xceed.com/CS/blogs/componentinsider/archive/2008/10/23/another-silverlight-2-component.aspx</link><pubDate>Thu, 23 Oct 2008 17:51:00 GMT</pubDate><guid isPermaLink="false">14592c03-f9d0-4f6b-b4cd-71e0e1b1f679:16387</guid><dc:creator>Odi [Xceed]</dc:creator><slash:comments>0</slash:comments><comments>http://xceed.com/CS/blogs/componentinsider/comments/16387.aspx</comments><wfw:commentRss>http://xceed.com/CS/blogs/componentinsider/commentrss.aspx?PostID=16387</wfw:commentRss><description>&lt;P class=MsoNormal style="MARGIN:0cm 0cm 10pt;"&gt;&lt;FONT face=Calibri size=3&gt;This past week we released our second Silverlight 2 component, &lt;A class="" title="Xceed Real-Time Zip for Silverlight Intro" href="http://xceed.com/ZipRT_Silverlight_Intro.html" target=_blank&gt;Xceed Real-Time Zip for Silverlight&lt;/A&gt;. Our first Silverlight 2 component, &lt;A class="" title="Xceed Upload for Silverlight Intro" href="http://xceed.com/Upload_Silverlight_Intro.html"&gt;Xceed Upload for Silverlight&lt;/A&gt;, was the industry’s first commercially available control for Silverlight 2. I think it’s great that we’ve been first to release a component for many of Microsoft’s new development platforms in the past 10 years:&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpFirst style="MARGIN:0cm 0cm 0pt 36pt;TEXT-INDENT:-18pt;mso-list:l0 level1 lfo1;"&gt;&lt;SPAN style="FONT-FAMILY:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;&lt;SPAN style="mso-list:Ignore;"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT:7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;1st .NET component (Xceed Zip for .NET, alpha, Nov. 2000)&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle style="MARGIN:0cm 0cm 0pt 36pt;TEXT-INDENT:-18pt;mso-list:l0 level1 lfo1;"&gt;&lt;SPAN style="FONT-FAMILY:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;&lt;SPAN style="mso-list:Ignore;"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT:7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;1st WPF component (Xceed DataGrid for WPF, RTM, Jan. 2007)&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle style="MARGIN:0cm 0cm 0pt 36pt;TEXT-INDENT:-18pt;mso-list:l0 level1 lfo1;"&gt;&lt;SPAN style="FONT-FAMILY:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;&lt;SPAN style="mso-list:Ignore;"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT:7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;1st Silverlight 2 component (Xceed Upload for .NET, RTM, May 2008)&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle style="MARGIN:0cm 0cm 0pt 36pt;TEXT-INDENT:-18pt;mso-list:l0 level1 lfo1;"&gt;&lt;SPAN style="FONT-FAMILY:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;&lt;SPAN style="mso-list:Ignore;"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT:7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;1st Workflow Foundation activity (Xceed Activities for WF, RTM, Apr. 2007)&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle style="MARGIN:0cm 0cm 0pt 36pt;TEXT-INDENT:-18pt;mso-list:l0 level1 lfo1;"&gt;&lt;SPAN style="FONT-FAMILY:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;&lt;SPAN style="mso-list:Ignore;"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT:7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;1st Biztalk Server 2000 component (Xceed FTP for Biztalk, RTM, Jun. 2001)&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpLast style="MARGIN:0cm 0cm 10pt 36pt;TEXT-INDENT:-18pt;mso-list:l0 level1 lfo1;"&gt;&lt;SPAN style="FONT-FAMILY:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;&lt;SPAN style="mso-list:Ignore;"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT:7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;1st .NET Compact Framework component (Xceed Zip for .NET CF, Beta, Apr. 2003)&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 10pt;"&gt;&lt;FONT face=Calibri size=3&gt;And, I couldn’t confirm this through &lt;A class="" title="Go Back In Time on the Web" href="http://archive.org/"&gt;Archive.org&lt;/A&gt;, but I seem to remember Xceed being the first to release a 32-bit OCX during the changeover from 16-bit OCX components to 32-bit ones about 12 years ago. By the way, our domain name back then was xceedsoft.com.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 10pt;"&gt;&lt;FONT face=Calibri size=3&gt;Back to Xceed Real-Time Zip for Silverlight, what’s great about this product is that it compresses files or streams into Zip archives and decompresses Zip archives in a streaming fashion without using intermediate disk/memory storage or temporary files. That really jives with the likes of Silverlight, which doesn’t allow local write access.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 10pt;"&gt;&lt;IMG title="Real-Time Zip for Silverlight diagram" style="WIDTH:393px;HEIGHT:117px;" height=117 alt="Real-Time Zip for Silverlight diagram" src="http://xceed.com/CS/photos/odi/images/16403/original.aspx" width=393&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 10pt;"&gt;&lt;FONT face=Calibri size=3&gt;Why is it called “Real-Time Zip”? Not because it is faster, since it avoids disk writes, but because it starts outputting a Zip file as soon as the first bytes of the first file to compress are provided.&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;In the same way, it can also start unzipping a Zip file as soon as the first bytes of the Zip file are available. By the way, the size or number of files to compress or uncompress has little bearing on the memory footprint. You can Zip many multi-GB files without worrying about memory, though if you are Zipping tens of thousands of files (regardless of their size), memory use might start to become be a factor. The component must keep some information (filename, path, checksum, size...) about each file in memory in order to be able to write the Zip file’s “central directory” portion at the end of the Zip file.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 10pt;"&gt;&lt;FONT face=Calibri size=3&gt;I should also mention that strong 128- to 256-bit AES encryption is also supported while compressing/uncompressing.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 10pt;"&gt;&lt;FONT face=Calibri size=3&gt;What use is there for a Zip library with Silverlight you might ask? First, it will let your Silverlight application read and consume the contents of a Zip file that’s stored on your user’s local filesystem. In the same fashion, it will allow your app to receive a Zip file from a server and unzip and consume the contents as the Zip file is coming in over the wire. Second, it will allow your code to compress a bunch of user selected files from their local filesystem into one Zip file that you can start uploading to a server or another user even before the complete Zip file is ready.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 10pt;"&gt;&lt;FONT face=Calibri size=3&gt;Well, hope to see you at next week’s &lt;A class="" title="Microsoft PDC 2008 site" href="http://www.microsoftpdc.com/"&gt;PDC 2008&lt;/A&gt; event, where Xceed will be dedicating the our booth to exhibiting our advanced datagrid for WPF.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 10pt;"&gt;&lt;FONT face=Calibri size=3&gt;Odi&lt;/FONT&gt;&lt;/P&gt;&lt;img src="http://xceed.com/CS/aggbug.aspx?PostID=16387" width="1" height="1"&gt;</description><category domain="http://xceed.com/CS/blogs/componentinsider/archive/tags/Upload/default.aspx">Upload</category><category domain="http://xceed.com/CS/blogs/componentinsider/archive/tags/Silverlight/default.aspx">Silverlight</category><category domain="http://xceed.com/CS/blogs/componentinsider/archive/tags/Streaming/default.aspx">Streaming</category><category domain="http://xceed.com/CS/blogs/componentinsider/archive/tags/Zip/default.aspx">Zip</category><category domain="http://xceed.com/CS/blogs/componentinsider/archive/tags/AES/default.aspx">AES</category><category domain="http://xceed.com/CS/blogs/componentinsider/archive/tags/History/default.aspx">History</category></item></channel></rss>