While working on an SSRS Report for a client, I ran into a problem surrounding the summing of a particular field in my dataset, called “TotalAmount”. It seemed that the SSRS Sum function was returning double the amount that I was expecting. This was a result of my view returning multiple rows for items that had different values for a particular field; in this case the field was named “AllocationPercentage”. The “AllocationPercentage” field was from a temp table that was joined to the view, which caused several rows for a single item. I knew the view was correct, but I wasn’t quite sure how to get the SSRS Sum function to only sum particular rows.
To get around the summing issue, a couple steps were taken to solve the problem.
1) I added a column for the row number, which was partitioned…
HTTP handlers and modules are a great way to handle HTTP request sent to the server. They can be used to write a specialized image server, a process to handle custom level of security, or a file processor. This was the case for a previous project I worked on; we used HTTP Handlers for the generation of different types of documents.
So what exactly are HTTP Handlers and HTTP Modules? An HTTP handler is an endpoint on the server that responds to requests for different resources. Handler code executes when an HTTP request for a specific resource is made to the server. In contrast, an HTTP module is code that gets called for every request or response routed to the application. Modules are ideal in situations when you want to add additional processing of tasks along with the predefined ASP.NET event…
Today’s modern day computers contain multi-core hardware capable of performing multiple tasks simultaneously, also known as parallel processing. Prior to .Net 4.0 the norm was to use synchronous operations to perform multi-threading. Although some level of synchronization logic is needed for data that is shared, the simple .NET 4.0 multi-threading technique presented in this article is excellent for scenarios when you have large data and do not have shared dependencies between the data.
To use the parallel feature in .NET 4.0 you need to use the namespace System.Threading.Tasks. Then you simply take the list structure that you want to traverse and iterate through it using Parallel.ForEach(IEnumerable<TSource> source, Action<TSource> body). For example,
Parallel.ForEach(someLargeList, item =>
For information on synchronized parallel programming, take a look at http://reedcopsey.com/2010/01/22/parallelism-in-net-part-4-imperative-data-parallelism-aggregation/. The author goes over how you can synchronize dependent data using the .NET 4.0 multithreading feature.
While getting acquainted with VS 2010 and .NET 4.0, I’ve come across some improvements that that I’ll be sharing in this blog. Three features in particular are Optional Parameters, Named Parameters and Permanent Redirect.
Before .NET 4.0 one would have to overload methods if they wanted the ability to implement optional parameters. With this latest version of .NET, developers simply have to add the optional parameter in the last position of parameters as displayed below.
Another new feature in .NET 4.0 is named parameters, which allow you to ignore the parameter order and mention parameters with names in a different order. For example:
Although Microsoft coins this as an improvement, I find that this gives way for confusing code that may be hard to manage. For instance, imagine reading several lines of code, written by someone else, with methods having parameters all jumbled…
ELMAH is an open source project used to add error logging capabilities to an ASP.NET Web application. ELMAH essentially provides a means for logging and reporting unhandled exceptions in applications. I came across this very nifty tool while working with the MASS LEG team to create the Legislative Automated Workflow System (LAWS) application for the Massachusetts Legislature. We used ELMAH to uncover issues in the application that were producing unhandled and non-descriptive exceptions. Using ELMAH, the dev team was able to use the stack trace of the exception to pinpoint and fix the problem. The following provides a brief description of how to set up ELMAH and enable & configure its error logging.
There are only a few steps to setting-up ELMAH. The first thing that should be done is to get the latest release of ELMAH and adding the…
As many may already know, Scrum is an approach to software development that, rather than being a full process or methodology, is a framework that utilizes the Agile scheme to develop software. Instead of providing a complete, detailed description of how everything is to be done in a project from the beginning, much is left up to the development team. Scrum projects progress in a series of sprints, which are also known as iterations no longer than a month. At the start of a sprint, team members commit to delivering a number of tasks listed in the project backlog list. At the end of the sprint, these features are considered done if everything within the task is fully coded, tested and integrated into the evolving product or system. At the conclusion of each sprint a review is performed to demonstrate…
In the healthcare business today, a problem exists in integrating various information systems. The issue can be partially attributed to the fact that these systems only serve one specific department within a healthcare business. Having such an issue can lead to inefficient patient care. For example, if patient’s health information is spread out over a number of different departments that do not collaborate, this could lead to negative implications on their overall care.
To address the aforementioned issue and in an attempt to resolve challenges faced during system integration of healthcare applications, queue manger technology is being integrated in the healthcare industry. Specifics on queue management can be found here, but in short, a queue management application is an interface that sends and receives messages to/from other queue managers, allowing programs to run independently of each other, at different speeds…