Saturday, March 27, 2010

.NET 4.0- A new method StringBuilder.Clear() to clear stringbuilder

With Microsoft.NET 4.0 we have a convenient method called clear method which will clear string builder. This method is very use full where we need to use string builder for multiple string manipulation. So we don’t need to create a separate string builder for it. Let’s take a simple example which will print string builder string before,after clear so we can see how it works. Following is simple console application for this.

namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
System.Text.StringBuilder myStringBuilder =
new System.Text.StringBuilder(string.Empty);
myStringBuilder.Append("This is my string");
Console.WriteLine("String Builder Output Before Clear:{0}",
myStringBuilder.ToString());
myStringBuilder.Clear();
Console.WriteLine("String Builder Output After Clear:{0}",
myStringBuilder.ToString());
myStringBuilder.Append("This is my another string");
Console.WriteLine("String Builder Output After new string:{0}",
myStringBuilder.ToString());
}
}
}
Here is a output as expected.Strinbuilder

Technorati Tags: ,
Shout it
kick it on DotNetKicks.com
Share:

Dynamically creating Meta Tag from ASP.NET 2.0/1.1

Search Engine optimization is very important to any web site today you can’t get more visitors except search engine optimization.In asp.net site we can also create dynamic meta tags as per our requirement for each page very easily. I will going to show you the two ways of adding meta tags dynamically one for asp.net 2.0 and other for any asp.net version. Lets look first that way and then we will look another way. First you have to add runat=”Server” in your head tag like following.

<head id="Header" runat="server">
<title></title>
<link href="~/Styles/Site.css" rel="stylesheet" type="text/css" />
<asp:ContentPlaceHolder ID="HeadContent" runat="server">
</asp:ContentPlaceHolder>
</head>
Then you need to write following code to create metatags dynamically.

protected  void Page_Load(object sender, EventArgs e)
{

HtmlMeta keywords = new HtmlMeta();
keywords.Name = "keywords";
keywords.Content = "DotNetJaps-An asp.net blog";
Header.Controls.Add(keywords);

} 
Now let look at another way of doing this.Here you can to create a static function which will return the string and that string contain the dynamic metatags.

public static string SiteMetaTags()
{
System.Text.StringBuilder strMetaTag =
new System.Text.StringBuilder(string.Empty);
strMetaTag.AppendFormat(@"<meta content='{0}' name='Keywords'/>",
"DotNetJaps-An asp.net blog");
return strMetaTag.ToString();
}
Then we have to call that function from asp.net page html like following.

<head >
<title></title>
<link href="~/Styles/Site.css" rel="stylesheet" type="text/css" />
<%=SiteMetaTags()%>
</head>
That’s it it will be render as met tag in you asp.net page.Hope this will help you..

Technorati Tags: ,,
Shout it
kick it on DotNetKicks.com
Share:

How To Access Control On Master Page From Content Page

It a common requirement that you have change the master page content from content page. For example you have welcome label control that is there in master page and you want to change the welcome message after user logged in from the content page. Same way there might be another requirement like you need to bind a menu from content page as per user logged in having rights. In such kind of case use find control() method to access control on master page from the content page.You can find any control of master page like grid view,repeater and other controls. Let’s take above scenario where you have a label called lblWelcome in your master page and you need to change welcome message from content so first we have to create a label in master page like following.

<asp:Label ID="lblWelcome" runat="server"></asp:Label> 
Then with the help of find control method you have to first find the control with id and then you have to typecast that control as label and then you can do same thing as you can do with label.Here our requirement is changing welcome message so we are changing text of it.Like following.
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
Label lblWelcome = Page.Master.FindControl("lblWelcome")
as Label;
lblWelcome.Text = "Welome message from content page";
}

}
So that’s it you can easily access master page control from the content page. Hope this will help you

Technorati Tags: ,,
Shout it
kick it on DotNetKicks.com
Share:
Thursday, March 25, 2010

Important milestone achieved 1,50,000 Visit completed for blog

I started blogging for fun but when i involved as blogger i understand power of blogging. From blog we can connect to people directly we can find reactions of our post sometimes good some time harsh comment but it was quite learning experience. On this occasion i thank all the dotnetjaps reader for providing great support keep reading my blog i am going to post lots things and nowadays i am posting everyday something new. Previous three years was great for my career as well as for this blog. I never expect huge response from  reader but it was great and inspiring me to do more and more blogging. Thank you very much readers.

Here are some of the most popular post from the site meter.

  1. Singleton class in C#
  2. How to disable right click in Ms Web Browser Control of VB/C#.NET 2005
  3. gradient background control
  4. How to take Screenshot in C#
  5. Enumeration in C#.NET,VB.NET

