Tuesday, September 29, 2009

Increase IIS 5 connection limit on windows

On a non server edition of window operating system, we often got the error.
There are too many people accessing the Web site at this time.
OR
HTTP 403.9 - Access Forbidden: Too many users are connected
Internet Information Services


To increase the connection limit, go to :
1 - Go to directory c:\inetpub\AdminScripts
2 - Execute the following command.
adsutil set w3svc/MaxConnections 40

Wednesday, August 26, 2009

Read or Write on Registry in C#

Registry is a special place where applications stores its setting. Although Isolated storage for .net is a preferred way for storing
application settings yet registry has its own benefit. Normally it is difficult to find application created registry entries(if created carefully).
Below is a sample C# code.

//It will create a new subkey if not already created. otherwise it opens the existing one with write access.
RegistryKey objRegistryKey = Registry.CurrentUser.CreateSubKey("App_Name");
//Suppose i want to save last open time when application opened.
objRegistryKey.SetValue("LastOpenTime", DateTime.Now.ToString());


To get the value from registry, you use
string lastOpenDT = objRegistryKey.GetValue("LastOpenTime") as string;

The GetValue return the object type. you can than cast to the appropriate type.


Don't forget to add Microsoft.Win32 namespace.

For further reading,you can see the following two classess at msdn.
Registry,RegistryKey class.

Wednesday, May 20, 2009

multiple submit buttons and the enter key

As you know it is the limitation of asp.net that it has only one form, so if you have another section which needs enter key submission, than you can use default button as used below.
The defaultButton property of Panel or Form is used to ensure Enter Key Submission. Typically people used to Enter Key submission and if it is disabled, it might be annoying certain times.

The defaultButton really provides a way to handle Enter Keys for respective portions of the page when the focus is there.

Example:

<form defaultbutton="button1" runat="server">
<asp:textbox id="textbox1" runat="server"/>
<asp:textbox id="textbox2" runat="server"/>
<asp:button id="button1" text="Button1" runat="server"/>

<asp:panel defaultbutton="button2" runat="server">
<asp:textbox id="textbox3" runat="server"/>
<asp:button id="button2" runat="server"/>
</asp:panel>
</form>

Friday, April 24, 2009

Extract links from html in C#

private List ExtractLinks(string html)
{
List links = new List();

string startSquence = "<a";
string endSequence = "</a>";

html = html.ToLower();

while (html.IndexOf("<a") != -1)
{
int start = html.IndexOf(startSquence) ;
int end = html.IndexOf(endSequence, start+startSquence.Length);

//Extract the link, and add it to the list
if (end > start)
{
string link = html.Substring(start, end + endSequence.Length - start);

//Check b
if (link.Substring(1).IndexOf(startSquence) != -1)
{
html = html.Substring(start + startSquence.Length);
continue;
}

if (link != string.Empty)
{
links.Add(link);
}
}
else if (end < start)
{
html = html.Substring(start + startSquence.Length);
continue;
}
//Trim the raw data
html = html.Substring(end + endSequence.Length);
}
return links;
}

Wednesday, April 22, 2009

how to modify web.config in asp.net using C#

You can modify web.config at run time. For exmaple to add a property in app settings section of web.config, you can use the following c# code

Configuration myConfiguration = System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration("~");
myConfiguration.AppSettings.Settings.Add("CommentsLimit", "10");
myConfiguration.Save();


To update the existing property:
Configuration myConfiguration = System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration("~");
myConfiguration.AppSettings.Settings["CommentsLimit"].Value = "20";
myConfiguration.Save();

Thursday, April 9, 2009

virtual keyword in C#

If a base class method is to be overriden, it is defined using the keyword virtual
The class member method may be overriden even if the virtual keyword is not used, but its usage makes the code more transparent & meaningful.

When the override keyword is used to override the virtual method, in a scenario where the base class method is required in a child class along with the overriden method, then the base keyword may be used to access the parent class member. The following example will be helpful to understand.

public class Shape
{
string name;
public virtual void SetName(string name)
{ this.name = name; }
}


public class Circle : Shape
{
//This method is being overriden
public override void SetName(string name)
{
base.SetName("circle"); //We are calling parent class method
}
}

Wednesday, April 8, 2009

How to Backup MySQL Database automatically in linux

The command for back up a mysql database is:

15 2 * * * root mysqldump -u root -pPASSWORD --all-databases | gzip > /mnt/disk2/database_`data '+%m-%d-%Y'`.sql.gz

