Presenting Intersoft Presenter™
As I promised we’re going to release CTP for our upcoming products in 2009 by the end of this week. And here I’m proudly present the Intersoft Presenter™ for Silverlight. (You can sign up to download the CTP from here and here the getting started link to start exploring our CTP release.
And while waiting the download process, I invite you to read the next section about the concept behind the Intersoft Presenter™ for Silverlight itself.
Intersoft Presenter™ for Silverlight fundamental concept is about delivering data in so many ways or views or I like to a say a “Presenter”. Understanding the possibilities that a data can be visualized in so much way we decide to come up with a concept that can accommodate that idea in a form of Presenter Manager.
- Centralized Data Distribution Concept
This concept allows the Data Presenter Manager to provide the centralized data to any “Presenter” that attached to it
- Everything is Synchronized Concept
Because everything is centralized, all sorting, filtering, item selection process will be synchronized throughout the entire Presenter”
- Extensibility through IDataPresenter concept
As you can see from the figures above the Presenter Manager will distribute the data to an interface called IDataPresenter, which means any components or user controls that implements that interface will be taken care by the Presenter Manager when the components are included in it.
To show you how this concept can be great, we also offers five built in views which are GridPresenter, IconPresenter, ListPresenter, HierarchicalPresenter, and CoverFlowPresenter which can be also used individually without the Presenter Manager. (For this CTP we don’t have Hierarchical Presenter and CoverFlow Presenter yet)
Here is how the data distribution concept is executed:
- When the Presenter Manager is loaded, it will retrieved the data from specified data source control (if any) or from a collection that specified by the developers. And this data (master) will be saved in memory.
- Then it will notify the Selected Presenter / View that there new updates from Presenter Manager (which basically just the data) through IDataPresenter interface’s method called RefreshDataPresenter then it’s up to the Presenter to process the data.
- Whenever the user perform a sort / multi sort or a filtering process, the Presenter Manager will manipulate the master data (for collection scenario) or request the manipulated data from the data source control and then notify the Selected Presenter again.
Note that the Presenter Manager only notify the current selected presenter about new data changes, and only notify the other presenter when it is selected so in here we introduce load on demand concept. For further extensibility you can also include a presenter that are not connected to the Presenter Manager distributed data concept, of course by doing this you won’t get any synchronization from the Presenter Manager so it’s totally independent.
In this sample I modify the item template for Grid Presenter to come out with a different new style of presenting the data, and I also use the charting for Silverlight Toolkit and create the user control that implements the IDataPresenter and then hook it to the Presenter Manager and what do I get is a nice integrated Presenting Tools for your LOB Application.
Other thing that I like to mention in this post is that we valued performance before other nice additional features. So in this early development we focus more on how to make it fast and stable even when its loads thousands of data.
From this picture you can see that even though we load 5000 records, its only takes about 60.396 kb in memory space, and if you try it by yourself in the CTP samples you can experience that the scrolling, column sizing, column moving, filtering, sorting or etc is very nice.
There are so many things that I want to show you about the Intersoft Solutions Presenter™ for Silverlight, not just the features but also how to do things that might be the solutions that you’re looking for. So keep checking back on this blog.