Create OxyPlot pie-chart for Xamarin.Forms application

Currently, I am testing the waters of mobile development using Xamarin.Forms. For those who have not heard of it yet, as per its developer guides

“Xamarin.Forms is a cross-platform, natively backed UI toolkit abstraction that allows developers to easily create user interfaces that can be shared across Android, iOS, Windows and Windows Phone.”

It’s a great way to delve into mobile development for a C# developer. It allows to build native user interfaces for iOS, Android and Windows Phone wherein nearly 75% of the app code is shared across these platforms.

As a part of my pet project, I needed a pie-chart  and came across OxyPlot , an open source plot generation library, which was suitable for me. However, I had to overcome a number of hurdles before I could get everything working. So, this is my effort to document the steps of creating OxyPlot pie-chart for a mobile app built using Xamarin.Forms. So, here it goes! Continue reading

How to resolve JSON serialization error in Telerik MVC grid to populate large dataset

For the past year, I have been working with Telerik MVC extensions. When I initially started, it seemed a good idea to use these controls event though I was aware that Telerik no longer supported these controls. Down the line,  I came across several instances where I wished I had used some other controls to begin with. Anyway, that is not to say that these controls are not handy. They are very useful if you want to get an application ready with few controls here and there, without having to go into the details.

But sometimes it is just a pure headache. I encountered an issue where I got a “JSON serialization error” when trying to load a large data-set into the telerik mvc grid using Ajax binding. The Data Access layer and the back-end scripts seemed to be populating the right data-set into the model. But when the exception occurred when the model had to be rendered into the telerik mvc grid.


I tried increasing the maxLength in the web.config (as suggested in StackOverFlow posts) but that did not resolve the issue. The first assumption was that the since the JsonResult class caused the serialized JSON string to exceed the default maximum string of the JavaScriptSerializer class, this should have fixed the issue. Well, it did not fix the issue as the value of the MaxJsonLength only applies to the internal JavaScriptSerializer used by asynchronous communication layer to invoke Web services methods.


Continue reading

Create a fully-functional Dashboard using MVC4

Nowadays, almost all applications have a dashboard that provide a “easy to read, single page, real-time user interface” which shows that current status of the application, usually as a graphical representation. Dashboards provide snapshots and historical trends of the key performance indicators (KPIs) that help the end-users to obtain information at a glance.

In this article, I am going to outline the steps to create a simple but fully-functional dashboard using ASP.NET MVC4. For demonstration purpose, I have persisted the data in a session variable. To real-time project, this would be replaced by a database call. For demo, I have created a dashboard with four portlets ( or dashboard items) as shown below.


Let’s get started.

Continue reading

qTip Implementation in MVC Partial View

Recently, I came across a task wherein I had to show a list of dynamic information in a tooltip in a MVC project. So, I started playing around with qTip. My intent was to load the dynamic information within partial view and to load that partial view inside a qTip tooltip.

This article outlines the steps to show partial view in a tooltip using qTip. For demonstration purpose, we will create a list of events and will show the event details in the tooltip.

1. Create a MVC application.  The first step would be to download the necessary javascript files and css files to implement qTip2. This can be done by either using CDN from or by installing the Nuget Package using the following command. This will install the necessary jquery dependencies, script files and css files.


Continue reading

Multiple submit buttons in a MVC4 view using custom attribute

This post is targeted to anyone who is a beginner in MVC and finds oneself fidgeting over difficulties encountered during its learning curve.  While MVC is a very interesting architecture to work with, I personally felt it really tests one’s patience until you get a hang of it.

One of the common issues that most people face as a MVC novice developer is implementing multiple submit buttons in a form in MVC view. Recently, I had a similar scenario and thought it would a good idea to put it into an article for future reference.

The following three steps elaborate the solution to this problem.

1. We need to create a custom attribute that would match the action name with the name attribute of the button.


Continue reading

Render MVC partial view inside bootstrap modal dialog

In this article, I am going to show you how to create a modal dialog using bootstrap and then load a MVC partial view in the dialog.

The steps are explained below with screenshots.

1. We need to have a modal container in the main layout page. All the dialogs will be loaded inside this container. I have hardcoded the styles for now. It is recommended that all the styles be put in a separate stylesheet file.


2. Now, we need to add the needed javascript. This script will make an internal Ajax call and will inject the content of the partial view inside the modal container div.


Continue reading

Pass Multiple Models in a View in ASP.NET MVC

I came across this very intuitive article in CodeProject. This article explains how to pass multiple models in a view using ASP.NET MVC4, describing the pros and cons of these approaches and with a sample demo project as well.

  1. ViewModel
  2. Partial View
  3. ViewBag
  4. ViewData
  5. TempData
  6. Tuple

Link to Code Project Articles:

I found it very helpful as I am on the verge of building a ASP.NET MVC project and am diving into its nitty-gritty details.

Hope it helps you too! 🙂