The first part is "15 2 * * *". The five fields mean "minute, hour, day of month, month, day of week" respectively. The character '*' stands for "any".
The next, "root", means "run following command as root account".

You can use cron job so that it takes backup daily.

Friday, March 20, 2009

World Sleep Day 2009

World Sleep Day is an international annual event, intended to be a celebration of sleep and a call to action on important issues related to sleep, including medicine, education, social aspects and driving. It aims to lessen the burden of sleep problems on society through better prevention and management of sleep disorders. World Sleep Day 2009 is being held on March 20th, under the slogan ‘Drive alert, arrive safe’. This year’s theme is transportation, focussing on safety, travel and driving alertness.

The first World Sleep Day was launched on March 14th 2008. Events involving local groups took place in public settings around the world and online with the unveiling of a declaration, presentation of educational materials, and exhibition of videos.



The World Sleep Day declaration is as follows:

  • Whereas, sleepiness and sleeplessness constitute a global epidemic that threatens health and quality of life,

  • Whereas, much can be done to prevent and treat sleepiness and sleeplessness,

  • Whereas, professional and public awareness are the firsts steps to action,

  • We hereby DECLARE that the disorders of sleep are preventable and treatable medical conditions in every country of the world.

The World Sleep Day Committee would like you to assist in raising awareness of World Sleep Day 2009 by carrying out related activities in your country. World Sleep Day Committee members:
Antonio Culebras, co-chair
Liborio Parrino, co-chair
Richard Allen,
Sudhansu Chokroverty,
Christian Guilleminault,
Mario Terzano,
Robert Thomas,
Claudia Trenkwalder,
Allan O’Bryan, WASM Executive Director.





Source:http://worldsleepday.wasmonline.org/

Thursday, March 5, 2009

How to validate integer in c#

In C#, we often need to validate that the value is an int. So most developers use try catch block as below.
try
{
int t = Convert.ToInt32("wrongval");
}
catch
{
}

while the best approach to test must be:

int num = 0;
Int32.TryParse("wrongval", out num); //It will not throw any exception, In case of failure, it set the value of num to zero and also return FALSE.


if you see the performance of above two methods, you will be amazed that the TryParse method is 1000 times faster than Convert.ToInt32.

Saturday, February 14, 2009

force one instance of an application in .NET

To force a single instance of an application, either fetch all processess and check your application process name that is it already there or not. Another option is to use Mutex class.

bool NoInstanceCurrently;
System.Threading.Mutex mutex = new System.Threading.Mutex(false, "applicationname", out NoInstanceCurrently);
if (NoInstanceCurrently == false)
{

MessageBox.Show("Another Instance is Running", "ApplicationName", MessageBoxButtons.OK, MessageBoxIcon.Stop);
return;
}

Play sound from Window Form in C#

Playing a sound from window forms in C# is simple because of SoundPlayer class from System.Media namespace.

SoundPlayer objSoundPlayer = new SoundPlayer("sound1.wav");
objSoundPlayer .Play();

Saturday, January 31, 2009

Single line If Statement.

string name = Session["UserName"];

if(string.isNullOrEmpty(name))
Response.Write("welcome guest");
else
Response.Write("welcome "+name);

You can write it in single line as below.

Response.Write((string.isNullOrEmpty(name)) ? "Welcome guest" : "Welcome "+name);

The HTML Label Tag Benifits

Make your forms accessible to screen readers
Make your forms easy to click on
Give your CSS more to hold on to


To see more detail, check this Link

Use generics with drop down list

You can use generice to bind with drop down list. Suppose you have a class Country.

public class Country
{
int id;
string countryName;

public int ID
{
get { return id; }
}


public string CountryName
{
get { return countryName; }
set { countryName = value; }
}
}

List objCountry = new List();
objCountry = objCountry.FetchCountries();
ddlCountryList.DataSource = objCountry;
ddlCountryList.DataTextField = "CountryName";
ddlCountryList.DataValueField = "ID";
ddlCountryList.DataBind();

The ddlCountryList is an asp.net drop down list control.

Wednesday, January 21, 2009

Designing a GUI

A tip for designing a GUI(Graphical user interface) is that the items in the menu is in the range of 5 to 9. The reason is the famous rule of George A. Miller Seven plus or minus two. it states that the human minds at a time remember seven plus or minus two items. so it is a good practice to not make more than seven items in a menu.