Share 'Squeezing the lemon. Getting some ROI from SSRS.' on Delicious Share 'Squeezing the lemon. Getting some ROI from SSRS.' on Digg Share 'Squeezing the lemon. Getting some ROI from SSRS.' on Facebook Share 'Squeezing the lemon. Getting some ROI from SSRS.' on Google+ Share 'Squeezing the lemon. Getting some ROI from SSRS.' on LinkedIn Share 'Squeezing the lemon. Getting some ROI from SSRS.' on Pinterest Share 'Squeezing the lemon. Getting some ROI from SSRS.' on reddit Share 'Squeezing the lemon. Getting some ROI from SSRS.' on StumbleUpon Share 'Squeezing the lemon. Getting some ROI from SSRS.' on Twitter Share 'Squeezing the lemon. Getting some ROI from SSRS.' on Add to Bookmarks Share 'Squeezing the lemon. Getting some ROI from SSRS.' on Email Share 'Squeezing the lemon. Getting some ROI from SSRS.' on Print Friendly

Squeezing the lemon. Getting some ROI from SSRS.

First of all, I am going to shamelessly plug our Business Intelligence (SSRS) services. If you aren’t already firmilar with our capabilities, I am going to strongly recommend perusing our site or contact us directly. Since thats out of the way, we can get to the squeezing part.

Awareness

One of our clients operates with a SQL based product and has done so since it’s inception. It wasn’t until 2010 that they began to use SSRS. Even now, it’s not leveraged as much as it could be. Why would they go years without exploring the possibilities for their BI needs? Maybe they didn’t have the staff knowledge or awareness to seek it out? Companies must be aware of their assets and tools.

Don’t Pay Twice

When recommending the usage of SSRS, their first question was “how much does it cost?” Some businesses don’t realize that if they already own a SQL Server license, they also have access to SSRS as well. It took them by suprise when we shared this info.

We’ve encountered environments where Crystal Reports is used as the default reporting platform. Curiously, each time it has been due to another larger software system which came packaged with Crystal inside. The executives weren’t really aware there were alternatives. Don’t get me wrong, we think Crystal is a perfectly fine option for any company’s reporting needs and in those cases, it made more business sense. The problem is that those same systems use a MS SQL server as a back-end and the client is effectively paying twice for BI and reporting capabilities.

Augment

Maybe you’ve known about SSRS and have been using it for cursory reporting needs. How can you stretch your dollar further? Aside from bringing in consultants to analyze your business intelligence needs, you can augment the capabilities with an analytics suite like Strategy Companion – Analyzer or MS Dynamics. Either way, you’re paying for something. SSRS is a reporting platform. It’s not magical, but it can be powerful in the right hands. Your business needs should dictate the pros and cons of adding a suite or hiring a consultant.

Integrate

Incorporate SSRS into your business process. Are you still trying to maintain Excel charts? Or Access databases? Having to hobble them together for your business reports at the end of the month? If you already have a SQL server in your enterprise, you should be automating all of these tasks in SSRS instead. If you don’t have SQL server then you should consider the cost of labor to make all of your reports vs the cost of a SQL server license.

Do you have line of business applications that you depend on for your operations? If you’re not integrating those with SSRS, its a great opportunity lost. Microsoft provides Web Service end points for application integration with SSRS. Any application that can consume SOAP web services can also integrate with SSRS.

Conclusion

Whether the concept is new to you or not, SSRS can still be used to a greater potential in most enterprises. If any of these points struck a chord with you or you’re just simply in a head-spin, I would encourage you to learn more about our services.

 

 

Share 'Using Microsoft ReportViewer with WPF' on Delicious Share 'Using Microsoft ReportViewer with WPF' on Digg Share 'Using Microsoft ReportViewer with WPF' on Facebook Share 'Using Microsoft ReportViewer with WPF' on Google+ Share 'Using Microsoft ReportViewer with WPF' on LinkedIn Share 'Using Microsoft ReportViewer with WPF' on Pinterest Share 'Using Microsoft ReportViewer with WPF' on reddit Share 'Using Microsoft ReportViewer with WPF' on StumbleUpon Share 'Using Microsoft ReportViewer with WPF' on Twitter Share 'Using Microsoft ReportViewer with WPF' on Add to Bookmarks Share 'Using Microsoft ReportViewer with WPF' on Email Share 'Using Microsoft ReportViewer with WPF' on Print Friendly

