-
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!
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.
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!

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.”
|
-
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 and other UI improvements, but here's what's new in today's release.
- There are now two paid editions of the DatagGrid, the new Standard Edition, and the existing Professional Edition.
- The new Standard Edition is aimed at folks who don’t need a whole lot of advanced features, but would still like to save time and get better results 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 affordable $300 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 instant upgrade path, 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.
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.
- First, the datagrid now autodetects foreign keys in your datatables, 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.
- Next, we added support for custom key value mappings. 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” as the value to be displayed instead of the integer.
- Next, for users of the powerful Data Virtualization feature – which in v3.2 now also supports grouping – if your data source implements IQueriable, and LINQ does, we’ve made providing data to the datagrid a snap. You no longer have to handle a bunch of events to provide the datagrid with data, and you no longer have to worry about how the datagrid is sorted or grouped. Doing so was tiresome, now it’s code free.
- We also completed full support for the Entity Framework, 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 to True on the datagrid.
- We’ve also made it easier to work with unbound columns, in two ways. First, we support unbound data, 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 unbound columns, 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.
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.
- First, we’ve added the ability for developers to define their own custom distinct values 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.
- Next, we’ve added a new row type, called the Filter Row. 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 “>5 AND <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.
One last thing. The datagrid is now compiled for .NET 3.5 SP1. 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.
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.
Let us know what else you want us to implement, by posting in the Roadmap 2009 thread on the forums at Xceed.com.
Good programming!
|
-
Today I noticed this blog post by Nigel Spencer 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 25 releases 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. 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: So how does the Xceed DataGrid stack up against Microsoft’s? Here are some of the benefits that I’ve found so far: - Binding to SelectedItem works just fine.
- ReadOnly properties support at Grid, Column and Row level.
- CheckBox column allows simple styling whilst preserving ReadOnly value.
- Automatically supports current selection and edit indicators in the row header.
- 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.
- When auto-generating column headers it correctly uses any System.ComponentModel.DisplayName attributes that have been applied to the underlying class.
- 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).
Here are a couple of things Nigel suggests we could improve in an upcoming version: - 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?
- 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)]
Thanks for the suggestions. You can be sure the team has noticed them.
|
-
The question isn't "Wither WPF?" or "Will Silverlight marginalize WPF?"
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.
It's not WPF they should be worried about.
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.
Silverlight isn't just a compact, streamlined version of WPF, it is a compact, streamlined version of the entire .NET framework. 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.
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.
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.
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.
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.
So what’s my answer?
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 'Long Tail'. 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 gold records as well. I think it’s far from withering away or being marginalized, as many are worried about.
|
-
When Microsoft Tag was announced at CES 2009 on January 7th, the official deadline for submitting ad material for the February 2009 issue of MSDN magazine (the print publication) was already passed. But I knew it still wasn't too late, most magazines always keep a safety buffer for late submissions. So we created a tag on the Microsoft Tag site, 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 a fantastic datagrid for WPF development.)
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):

