At Mix 2010, they just announced that Silverlight 4 RC will now be supported in Visual Studio 2010 RC. This is great news since I my development shop is largely focused on Silverlight development and we have been going pretty much cutting edge but we couldn’t move from Visual Studio 2010 Beta 2 to Visual Studio 2010 RC when it was first announced on February 20, 2010. The wait is finally over!
Pretty excited to watch the keynotes and sessions this year! It seems like Silverlight, Windows Phone 7, and ASP.NET MVC are the main players this year. Enjoy…http://live.visitmix.com/
In our last post, we discussed a high level approach for providing dashboarding in our Silverlight application. One of hottest requests in information technology (IT) is the desire for an easy, intuitive, self-service means for authoring and publishing, and viewing dashboard elements. In todays post, we are going to drill deeper into what it takes to deliver the smallest unit in our dashboard solution: the Dashboard Element.
The Dashboard Element will be broken into two main entities:
- Table – a table will provide tabular data and allow for sorting, traffic light, and aggregations of data.
- Chart – a chart will provide a visual representation of data in one or more series of data. The chart will support Area, Bar, and Line types in the first version of the product. It will be possible to overlay one chart type over another.
The Dashboard Element will also contain a title, legend, X-Axis title, Y-Axis title, X-Axis Label rotation, series label, and a collection of DashboardQuery objects. We will cover each of these as we define this control.
The Dashboard Element will be a UserControl with the XAML being bound to its code-behind properties. This way we can set all of the properties necessary for a Dashboard Element to work declaratively without needing to create custom ViewModels for each instance.
Before we go any further, let’s take a look at what a flexible Dashboard would look like.
Next we will look at one of the Dashboard Elements maximized.
In the next post, we will go over the steps to creating the Dashboard Element.
Until then, see you next time.
Part of creating an enterprise solution for line of business applications, is the need to provide flexible, easy to use, dashboarding. Delivering business intelligence (BI) to your clients is the next step in the evolution of providing a mature enterprise application. Providing a means for the end user to create and modify existing dashboard items is invaluable. I will be presenting one way this can be solved and show you how to go about designing a solution for dashboarding. We will cover the following items:
- Dashboard layout manager
- Dashboard element
- Dashboard element selector
Dashboard Layout Manager
The dashboard layout manager will be the area of the screen that is dedicated to showing and displaying individual dashboard elements. It will allow for reordering items on the screen. We will be using the RadTileView as the underlying control for this piece. There is also the BlackLight control if you are interested in an alternative solution.
The dashboard element is responsible for showing an individual dashboard item. You can choose from the following types of elements:
Each of these provides a different perspective or view on the underlying data. A user will be able to select an element from the dashboard element selector.
Dashboard Element Selector
The dashboard element selector presents the user with a list of authorized dashboard elements that he/she has access to. Elements will be added to the layout manager once a user selects an element to be included.
The user will be presented a list of existing elements that he has rights to author and modify. A wizard will be presented for creating a new element. The wizard will walk the user through building a connection string (this may come from a list of authorized locations a user can author dashboard items from as well), the create a query or select a table and columns. Next the user will be presented with what type of dashboard element to present: Table, Area chart, Bar chart, Line chart. After this has been completed and the user has provided any additional meta data, the user will preview what the newly created element will look like and then select publish to save the definition to the database.
In the next post, we will begin the journey of building a generic solution to be used in any Silverlight application. Stay tuned.
Perhaps the most important part of an enterprise level application is Security. The design for enterprise level security in a Silverlight application. This example will use WCF RIA Services to facilitate database access and server requests. The data context of the WCF RIA Services. What we want to have is a simple solution that will provide global security as well as ensuring authentication and authorization. WCF RIA Services come with built-in compatibility for ASP.NET membership provider. If you have a legacy system, you may already have your own security model in place. Our approach will use the built-in object model but go against our own proprietary security model. In our last post, we discussed providing a security model that would allow more than just screen level security. Most security models only provide screen level security. Most clients often and usually demand lower level security than just at the screen level. The clients usually want to have a security model that allow you to define screen level as well as sub parts within the screen as well. Clients also want to have data level security as well. This is very difficult to have in place without custom coding. We are going to try and see if we can’t provide a model that will provide screen level, screen part level, and data level security.
Stay tuned for our proposed security model.