AutoComplete using customized UIHint attribute in ASP.Net MVC

In one project I worked on recently, I wanted to display list of suppliers which is very very long list, it was more than 6000 items. to display such number of items in dropdown list in a page of course will affect page load time.

The best solution was using Autocomplete jQuery plugin, it is light, powerful, and covers my needs but unfortunately I need to display that suppliers list in many pages for different view models.

One of possible solutions copy/paste autocomplete code snippet in each view.This solution didn't make me satisfied and I thought of course there is better way and more elegant to do it.

One possible alternative is Editor Template, in most cases we need the Id value not the item full details. for simplicity I'm using list of programming languages as a data source.

I override UIHint attribute to pass the URL of our datasource, the URL will be used as source for autocomplete jQuery plugin.
public class AutoCompleteUIHintAttribute : UIHintAttribute { privat…

5 Tips to Improve ASP.NET Application Performance

Web application is designed to handle hundreds and thousands of requests per seconds so to handle these requests effectively and successfully it is important to resolve any potential performance bottlenecks. Now we will state some tips that improve the performance of your web application.

1 - Cache Commonly used objects
You can cache commonly used objects in ASP.Net using Cache class that provides an extensive caching mechanism that storing resources and allow you to: Define an expiration for a cached object either by specified a TimeSpan or a fixed DateTime.Define priority for cached objects. when there is a memory lack and objects need to be freed.Define validity for a cached object by adding dependaciesAttach callbacks to cached objects,so when an objects is removed from cache the callback is invoked. you can add objects to cache by adding it to cache Dictionary Cache["Mykey"] = myObject; or using Insert method of Cache class
Cache.Insert("MyKey",myObject, Cache.…

Android : How to change progress bar color at runtime programmatically?

I faced this problem while creating one of my android applications(in fact, it is my first application :) ). Lets consider we want to create an android application to calculate the commitments progress of a certain category for website (note we will display a progress bar with one color red or green for simplicity).

Each time we run this application it calculate the commitment percentage and display a red progress bar if it is less than 50% or green one if it equal or greater than 50%. For learning purpose we will insert the number of total required committed users and the number of committed users and calculate the progress of commitment process.

Now lets write our code. If it is your first android application you can refer to this post to know how to create an android application.

How to create the full layout of this simple application is beyond this post, we will concentrate on the progress bar. The following code snippet is the definition of a …

ASP.Net MVC : Conditional Validation using ValidationAttribute

In ASP.Net MVC we can validate each input field by decorating the corresponding property in the model class with some validation attributes like Required, MaxLength, MinLength,...etc.

Sometime we need to validate a property according to another property value for example if we have a registration form and we need the user enter his age if he is a male and age not required if the user sex is female. So if we decorated the Age property with Required attribute it will show error message even if the user is female, so we need to bypass this check with females.

Assume our registration form will contains three fields, name, sex and age, and its model will be as follows
public class RegisterationModel { [Required(ErrorMessage = "*")] public String Name { get; set; } [Required(ErrorMessage = "*")] [Display(Name = "Gender")] public Sex Sex { get; set; } [RequiredIf("Sex", Sex.Male, "enter your age")] public In…

Restrict non-ajax requests using ActionMethodSelectorAttribute

In ASP.Net MVC each coming request is routed to a certain action method inside some controller and with JQuery it became piece of cake to call this action method using ajax. In some scenarios we need to restrict the incoming requests to be ajax request only, fortunately ASP.Net MVC represent a new method to Request object called IsAjaxRequest() that return true if the current request come from ajax call and return false if current request is normal request(typing url in address bar of a browser, click a link to this page,..etc).

We can use that method to deny any request come from ajax call or vise versa.
public class HomeController { public ActionResult Index() { if(Request.IsAjaxRequest()) { //Do something } else { //Do something else } } } As we see if we need to make this check many times in our project, we will rewrite the same if statement for each action we need it be called via ajax only, but is there another way t…

How to create android application?

We have already showed how to prepare your machine to develop your android application now it is the time to check if we prepared our machine successfully and we can write our first android application or not.

We will start learning developing android application by writing a simple application that will display "Hello World" sentence (the most famous example to start learning new tech). Follow the next steps to create your first android application:
Lunch Eclipse and select File > New > Project you will find a list of available projects templates select  android project template then click next, you will see window like this

Application Name : the name of your applications that will be appear on application list of your device(mobile or tablet)
Project Name : the name that will be appear in your eclipse work-space.
Packaeg Name : it will be used as identifier for your application and must be unique across all applications.
Build SDK : specify which sdk version you will…

Fundamental components of android application

This post is a one of some posts about android platform I will write to explore this platform and learn you(and me) developing android applications for mobiles and tablets devices. You don't have to own android mobile to create android application, what is you really need is a tool (Emulator) to test and debug your application.

You can refer to this post  where I showed how to prepare your machine to be able to create your android application. That post was written before releasing Ice Cream Sandwich version (android 4.x) but it does not matter, just you should download the latest version of all tools you have to install.

My reference for writing these posts is Pro Android 4 book.

In this post we will explore the key components of android framework which we must understand before delving into coding process.

views are user interface(UI) elements such as buttons, labels, text fields, or any other UI element. Views also can contain other views. Anything you see is a view.