Using Microsoft ReportViewer with WPF

Sometimes Microsoft delivers new technologies that aren’t as polished as we would like. Using the MS ReportViewer in a WPF UI project is one of those times. The issue is the lack of a native WPF control for viewing SQL Server Reporting Services (SSRS) report files. As far as I am aware and as of the date of this blog post, there is still no native control released by MS. It is the purpose of this posting to walk through how to integrate the Winforms version of the ReportViewer control with a WPF project.

The SSRS package includes a ReportViewer component, which is used to host or display a report inside a Windows Forms control. As mentioned earlier, for reasons only known to MS, the control for WPF hasn’t been created yet. To display a report in WPF using the Windows Forms control we must run the control in a special host container that can proxy compatibility between Winforms and WPF.

The WindowsFormsHost control for WPF can be found in the “WindowsFormsIntegration.dll” assembly provided with .NET 4. Its purpose is to fully integrate and host a Windows Forms control in a WPF control. It can host any controls that derive from the System.Windows.Forms namespace. The downside of using this control is that we lose the ability to control the layout of the content in the designer because it doesn’t render until runtime. An alternative is to make a WinForms User Control and design it beforehand so you get the desired layout results at runtime.

To use the control, add the following references to the WPF application that will host the control:

  • System.Windows.Forms
  • WindowsFormsIntegration

In addition to the references, you will need to select the appropriate version of the ReportViewer control. v9.0 for SQL 2005 and v10.0 for SQL 2008.

Next we will need to set some base XAML. In this example, the control will take up the entire window.

<local:WindowBase x:Class="Pineywoods.Example.UI.Forms.ReportViewerForm"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:local="clr-namespace:Pineywoods.Example.UI">
        <Grid x:Name="LayoutRoot"/>
</local:WindowBase>
									


Here is the code to go along with the form. We create the WindowsHostControl and add it as a child of LayoutRoot. The actual report is a child of the WindowsHostControl, which acts as the proxy.

try
{
    // Create instance of WindowsFormsHost to integrate the report viewer control with the WPF form. 
    WindowsFormsHost host = new WindowsFormsHost();

    // Create instance of Report Viewer Control 
    Microsoft.Reporting.WinForms.ReportViewer reportViewer = new Microsoft.Reporting.WinForms.ReportViewer();
    reportViewer.ProcessingMode = ProcessingMode.Remote;
    reportViewer.ServerReport.ReportServerUrl = new Uri("SSRS_SERVER_URL");
    reportViewer.ServerReport.ReportPath = "ITEM_PATH_HERE";

    // Set the Basic authentication credentials. (http://msdn.microsoft.com/en-US/library/microsoft.reporting.winforms.reportservercredentials.networkcredentials(v=VS.100).aspx)
    reportViewer.ServerReport.ReportServerCredentials.NetworkCredentials = new System.Net.NetworkCredential("JOE_USER", "SECRET", "");

    // Causes the current report in the Report Viewer to be processed and rendered. 
    reportViewer.RefreshReport();

    // Sets the child control hosted by the WindowsFormsHost element. 
    host.Child = reportViewer;

    // Add the WindowsFormsHost element to the Grid in the ReportViewer.xaml 
    LayoutRoot.Children.Add(host);
}
catch (Exception ex)
{
    MessageBox.Show(ex.Message, "Error", MessageBoxButton.OK, MessageBoxImage.Error);
}

									

Hope this quick post helps someone to avert the frustration we encountered when integrating the control for the first time.