Is it the first use of Microsoft Tag in a printed magazine? Close, but there's this one, and perhaps one in a newspaper which doesn't require materials so long in advance.
Add this technology to the list of Microsoft technologies Xceed has been the first (or one of the first) to use :)
|
-
Note: This blog post is edited from time to time to keep it up to date. Microsoft has completed development of a basic WPF grid. It isn’t distributed as part of any RTM runtime of WPF, but is included in the .NET / WPF 4.0 beta. Many people are already trying it out. Meanwhile, Xceed has released v3.2 of our entry-level datagrid for WPF called Xceed DataGrid for WPF Standard Edition, improving the feature set and supporting the latest .NET capabilities, such as Entity Framework, which even Microsoft's own datagrid doesn't have built-in support for. Xceed DataGrid for WPF version 1.0 was released about 2.5 years ago on the same day as Windows Vista and .NET 3.0 were released. We clocked 11000 hours of R&D to bring that initial version to market. I suspect we've quadrupled that effort for the latest version and for the additional features in the Professional Edition. These are, by far, the most mature products for WPF available. We've priced the Standard Edition at an affordable $299.95 per developer. We think the return on investment will come back to you many times over. Here's why: 10 reasons why you should pass on using the basic Microsoft grid, and adopt Xceed’s Standard Edition instead. 1. Greater reliability Even though the new grid has Microsoft’s signature on it, the product is still raw, unproven, and has its share of bugs. Xceed on the other hand has released 9 major updates, 26 total updates to our datagrid, tweaked hundreds of items to satisfy developers, and has brought the product to a highly stable state. Stable enough to be used by Microsoft in Visual Studio Team System 2010, and by IBM in SystemBuilder, for example. 2. More features Xceed’s Standard Edition not only provides the capabilities the basic Microsoft grid does, but packs a total of over 100 built-in features, so you have more to work with. You’ll spend less time hunting in forums and blog posts, or experimenting to achieve your goals. Features such as grouping with UI virtualization and group-by row, masked textbox and other cell editors, fixed headers and footers, support for XML data sources, scroll tips, input validation and additional themes. 3. Instant upgrade path / Don’t paint yourself into a corner If you use the basic Microsoft grid, and find you need one or more capabilities that it does not provide, you are effectively stuck. You must either attempt to develop them yourself (which may be very costly or perhaps not even feasible if the datagrid was not designed with that scenario in mind) or lose all your development investment to replace the control with a more suitable one. With Xceed’s Standard Edition, the impressive set of advanced features from the Professional Edition of the product are already built-in, tested, and ready to be immediately activated with a new license key if needed. 4. Less hacks Developers are already spending time and money attempting to make the basic Microsoft grid do things it is not designed to do out of the box. This often results in workarounds with mediocre results. For example, attempting to achieve a Master/Detail view by placing a second grid instance in a row’s “Row Detail” area. This will, at best, provide a confusing scrollbar-within-scrollbar scenario with a poor user experience. 5. Frequent updates If you encounter an issue with the Microsoft grid, do not expect a speedy update. Need support for the new Entity Framework but it doesn’t support it yet? It could be a long wait. Once a Microsoft control is finally released inside a platform as opposed to being released on Codeplex, it typically receives little attention until the next major platform release, historically a year or more later. On the other hand, Xceed DataGrid for WPF Standard Edition is updated often, providing timely updates that address the wide variety of new needs customers have. 6. Increased productivity Becoming productive with Xceed’s datagrid is easy because it comes with extensive documentation and a wide variety of sample applications. At present, Microsoft grid includes little, if any documentation. There’s also an easier installation experience and a much better design-time experience thanks to a design-time configuration window that lets you set up most features quickly and easily. 7. Wow factor Why make the switch to WPF if nobody can tell the difference? The Microsoft grid looks and feels like a typical Windows Forms datagrid. There’s nothing WPF-like about it, it doesn’t include any themes and there are no subtle animation cues anywhere. While it can be styled by a designer, and is a true WPF control, out of the box it doesn’t bring any new UI goodness to the table, and doesn’t raise the bar. In contrast, Xceed has developed and offers a variety of themes that have wowed developers over the past two years. Xceed is proactive as well, having already demonstrated the upcoming smooth scrolling feature (easy for WPF to handle thanks to offloading the task to the GPU), touch gestures and sticky group headers. This isn’t your father’s WPF. 8. New interface styles Commercial components typically incorporate support for new interface styles much sooner than Microsoft does. For example, Microsoft’s own components only started supporting the Office 2003 style in 2005. If Microsoft introduces yet another style (and this is sure to be the case), you’ll either have to wait for Microsoft or someone else to style and code it for the Microsoft grid, or do it yourself. With Xceed’s datagrid, you can be sure a theme for the new style will promptly be available. In the case of the basic Microsoft grid for WPF, even the Office 2007 themes aren’t available. They are available as an upgrade to Xceed’s Standard Edition. 9. Better support to help you get to the finish line. The technical support offered with Xceed’s components is far more targeted and can make all the difference on the road to completing your project on time and on budget. If you use the free Microsoft datagrid, there is currently no consistent source of help, only forums. With Xceed, it is in our best interest to ensure everyone gets help. If you want priority support, it is also available, without breaking the bank. To enlist guaranteed help from Microsoft can be prohibitively expensive, and may not be available yet for the WPF grid. 10. Built to last Remember the improved Microsoft datagrid for Windows Forms 2.0? It was a complete redesign, with a new API that you had to learn. You could not swap out the previous version, make a few minor changes, and recompile. Microsoft’s free new WPF datagrid also has the potential to follow the same path. Xceed datagrids, on the other hand, are designed with a wide variety of future features in mind. The products are architectured to evolve without causing you to make major changes or to restart with new controls. Conclusion Xceed’s user interface division exists solely to produce datagrids. As a result, the entire development team focuses on datagrids and what they need to be first in their class. Microsoft, on the other hand, does not seem to aim to build the best controls, but rather to provide basic implementations with enough extensibility to enable common development scenarios. Xceed products give you the best return for your time and money.
|
-
In the past two years, Xceed has worked on the performance of Xceed DataGrid for WPF, and with August's release of 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.
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. This scheme doesn't let you know where you will land when 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.
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 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 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 a snappy and fast feel to it. Here's a Channel 9 video (WMV High) on the new feature, and a couple more new related features such as group headers that always stay in view and touch gesture support. Smooth Scrolling Datagrids with Xceed on Microsoft Channel9
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 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.
|
-
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. Day 1 winner was: Bill Janczac Day 2 winner was: Kris Bruland Day 3 winner was: Bob Sampson 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.
|
-

As part of the PDC Badges 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. Xceed PDC 2008 Badges XBOX 360 Giveaway Rules: · 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 · 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. · 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. · At least 10 attendees must be spotted and entered into the day’s draw in order for the draw to take place. · Xceed and Microsoft employees aren’t eligible to participate in these draws. · 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. · 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. · Xceed reserves the right to not “spot” attendees in front of or near Xceed’s exhibitor booth. · 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. · 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.
|
-
This past week we released our second Silverlight 2 component, Xceed Real-Time Zip for Silverlight. Our first Silverlight 2 component, Xceed Upload for Silverlight, 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:
· 1st .NET component (Xceed Zip for .NET, alpha, Nov. 2000)
· 1st WPF component (Xceed DataGrid for WPF, RTM, Jan. 2007)
· 1st Silverlight 2 component (Xceed Upload for .NET, RTM, May 2008)
· 1st Workflow Foundation activity (Xceed Activities for WF, RTM, Apr. 2007)
· 1st Biztalk Server 2000 component (Xceed FTP for Biztalk, RTM, Jun. 2001)
· 1st .NET Compact Framework component (Xceed Zip for .NET CF, Beta, Apr. 2003)
And, I couldn’t confirm this through Archive.org, 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.
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.

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. 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.
I should also mention that strong 128- to 256-bit AES encryption is also supported while compressing/uncompressing.
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.
Well, hope to see you at next week’s PDC 2008 event, where Xceed will be dedicating the our booth to exhibiting our advanced datagrid for WPF.
Odi
|
|
|
|
|