I once again thanks all the readers from the bottom of my heart  and keep reading this blog.

Technorati Tags: ,,
Shout it
Share:
Wednesday, March 24, 2010

ASP.NET- Using span tag instead of label for performance

In ASP.NET controls used in to the user controls are generate Client Id which unique for the control and If you have so many user controls hierarchy then you will have very long client id like ‘ctl00_CPH_ctl02_BM_userLogin_UserName’.It will increase the Kilo Bytes of html rendered in the browsers. Label control is the control which is used to display text and its render as span tag in the html render by the browser. So in such type of scenario if you have so many label controls then your html is going to increase very much. And overall it will decrease the your application performance.

In asp.net 4.0 we can manage the Client Id via different options i have already posted over here. But for asp.net 3.5 and lower version we have to write our own code for doing that there are two options either we have to create a our own custom control inherited from label which override the ClientID generated by system or we can use the span tag instead of label control because ultimately label control will be rendered as span tag in browser.

We having same scenario in the one of the project we are having so many label controls in one of the form in our page. So it is going to kill our application because rendered HTML will be heavy. So we have decided to use span tag. Now you guys are having questions that how we can manage span text from the server side we have used static string variables for to manage the text of span. Let’s create a simple example to understand how its works.

We have created a static string which will contain the text for the label. We are assigning text in page_load event of page or control then we have used that static string directly in html in between span tag which will have same style sheet as label control. Following is code for that.

protected static string UserName;

protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
//asssign text here for first time
UserName = "User Name";
}
}
Now in the html of user control or page you need to write span tax as follows.
<span class="label"><%=UserName%></span>
That’s it will render span tag in your browser with same look as label and there will not be any id generated for this span tag and ultimately your html rendered in browser will have less Kilo Bytes. We able to reduce 10 to 12 KB bytes of our page via this technique. Hope this will help you too..

Technorati Tags: ,,,
Shout it
kick it on DotNetKicks.com
Share:
Tuesday, March 23, 2010

IIS Error: The process cannot access the file because it is being used by another process.

Recently in our one of the web servers all the sites using port 80 were stopped and when we tried to restart website it was giving error like process cannot access the file because it is being used by another process. After analyzing and diagnosis and searching on internet for the same problem i have found that it was a problem due to port 80 was used by another process. To solve the problem i have following command which will list IPs,PID(Process ID) and port that used by the process. The command is as below.

NETSTAT -ano
After running that command in command in command prompt it will give output like following.

IIS Error, IIS 6.0, IIS 7.0

From that output you can fine which port is used by which PID(Process Id). And then you can find the process from task manager. Process Id column in task manager is not enabled by default so you can do by View Menu->Select Column a following dialog box will appear.

ProcessId

Select PID (Process Identifier) and press OK.Now process Id will appear in task manager and in task manger go to processes tab where you can find out process by checking process id column then select that process right click->click End Process that will kill that process. Now again try to restart the IIS Site it will restart. In my case it was java updater who is using same port 80 and after killing my IIS Sites were ok. Hope this will help you..

Technorati Tags: ,

Shout it
kick it on DotNetKicks.com
Share:
Monday, March 22, 2010

C# 4.0-string.IsNullOrWhiteSpace()

We already have string.IsNullOrEmpty() method to check whether the string is null or empty.Now with Microsoft.NET Framework 4.0 there is a new another method that is called string.IsNullOrWhiteSpace() which will also check whether string is having whitespaces or not with null and empty string.This method is help full where we can check string is having whitespace rather then its empty or null. It will return a true if a string is empty,null or its having whitespaces. Let’s create a simple example and will see how its works. Here we are going test it with 4 options Empty string,Normal String,White spaces and Null String. Following is a code for that.

class Program
{
static void Main(string[] args)
{
string TestString = string.Empty;
Console.WriteLine("Test with empty string:{0}",
string.IsNullOrWhiteSpace(TestString));
TestString = "Normal String";
Console.WriteLine("Test with normal string:{0}",
string.IsNullOrWhiteSpace(TestString));
TestString = " ";
Console.WriteLine("Test with whitespace:{0}",
string.IsNullOrWhiteSpace(TestString));
TestString = null;
Console.WriteLine("Test with null:{0}",
string.IsNullOrWhiteSpace(TestString));
Console.ReadLine();
}
}
Following is a output of the above code here you can see its returning false with Normal string and for all other options its returning true as expected.
image

Shout it
kick it on DotNetKicks.com
Share:

Support this blog-Buy me a coffee

Buy me a coffeeBuy me a coffee
Search This Blog
Subscribe to my blog

  

My Mvp Profile
Follow us on facebook
Blog Archive
Total Pageviews