Share 'JIRA – Issue Tracking for the Masses' on Delicious Share 'JIRA – Issue Tracking for the Masses' on Digg Share 'JIRA – Issue Tracking for the Masses' on Facebook Share 'JIRA – Issue Tracking for the Masses' on Google+ Share 'JIRA – Issue Tracking for the Masses' on LinkedIn Share 'JIRA – Issue Tracking for the Masses' on Pinterest Share 'JIRA – Issue Tracking for the Masses' on reddit Share 'JIRA – Issue Tracking for the Masses' on StumbleUpon Share 'JIRA – Issue Tracking for the Masses' on Twitter Share 'JIRA – Issue Tracking for the Masses' on Add to Bookmarks Share 'JIRA – Issue Tracking for the Masses' on Email Share 'JIRA – Issue Tracking for the Masses' on Print Friendly

JIRA – Issue Tracking for the Masses

Over time, we have moved between various issue tracking methods based on our changing needs. We first started out on excel spreadsheets, but that’s not very practical and it quickly became problematic. We needed something to integrate with our code repository (Subversion) and that could provide some rudimentary metrics.

A few years ago, we moved to Redmine and were able to satisfy those requirements for a while. It was crude, but it served the purpose for a while. One of the major pain points of Redmine is the updating process. Some updates would break, and there were too many ways to accidentally cripple the entire package.

Our next move was to a much more mature issue tracking system from Atlassian named JIRA. We’ve been using their system since August of 2011. They offered a commercial version that wouldn’t break the bank for smaller shops like ourselves. Aside from providing the basics, like issue tracking and repository integration, they have an established plug-in economy and an easy way to update the system without shooting yourself in the foot.

Comparing these two isn’t really fair. It would be almost the same as comparing a bicycle to a motorcycle. JIRA simply has a plethora of more features and peripheral products from Atlassian that integrate auto-magically with the system. The features we find invaluable are the project management, release tracking, and repository integration via FishEye. We also find the Confluence product handy for storing content about how to support some of the apps we have out in the wild. It’s relatively easy to install and administrate.

It is a rare thing to find such a product that is both affordable and provides so much value. Two thumbs up Atlassian. Well done.

 

Share 'A framework for .NET MVVM/MVC Applications' on Delicious Share 'A framework for .NET MVVM/MVC Applications' on Digg Share 'A framework for .NET MVVM/MVC Applications' on Facebook Share 'A framework for .NET MVVM/MVC Applications' on Google+ Share 'A framework for .NET MVVM/MVC Applications' on LinkedIn Share 'A framework for .NET MVVM/MVC Applications' on Pinterest Share 'A framework for .NET MVVM/MVC Applications' on reddit Share 'A framework for .NET MVVM/MVC Applications' on StumbleUpon Share 'A framework for .NET MVVM/MVC Applications' on Twitter Share 'A framework for .NET MVVM/MVC Applications' on Add to Bookmarks Share 'A framework for .NET MVVM/MVC Applications' on Email Share 'A framework for .NET MVVM/MVC Applications' on Print Friendly

A framework for .NET MVVM/MVC Applications

For our inaugural post, we want to share an excellent resource for WPF or .NET and an all around great framework to help with implementing the MVVM or MVC pattern.

Last week we attended the lecture given by Mr. Markus Egger regarding the many changes coming down the pipe for Windows platform developers. Markus is a cool guy who I’ve had the pleasure of hearing speak at a number of these types of events. He is also a Microsoft Regional Director and an MVP. He’s the owner of CODE consulting and a few other endeavors under the EPS Software umbrella.

He informed the attendees about a  a flavor of their internal framework. I was intrigued since we have hit a few bumps in the WPF road. Managing the XAML and resources in a non MVC project can become a difficult task. We were seeing WPF bloat and I knew there had to be a better approach.

The team at CODE consulting has graciously decided to open source their framework for implementing the MVVM/MVC patterns:

“CODE Framework is a business application development framework from the makers of CODE Magazine, Markus Egger, and EPS Software Corp.

CODE Framework consists of various components and tools that help developers with common aspects of business application development, such as simplified SOA development with various clients, or WPF development, data access, and much more. The main focus of this framework is to enable productive, flexible, and highly maintainable business application development. “

 

We’ve had some success with the library already and will follow this project closely. I hope others can do the same.

Link: http://codeframework.codeplex.com/