<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;CUcHSX85fip7ImA9WxNUFEk.&quot;"><id>tag:blogger.com,1999:blog-3335029349658819939</id><updated>2009-11-05T23:13:58.126+05:30</updated><title>ASP.Net C# Programming</title><subtitle type="html">ASP.Net Programming, C Sharp Programming, C Sharp, SQL Server 2000, Invalid Postback, Invalid Callback, Viewstate MAC Validation Failed, ASP.Net Custom Control, Schedule Windows Service, Asp.Net 3.0, Silverlight</subtitle><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://niravbhattsai.blogspot.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://niravbhattsai.blogspot.com/" /><link rel="hub" href="http://pubsubhubbub.appspot.com/" /><link rel="next" type="application/atom+xml" href="http://www.blogger.com/feeds/3335029349658819939/posts/default?start-index=26&amp;max-results=25&amp;redirect=false&amp;v=2" /><author><name>Nirav Bhatt</name><uri>http://www.blogger.com/profile/04140615764814901399</uri><email>noreply@blogger.com</email></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>37</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><link rel="self" href="http://feeds.feedburner.com/AspnetCProgramming" type="application/atom+xml" /><feedburner:emailServiceId>AspnetCProgramming</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><entry gd:etag="W/&quot;DEYBR3Y6cSp7ImA9WxNVFkw.&quot;"><id>tag:blogger.com,1999:blog-3335029349658819939.post-2760531107688922749</id><published>2009-10-26T22:33:00.006+05:30</published><updated>2009-10-27T09:32:36.819+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-10-27T09:32:36.819+05:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="ASP.Net C#" /><title>How to use ListView Control of ASP.Net 3.5?</title><content type="html">
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/DkZETKc6YrfWX0_A11W-i5vcaE4/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/DkZETKc6YrfWX0_A11W-i5vcaE4/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/DkZETKc6YrfWX0_A11W-i5vcaE4/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/DkZETKc6YrfWX0_A11W-i5vcaE4/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Hi Friends, &lt;/p&gt;  &lt;p&gt;ASP.net 3.5 have one new control called ListView as compare to .Net framework 2.0. &lt;/p&gt;  &lt;p&gt;Here i will mention a few benefits/use of ListView. &lt;/p&gt;  &lt;p&gt;Now when we want to display items [our data] in repeated column but we need to break it to another row. for certain scenario we were previously using DataList of v2.0 &lt;/p&gt;  &lt;p&gt;What is difference between DataList and ListView   &lt;br /&gt;DataList renders table structure with&amp;#160; and&amp;#160; structure, while ListView have free form like repeater. &lt;/p&gt;  &lt;p&gt;Now what is difference between Repeater and ListView   &lt;br /&gt;Repeater can repeat same ItemTemplate for each of your data item, while in ListView you will be able to repeate Same ItemTemplate and break it through GroupTemplate in LayoutTemplate. &lt;/p&gt;  &lt;p&gt;LayoutTemplate is basically a template which will cover all of your items. In the LayoutTemplate you need to specify the GroupTemplate. &lt;/p&gt;  &lt;p&gt;&amp;lt;LayoutTemplate &amp;gt;   &lt;br /&gt;&amp;#160; &amp;lt;div&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;asp:placeholder ID=&amp;quot;groupPlaceholder&amp;quot; runat=&amp;quot;server&amp;quot;&amp;gt;    &lt;br /&gt;&amp;#160; &amp;lt;/asp:placeholder&amp;gt;&amp;lt;/div&amp;gt;    &lt;br /&gt;&amp;lt;/LayoutTemplate &amp;gt; &lt;/p&gt;  &lt;p&gt;LayoutTemplate must contain either GroupTemplate or ItemTemplate to bind and load the data. &lt;/p&gt;  &lt;p&gt;Now we will have a question that what is GroupTemplate?   &lt;br /&gt;In GroupTemplate you will be able to specify your template of group of item. &lt;/p&gt;  &lt;p&gt;&amp;lt;GroupTemplate &amp;gt;   &lt;br /&gt;&amp;#160; &amp;lt;ul&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;asp:placeholder id=&amp;quot;itemPlaceholder&amp;quot; runat=&amp;quot;server&amp;quot;&amp;gt;    &lt;br /&gt;&amp;#160; &amp;lt;/asp:placeholder&amp;gt;&amp;lt;/ul&amp;gt;    &lt;br /&gt;&amp;lt;/GroupTemplate &amp;gt; &lt;/p&gt;  &lt;p&gt;In group template you must specify the itemPlaceholder in order to achive the items to be bound. &lt;/p&gt;  &lt;p&gt;Now your will specify your item view in ItemTemplate   &lt;br /&gt;&amp;lt;ItemTemplate&amp;gt;    &lt;br /&gt;&amp;lt;!-- Your Item Code --&amp;gt;    &lt;br /&gt;&amp;#160; &amp;lt;li&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;%# Eval(&amp;quot;Name&amp;quot;) %&amp;gt;    &lt;br /&gt;&amp;#160; &amp;lt;/li&amp;gt;    &lt;br /&gt;&amp;lt;/ItemTemplate&amp;gt; &lt;/p&gt;  &lt;p&gt;Now you will say where would i define that how much item should be covered in one group. Here is the answer, you need to assign it to GroupItemCount property of ListView. &lt;/p&gt;  &lt;p&gt;&amp;lt;asp:ListView ID=&amp;quot;ListView1&amp;quot; runat=&amp;quot;server&amp;quot; GroupItemCount=&amp;quot;3&amp;quot;&amp;gt;   &lt;br /&gt;///Your templates will go here LayoutTemplate, GroupTemplate, ItemTemplate    &lt;br /&gt;&amp;lt;/asp:ListView&amp;gt; &lt;/p&gt;  &lt;p&gt;Above code will repeat 3 item per group. &lt;/p&gt;  &lt;p&gt;So output of this sample code will be like   &lt;br /&gt;&amp;lt;div&amp;gt;    &lt;br /&gt;&amp;#160; &amp;lt;ul&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;li&amp;gt;Item 1&amp;lt;/li&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;li&amp;gt;Item 2&amp;lt;/li&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;li&amp;gt;Item 3&amp;lt;/li&amp;gt;    &lt;br /&gt;&amp;#160; &amp;lt;/ul&amp;gt;    &lt;br /&gt;&amp;#160; &amp;lt;ul&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;li&amp;gt;Item 4&amp;lt;/li&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;li&amp;gt;Item 5&amp;lt;/li&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;li&amp;gt;Item 6&amp;lt;/li&amp;gt;    &lt;br /&gt;&amp;#160; &amp;lt;/ul&amp;gt;    &lt;br /&gt;&amp;lt;/div&amp;gt; &lt;/p&gt;  &lt;p&gt;Hope it helps.   &lt;br /&gt;I will post further details in another article. &lt;/p&gt;  &lt;p&gt;Have a nice programming day.....&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3335029349658819939-2760531107688922749?l=niravbhattsai.blogspot.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/AspnetCProgramming?a=zAQqdWj_v_g:MTIt_TFnU7E:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AspnetCProgramming?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AspnetCProgramming?a=zAQqdWj_v_g:MTIt_TFnU7E:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AspnetCProgramming?i=zAQqdWj_v_g:MTIt_TFnU7E:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AspnetCProgramming?a=zAQqdWj_v_g:MTIt_TFnU7E:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AspnetCProgramming?i=zAQqdWj_v_g:MTIt_TFnU7E:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AspnetCProgramming?a=zAQqdWj_v_g:MTIt_TFnU7E:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AspnetCProgramming?i=zAQqdWj_v_g:MTIt_TFnU7E:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AspnetCProgramming?a=zAQqdWj_v_g:MTIt_TFnU7E:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AspnetCProgramming?i=zAQqdWj_v_g:MTIt_TFnU7E:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/AspnetCProgramming/~4/zAQqdWj_v_g" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://niravbhattsai.blogspot.com/feeds/2760531107688922749/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://niravbhattsai.blogspot.com/2009/10/aspnet-35-listview-control-how-to.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3335029349658819939/posts/default/2760531107688922749?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3335029349658819939/posts/default/2760531107688922749?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/AspnetCProgramming/~3/zAQqdWj_v_g/aspnet-35-listview-control-how-to.html" title="How to use ListView Control of ASP.Net 3.5?" /><author><name>Nirav Bhatt</name><uri>http://www.blogger.com/profile/04140615764814901399</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="08501418167249067995" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://niravbhattsai.blogspot.com/2009/10/aspnet-35-listview-control-how-to.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUUBR3oycCp7ImA9WxVWEk4.&quot;"><id>tag:blogger.com,1999:blog-3335029349658819939.post-2618686446372375492</id><published>2009-02-21T21:48:00.001+05:30</published><updated>2009-02-21T21:50:56.498+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-02-21T21:50:56.498+05:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="ASP.Net C#" /><category scheme="http://www.blogger.com/atom/ns#" term="ASP.Net Ajax" /><category scheme="http://www.blogger.com/atom/ns#" term="Performance of ASP.Net" /><title>ASP.Net 3.5 Performance Boost with Pipeline Optimization</title><content type="html">
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/Dx2PPUDVudy-BRZTlQwlodeMAkI/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Dx2PPUDVudy-BRZTlQwlodeMAkI/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/Dx2PPUDVudy-BRZTlQwlodeMAkI/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Dx2PPUDVudy-BRZTlQwlodeMAkI/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Hi Friends,&lt;/p&gt;  &lt;p&gt;Now a days we all are building web sites and forums for increase our popularity or revenue through the advertise.&lt;/p&gt;  &lt;p&gt;Now what is in our site that cause a user to visit our site and what is the factor that users are ignoring our site to visit often?&lt;/p&gt;  &lt;p&gt;The main factor is functionality and user experience. But even if your site have the best user experience but not the speed, user will slowly dislike your site due to the speed.&lt;/p&gt;  &lt;p&gt;So here is a suggestion to optimize your performance of ASP.Net sites with optimizing your pipeline of the execution.&lt;/p&gt;  &lt;p&gt;There are several ASP.NET default HttpModules which sit in the request pipeline and intercept each and every request.   &lt;br /&gt;for Example Following are default Modules.    &lt;br /&gt;&lt;/p&gt;  &lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;httpModules&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;add&lt;/span&gt; &lt;span class="attr"&gt;name&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;OutputCache&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;type&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;System.Web.Caching.OutputCacheModule&amp;quot;&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;
  &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;add&lt;/span&gt; &lt;span class="attr"&gt;name&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;Session&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;type&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;System.Web.SessionState.SessionStateModule&amp;quot;&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;
  &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;add&lt;/span&gt; &lt;span class="attr"&gt;name&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;WindowsAuthentication&amp;quot;&lt;/span&gt; 
        &lt;span class="attr"&gt;type&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;System.Web.Security.WindowsAuthenticationModule&amp;quot;&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;
  &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;add&lt;/span&gt; &lt;span class="attr"&gt;name&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;FormsAuthentication&amp;quot;&lt;/span&gt; 
        &lt;span class="attr"&gt;type&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;System.Web.Security.FormsAuthenticationModule&amp;quot;&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;
  &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;add&lt;/span&gt; &lt;span class="attr"&gt;name&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;PassportAuthentication&amp;quot;&lt;/span&gt; 
        &lt;span class="attr"&gt;type&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;System.Web.Security.PassportAuthenticationModule&amp;quot;&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;
  &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;add&lt;/span&gt; &lt;span class="attr"&gt;name&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;UrlAuthorization&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;type&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;System.Web.Security.UrlAuthorizationModule&amp;quot;&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;
  &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;add&lt;/span&gt; &lt;span class="attr"&gt;name&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;FileAuthorization&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;type&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;System.Web.Security.FileAuthorizationModule&amp;quot;&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;
  &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;add&lt;/span&gt; &lt;span class="attr"&gt;name&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;ErrorHandlerModule&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;type&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;System.Web.Mobile.ErrorHandlerModule, 
                             System.Web.Mobile, Version=1.0.5000.0, 
                             Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a&amp;quot;&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;
&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;httpModules&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;style type="text/css"&gt;
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;

&lt;p&gt;&lt;b&gt;&lt;i&gt;&lt;/i&gt;&lt;/b&gt;

  &lt;br /&gt;Now if you want To bust site performance you can Remove Unnecessary modules from pipeline in Web.Config.

  &lt;br /&gt;For Exam

  &lt;br /&gt;If we are Using only FormAuthentication we can remove&amp;#160; following Modules.

  &lt;br /&gt;&lt;b&gt;&lt;i&gt;
      &lt;br /&gt;&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;

&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;httpModules&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
         &lt;span class="rem"&gt;&amp;lt;!-- Remove unnecessary Http Modules for faster pipeline --&amp;gt;&lt;/span&gt;
         &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;remove&lt;/span&gt; &lt;span class="attr"&gt;name&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;WindowsAuthentication&amp;quot;&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;
         &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;remove&lt;/span&gt; &lt;span class="attr"&gt;name&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;PassportAuthentication&amp;quot;&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;
         &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;remove&lt;/span&gt; &lt;span class="attr"&gt;name&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;AnonymousIdentification&amp;quot;&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;
         &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;remove&lt;/span&gt; &lt;span class="attr"&gt;name&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;UrlAuthorization&amp;quot;&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;
         &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;remove&lt;/span&gt; &lt;span class="attr"&gt;name&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;FileAuthorization&amp;quot;&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;
&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;httpModules&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;style type="text/css"&gt;
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;

&lt;p&gt;Try this and let me know your review on the performance change. Also please suggest your suggestions which can optimize the performance of the ASP.Net site.
  &lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3335029349658819939-2618686446372375492?l=niravbhattsai.blogspot.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/AspnetCProgramming?a=qXcmIZy0"&gt;&lt;img src="http://feeds.feedburner.com/~f/AspnetCProgramming?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/AspnetCProgramming?a=TKnV3egE"&gt;&lt;img src="http://feeds.feedburner.com/~f/AspnetCProgramming?i=TKnV3egE" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/AspnetCProgramming?a=Dxw3Kak8"&gt;&lt;img src="http://feeds.feedburner.com/~f/AspnetCProgramming?i=Dxw3Kak8" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/AspnetCProgramming?a=4kzp3W1q"&gt;&lt;img src="http://feeds.feedburner.com/~f/AspnetCProgramming?i=4kzp3W1q" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/AspnetCProgramming?a=UweAG9Q7"&gt;&lt;img src="http://feeds.feedburner.com/~f/AspnetCProgramming?i=UweAG9Q7" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/AspnetCProgramming/~4/Zxlo_sN7EDU" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://niravbhattsai.blogspot.com/feeds/2618686446372375492/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://niravbhattsai.blogspot.com/2009/02/aspnet-35-performance-boost-pipeline.html#comment-form" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3335029349658819939/posts/default/2618686446372375492?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3335029349658819939/posts/default/2618686446372375492?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/AspnetCProgramming/~3/Zxlo_sN7EDU/aspnet-35-performance-boost-pipeline.html" title="ASP.Net 3.5 Performance Boost with Pipeline Optimization" /><author><name>Nirav Bhatt</name><uri>http://www.blogger.com/profile/04140615764814901399</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="08501418167249067995" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total><feedburner:origLink>http://niravbhattsai.blogspot.com/2009/02/aspnet-35-performance-boost-pipeline.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEYAR3g5eSp7ImA9WxRbF0s.&quot;"><id>tag:blogger.com,1999:blog-3335029349658819939.post-5968060488546081191</id><published>2008-11-15T22:50:00.001+05:30</published><updated>2008-12-09T00:19:06.621+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-12-09T00:19:06.621+05:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="ASP.Net C#" /><title>Tracking User Activity in Web site with ASP.Net C#.Net</title><content type="html">
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/ILZ5g50wlaUEmaR8p2k9dWlSKCw/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ILZ5g50wlaUEmaR8p2k9dWlSKCw/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/ILZ5g50wlaUEmaR8p2k9dWlSKCw/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ILZ5g50wlaUEmaR8p2k9dWlSKCw/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;h5&gt;Reason to Track User Activity:&lt;/h5&gt;  &lt;p&gt;Now a days every small business is listed over the Internet. Every business wants to expand and get more business from the World Market. Also some users want to generate revenue from the public ads like Google Adsense.&lt;/p&gt;  &lt;p&gt;To obtain higher business a web site owner needs to understand visitor behavior. Now to understand the visitor behavior a developer need to log all the activity of a visitor. From which source a user has reached to web site. If the user has came from a search engine then on which keyword he has searched. How user navigate to other page? How much time a user spend on the web page? How many page a user visit in a single visit?&lt;/p&gt;  &lt;p&gt;After analyzing above all data a developer can decide how to keep user visiting web site? Which section of the web site have most visit? Where to improve in the user interested content?&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Tools for Tracking User Activity:&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;To track the user activity there are many Online tools are available like Google Analytics or MyBlogLog. Google Analytics is a free user tracking tool provided by Google. With Google Analytics you can analyze your visit and monitor visit from different country, visit from different sources, visit on different keywords. You can also monitor entering and exiting page. MyBlogLog is providing free service but it is limited. If you want a full service you need to upgrade to MyBlogLog Pro which is paid.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3335029349658819939-5968060488546081191?l=niravbhattsai.blogspot.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/AspnetCProgramming?a=FavoJ8zC"&gt;&lt;img src="http://feeds.feedburner.com/~f/AspnetCProgramming?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/AspnetCProgramming?a=0wcrLPHK"&gt;&lt;img src="http://feeds.feedburner.com/~f/AspnetCProgramming?i=0wcrLPHK" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/AspnetCProgramming?a=kjKYWCAG"&gt;&lt;img src="http://feeds.feedburner.com/~f/AspnetCProgramming?i=kjKYWCAG" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/AspnetCProgramming?a=aesgAnux"&gt;&lt;img src="http://feeds.feedburner.com/~f/AspnetCProgramming?i=aesgAnux" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/AspnetCProgramming?a=fUHdDOvf"&gt;&lt;img src="http://feeds.feedburner.com/~f/AspnetCProgramming?i=fUHdDOvf" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/AspnetCProgramming/~4/00hcBlMpDcg" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://niravbhattsai.blogspot.com/feeds/5968060488546081191/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://niravbhattsai.blogspot.com/2008/11/tracking-user-activity-aspnet-c.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3335029349658819939/posts/default/5968060488546081191?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3335029349658819939/posts/default/5968060488546081191?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/AspnetCProgramming/~3/00hcBlMpDcg/tracking-user-activity-aspnet-c.html" title="Tracking User Activity in Web site with ASP.Net C#.Net" /><author><name>Nirav Bhatt</name><uri>http://www.blogger.com/profile/04140615764814901399</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="08501418167249067995" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://niravbhattsai.blogspot.com/2008/11/tracking-user-activity-aspnet-c.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0IARXYzeip7ImA9WxRVF0s.&quot;"><id>tag:blogger.com,1999:blog-3335029349658819939.post-8559437731985151753</id><published>2008-11-15T22:49:00.001+05:30</published><updated>2008-11-15T22:49:04.882+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-11-15T22:49:04.882+05:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="ASP.Net C#" /><category scheme="http://www.blogger.com/atom/ns#" term="Personalizing" /><category scheme="http://www.blogger.com/atom/ns#" term="ASP.Net Ajax" /><title>Building Interactive User Interfaces with Microsoft ASP.NET AJAX: Enabling Bookmarking and the Browser's Back Button</title><content type="html">
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/7MnYq03Tmt4f5k6cfZgLyrZHp0k/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/7MnYq03Tmt4f5k6cfZgLyrZHp0k/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/7MnYq03Tmt4f5k6cfZgLyrZHp0k/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/7MnYq03Tmt4f5k6cfZgLyrZHp0k/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;Introduction&lt;/b&gt;     &lt;br /&gt;AJAX applications offer a more interactive user experience by replacing traditional full page postbacks with leaner and more efficient partial page postbacks. These partial page postbacks are executed asynchronously using JavaScript code in the browser. When a web surfer clicks on a link or submits a form (via a full page postback) the browser automatically adds the page being left to the browser's history. This allows the web surfer to use his Back and Forward buttons to navigate through this history. However, the partial page postbacks performed by AJAX applications do not cause the browser to register anything in their history. As a consequence, if a user visits an AJAX-enabled web page, performs a number of partial page postbacks, and then clicks the Back button, she is &lt;b&gt;not&lt;/b&gt; returned to the state of the page prior to the last partial page postback. Instead, she is taken back to the page she was at &lt;i&gt;before&lt;/i&gt; arriving at the AJAX-enabled web page. &lt;/p&gt;  &lt;p&gt;The good news is that starting with ASP.NET 3.5 SP 1, the ScriptManager control in the ASP.NET AJAX Framework includes functionality for creating history points in an AJAX-enabled web page. Adding a history point creates an entry in the browser's history for a particular page state. What's more, this page state is encoded in the querystring of the browser, meaning that visitors can bookmark a particular state of an AJAX application. &lt;/p&gt;  &lt;p&gt;This article shows how to add history points using the ScriptManager control. In particular, it shows how to record history points whenever the user pages or sorts a GridView. Read on to learn more! &lt;/p&gt;  &lt;p&gt;&lt;b&gt;A Quick Overview of the ASP.NET AJAX History Feature&lt;/b&gt;     &lt;br /&gt;As noted in the Introduction, the history feature became part of the ASP.NET AJAX Framework in ASP.NET version 3.5, SP 1. (For a link to download SP1, and for more information on the features included in SP1, see: &lt;a href="http://www.asp.net/downloads/3.5-SP1/"&gt;ASP.NET in .NET 3.5 Service Pack 1&lt;/a&gt;.) It was originally part of the &lt;a href="http://quickstarts.asp.net/Futures/default.aspx"&gt;Microsoft ASP.NET Futures&lt;/a&gt;, although at that point in time this functionality was implemented using a History Web control. In the ASP.NET 3.5 SP1 release, this functionality was moved to the ScriptManager control.&lt;/p&gt;  &lt;p&gt;The history feature allows a page developer to create &amp;quot;states&amp;quot; in the lifecycle of an AJAX-enabled web page. Such a &amp;quot;state&amp;quot; is created by adding a history point. Once defined, these &amp;quot;states&amp;quot; are accessible from the browser's Back button; moreover, they can be bookmarked. If you use GMail as your online email account then you've already encountered an AJAX application that uses such history &amp;quot;states.&amp;quot; Whenever you read an email in GMail, the email message is loaded asynchronously via JavaScript calls back to Google's servers. Your browser's querystring is also updated to include the ID of the message. If you hit the Back button you return to your GMail Inbox (and not the page you were visiting before going to GMail). Likewise, you can bookmark the page you are on while reading a particular email message. If you later visit that bookmark the GMail interface will automatically load the same mail message. &lt;/p&gt;  &lt;p&gt;The ASP.NET AJAX history feature works in the following manner: &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;You, the page developer, decide what actions are cause for a history point to be added. These actions can be client-side actions (clicking on an HTML element) or server-side actions triggered by a partial page postback. The set of actions that should cause a history point depend on the web page and its user interface. The download available at the end of this article includes two pages that display a sortable and page-able GridView. In one page, each sort action causes the insertion of a history point; in the other, both sorting and paging actions cause the insertion of a history point. &lt;/li&gt;    &lt;li&gt;When an action that should cause the insertion of a history point fires, you need to add a history point. This is done by creating some string that models the state and registering that history state with the ScriptManager control. You can also update the page's &lt;code&gt;Title&lt;/code&gt; based on the state so that the browser's title bar and history information includes an apt description for each state. &lt;/li&gt;    &lt;li&gt;Finally, you need to create an event handler for the ScriptManager's &lt;a href="http://msdn.microsoft.com/en-us/library/system.web.ui.scriptmanager.navigate.aspx"&gt;&lt;code&gt;Navigate&lt;/code&gt; event&lt;/a&gt;. This event fires whenever the user reaches the page by clicking the Back or Forward buttons or when coming in from a bookmark. The &lt;code&gt;Navigate&lt;/code&gt; event handler is responsible for restoring the history state. &lt;/li&gt; &lt;/ul&gt; In short, the history feature allows you to say, in response to certain user actions, &amp;quot;I want to save the application's current state.&amp;quot; Doing so injects the current page information in the browser's history and encodes the state that you specify in the querystring. Later, if a user returns to this &amp;quot;state&amp;quot; by hitting the Back or Forward buttons or via a bookmark, you must restore that state.   &lt;p&gt;The remainder of this article looks at how to save a history point whenever a GridView is sorted, and how to restore that state when needed. Let's get started! &lt;/p&gt;  &lt;p&gt;&lt;b&gt;Paging and Sorting Through Products in an AJAX-Enabled Web Page&lt;/b&gt;     &lt;br /&gt;Before we concern ourselves with ASP.NET AJAX's history feature, let's start by creating and demonstrating the standard AJAX behavior with regard to the Back button and bookmarks. The demo available for download at the end of this article includes an ASP.NET page named &lt;code&gt;StandardBehavior.aspx&lt;/code&gt; that contains a sortable and page-able GridView that lists the contents of the &lt;code&gt;Products&lt;/code&gt; table in the Northwind database. The GridView is placed within an UpdatePanel and therefore any postbacks triggered by the GridView are handled as partial page postbacks. &lt;/p&gt;  &lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;asp:ScriptManager&lt;/span&gt; &lt;span class="attr"&gt;ID&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;MyScriptManager&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;runat&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;server&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt; 
&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;asp:ScriptManager&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt; 
&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;asp:UpdatePanel&lt;/span&gt; &lt;span class="attr"&gt;ID&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;UpdatePanel1&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;runat&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;server&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt; 
   &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;ContentTemplate&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt; 
      &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;asp:GridView&lt;/span&gt; &lt;span class="attr"&gt;ID&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;gvProducts&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;runat&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;server&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;AllowPaging&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;True&amp;quot;&lt;/span&gt; 
      &lt;span class="attr"&gt;AllowSorting&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;True&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;AutoGenerateColumns&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;False&amp;quot;&lt;/span&gt; ...&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt; 
         ... 
      &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;asp:GridView&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt; 
   &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;ContentTemplate&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt; 
&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;asp:UpdatePanel&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt; &lt;/pre&gt;
&lt;style type="text/css"&gt;
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;

&lt;p&gt;Visit the &lt;code&gt;StandardBehavior.aspx&lt;/code&gt; and sort and page through the grid. Each time a sort or paging link is clicked, a partial page postback ensues and the grid's display is updated. Because partial page postbacks are used, the browser does not maintain any sort of history when sorting and paging. Therefore, if you click the Back button you will not be taken back to the previous sort order or the previous page. Instead, you'll be returned to the page you were visiting &lt;i&gt;before&lt;/i&gt; you reached the &lt;code&gt;StandardBehavior.aspx&lt;/code&gt; page. The following screen shots illustrate this behavior. &lt;/p&gt;

&lt;p&gt;&lt;b&gt;Start by Visiting &lt;code&gt;Default.aspx&lt;/code&gt;...&lt;/b&gt; 

  &lt;br /&gt;&lt;img alt="Start by visiting Default.aspx..." src="http://aspnet.4guysfromrolla.com/images/AJAXhist1.gif" width="500" height="406" /&gt;&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Click on the &amp;quot;Behavior With History on Sorting&amp;quot; Link. Now Sort and Page through the Grid Several Times. Here is the Grid After I've Sorted by Price and Moved to Page 4...&lt;/b&gt; 

  &lt;br /&gt;&lt;img alt="Sort and page through the grid..." src="http://aspnet.4guysfromrolla.com/images/AJAXhist2.gif" width="535" height="478" /&gt;&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Click Your Browser's Back Button. You are Returned to &lt;code&gt;Default.aspx&lt;/code&gt;...&lt;/b&gt; 

  &lt;br /&gt;&lt;img alt="Clicking the Back button returns you to Default.aspx..." src="http://aspnet.4guysfromrolla.com/images/AJAXhist1.gif" width="500" height="406" /&gt;&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Adding a History Point Whenever the User Sorts the Grid&lt;/b&gt; 

  &lt;br /&gt;Let's extend our example to save a history point whenever the user sorts the grid. By doing so, each time the user sorts the grid the browser will record a new history state and the browser's URL will have its querystring updated to include the state information (this allows the page to be bookmarked). With recording history points whenever the grid is sorted, the user could sort the grid by Price, then by Name, and then by ProductID. If the user, while viewing the grid sorted by ProductID, clicked his browser's Back button, he would be returned to seeing the grid sorted by Name (rather than being returned to the page visited prior to reaching this page). The demo available for download at the end of this article includes an ASP.NET page named &lt;code&gt;BehaviorWithHistory.aspx&lt;/code&gt; that implements this functionality. &lt;/p&gt;

&lt;p&gt;Recall earlier that I said there are three things we need to do when using the ASP.NET AJAX history feature: &lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;Decide what actions cause a history point to be inserted. &lt;/li&gt;

  &lt;li&gt;Add the history point whenever one of the actions from task #1 is performed. &lt;/li&gt;

  &lt;li&gt;Create an event handler for the ScriptManager's &lt;code&gt;Navigate&lt;/code&gt; event that restores the state when the user clicks the Back or Forward buttons, or when he reaches a page via a bookmark. &lt;/li&gt;
&lt;/ol&gt;
We've already knocked out task #1 - we've decided to record the history whenever the GridView is sorted. Whenever a GridView is sorted it raises its &lt;a href="http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.gridview.sorting.aspx"&gt;&lt;code&gt;Sorting&lt;/code&gt; event&lt;/a&gt;. We need to create an event handler for the &lt;code&gt;Sorting&lt;/code&gt; event to add a history point. 

&lt;p&gt;A history point is added via a call to the ScriptManager class's &lt;a href="http://msdn.microsoft.com/en-us/library/system.web.ui.scriptmanager.addhistorypoint.aspx"&gt;&lt;code&gt;AddHistoryPoint&lt;/code&gt; method&lt;/a&gt;. This method requires that we supply a string that describes the current state. This string will be used later in the ScriptManager's &lt;code&gt;Navigate&lt;/code&gt; event handler to reconstruct the state of the application when a page is reached via the Back or Forward buttons, or from a bookmark. Because we are basing the history point on the sort criteria, the GridView's &lt;code&gt;SortExpression&lt;/code&gt; and &lt;code&gt;SortDirection&lt;/code&gt; properties define the state. Therefore, we need to pass the values of these properties into the &lt;code&gt;AddHistoryPoint&lt;/code&gt; method. &lt;/p&gt;

&lt;p&gt;The following code shows how I encode the GridView's state and add it as a history point. &lt;/p&gt;

&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;protected&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; gvProducts_Sorting(&lt;span class="kwrd"&gt;object&lt;/span&gt; sender, GridViewSortEventArgs e) 
{ 
   &lt;span class="rem"&gt;// Create the history state &lt;/span&gt;
   MyScriptManager.AddHistoryPoint(&lt;span class="str"&gt;&amp;quot;SortExpression&amp;quot;&lt;/span&gt;, e.SortExpression); 
   MyScriptManager.AddHistoryPoint(&lt;span class="str"&gt;&amp;quot;SortDirection&amp;quot;&lt;/span&gt;, e.SortDirection.ToString()); 
   Page.Title = GetPageTitle(e.SortExpression, e.SortDirection); 
} &lt;/pre&gt;
&lt;style type="text/css"&gt;
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;

&lt;p&gt;Note that for each item I want to store in the state I call the &lt;code&gt;AddHistoryPoint&lt;/code&gt; method, passing in a &amp;quot;name&amp;quot; for the state item and its value. In the above code I register two items in the state, named &amp;quot;SortExpression&amp;quot; and &amp;quot;SortDirection&amp;quot; and storing the values of &lt;code&gt;e.SortExpression&lt;/code&gt; and &lt;code&gt;e.SortDirection&lt;/code&gt;, respectively. &lt;/p&gt;

&lt;p&gt;After saving the state, I update the page's title. The GetPageTitle method generates and returns a suitable title given the passed-in &lt;code&gt;SortExpression&lt;/code&gt; and &lt;code&gt;SortDirection&lt;/code&gt; values. For instance, when sorting by the &lt;code&gt;UnitPrice&lt;/code&gt; column in ascending order the &lt;code&gt;GetPageTitle&lt;/code&gt; method returns the string &amp;quot;Viewing Products Sorted by Price (Ascending)&amp;quot;. This value is assigned to the &lt;code&gt;Page&lt;/code&gt; object's &lt;code&gt;Title&lt;/code&gt; property. &lt;/p&gt;

&lt;p&gt;If we visit the page with this code in place, each time we sort the grid the URL in the browser's Address bar is updated to include a querystring that specifies the state information. Note the Address bar in the following screen shots. When the &lt;code&gt;BehaviorWithHistory.aspx&lt;/code&gt; page is first visited the URL is, as we'd expect, just &lt;code&gt;BehaviorWithHistory.aspx&lt;/code&gt;. &lt;/p&gt;

&lt;p&gt;&lt;img alt="When first visiting BehaviorWithHistory.aspx there is no content in the querystring." src="http://aspnet.4guysfromrolla.com/images/AJAXhist3.gif" width="597" height="479" /&gt;&lt;/p&gt;

&lt;p&gt;But as soon as the grid is sorted the querystring is updated to include the encoded state information. Also the Back button is now available. In the screen shot below the grid is sorted by Price in ascending order and the URL in the Address bar now reads: &lt;code&gt;BehaviorWithHistory.aspx#&amp;amp;&amp;amp;+2toRdN1TcuXKFN4BhNSqrMXMtnAEvRpZEk2MUzyrUhoPiJPO4mIypwAP9J+s7VtZ+uMZ0ub2iUXY5KDMgwufg==&lt;/code&gt;. &lt;/p&gt;

&lt;p&gt;&lt;img alt="The grid is now sorted by the Price column; the URL has been updated to include the history state in the querystring." src="http://aspnet.4guysfromrolla.com/images/AJAXhist4.gif" width="546" height="493" /&gt;&lt;/p&gt;

&lt;p&gt;While the Back button is now click-able, going back does not return us to the previous state of the grid before it was sorted by Price. Rather, we remain on the &lt;code&gt;BehaviorWithHistory.aspx&lt;/code&gt; page, but the data is still sorted by Price. This is because we have yet to complete the final step - task #3 - which is to create an event handler for the ScriptManager control's &lt;code&gt;Navigate&lt;/code&gt; event. The &lt;code&gt;Navigate&lt;/code&gt; event handler fires whenever the user visits a page by clicking the Back or Forward buttons or via a bookmark. The &lt;code&gt;Navigate&lt;/code&gt; event handler is responsible for rendering the state as specified through the querystring. &lt;/p&gt;

&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;protected&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; MyScriptManager_Navigate(&lt;span class="kwrd"&gt;object&lt;/span&gt; sender, HistoryEventArgs e) 
{ 
   &lt;span class="kwrd"&gt;if&lt;/span&gt; (!&lt;span class="kwrd"&gt;string&lt;/span&gt;.IsNullOrEmpty(e.State[&lt;span class="str"&gt;&amp;quot;SortExpression&amp;quot;&lt;/span&gt;])) 
   { 
      &lt;span class="kwrd"&gt;string&lt;/span&gt; sortExpressionFromState = e.State[&lt;span class="str"&gt;&amp;quot;SortExpression&amp;quot;&lt;/span&gt;]; 
      SortDirection sortDirectionFromState = (SortDirection)Enum.Parse(&lt;span class="kwrd"&gt;typeof&lt;/span&gt;(SortDirection), e.State[&lt;span class="str"&gt;&amp;quot;SortDirection&amp;quot;&lt;/span&gt;]); 
      &lt;span class="rem"&gt;// Sort the grid according to the sort information in the history state &lt;/span&gt;
      gvProducts.Sort(sortExpressionFromState, sortDirectionFromState); 
      Page.Title = GetPageTitle(sortExpressionFromState, sortDirectionFromState); 
   } 
   &lt;span class="kwrd"&gt;else&lt;/span&gt; 
   { 
      &lt;span class="rem"&gt;// Sort the grid by ProductName in ascending order &lt;/span&gt;
      gvProducts.Sort(&lt;span class="str"&gt;&amp;quot;ProductName&amp;quot;&lt;/span&gt;, SortDirection.Ascending); 
      Page.Title = GetPageTitle(&lt;span class="str"&gt;&amp;quot;ProductName&amp;quot;&lt;/span&gt;, SortDirection.Ascending); 
   } 
} &lt;/pre&gt;
&lt;style type="text/css"&gt;
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;

&lt;p&gt;The &lt;code&gt;Navigate&lt;/code&gt; event handler starts by checking to see if the expected state was passed in. If so, it grabs the values from the history state (via &lt;code&gt;e.State&lt;/code&gt;), sorts the GridView, and updates the page's title. If the state information was not passed in, it defaults to the default state - the grid sorted by the &lt;code&gt;ProductName&lt;/code&gt; column in ascending order. &lt;/p&gt;

&lt;p&gt;That's all there is to it! With this code in place, the Back and Forward buttons work as expected. What's more, a user can bookmark the web page after sorting by a particular column. When the user returns to that bookmarked page, the GridView will load and automatically sort by the appropriate column. &lt;/p&gt;

&lt;p&gt;&lt;b&gt;What About Paging?&lt;/b&gt; 

  &lt;br /&gt;The &lt;code&gt;BehaviorWithHistory.aspx&lt;/code&gt; page adds a history point whenever the user sorts the grid. It does not, however, add a history point when paging. If a user sorts the grid by, say, Price, the querystring is updated to reflect the state information. If they then go to page 2 in the grid the the querystring is not updated and no entry is added to the browser's history. If at this point they hit the Back button, they are &lt;b&gt;not&lt;/b&gt; returned to page 1, sorted by Price. Instead, they are returned to the grid prior to sorting it by Price. Likewise, if a user sorts the grid by Price, navigates to page 5, and adds a bookmark to their browser, if they later visit that bookmark the screen will load the grid sorted by Price, but will show page 1 of the data. &lt;/p&gt;

&lt;p&gt;If you want to add a history point whenever the grid is sorted &lt;i&gt;or&lt;/i&gt; paged, then you'll need to record the GridView's &lt;code&gt;PageIndex&lt;/code&gt; property as an additional history state item in the &lt;code&gt;Sorting&lt;/code&gt; event handler. You'll also need to create an event handler for the GridView's &lt;code&gt;PageIndexChanging&lt;/code&gt; event, which fires whenever the user navigates to a new page. In this event handler you'll need to add a history point, recording the sort- and paging-related properties. Finally, you'll need to update the ScriptManager's &lt;code&gt;Navigate&lt;/code&gt; event handler to set the GridView's &lt;code&gt;PageIndex&lt;/code&gt; property to the value stored in the history state. &lt;/p&gt;

&lt;p&gt;The download includes a complete, working example of a GridView that records history points whenever it is sorted or pages. See the &lt;code&gt;BehaviorWithHistory2.aspx&lt;/code&gt; ASP.NET page. &lt;/p&gt;

&lt;p&gt;&lt;b&gt;Conclusion&lt;/b&gt; 

  &lt;br /&gt;Because AJAX-enabled web pages circumvent the standard browser request/form submission model, partial page postbacks do not register as new entries in the browser's history. This behavior neuters the usefulness of the browser's Back and Forward buttons, as well as bookmarks. The good news is that the ASP.NET AJAX framework, starting with ASP.NET 3.5 SP1, includes functionality to record history points. Recording a history point saves the state that describes the history in the querystring and adds an entry to the browser's history. This enables visitors to use their browsers' Back and Forward buttons to navigate through different states in an AJAX-enabled web page. It also allows for bookmarking of different states in an AJAX-enabled application.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3335029349658819939-8559437731985151753?l=niravbhattsai.blogspot.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/AspnetCProgramming?a=NSdBIJsE"&gt;&lt;img src="http://feeds.feedburner.com/~f/AspnetCProgramming?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/AspnetCProgramming?a=xsjmQCXh"&gt;&lt;img src="http://feeds.feedburner.com/~f/AspnetCProgramming?i=xsjmQCXh" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/AspnetCProgramming?a=PhEeWfiH"&gt;&lt;img src="http://feeds.feedburner.com/~f/AspnetCProgramming?i=PhEeWfiH" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/AspnetCProgramming?a=O2i8TEtJ"&gt;&lt;img src="http://feeds.feedburner.com/~f/AspnetCProgramming?i=O2i8TEtJ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/AspnetCProgramming?a=fzCnte5o"&gt;&lt;img src="http://feeds.feedburner.com/~f/AspnetCProgramming?i=fzCnte5o" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/AspnetCProgramming/~4/Y-8oIxyOHds" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://niravbhattsai.blogspot.com/feeds/8559437731985151753/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://niravbhattsai.blogspot.com/2008/11/building-interactive-user-interfaces.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3335029349658819939/posts/default/8559437731985151753?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3335029349658819939/posts/default/8559437731985151753?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/AspnetCProgramming/~3/Y-8oIxyOHds/building-interactive-user-interfaces.html" title="Building Interactive User Interfaces with Microsoft ASP.NET AJAX: Enabling Bookmarking and the Browser&amp;#39;s Back Button" /><author><name>Nirav Bhatt</name><uri>http://www.blogger.com/profile/04140615764814901399</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="08501418167249067995" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://niravbhattsai.blogspot.com/2008/11/building-interactive-user-interfaces.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkANSXgyeyp7ImA9WxRWGUQ.&quot;"><id>tag:blogger.com,1999:blog-3335029349658819939.post-4665275206978536924</id><published>2008-11-06T22:19:00.000+05:30</published><updated>2008-11-06T23:36:38.693+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-11-06T23:36:38.693+05:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Customizing" /><category scheme="http://www.blogger.com/atom/ns#" term="ASP.Net C#" /><category scheme="http://www.blogger.com/atom/ns#" term="Personalizing" /><category scheme="http://www.blogger.com/atom/ns#" term="Nirav Bhatt" /><title>Customizing and Personalizing a Web Application with ASP.Net C#</title><content type="html">
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/HRA49Oi9-xQ-ckb5R0BbPRykK-8/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/HRA49Oi9-xQ-ckb5R0BbPRykK-8/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/HRA49Oi9-xQ-ckb5R0BbPRykK-8/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/HRA49Oi9-xQ-ckb5R0BbPRykK-8/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div&gt;ASP.Net 2.0 provides the ability to customize and personalize Web-based applications by using four techniques. These techniques include master pages, themes, user profiles, and Web parts. The following describes briefly about each of these four techniques:&lt;/div&gt;  &lt;div&gt;&amp;#160;&lt;/div&gt;  &lt;ol&gt;   &lt;li&gt;&lt;strong&gt;Master Page:&lt;/strong&gt; A master page is a technique that customizes and personalizes a Web application. It defines the look, feel and the standard behavior that should be for each Web page in the application. it creates a consistent layout for all Web pages in the application. A master page consists of two parts: a master page and one or more content pages, which have been described in the following manner:       &lt;ul&gt;       &lt;li&gt;&lt;strong&gt;Master Page:&lt;/strong&gt; A master page is an ASP.Net file with a .master extension. It contains the layout that includes text, HTML, and server controls. It is identified by the @Master directive that replaces the @Page directive. The @Master directive contains all HTML elements such as &amp;lt;html&amp;gt;, &amp;lt;head&amp;gt;, and &amp;lt;form&amp;gt; for a Web page. The @master directive syntax is as follows:           &lt;br /&gt;          &lt;br /&gt;          &lt;pre class="csharpcode"&gt;&lt;span class="asp"&gt;&amp;lt;%@ Master Language=&amp;quot;C# %&amp;gt;&lt;/span&gt;&lt;/pre&gt;
        &lt;style type="text/css"&gt;



.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;

        &lt;br /&gt;It is inherited from the MasterPage class and contains one or more ContentPlaceHolder controls. The following code snippet displays a master page: 

        &lt;br /&gt;

        &lt;br /&gt;

        &lt;pre class="csharpcode"&gt;&lt;span class="asp"&gt;&amp;lt;%@ Master Language=&amp;quot;C#&amp;quot; %&amp;gt;&lt;/span&gt; 
&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;html&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt; 
    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;head&lt;/span&gt; &lt;span class="attr"&gt;runat&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;server&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt; 
         &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;title&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;Master Page&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;title&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt; 
    &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;head&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt; 
    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;body&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt; 
        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;form&lt;/span&gt; &lt;span class="attr"&gt;id&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;MyWebForm1&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;runat&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;server&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt; 
        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;asp:ContentPlaceHolder&lt;/span&gt; &lt;span class="attr"&gt;ID&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;FrontPage&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;runat&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;server&amp;quot;&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt; 
        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;asp:ContentPlaceHolder&lt;/span&gt; &lt;span class="attr"&gt;ID&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;FootNote&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;runat&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;server&amp;quot;&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt; 
    &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;body&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt; 
&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;html&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
        &lt;style type="text/css"&gt;


.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;&lt;/li&gt;

      &lt;li&gt;&lt;strong&gt;Content Page:&lt;/strong&gt; A content page is a standard Web page with an .aspx file extension. It defines the ContentPlaceHolder controls in a master page and is bound to it. It is used as the MasterPageFile attribute in the @Page directive. For example: 

        &lt;br /&gt;

        &lt;br /&gt;

        &lt;pre class="csharpcode"&gt;&lt;span class="asp"&gt;&amp;lt;%@ Page Language=&amp;quot;C#&amp;quot; MasterPageFile=&amp;quot;MyMasterPage.master&amp;quot; %&amp;gt;&lt;/span&gt;&lt;/pre&gt;
        &lt;style type="text/css"&gt;

.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;

        &lt;br /&gt;The following code snippet displays a content page: 

        &lt;br /&gt;

        &lt;br /&gt;

        &lt;pre class="csharpcode"&gt;&lt;span class="asp"&gt;&amp;lt;%@ Page Language=&amp;quot;C#&amp;quot; MasterPageFile=&amp;quot;MyMasterPage.master&amp;quot; Title=&amp;quot;FirstContentPage&amp;quot; %&amp;gt;&lt;/span&gt; 
&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;asp:Content&lt;/span&gt; &lt;span class="attr"&gt;ID&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;WebContent1&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;ContentPlaceHolderID&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;FrontPage&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;runat&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;server&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt; 
     FrontPage Content. &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;asp:Content&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt; 
&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;asp:Content&lt;/span&gt; &lt;span class="attr"&gt;ID&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;WebContent2&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;ContentPlaceHolderID&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;FootNote&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;runat&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;server&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt; 
     FootNote Content. &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;asp:Content&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
        &lt;style type="text/css"&gt;

.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;

        &lt;br /&gt;

        &lt;br /&gt;&lt;strong&gt;Note:&lt;/strong&gt; When a user requests content pages, ASP.Net merges the contents of the content pages with the master page being created for the specified Web application. 

        &lt;br /&gt;&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;

  &lt;li&gt;&lt;strong&gt;Themes:&lt;/strong&gt; A theme is another technique of customizing and personalizing a Web application. It is a collection of ASP.Net property settings such as background color, font size and style, and foreground color. These property settings define the look and appearance of Web pages and controls. These looks are applied consistently across all the pages in a Web application. A theme consists of a set of elements that include skins, cascading style sheets (CSS), images, and other resources. It is defined in special directories in a user's Web site or on a Web server. The following describes briefly about each element of a theme: 

    &lt;br /&gt;

    &lt;br /&gt;

    &lt;ul&gt;
      &lt;li&gt;&lt;strong&gt;Skins: &lt;/strong&gt;A skin is an element of the theme and is stored in the Theme folder with a .skin file extension. It contains property settings for server controls such as Button, Label, TextBox and Calendar controls. These property settings are defined as part of the theme applied to an application. A skin file contains more than one control skins are resembles as control markups. Skins can be defined in a separate file for each server control. Therefore, all the skins for a particular theme are defined in one file. There are two types of control skins, default skins and named skins. 

        &lt;br /&gt;

        &lt;br /&gt;When a theme is applied on a Web application a default skin is automatically applied to all controls of the same type. However, a default skin does not have a SkinID attribute. On the other hand, a named skin has to be explicitly applied to a control by setting the control's SkinID property. One advantage of the named skin is that a user can set different skins for different instances of the same control type. 

        &lt;br /&gt;&lt;/li&gt;

      &lt;li&gt;&lt;strong&gt;Cascading Style Sheets (CSS):&lt;/strong&gt; A cascading style sheet (CSS) is an element of a theme applied to a Web application. It stores all formatting style information for the application in a single file with .css extension in the Theme folder. It adds different styles such as fonts, colors, and spacing between text lines to contents on a Web page. By default, it automatically applies to all Web pages of an application. By attaching CSS enhances the presentation of all the Web pages. 

        &lt;br /&gt;&lt;/li&gt;

      &lt;li&gt;&lt;strong&gt;Images and Resources: &lt;/strong&gt;A theme also includes images and other resources such as script files or sound files as an element. For example, a specific image as part of a theme can represent the expand button and the collapse button in a Web page. A resource file can be either stored in a subfolder of the theme or outside the theme folder. If a resource file is stored outside the theme folder, a tilde '~' syntax is used to find the images automatically by the application. 

        &lt;br /&gt;&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;

  &lt;li&gt;&lt;strong&gt;User Profiles: &lt;/strong&gt;A user profile is another technique that can customize and personalize a Web application. ASP.Net provides a user's experience with a Web site by defining and using profile properties on the Web site. When profile properties are defined, it becomes easy to track user information, as the individual instances of the profile properties are automatically associated with each user. Each profile data value is stored in a data store from where the profile property for a user can be retrieved. By default, a profile information is stored in a SQL Server database by using the SqlProfileProvider class. 

    &lt;br /&gt;

    &lt;br /&gt;Profiles can be used with either authenticated or non-authenticated users. Profiles are automatically enabled for authenticated users when a Web application required user authentication. For non-authenticated users, ASP.Net profiles have to be explicitly enabled in the Web.config file of the application. The &amp;lt;anonymousIdentification&amp;gt; element to the &amp;lt;system.web&amp;gt; section is added to the Web.config file and the enabled attributes are set to true. When the anonymous profiles are enabled, a unique identification is created for each user and the information is tracked with a cookie. A user profile can also work without any cookie by storing unique identifiers of each user in the URL of the Web page request. But, the drawback is that the profile is lost when a user's session is expired. 

    &lt;br /&gt;&lt;/li&gt;

  &lt;li&gt;&lt;strong&gt;Web Parts: &lt;/strong&gt;A Web part is a technique of customizing and personalizing a Web application. It is an integrated set of controls to enable a user to modify the contents, appearances, and behavior of all Web pages directly from a Web browser. the modified Web pages and controls as well as the settings can be easily saved across Web browser sessions for the future user requests. This feature can be called as the personalization. 

    &lt;br /&gt;

    &lt;br /&gt;A Web part can be used for a list of news articles related to a specific organization, a blog site, a calendar, and search box. It is also used for a list of Web site links, graphs showing stock market reports, local weather reports, and images taken from picture galleries. A standard or a custom control can be a Web part, which does not require writing code when using it as a Web part. A Web Part consists of three main sections. They include personalization, user interface (UI) structural components, and actual Web parts user interface controls. &lt;/li&gt;
&lt;/ol&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3335029349658819939-4665275206978536924?l=niravbhattsai.blogspot.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/AspnetCProgramming?a=TtlnOYe7"&gt;&lt;img src="http://feeds.feedburner.com/~f/AspnetCProgramming?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/AspnetCProgramming?a=XogpB2bh"&gt;&lt;img src="http://feeds.feedburner.com/~f/AspnetCProgramming?i=XogpB2bh" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/AspnetCProgramming?a=fopbGTEP"&gt;&lt;img src="http://feeds.feedburner.com/~f/AspnetCProgramming?i=fopbGTEP" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/AspnetCProgramming?a=l0Kx8Pff"&gt;&lt;img src="http://feeds.feedburner.com/~f/AspnetCProgramming?i=l0Kx8Pff" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/AspnetCProgramming?a=Ex8CX2hp"&gt;&lt;img src="http://feeds.feedburner.com/~f/AspnetCProgramming?i=Ex8CX2hp" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/AspnetCProgramming/~4/vjZ4dCde4_Q" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://niravbhattsai.blogspot.com/feeds/4665275206978536924/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://niravbhattsai.blogspot.com/2008/11/customizing-and-personalizing-web.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3335029349658819939/posts/default/4665275206978536924?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3335029349658819939/posts/default/4665275206978536924?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/AspnetCProgramming/~3/vjZ4dCde4_Q/customizing-and-personalizing-web.html" title="Customizing and Personalizing a Web Application with ASP.Net C#" /><author><name>Nirav Bhatt</name><uri>http://www.blogger.com/profile/04140615764814901399</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="08501418167249067995" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://niravbhattsai.blogspot.com/2008/11/customizing-and-personalizing-web.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkMARH4-fSp7ImA9WxRWFEU.&quot;"><id>tag:blogger.com,1999:blog-3335029349658819939.post-4588277228398462395</id><published>2008-10-31T22:27:00.001+05:30</published><updated>2008-11-01T00:44:05.055+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-11-01T00:44:05.055+05:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="SQL Server Query" /><category scheme="http://www.blogger.com/atom/ns#" term="SQL Server" /><title>Creating and Managing Database Objects using T-SQL Statements in SQL Server</title><content type="html">
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/6LWJt2BW8Ar9IJvPfJR3NY3AoqU/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/6LWJt2BW8Ar9IJvPfJR3NY3AoqU/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/6LWJt2BW8Ar9IJvPfJR3NY3AoqU/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/6LWJt2BW8Ar9IJvPfJR3NY3AoqU/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Database:&lt;/strong&gt; A database comprises information in structured and organized form that can easily be accessed and manipulated. According to the needs of a Web site, the database can be large or small in size. A database can be stored on a single PC or on a collection of high-powered database servers depending upon the size. When a database is stored on a collection of servers, it is known as a distributed database. It is a collection of relevant data that is interconnected and organized systematically so that its contents can easily be accessed, managed, and updated electronically.&lt;/p&gt;  &lt;p&gt;The syntax for creating a database is as follows.&lt;/p&gt;  &lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;CREATE&lt;/span&gt; &lt;span class="kwrd"&gt;DATABASE&lt;/span&gt; database_name&lt;/pre&gt;

&lt;pre class="csharpcode"&gt;Two files whose extensions are .mdf and .ldf are responsible for creating a database. The .mdf file is a data file, where .ldf is log file.&lt;/pre&gt;

&lt;pre class="csharpcode"&gt;&lt;strong&gt;Database Objects: &lt;/strong&gt;A database consists of various types of objects that are used to manage a database. The database objects are used to store data. Various properties of these database objects are used to sort, index and search data. The database objects are as follows:&lt;/pre&gt;

&lt;ul&gt;
  &lt;li&gt;
    Table
  &lt;/li&gt;
  &lt;li&gt;
    View
  &lt;/li&gt;
  &lt;li&gt;
    Index
  &lt;/li&gt;
  &lt;li&gt;
    Constraint
  &lt;/li&gt;
&lt;/ul&gt;

&lt;pre class="csharpcode"&gt;&lt;strong&gt;Table: &lt;/strong&gt;A table is the basic unit of data storage in a SQL Server database. It is composed of columns and rows. A column is vertical space in a database table, which represents a particular domain of data. A row is a collection of data in columns corresponding to a single record. A table can be created in a database at any time, even while users are using the database. While creating a table, its size need not be specified. It is ultimately determined by the amount of space allocated to the database as a whole.&lt;/pre&gt;

&lt;pre class="csharpcode"&gt;The syntax for creating a table is as follows:&lt;/pre&gt;

&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;CREATE&lt;/span&gt; &lt;span class="kwrd"&gt;TABLE&lt;/span&gt; table_name
(
     column1 datatype &lt;span class="kwrd"&gt;NULL&lt;/span&gt; | &lt;span class="kwrd"&gt;NOT&lt;/span&gt; &lt;span class="kwrd"&gt;NULL&lt;/span&gt;
     column2 datatype &lt;span class="kwrd"&gt;NULL&lt;/span&gt; | &lt;span class="kwrd"&gt;NOT&lt;/span&gt; &lt;span class="kwrd"&gt;NULL&lt;/span&gt;
     column3 datatype &lt;span class="kwrd"&gt;NULL&lt;/span&gt; | &lt;span class="kwrd"&gt;NOT&lt;/span&gt; &lt;span class="kwrd"&gt;NULL&lt;/span&gt;
     column4 datatype &lt;span class="kwrd"&gt;NULL&lt;/span&gt; | &lt;span class="kwrd"&gt;NOT&lt;/span&gt; &lt;span class="kwrd"&gt;NULL&lt;/span&gt;
     column5 datatype &lt;span class="kwrd"&gt;NULL&lt;/span&gt; | &lt;span class="kwrd"&gt;NOT&lt;/span&gt; &lt;span class="kwrd"&gt;NULL&lt;/span&gt;
)&lt;/pre&gt;

&lt;pre class="csharpcode"&gt;Modifications can be made to an existing table by using the ALTER Table statement. In order to alter the column settings of a table, the following syntax is used:&lt;/pre&gt;

&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;ALTER&lt;/span&gt; &lt;span class="kwrd"&gt;TABLE&lt;/span&gt; table_name
{
    &lt;span class="kwrd"&gt;ALTER&lt;/span&gt; &lt;span class="kwrd"&gt;COLUMN&lt;/span&gt; column_name
    {
        datatype
        &lt;span class="kwrd"&gt;CONSTRAINT&lt;/span&gt; constraint_name
    }
}&lt;/pre&gt;

&lt;p&gt;&lt;style type="text/css"&gt;
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;&lt;/p&gt;

&lt;p&gt;In order to modify collation settings, the following syntax is used:&lt;/p&gt;

&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;ALTER&lt;/span&gt; &lt;span class="kwrd"&gt;TABLE&lt;/span&gt; table_name
{
    &lt;span class="kwrd"&gt;COLLATE&lt;/span&gt; collation_name
}&lt;/pre&gt;

&lt;p&gt;&lt;style type="text/css"&gt;
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;&lt;/p&gt;

&lt;p&gt;The DELETE statement is used to delete records from a table or a view. The syntax for using the DELETE statement&amp;#160; is as follows:&lt;/p&gt;

&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;DELETE&lt;/span&gt; * &lt;span class="kwrd"&gt;FROM&lt;/span&gt; table_name&lt;/pre&gt;
&lt;style type="text/css"&gt;
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;

&lt;p&gt;The above syntax will delete all the records from a table.&lt;/p&gt;

&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;DELETE&lt;/span&gt; &lt;span class="kwrd"&gt;FROM&lt;/span&gt; table_name &lt;span class="kwrd"&gt;WHERE&lt;/span&gt; column_name=value&lt;/pre&gt;
&lt;style type="text/css"&gt;
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;

&lt;p&gt;The above syntax will delete records based on the search criteria.&lt;/p&gt;

&lt;p&gt;In order to delete a table, the DROP TABLE statement is used. The syntax for deleting a table is as follows:&lt;/p&gt;

&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;DROP&lt;/span&gt; &lt;span class="kwrd"&gt;TABLE&lt;/span&gt; table_name&lt;/pre&gt;
&lt;style type="text/css"&gt;
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;

&lt;p&gt;&lt;strong&gt;View:&lt;/strong&gt; A view can be thought of as a virtual table. Data accessible through a view is not stored in the database as a distinct object. A View is created by defining a SELECT statement. The result set of the SLECT statement from the virtual table. A user can use this virtual table by referencing the view name in SQL statements in the same way a table is referenced.&lt;/p&gt;

&lt;p&gt;The syntax for creating a view is as follows:&lt;/p&gt;

&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;CREATE&lt;/span&gt; &lt;span class="kwrd"&gt;VIEW&lt;/span&gt; view_name &lt;span class="kwrd"&gt;AS&lt;/span&gt;
&lt;span class="kwrd"&gt;SELECT&lt;/span&gt; columns
&lt;span class="kwrd"&gt;FROM&lt;/span&gt; table_name
[&lt;span class="kwrd"&gt;WITH&lt;/span&gt; &lt;span class="kwrd"&gt;CHECK&lt;/span&gt; &lt;span class="kwrd"&gt;OPTION&lt;/span&gt;
ENCRYPTION
SCHEMABINDING
VIEW_METADATA]&lt;/pre&gt;
&lt;style type="text/css"&gt;
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;The WITH CHECK OPTION is used to force all data modifications to follow the criteria set within a SELECT statement given in the CREATE VIEW statement.&lt;/p&gt;

&lt;p&gt;The WITH ENCRYPTION clause is used with a view or stored procedure definition. Using the WITH ENCRYPTION clause changes the view or stored procedure definition to an encrypted form. This prevents anyone from viewing the statement used to create the view or stored procedure.&lt;/p&gt;

&lt;p&gt;The WITH SCHEMABINDING clause safeguards a view definition against any structural modification of the underlying table. If a view is created with the WITH SCHEMABINDING clause, the underlying tables cannot be deleted or altered in a way that affects the view definition.&lt;/p&gt;

&lt;p&gt;The view specified with VIEW_METADATA can return the DBLIB, ODBC, and the OLEDB APIs. When metadata information about a view is to be viewed, it is created with the VIEW_METADATA option.&lt;/p&gt;

&lt;p&gt;Modification can be made in an existing view by using the ALTER VIEW statement.&lt;/p&gt;

&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;ALTER&lt;/span&gt; &lt;span class="kwrd"&gt;VIEW&lt;/span&gt; view_name &lt;span class="kwrd"&gt;AS&lt;/span&gt;
&lt;span class="kwrd"&gt;SELECT&lt;/span&gt; columns
&lt;span class="kwrd"&gt;FROM&lt;/span&gt; table_name
[&lt;span class="kwrd"&gt;WITH&lt;/span&gt; &lt;span class="kwrd"&gt;CHECK&lt;/span&gt; &lt;span class="kwrd"&gt;OPTION&lt;/span&gt;
ENCRYPTION
SCHEMABINDING
VIEW_METADATA]&lt;/pre&gt;
&lt;style type="text/css"&gt;
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;

&lt;p&gt;In order to delete a view, the DROP VIEW statement is used. The syntax for the DROP VIEW statement is as follows:&lt;/p&gt;

&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;DROP&lt;/span&gt; &lt;span class="kwrd"&gt;VIEW&lt;/span&gt; view_name&lt;/pre&gt;
&lt;style type="text/css"&gt;
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;

&lt;p&gt;&lt;strong&gt;Index:&lt;/strong&gt; An index is a data structure that improves the performance of queries issued against a table. An index can be created for one or more columns of a table. Once created, an index is automatically updated and used by the database. It is logically and physically independent of data. The table or other indexes remain unaffected when an index is created or deleted.&lt;/p&gt;

&lt;p&gt;The syntax for creating an index is as follows:&lt;/p&gt;

&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;CREATE&lt;/span&gt; [&lt;span class="kwrd"&gt;CLUSTERED&lt;/span&gt;] [&lt;span class="kwrd"&gt;NONCLUSTERED&lt;/span&gt;][&lt;span class="kwrd"&gt;UNIQUE&lt;/span&gt;] &lt;span class="kwrd"&gt;INDEX&lt;/span&gt; index_name object_name(column_name)&lt;/pre&gt;
&lt;style type="text/css"&gt;
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;

&lt;p&gt;In order to create an AML index, the following syntax is used:&lt;/p&gt;

&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;CREATE&lt;/span&gt; [&lt;span class="kwrd"&gt;PRIMARY&lt;/span&gt;] CML &lt;span class="kwrd"&gt;INDEX&lt;/span&gt; index_name &lt;span class="kwrd"&gt;ON&lt;/span&gt; object_name(xml_column_name)&lt;/pre&gt;
&lt;style type="text/css"&gt;
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;

&lt;p&gt;Modifications can be made to an existing index by using the ALTER INDEX statement.&lt;/p&gt;

&lt;p&gt;In order to specify rebuild option for an index or to enable an index, the following syntax is used:&lt;/p&gt;

&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;ALTER&lt;/span&gt; &lt;span class="kwrd"&gt;INDEX&lt;/span&gt; index_name &lt;span class="kwrd"&gt;ON&lt;/span&gt; object_name
{
    REBUILD &lt;span class="kwrd"&gt;WITH&lt;/span&gt; rebuild options
}&lt;/pre&gt;
&lt;style type="text/css"&gt;
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;In order to disable an index, the following syntax is used:&lt;/p&gt;

&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;ALTER&lt;/span&gt; &lt;span class="kwrd"&gt;INDEX&lt;/span&gt; index_name
{
    DISABLE
}&lt;/pre&gt;
&lt;style type="text/css"&gt;
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;In order to drop an index, the DROP INDEX statement is used.&lt;/p&gt;

&lt;p&gt;DROP INDEX index_name&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Constraints:&lt;/strong&gt; Constraints are implemented on a table or a view to ensure that only valid data is inserted. Constraints prevent users from inserting invalid data or updating a column of a table or view with wrong data. These constraints are as follows:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;PRIMARY KEY constraint&lt;/li&gt;

  &lt;li&gt;FOREIGN KEY constraint&lt;/li&gt;

  &lt;li&gt;UNIQUE constraint&lt;/li&gt;

  &lt;li&gt;CHECK constraint&lt;/li&gt;

  &lt;li&gt;DEFAULT constraint&lt;/li&gt;

  &lt;li&gt;NULL Values&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;PRIMARY KEY constraint:&lt;/strong&gt; A PRIMARY KEY constraint is implemented on a column or on a group of columns of a table. These columns identify a row of a table uniquely. A table can contain only one primary key. the column on which a primary key constraint has implemented cannot contain NULL values.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;FOREIGN KEY constraint:&lt;/strong&gt; A FOREIGN KEY constraint is implemented on a column of a table to establish referential integrity between two table. A combination of a PRIMARI KEY and a FOREIGN KEY is used in the JOIN clause to retrieve data from two or more tables.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;UNIQUE constraint:&lt;/strong&gt; UNIQUE constraint ensures that no two rows in specified column or set of columns have duplicate values. Multiple UNIQUE constraints can be defined for a table. The UNIQUE constraint can be created by using the CREATE TABLE statement while creating a table. It can also be created by using the ALTER TABLE statement while modifying the table. The UNIQUE constraint allows NULL values unless NOT NULL constraint is specified for the same column.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;CHECK constraint:&lt;/strong&gt; A CHECK constraint enforces domain integrity by limiting the values that are accepted by a column. Multiple CHECK constraints can be applied to a column. A CHECK constraint can be created by using a logical expression to validate the value to be accepted by a column. It is also possible to use multiple-columns in a CHECK constraint. For example, a CHECK constraint can be used to confirm that value in the OrderDate column bust be less then the value in the InvoiceDate column. However, a CHECK constraint cannot be created to enforce a rule that requires column value from another row in the table or column value from another table.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;DEFAULT constraint:&lt;/strong&gt; The DEFAULT constraint is a constraint in which a default value is given to the column if the value for that column in unknown. If no value is provided for that column, the default value is automatically inserted. If a default value is not provided, then NULL is inserted. If a column does not allow NULL value and default value is also not assigned for that column, an error is sent by the database engine.&lt;/p&gt;

&lt;p&gt;In order to implement a constraint on a column while creating a table, the following syntax is used:&lt;/p&gt;

&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;CREATE&lt;/span&gt; &lt;span class="kwrd"&gt;TABLE&lt;/span&gt; table_name
(
    &lt;span class="kwrd"&gt;CONSTRAINT&lt;/span&gt; constraint_name(column_name)
)&lt;/pre&gt;
&lt;style type="text/css"&gt;
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;In order to implement a constraint on a column of an existing table, the following syntax is used:&lt;/p&gt;

&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;ALTER&lt;/span&gt; &lt;span class="kwrd"&gt;TABLE&lt;/span&gt; table_name
(
    &lt;span class="kwrd"&gt;CONSTRAINT&lt;/span&gt; constraint_name(column_name)
)&lt;/pre&gt;
&lt;style type="text/css"&gt;
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3335029349658819939-4588277228398462395?l=niravbhattsai.blogspot.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/AspnetCProgramming?a=Xs6Hz4VV"&gt;&lt;img src="http://feeds.feedburner.com/~f/AspnetCProgramming?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/AspnetCProgramming?a=kqpQcU7F"&gt;&lt;img src="http://feeds.feedburner.com/~f/AspnetCProgramming?i=kqpQcU7F" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/AspnetCProgramming?a=5o0WSIFN"&gt;&lt;img src="http://feeds.feedburner.com/~f/AspnetCProgramming?i=5o0WSIFN" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/AspnetCProgramming?a=uq0IgMU4"&gt;&lt;img src="http://feeds.feedburner.com/~f/AspnetCProgramming?i=uq0IgMU4" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/AspnetCProgramming?a=yHTUIqkf"&gt;&lt;img src="http://feeds.feedburner.com/~f/AspnetCProgramming?i=yHTUIqkf" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/AspnetCProgramming/~4/QybrZyREyJk" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://niravbhattsai.blogspot.com/feeds/4588277228398462395/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://niravbhattsai.blogspot.com/2008/10/sql-server-database-objects-t-sql.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3335029349658819939/posts/default/4588277228398462395?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3335029349658819939/posts/default/4588277228398462395?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/AspnetCProgramming/~3/QybrZyREyJk/sql-server-database-objects-t-sql.html" title="Creating and Managing Database Objects using T-SQL Statements in SQL Server" /><author><name>Nirav Bhatt</name><uri>http://www.blogger.com/profile/04140615764814901399</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="08501418167249067995" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://niravbhattsai.blogspot.com/2008/10/sql-server-database-objects-t-sql.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0IBQ349eCp7ImA9WxRWFEU.&quot;"><id>tag:blogger.com,1999:blog-3335029349658819939.post-6021836433316539637</id><published>2008-10-11T15:02:00.001+05:30</published><updated>2008-11-01T01:02:32.060+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-11-01T01:02:32.060+05:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="ASP.Net C#" /><title>Aspect Oriented Programming</title><content type="html">
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/iyFiZSPwyk0c-zYIiMKCJGnajSg/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/iyFiZSPwyk0c-zYIiMKCJGnajSg/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/iyFiZSPwyk0c-zYIiMKCJGnajSg/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/iyFiZSPwyk0c-zYIiMKCJGnajSg/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #0000ff"&gt;&lt;b&gt;Aspect Oriented Programming&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="color: #0000ff"&gt;&lt;/span&gt;&amp;#160;&lt;span style="font-family: arial; font-size: 100%"&gt;&lt;span style="font-family: times new roman"&gt;Hi friends,&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-family: arial; font-size: 100%"&gt;&lt;span style="font-family: times new roman"&gt;As c# guys we knows that &lt;span style="color: #008000"&gt;&lt;i&gt;OOP is the Fundamental of Maximum Code Reuse and Code separation.&lt;/i&gt;&lt;/span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-family: arial; font-size: 100%"&gt;&lt;span style="font-family: times new roman"&gt;Is there any technology Which provide &lt;span style="color: #008000"&gt;additional Code reuse and Code separation then OOP?? &lt;/span&gt;yes.&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: arial; font-size: 100%"&gt;&lt;span style="font-family: times new roman"&gt;There is.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-family: arial; font-size: 100%"&gt;&lt;span style="font-family: times new roman"&gt;&lt;i&gt;&lt;b&gt;That is AOP(Aspect oriented Programming)&lt;/b&gt;&lt;/i&gt; In fact I also used this type of Coding in my one of my project but. I didn't know that it was Aspect Oriented Programming. Let's start with a small definition on AOP first :- &lt;span style="color: #008000"&gt;&lt;i&gt;&amp;quot;Aspect Oriented Programming is a methodology to separate cross cut code across different modules in a software system.&amp;quot; &lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-family: arial; font-size: 100%"&gt;&lt;span style="font-family: times new roman"&gt;&lt;span style="color: #008000"&gt;&lt;/span&gt;AOP is not Actually Concept implemented in net Framework. but we can archived using class libraries provided by .Net Framework. like System.Runtime.Remoting and Many other... If you want to know more about aspect oriented Programming you can refer Given Links.&lt;/span&gt;&lt;/span&gt; &lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.geocities.com/aspectdotnet/index.htm"&gt;http://www.geocities.com/aspectdotnet/index.htm&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a&gt;&lt;/a&gt;&lt;a href="http://www.c-sharpcorner.com/UploadFile/raviraj.bhalerao/aop12062005022058AM/aop.aspx"&gt;http://www.c-sharpcorner.com/UploadFile/raviraj.bhalerao/aop12062005022058AM/aop.aspx&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3335029349658819939-6021836433316539637?l=niravbhattsai.blogspot.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/AspnetCProgramming?a=W8FmpQxf"&gt;&lt;img src="http://feeds.feedburner.com/~f/AspnetCProgramming?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/AspnetCProgramming?a=YQJBA6bj"&gt;&lt;img src="http://feeds.feedburner.com/~f/AspnetCProgramming?i=YQJBA6bj" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/AspnetCProgramming?a=WiOlLn8G"&gt;&lt;img src="http://feeds.feedburner.com/~f/AspnetCProgramming?i=WiOlLn8G" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/AspnetCProgramming?a=uVqtrjlA"&gt;&lt;img src="http://feeds.feedburner.com/~f/AspnetCProgramming?i=uVqtrjlA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/AspnetCProgramming?a=uS6oqqbh"&gt;&lt;img src="http://feeds.feedburner.com/~f/AspnetCProgramming?i=uS6oqqbh" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/AspnetCProgramming/~4/ySYX3ImzzMI" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://niravbhattsai.blogspot.com/feeds/6021836433316539637/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://niravbhattsai.blogspot.com/2008/10/aspect-oriented-programming.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3335029349658819939/posts/default/6021836433316539637?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3335029349658819939/posts/default/6021836433316539637?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/AspnetCProgramming/~3/ySYX3ImzzMI/aspect-oriented-programming.html" title="Aspect Oriented Programming" /><author><name>Haresh Dhameliya</name><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="07825556947841798092" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://niravbhattsai.blogspot.com/2008/10/aspect-oriented-programming.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkQDRHs8fSp7ImA9WxRQF0w.&quot;"><id>tag:blogger.com,1999:blog-3335029349658819939.post-5308491725726189774</id><published>2008-10-11T13:02:00.001+05:30</published><updated>2008-10-11T13:02:55.575+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-10-11T13:02:55.575+05:30</app:edited><title>Application Server (Dublin)</title><content type="html">
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/rP4J2J5369MXbtZW3YTLUs2mKO8/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/rP4J2J5369MXbtZW3YTLUs2mKO8/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/rP4J2J5369MXbtZW3YTLUs2mKO8/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/rP4J2J5369MXbtZW3YTLUs2mKO8/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;span style="color:#0000ff;"&gt;&lt;b&gt;Application Server (Dublin)&lt;/b&gt;&lt;/span&gt;
&lt;p&gt;&lt;i&gt;&lt;span style="font-family:Arial;font-size:100%;"&gt;- Application Server “&lt;b&gt;Dublin&lt;/b&gt;” will first become available after the release
of the .NET Framework 4.0 and Visual Studio “10”. &lt;/span&gt;&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&lt;span style="font-family:Arial;font-size:100%;"&gt;- Application Server “Dublin” will initially be made available for download
and use by Windows Server customers; later, “Dublin” will be included in future
releases of Windows Server. &lt;/span&gt;&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&lt;span style="font-family:Arial;font-size:100%;"&gt;- Application Server &lt;b&gt; “Dublin” will extend Internet Information Services&lt;/b&gt; (IIS)
to provide a standard host for applications that use workflow or
communications&lt;b&gt;.&lt;/b&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;for more feature of  .net 4.0 please refer
&lt;a href="http://developers.de/blogs/damir_dobric/archive/2008/10/05/what-is-new-in-net-4-0.aspx"&gt;What is new in .NET 4.0?&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3335029349658819939-5308491725726189774?l=niravbhattsai.blogspot.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/AspnetCProgramming?a=QDdSOdLj"&gt;&lt;img src="http://feeds.feedburner.com/~f/AspnetCProgramming?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/AspnetCProgramming?a=FgXOutUA"&gt;&lt;img src="http://feeds.feedburner.com/~f/AspnetCProgramming?i=FgXOutUA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/AspnetCProgramming?a=nmqSjSyf"&gt;&lt;img src="http://feeds.feedburner.com/~f/AspnetCProgramming?i=nmqSjSyf" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/AspnetCProgramming?a=aKDM73I1"&gt;&lt;img src="http://feeds.feedburner.com/~f/AspnetCProgramming?i=aKDM73I1" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/AspnetCProgramming?a=wcPovDAs"&gt;&lt;img src="http://feeds.feedburner.com/~f/AspnetCProgramming?i=wcPovDAs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/AspnetCProgramming/~4/rovdgIVZP3M" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://niravbhattsai.blogspot.com/feeds/5308491725726189774/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://niravbhattsai.blogspot.com/2008/10/application-server-dublin.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3335029349658819939/posts/default/5308491725726189774?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3335029349658819939/posts/default/5308491725726189774?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/AspnetCProgramming/~3/rovdgIVZP3M/application-server-dublin.html" title="Application Server (Dublin)" /><author><name>Haresh Dhameliya</name><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="07825556947841798092" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://niravbhattsai.blogspot.com/2008/10/application-server-dublin.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkQGR3s4cCp7ImA9WxRQF0w.&quot;"><id>tag:blogger.com,1999:blog-3335029349658819939.post-5685283576055641664</id><published>2008-10-11T13:01:00.000+05:30</published><updated>2008-10-11T13:02:06.538+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-10-11T13:02:06.538+05:30</app:edited><title>Checked/Unchecked Arithmetic:</title><content type="html">
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/INiz64EH8hdFjE0uJZki5I3MczA/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/INiz64EH8hdFjE0uJZki5I3MczA/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/INiz64EH8hdFjE0uJZki5I3MczA/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/INiz64EH8hdFjE0uJZki5I3MczA/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="color:#0000ff;"&gt;Checked/Unchecked Arithmetic:&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;When a value exceeds the limitations of a data type, it is said to overflow, this can sometime produce unexpected result.It can even be dangerous, particularly when using unsafe code. to prevent this type of Error C# provide two new operator. if such overflow condition in code ,it will not let that be happen and throw Exception, &lt;/p&gt;
&lt;p&gt;(1)Checked Arithmetic: if over flow occurs in between below code Exception Occurs.&lt;/p&gt;
&lt;p&gt;&lt;span style="color:#808080;"&gt;&lt;em&gt;&lt;strong&gt;checked&lt;/strong&gt;&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color:#808080;"&gt;&lt;em&gt;&lt;strong&gt;{       int i = int.MaxValue; Console.WriteLine(i); i++; Console.WriteLine(i); &lt;/strong&gt;&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color:#808080;"&gt;&lt;em&gt;&lt;strong&gt;}&lt;/strong&gt;&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt; (2)Unchecked Arithmetic: any overflow in unchecked operator will simply truncated.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;strong&gt; &lt;span style="color:#808080;"&gt;unchecked &lt;/span&gt;&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color:#808080;"&gt;&lt;em&gt;&lt;strong&gt;{&lt;/strong&gt;&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color:#808080;"&gt;&lt;em&gt;&lt;strong&gt;          int i = int.MaxValue; Console.WriteLine(i); i++; Console.WriteLine(i); &lt;/strong&gt;&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color:#808080;"&gt;&lt;em&gt;&lt;strong&gt;}&lt;/strong&gt;&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;Fore more detail please visit.&lt;/p&gt;&lt;p&gt;http://www.blackwasp.co.uk/CheckedArithmetic.aspx &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3335029349658819939-5685283576055641664?l=niravbhattsai.blogspot.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/AspnetCProgramming?a=lHZMO6Zf"&gt;&lt;img src="http://feeds.feedburner.com/~f/AspnetCProgramming?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/AspnetCProgramming?a=Fvuk5gao"&gt;&lt;img src="http://feeds.feedburner.com/~f/AspnetCProgramming?i=Fvuk5gao" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/AspnetCProgramming?a=Yk5bgqSZ"&gt;&lt;img src="http://feeds.feedburner.com/~f/AspnetCProgramming?i=Yk5bgqSZ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/AspnetCProgramming?a=iaNlouZY"&gt;&lt;img src="http://feeds.feedburner.com/~f/AspnetCProgramming?i=iaNlouZY" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/AspnetCProgramming?a=wyl5kRon"&gt;&lt;img src="http://feeds.feedburner.com/~f/AspnetCProgramming?i=wyl5kRon" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/AspnetCProgramming/~4/OkAZ0wuVFQw" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://niravbhattsai.blogspot.com/feeds/5685283576055641664/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://niravbhattsai.blogspot.com/2008/10/checkedunchecked-arithmetic.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3335029349658819939/posts/default/5685283576055641664?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3335029349658819939/posts/default/5685283576055641664?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/AspnetCProgramming/~3/OkAZ0wuVFQw/checkedunchecked-arithmetic.html" title="Checked/Unchecked Arithmetic:" /><author><name>Haresh Dhameliya</name><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="07825556947841798092" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://niravbhattsai.blogspot.com/2008/10/checkedunchecked-arithmetic.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEYFRnY_fyp7ImA9WxRRGUs.&quot;"><id>tag:blogger.com,1999:blog-3335029349658819939.post-856242111253300900</id><published>2008-10-01T23:21:00.002+05:30</published><updated>2008-10-02T22:18:37.847+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-10-02T22:18:37.847+05:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="ASP.Net C#" /><category scheme="http://www.blogger.com/atom/ns#" term="XAML" /><category scheme="http://www.blogger.com/atom/ns#" term="Visual Studio 2008" /><category scheme="http://www.blogger.com/atom/ns#" term="Silverlight 2" /><category scheme="http://www.blogger.com/atom/ns#" term="Nirav Bhatt" /><title>Fix: Requested Registry Access is not Allowed in Visual Studio 2008</title><content type="html">
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/8zBKq_FcGao8Q0I09cGg4W6iVb8/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/8zBKq_FcGao8Q0I09cGg4W6iVb8/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/8zBKq_FcGao8Q0I09cGg4W6iVb8/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/8zBKq_FcGao8Q0I09cGg4W6iVb8/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;Yesterday I have installed Silverlight 2 RC0 and Silverlight 2 RC0 tools for Visual Studio 2008 SP1. The installation of the Silverlight 2 tools was successful. After it I have started my visual studio normally and started my project.

At this stage one weird thing happened. Visual Studio was unable to render the XAML in design mode. I had checked my whole my code whether there is any error in code which cause error in rendering in visual studio. But when I built it, it was successfully built and run also.

Then I tried to find out the actual error. I found that Visual Studio was unable to access some registry key so it was not rendering the XAML because of the user does not have access registry rights. I don't know how these rights removed. It may be a case of removing old version and patching new update to Visual Studio.

&lt;p&gt;Here's the fix for grant access to user for Visual Studio 2008:&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=E8BA3E56-D8FE-4A91-93CF-ED6985E3927B&amp;amp;displaylang=en"&gt;Download "subinacl" here&lt;/a&gt;. This is a command-line tool that enables administrators to obtain security information about files, registry keys, and services, and transfer this information from user to user, from local or global group to group, and from domain to domain.&lt;/p&gt;&lt;p&gt;After installing subinacl.exe (it will be in the C:\Program Files\Windows Resource Kits\Tools folder.) Now create a BAT file in the same folder say Fix-Visual-Studio-Registry-Access.bat. Now paste the following commands in that bat file.&lt;/p&gt;&lt;p&gt;subinacl /subkeyreg HKEY_LOCAL_MACHINE /grant=administrators=f /grant=system=f
subinacl /subkeyreg HKEY_CURRENT_USER /grant=administrators=f /grant=system=f
subinacl /subkeyreg HKEY_CLASSES_ROOT /grant=administrators=f /grant=system=f
subinacl /subdirectories %SystemDrive% /grant=administrators=f /grant=system=f
subinacl /subdirectories %windir%\*.* /grant=administrators=f /grant=system=f&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;Now you will have questions that what these commands will do. These commands will give administrators and system user of the pc access to HKEY_LOCAL_MACHINE, HKEY_CURRENT_USER, HKEY_CLASSES_ROOT, access to the system drive and access to the windows directory. &lt;/p&gt;&lt;p&gt;Now run your Visual Studio with Administrator Privilege and you will see All Fixed. Now Visual Studio will have permission to the registry and windows directory so it will not raise error "Requested Registry Access is not Allowed."&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3335029349658819939-856242111253300900?l=niravbhattsai.blogspot.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/AspnetCProgramming?a=Y0CMeeqm"&gt;&lt;img src="http://feeds.feedburner.com/~f/AspnetCProgramming?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/AspnetCProgramming?a=zGJlhasZ"&gt;&lt;img src="http://feeds.feedburner.com/~f/AspnetCProgramming?i=zGJlhasZ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/AspnetCProgramming?a=ou7RpEXi"&gt;&lt;img src="http://feeds.feedburner.com/~f/AspnetCProgramming?i=ou7RpEXi" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/AspnetCProgramming?a=HpgDXmQ4"&gt;&lt;img src="http://feeds.feedburner.com/~f/AspnetCProgramming?i=HpgDXmQ4" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/AspnetCProgramming?a=GG1nrpuT"&gt;&lt;img src="http://feeds.feedburner.com/~f/AspnetCProgramming?i=GG1nrpuT" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/AspnetCProgramming/~4/GMZqerUOadE" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://niravbhattsai.blogspot.com/feeds/856242111253300900/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://niravbhattsai.blogspot.com/2008/10/fix-requested-registry-access-is-not.html#comment-form" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3335029349658819939/posts/default/856242111253300900?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3335029349658819939/posts/default/856242111253300900?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/AspnetCProgramming/~3/GMZqerUOadE/fix-requested-registry-access-is-not.html" title="Fix: Requested Registry Access is not Allowed in Visual Studio 2008" /><author><name>Nirav Bhatt</name><uri>http://www.blogger.com/profile/04140615764814901399</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="08501418167249067995" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">2</thr:total><feedburner:origLink>http://niravbhattsai.blogspot.com/2008/10/fix-requested-registry-access-is-not.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkYBQXYycSp7ImA9WxRSFUU.&quot;"><id>tag:blogger.com,1999:blog-3335029349658819939.post-5115513558865011330</id><published>2008-09-16T18:06:00.004+05:30</published><updated>2008-09-16T23:32:30.899+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-09-16T23:32:30.899+05:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="SQL Server Query" /><category scheme="http://www.blogger.com/atom/ns#" term="SQL Server" /><title>Encrypt/Decrypt Data with SQL Server 2005 : Security with SQL Server 2005</title><content type="html">
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/N32g6Cz8T5DOQTqKnxlVk77-14I/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/N32g6Cz8T5DOQTqKnxlVk77-14I/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/N32g6Cz8T5DOQTqKnxlVk77-14I/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/N32g6Cz8T5DOQTqKnxlVk77-14I/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;span style="font-family:Arial;"&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;b&gt;&lt;/b&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="font-family:Arial;"&gt;Now a days security is very much concern for websites. We can use many security options. Like use an SSL, encrypt/decrypt with C# code and another option is to use the encryption/decryption in SQL Server 2005. &lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="font-family:Arial;"&gt;There is Great Functionality in SQL Server 2005 Which Comes Handy to make your web site Secure.I will Give You Some Magic Code to Encrypt and decrypt data in SQL server.To Encrypt/Decrypt in SQL Server you need One Key(Secured Key), which we can use. Here is the syntax for creating a key to Encrypt/Decrypt data in SQL Server.&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;em&gt;&lt;span style="font-family:Arial;color:#008040;"&gt;Create Symmetric Key SecuredKey&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&lt;p&gt;&lt;em&gt;&lt;span style="font-family:Arial;color:#008040;"&gt;With ALGORITHM=DESX&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&lt;p&gt;&lt;em&gt;&lt;span style="font-family:Arial;color:#008040;"&gt;ENCRYPTION BY PASSWORD = 'Haresh';&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;span style="font-family:Arial;"&gt;Here “Haresh” is Password and “Secured Key “is Key Name &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-family:Arial;"&gt;To process data key generated above should be open first to Encrypt/Decrypt in SQL Server.&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Arial;color:#008040;"&gt;&lt;em&gt;Open Symmetric Key SecuredKey&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Arial;color:#008040;"&gt;&lt;em&gt;DECRYPTION by Password=N'Haresh';&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;span style="font-family:Arial;color:#000000;"&gt;After Opening key you can perform Encryption or decryption in SQL Server&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;span style="font-family:Arial;color:#000000;"&gt;Below In The Complete Code For Above Operations.&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Arial;color:#008040;"&gt;&lt;em&gt;Declare @Encrypted varbinary(max)&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Arial;color:#008040;"&gt;&lt;em&gt;Declare @Decryptrd varchar(100)&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Arial;color:#008040;"&gt;&lt;em&gt;Open Symmetric Key SecuredKey&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Arial;color:#008040;"&gt;&lt;em&gt;DECRYPTION by Password=N'Haresh';&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Arial;color:#008040;"&gt;&lt;em&gt;set @Encrypted= EncryptByKey (Key_GUID('SecuredKey'),'Haresh Dhameliyua')&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Arial;color:#008040;"&gt;&lt;em&gt;set @Decryptrd =DecryptByKey (@Encrypted)&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Arial;color:#008040;"&gt;&lt;em&gt;Print @Encrypted&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Arial;color:#008040;"&gt;&lt;em&gt;Print @Decryptrd&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Arial;"&gt;&lt;em&gt;&lt;span style="color:#008040;"&gt;CLOSE SYMMETRIC KEY SecuredKey&lt;/span&gt;&lt;/em&gt;;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Arial;"&gt;Please let me know if you have further questions regarding Encrypt/Decrypt in SQL Server.&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3335029349658819939-5115513558865011330?l=niravbhattsai.blogspot.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/AspnetCProgramming?a=n60n2NFA"&gt;&lt;img src="http://feeds.feedburner.com/~f/AspnetCProgramming?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/AspnetCProgramming?a=oPnzIPMK"&gt;&lt;img src="http://feeds.feedburner.com/~f/AspnetCProgramming?i=oPnzIPMK" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/AspnetCProgramming?a=lVn0TicN"&gt;&lt;img src="http://feeds.feedburner.com/~f/AspnetCProgramming?i=lVn0TicN" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/AspnetCProgramming?a=roOxgafx"&gt;&lt;img src="http://feeds.feedburner.com/~f/AspnetCProgramming?i=roOxgafx" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/AspnetCProgramming?a=i7GvTmIL"&gt;&lt;img src="http://feeds.feedburner.com/~f/AspnetCProgramming?i=i7GvTmIL" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/AspnetCProgramming/~4/5BNPYqwn2_c" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://niravbhattsai.blogspot.com/feeds/5115513558865011330/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://niravbhattsai.blogspot.com/2008/09/encryptdecrypt-data-with-sql-server.html#comment-form" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3335029349658819939/posts/default/5115513558865011330?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3335029349658819939/posts/default/5115513558865011330?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/AspnetCProgramming/~3/5BNPYqwn2_c/encryptdecrypt-data-with-sql-server.html" title="Encrypt/Decrypt Data with SQL Server 2005 : Security with SQL Server 2005" /><author><name>Haresh Dhameliya</name><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="07825556947841798092" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">2</thr:total><feedburner:origLink>http://niravbhattsai.blogspot.com/2008/09/encryptdecrypt-data-with-sql-server.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkUEQXc9eyp7ImA9WxRSFUU.&quot;"><id>tag:blogger.com,1999:blog-3335029349658819939.post-3460337808496493881</id><published>2008-09-12T19:03:00.006+05:30</published><updated>2008-09-16T23:33:20.963+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-09-16T23:33:20.963+05:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Regular Expression" /><category scheme="http://www.blogger.com/atom/ns#" term="ASP.Net C#" /><category scheme="http://www.blogger.com/atom/ns#" term="SQL Server Query" /><category scheme="http://www.blogger.com/atom/ns#" term="SQL Server" /><title>Remove Invalid Characters Using C#,SQL or Javascript</title><content type="html">
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/KRfALtgopLz6o4J7WJZ5C-83RtA/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/KRfALtgopLz6o4J7WJZ5C-83RtA/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/KRfALtgopLz6o4J7WJZ5C-83RtA/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/KRfALtgopLz6o4J7WJZ5C-83RtA/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:85%;"&gt;To provide search your application some time you need to replace invalid Characters from value submitted by user to prevent SQL injection or some other resons.&lt;/span&gt;&lt;span style="font-size:85%;"&gt;at this time you can do this in three defferent ways.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:85%;"&gt;You can use one of the tree way for remove Special Characters from String as per you search requirement&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="font-size:85%;"&gt;(1)Javascript&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:85%;"&gt;&lt;strong&gt;Use Regular Expression For Replacing Invalid Charactervar&lt;/strong&gt; &lt;em&gt;&lt;span style="color:#999900;"&gt;invalidChars=document.getElementById("txtAllchars").value; document.getElementById("txtAllchars").value=invalidChars.replace(/[^a-zA-Z 0-9]+/,'');&lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="font-size:85%;"&gt;(2).C#:&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="font-size:85%;"&gt;Yu can Use System.Text.RegularExpression Name spaceUsing RegEx Class You can aloow Only Valida Characters other Invalid Character will be removed&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;em&gt;&lt;span style="font-size:85%;color:#999900;"&gt;objProperty.ZipCode = Regex.Replace(txtZipCode.Text, "[^A-Za-z0-9]+", "");&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="font-size:85%;"&gt;(3).SQL.&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="font-size:85%;"&gt;In SQL There Is Not Direct method To Do this So You Need To Apply Following Code To perform task.&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;em&gt;&lt;span style="font-size:85%;color:#999900;"&gt;declare @strMain varchar(200)
declare @charsToReplace varchar(10)
set @charsToReplace ='^&amp;amp;%'
set @strMain='Haresh%%^^&amp;amp;&amp;amp;'
declare @i int
set @i=len(@charsToReplace)
while(@i&gt;0)
Begin

declare @tmp char
set @tmp= substring(@charsToReplace,@i,len(@charsToReplace))
set @strMain= replace(@strMain,@tmp,'')
set @i=@i-1

End
print @strMain&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3335029349658819939-3460337808496493881?l=niravbhattsai.blogspot.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/AspnetCProgramming?a=NtyV7BxU"&gt;&lt;img src="http://feeds.feedburner.com/~f/AspnetCProgramming?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/AspnetCProgramming?a=tQRuYM4L"&gt;&lt;img src="http://feeds.feedburner.com/~f/AspnetCProgramming?i=tQRuYM4L" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/AspnetCProgramming?a=pnJhxxwg"&gt;&lt;img src="http://feeds.feedburner.com/~f/AspnetCProgramming?i=pnJhxxwg" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/AspnetCProgramming?a=0tMTnPOc"&gt;&lt;img src="http://feeds.feedburner.com/~f/AspnetCProgramming?i=0tMTnPOc" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/AspnetCProgramming?a=Po6DXEk1"&gt;&lt;img src="http://feeds.feedburner.com/~f/AspnetCProgramming?i=Po6DXEk1" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/AspnetCProgramming/~4/27JG8QfHK6o" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://niravbhattsai.blogspot.com/feeds/3460337808496493881/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://niravbhattsai.blogspot.com/2008/09/remove-invalid-characters-in-csql-and.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3335029349658819939/posts/default/3460337808496493881?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3335029349658819939/posts/default/3460337808496493881?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/AspnetCProgramming/~3/27JG8QfHK6o/remove-invalid-characters-in-csql-and.html" title="Remove Invalid Characters Using C#,SQL or Javascript" /><author><name>Haresh Dhameliya</name><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="07825556947841798092" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://niravbhattsai.blogspot.com/2008/09/remove-invalid-characters-in-csql-and.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEEASH46eip7ImA9WxRSEUQ.&quot;"><id>tag:blogger.com,1999:blog-3335029349658819939.post-5127747339912886316</id><published>2008-09-12T10:39:00.003+05:30</published><updated>2008-09-12T10:47:29.012+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-09-12T10:47:29.012+05:30</app:edited><title>How to set Favicon in Mozilla and IE</title><content type="html">
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/_OrtVSnReZIXmIwNhVO2I7AaJIk/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/_OrtVSnReZIXmIwNhVO2I7AaJIk/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/_OrtVSnReZIXmIwNhVO2I7AaJIk/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/_OrtVSnReZIXmIwNhVO2I7AaJIk/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;span style="font-size:85%;color:#009900;"&gt;&lt;strong&gt;How to set Favicon in Mozilla and IE&lt;/strong&gt;&lt;/span&gt;
&lt;span style="font-size:85%;"&gt;&lt;strong&gt;Hi.
As we Know in all web there is always Icon before site URL in addressbar.
We need Favicon.ICO File and Put Following Code in Head Tag of Page&lt;/strong&gt; &lt;/span&gt;
&lt;span style="font-size:85%;"&gt;
&lt;em&gt;&lt;span style="color:#00cccc;"&gt;link rel="shortcut icon" href="~/App_Themes/SkinFile/Images/favicon.gif"&lt;/span&gt;&lt;/em&gt;
&lt;em&gt;&lt;/em&gt;
&lt;strong&gt;This Code Will Not Works For Some Versions of Internet Explorer.
I Found Solution For That Just Pu Folowing Code You will Get Favicon in Both Mozill and IE&lt;/strong&gt;

&lt;em&gt;&lt;span style="color:#00cccc;"&gt;link rel="shortcut icon" href="../App_Themes/SkinFile/Images/favicon.ico" type="image/vnd.microsoft.icon"&lt;/span&gt;&lt;/em&gt;

&lt;strong&gt;Thanks.&lt;/strong&gt; &lt;/span&gt;
&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3335029349658819939-5127747339912886316?l=niravbhattsai.blogspot.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/AspnetCProgramming?a=kmFortET"&gt;&lt;img src="http://feeds.feedburner.com/~f/AspnetCProgramming?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/AspnetCProgramming?a=Um61NyQU"&gt;&lt;img src="http://feeds.feedburner.com/~f/AspnetCProgramming?i=Um61NyQU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/AspnetCProgramming?a=BScDGh4e"&gt;&lt;img src="http://feeds.feedburner.com/~f/AspnetCProgramming?i=BScDGh4e" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/AspnetCProgramming?a=nG07k1Qw"&gt;&lt;img src="http://feeds.feedburner.com/~f/AspnetCProgramming?i=nG07k1Qw" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/AspnetCProgramming?a=UvLk9bWs"&gt;&lt;img src="http://feeds.feedburner.com/~f/AspnetCProgramming?i=UvLk9bWs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/AspnetCProgramming/~4/QrMu_EJoB_U" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://niravbhattsai.blogspot.com/feeds/5127747339912886316/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://niravbhattsai.blogspot.com/2008/09/how-to-set-favicon-in-mozilla-and-ie.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3335029349658819939/posts/default/5127747339912886316?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3335029349658819939/posts/default/5127747339912886316?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/AspnetCProgramming/~3/QrMu_EJoB_U/how-to-set-favicon-in-mozilla-and-ie.html" title="How to set Favicon in Mozilla and IE" /><author><name>Haresh Dhameliya</name><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="07825556947841798092" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://niravbhattsai.blogspot.com/2008/09/how-to-set-favicon-in-mozilla-and-ie.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEUCSHw-fCp7ImA9WxRTFEg.&quot;"><id>tag:blogger.com,1999:blog-3335029349658819939.post-9175909028132899234</id><published>2008-09-03T20:41:00.006+05:30</published><updated>2008-09-03T21:07:49.254+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-09-03T21:07:49.254+05:30</app:edited><title>Change ASP.NET Validator  ErrorMessage Using Javascript</title><content type="html">
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/t0Fvpi9S5hv22O3XZf7nr-HPYaE/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/t0Fvpi9S5hv22O3XZf7nr-HPYaE/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/t0Fvpi9S5hv22O3XZf7nr-HPYaE/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/t0Fvpi9S5hv22O3XZf7nr-HPYaE/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;span style="font-family:arial;color:#336666;"&gt;&lt;strong&gt;This Post helps You in Changing Validatiors Errormessage Dynamically&lt;/strong&gt;&lt;/span&gt;
&lt;span style="font-family:Arial;color:#336666;"&gt;&lt;/span&gt;
&lt;span style="font-family:times new roman;"&gt;One Upon in I was Developing Video Upload Module Using Teleric File Upload.&lt;/span&gt;
&lt;span style="font-family:times new roman;"&gt;I want that FileUpload input should not blank .as well Should Accept Only .FLV Files.As i can be able to useRequireFieldValidatior .So I Use CustomValidator .&lt;/span&gt;
&lt;span style="font-family:times new roman;"&gt;In CustomeValidator Using &lt;em&gt;ClientValidationFunction="validateRadVideoUpload"&lt;/em&gt;&lt;/span&gt;
&lt;span style="font-family:times new roman;"&gt;Property U can write &lt;em&gt;fileInputs[0].value.length &lt;= 1&lt;/em&gt; to validate for '&lt;em&gt;"Required Filed".&lt;/em&gt;&lt;/span&gt;
&lt;span style="font-family:times new roman;"&gt;So &lt;em&gt;what For it should Contain .FLV&lt;/em&gt; at the end??&lt;/span&gt;
&lt;span style="font-family:times new roman;"&gt;It Is easy to check &lt;em&gt;Using Regular Expression&lt;/em&gt;. Now Problem Is Here.&lt;/span&gt;
&lt;span style="font-family:times new roman;"&gt;How will you change ErrorMessage Of CustomValidator To &lt;em&gt;"Required Valid File" &lt;/em&gt;If user Enter file with invalid Extension.&lt;/span&gt;
&lt;span style="font-family:times new roman;"&gt;I have To Use Javascript Right??&lt;/span&gt;
&lt;span style="font-family:times new roman;"&gt;Here is The Solutions.&lt;/span&gt;

&lt;em&gt;&lt;span style="font-family:times new roman;color:#3366ff;"&gt;var Validate_VideoclientId='&lt;%= Validate_Video.ClientID %&gt;';
var tmp_Validate_VideoclientId = document.all ? document.all[Validate_VideoclientId] : document.getElementById(Validate_VideoclientId);
tmp_Validate_VideoclientId.errormessage = "Please select valid VideoFile";&lt;/span&gt;&lt;/em&gt;
&lt;em&gt;&lt;span style="font-family:times new roman;color:#3366ff;"&gt;&lt;/span&gt;&lt;/em&gt;
&lt;span style="font-family:times new roman;color:#000000;"&gt;This the way u can change ErrorMessage Property of ValidationControl Dynamically.&lt;/span&gt;
&lt;span style="font-family:times new roman;"&gt;Nees Morehelp??&lt;/span&gt;
&lt;span style="font-family:times new roman;"&gt;Write me on This Blog..Thanks&lt;/span&gt;


&lt;span style="font-family:times new roman;"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3335029349658819939-9175909028132899234?l=niravbhattsai.blogspot.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/AspnetCProgramming?a=jxePVZbl"&gt;&lt;img src="http://feeds.feedburner.com/~f/AspnetCProgramming?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/AspnetCProgramming?a=XD71IS9D"&gt;&lt;img src="http://feeds.feedburner.com/~f/AspnetCProgramming?i=XD71IS9D" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/AspnetCProgramming?a=76rRCYxb"&gt;&lt;img src="http://feeds.feedburner.com/~f/AspnetCProgramming?i=76rRCYxb" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/AspnetCProgramming?a=ZkAJFf1Y"&gt;&lt;img src="http://feeds.feedburner.com/~f/AspnetCProgramming?i=ZkAJFf1Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/AspnetCProgramming?a=Aki5obP9"&gt;&lt;img src="http://feeds.feedburner.com/~f/AspnetCProgramming?i=Aki5obP9" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/AspnetCProgramming/~4/hGT1WOW-7d4" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://niravbhattsai.blogspot.com/feeds/9175909028132899234/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://niravbhattsai.blogspot.com/2008/09/change-aspnet-validator-errormessage.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3335029349658819939/posts/default/9175909028132899234?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3335029349658819939/posts/default/9175909028132899234?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/AspnetCProgramming/~3/hGT1WOW-7d4/change-aspnet-validator-errormessage.html" title="Change ASP.NET Validator  ErrorMessage Using Javascript" /><author><name>Haresh Dhameliya</name><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="07825556947841798092" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://niravbhattsai.blogspot.com/2008/09/change-aspnet-validator-errormessage.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkQFQX4yfyp7ImA9WxRTFE4.&quot;"><id>tag:blogger.com,1999:blog-3335029349658819939.post-5907064598571715164</id><published>2008-09-03T12:52:00.001+05:30</published><updated>2008-09-03T15:01:50.097+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-09-03T15:01:50.097+05:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="ASP.Net C#" /><category scheme="http://www.blogger.com/atom/ns#" term="SQL Server Query" /><category scheme="http://www.blogger.com/atom/ns#" term="SQL Server" /><category scheme="http://www.blogger.com/atom/ns#" term="Nirav Bhatt" /><title>Find Currently running query/process in MS SQL Server 2005</title><content type="html">
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/VEhkkJvKWtx3A6c1R7-soFy8WVM/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/VEhkkJvKWtx3A6c1R7-soFy8WVM/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/VEhkkJvKWtx3A6c1R7-soFy8WVM/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/VEhkkJvKWtx3A6c1R7-soFy8WVM/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Hi Friends,&lt;/p&gt; &lt;p&gt;While managing a server, we might come across a point where we want to know which of our database is loading on the server. &lt;/p&gt; &lt;p&gt;Let's take a case. We have hosted many sites on a server with MS SQL Server 2005. Now the traffic on some sites suddenly increase or new code is uploaded to some of site. This causes the MS SQL Server 2005 and as well server to be on a hike of 100% CPU usage.&lt;/p&gt; &lt;p&gt;Now we want to investigate that which query or process of MS SQL Server 2005 causing to take the CPU on the 100%&amp;nbsp; of usage. I found many people that are searching for finding currently running query/process in MS SQL Server 2005. Here is a help for them to find out which queries are currently running in MS SQL Server 2005.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;You can run this query.&lt;/p&gt; &lt;p&gt;SELECT * FROM MASTER..SYSPROCESSES&lt;/p&gt; &lt;p&gt;Other queries I found are&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;SELECT&amp;nbsp;&amp;nbsp; st.text, r.session_id, r.status, r.command, r.cpu_time, r.total_elapsed_time&lt;br&gt;FROM sys.dm_exec_requests r&lt;br&gt;CROSS APPLY sys.dm_exec_sql_text(sql_handle) AS st  &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Now if you have the session id of your request then you can try with this query&lt;/p&gt; &lt;p&gt;SELECT&lt;br&gt;st.text&lt;br&gt;FROM&lt;br&gt;sys.dm_exec_requests r&lt;br&gt;CROSS APPLY&lt;br&gt;sys.dm_exec_sql_text(sql_handle) AS st&lt;/p&gt; &lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:95cf1d9e-7d4a-427a-851b-e790a6574374" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/MS%20SQL%20Server%202005" rel="tag"&gt;MS SQL Server 2005&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Currently%20running%20query%20in%20SQL%20Server%202005" rel="tag"&gt;Currently running query in SQL Server 2005&lt;/a&gt;&lt;/div&gt; &lt;p&gt;&lt;br&gt;WHERE r.session_id = &amp;lt;spid number&amp;gt;  &lt;p&gt;Here &amp;lt;spid number&amp;gt; is your session id.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3335029349658819939-5907064598571715164?l=niravbhattsai.blogspot.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/AspnetCProgramming?a=u5YweQcl"&gt;&lt;img src="http://feeds.feedburner.com/~f/AspnetCProgramming?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/AspnetCProgramming?a=XNDk2ZrV"&gt;&lt;img src="http://feeds.feedburner.com/~f/AspnetCProgramming?i=XNDk2ZrV" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/AspnetCProgramming?a=VdS1WKs2"&gt;&lt;img src="http://feeds.feedburner.com/~f/AspnetCProgramming?i=VdS1WKs2" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/AspnetCProgramming?a=H3LBn5hU"&gt;&lt;img src="http://feeds.feedburner.com/~f/AspnetCProgramming?i=H3LBn5hU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/AspnetCProgramming?a=8Ip0FVmY"&gt;&lt;img src="http://feeds.feedburner.com/~f/AspnetCProgramming?i=8Ip0FVmY" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/AspnetCProgramming/~4/FZ3JIZXdxLY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://niravbhattsai.blogspot.com/feeds/5907064598571715164/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://niravbhattsai.blogspot.com/2008/09/currently-running-query-in-sql-server.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3335029349658819939/posts/default/5907064598571715164?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3335029349658819939/posts/default/5907064598571715164?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/AspnetCProgramming/~3/FZ3JIZXdxLY/currently-running-query-in-sql-server.html" title="Find Currently running query/process in MS SQL Server 2005" /><author><name>Nirav Bhatt</name><uri>http://www.blogger.com/profile/04140615764814901399</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="08501418167249067995" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://niravbhattsai.blogspot.com/2008/09/currently-running-query-in-sql-server.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkUGQHw8eyp7ImA9WxdaGUU.&quot;"><id>tag:blogger.com,1999:blog-3335029349658819939.post-5750991433929110545</id><published>2008-08-29T09:54:00.003+05:30</published><updated>2008-08-29T10:00:21.273+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-08-29T10:00:21.273+05:30</app:edited><title>Button OR Page Event Handlers Fires Twice:</title><content type="html">
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/GcrKbeuSETMf66B5HDqVmhjLg8c/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/GcrKbeuSETMf66B5HDqVmhjLg8c/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/GcrKbeuSETMf66B5HDqVmhjLg8c/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/GcrKbeuSETMf66B5HDqVmhjLg8c/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;&lt;strong&gt;You have Provide Event Handler In Both Code Behind and Front(.aspx) file
&lt;/strong&gt;&lt;span style="font-size:85%;"&gt;a. bntGet.Click += new EventHandler(bntGet_Click);
b. asp:Button ID="bntGet" runat="server" Text="GetDate" OnClick="bntGet_Click"
Solution:Remove Event Handler From One of the Places&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;&lt;strong&gt;You have Not Given ImageUrl Property If Asp Image Control.
&lt;/strong&gt;This Problem Occurs Only in Mozill.
&lt;?xml:namespace prefix = asp /&gt;&lt;asp:image id="imgLogo" runat="server"&gt;
Solution:set Initial/Default Values for ImageUrl and AlternetText Property
I find Out The Solutions of Both Problems But I Cant Under stand Why Secontd Problem Occurs In Mozilla and Not in IE.If Any budy Find Please Comment Me.
Thanks.&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;
&lt;/asp:image&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3335029349658819939-5750991433929110545?l=niravbhattsai.blogspot.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/AspnetCProgramming?a=7pV6cTzY"&gt;&lt;img src="http://feeds.feedburner.com/~f/AspnetCProgramming?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/AspnetCProgramming?a=kNLrpX0k"&gt;&lt;img src="http://feeds.feedburner.com/~f/AspnetCProgramming?i=kNLrpX0k" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/AspnetCProgramming?a=jjn1sfIt"&gt;&lt;img src="http://feeds.feedburner.com/~f/AspnetCProgramming?i=jjn1sfIt" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/AspnetCProgramming?a=mJCxmElo"&gt;&lt;img src="http://feeds.feedburner.com/~f/AspnetCProgramming?i=mJCxmElo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/AspnetCProgramming?a=tLbSx4KV"&gt;&lt;img src="http://feeds.feedburner.com/~f/AspnetCProgramming?i=tLbSx4KV" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/AspnetCProgramming/~4/QatV__z8ccY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://niravbhattsai.blogspot.com/feeds/5750991433929110545/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://niravbhattsai.blogspot.com/2008/08/button-or-page-event-handlers-fires.html#comment-form" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3335029349658819939/posts/default/5750991433929110545?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3335029349658819939/posts/default/5750991433929110545?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/AspnetCProgramming/~3/QatV__z8ccY/button-or-page-event-handlers-fires.html" title="Button OR Page Event Handlers Fires Twice:" /><author><name>Haresh Dhameliya</name><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="07825556947841798092" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">2</thr:total><feedburner:origLink>http://niravbhattsai.blogspot.com/2008/08/button-or-page-event-handlers-fires.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DE4HSXkycCp7ImA9WxdWGE4.&quot;"><id>tag:blogger.com,1999:blog-3335029349658819939.post-4518798912592330857</id><published>2008-07-08T22:22:00.017+05:30</published><updated>2008-07-12T09:58:58.798+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-07-12T09:58:58.798+05:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Microsoft Certification" /><category scheme="http://www.blogger.com/atom/ns#" term="SQL Server" /><category scheme="http://www.blogger.com/atom/ns#" term="MCTS 70-431" /><title>MS SQL Server 2005 Implementation &amp; Maintenance Certification with uCertify PrepKit</title><content type="html">
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/rk4Dfyl8bLbcVbGI5h_zX3wT8i0/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/rk4Dfyl8bLbcVbGI5h_zX3wT8i0/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/rk4Dfyl8bLbcVbGI5h_zX3wT8i0/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/rk4Dfyl8bLbcVbGI5h_zX3wT8i0/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;Microsoft SQL Server 2005 is one of the most using database engine now a days. Microsoft has provided a great interface and userfriendliness with the SQL Server Management Studio. Most of the .net developers are working with SQL Server, they just writing the query along with their need. They even doesn't think for the performance issues with SQL Server.

To get the best performance from the SQL Server first we need to know how to implement it and how to maintain it. Until we know the basics for SQL Server implementation we will suffer for performance even if we have latest hardware with higher performance. Now the developer will say "Why does we need to learn the SQL Server?" the answers is - now a days competition in market is increasing, each company need the skill full and knowledge person, who can make their company grow higher.

Every large company have DBA for analyzing and performance tuning for the database. But small companies will need developer who can work on SQL server. At this time SQL Server implementation is required. In the other case if the company got server hardware crash or database hack, we need the knowledge for maintenance of the SQL Server.

The person who like to go on the DBA side for SQL Server Microsoft is providing a base Certification which can put the person in priority. Microsoft provide certification of MCTS 70-431 SQL Server Implementation &amp;amp; Maintenance. In this certification course Microsoft will check the person's knowledge of:-
&lt;ul&gt;&lt;li&gt;Installing and Configuring SQL Server&lt;/li&gt;&lt;li&gt;Implementing High Availability and Disaster Recovery&lt;/li&gt;&lt;li&gt;Supporting Data Consumers&lt;/li&gt;&lt;li&gt;Maintaining Database&lt;/li&gt;&lt;li&gt;Monitoring performance of the server., etc.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Most of the developers will be unaware of the above concepts. But still it is beneficial for the developer and the client. Because more the application work smooth more client will be happy. Now developer will ask "How will we be able to get certified when we does not have enough knowledge of the basics?" Here is the solution &lt;a href="http://www.ucertify.com/"&gt;uCertify&lt;/a&gt; provides PrepKits for different Certification. &lt;/p&gt;&lt;p&gt;Prep kits are basically test simulator of the certification exams. It contains notes, articles and many more features. Here is the detailed list of the features included in latest &lt;a href="http://www.ucertify.com/exams/Microsoft/70-431.html"&gt;MCTS 70-431 PrepKit&lt;/a&gt;.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Exam Objectives - to let the user know what should they know&lt;/li&gt;&lt;li&gt;Quiz - to create a customize timed test.&lt;/li&gt;&lt;li&gt;Study Notes - Notes that are rarely noticed by the developer which helps to go deeply in the fundamentals of the SQL Server&lt;/li&gt;&lt;li&gt;Articles&lt;/li&gt;&lt;li&gt;How Tos... - This is the coolest part of the PrepKit because it gives you visual and theory to complete a task.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;PrepKit Reports&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;PrepKit gives you the report of your progress. PrepKit gives you the retest based on what you need you can select the category for retest. Category included are "Answered wrong", "Answered right", "All Questions", etc.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;User friendliness of the PrepKit&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;When i first downloaded the PrepKit I was curious and confused that how will I go through the PrepKit. Will I be able to use it properly? But when I started the PrepKit I wondered with the functionality included on the first page of the PrepKit. It contains all I need in single one page. The study notes, articles, tests, test reports, all the things to start preparation for the certification.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Tests included for the preparation&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;uCertify has give number of tests to check your knowledge. You can start predefined tests, custom test, fixed time test, Adaptive test. The test I like the most is Adaptive, it is ask you question as you are on the go. First question will be normal difficulty, if you answer correctly then it will ask you next question will be with higher difficulty.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Test History&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;uCertify also give you the test history in PrepKit. It will keep a track on the test you given. So you can observe your progress. &lt;/p&gt;&lt;p&gt;In some case PrepKit also work as your tutor. It will give you information at which point you are wrong and at which point you need improvement.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Multiple PrepKit Support&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;All uCertify PrepKit can be opened from each other. You just need to go to the change menu of the certification. It will load list of installed and available PrepKits you can choose either of them. And at the same time PrepKit will be changed. So no need to wait for opening the other instance of the application.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Readiness Report&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;uCertify PrepKit gives readiness report to you on categories like&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Diagnostic test&lt;/li&gt;&lt;li&gt;Test a&lt;/li&gt;&lt;li&gt;Test b&lt;/li&gt;&lt;li&gt;Test c&lt;/li&gt;&lt;li&gt;Final test&lt;/li&gt;&lt;li&gt;All&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;In this readiness report you can observer your knowledge for different tests and improve your knowledge on perticular point.&lt;/p&gt;&lt;p&gt;If you are preparing for MCTS 70-431 you must look at &lt;a href="http://www.ucertify.com/exams/Microsoft/70-431.html"&gt;uCertify PrepKit&lt;/a&gt;. I am sure that you will like it and be one of the fan of it.&lt;/p&gt;&lt;p&gt;You will get &lt;a href="http://www.ucertify.com/exams/Microsoft/70-431.html"&gt;10% discount on MCTS 70-431 Certification PrepKit&lt;/a&gt; when you use the discount code as "NBHATT".&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3335029349658819939-4518798912592330857?l=niravbhattsai.blogspot.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/AspnetCProgramming?a=MJGBiCH2"&gt;&lt;img src="http://feeds.feedburner.com/~f/AspnetCProgramming?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/AspnetCProgramming?a=FYsdLFUo"&gt;&lt;img src="http://feeds.feedburner.com/~f/AspnetCProgramming?i=FYsdLFUo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/AspnetCProgramming?a=TAZyW9sf"&gt;&lt;img src="http://feeds.feedburner.com/~f/AspnetCProgramming?i=TAZyW9sf" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/AspnetCProgramming?a=G7RhIdpe"&gt;&lt;img src="http://feeds.feedburner.com/~f/AspnetCProgramming?i=G7RhIdpe" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/AspnetCProgramming?a=yIZH2cum"&gt;&lt;img src="http://feeds.feedburner.com/~f/AspnetCProgramming?i=yIZH2cum" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/AspnetCProgramming/~4/7tcGqpLOewk" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://niravbhattsai.blogspot.com/feeds/4518798912592330857/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://niravbhattsai.blogspot.com/2008/07/ms-sql-server-2005-implimentation.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3335029349658819939/posts/default/4518798912592330857?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3335029349658819939/posts/default/4518798912592330857?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/AspnetCProgramming/~3/7tcGqpLOewk/ms-sql-server-2005-implimentation.html" title="MS SQL Server 2005 Implementation &amp;amp; Maintenance Certification with uCertify PrepKit" /><author><name>Nirav Bhatt</name><uri>http://www.blogger.com/profile/04140615764814901399</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="08501418167249067995" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://niravbhattsai.blogspot.com/2008/07/ms-sql-server-2005-implimentation.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CU8FRn84fCp7ImA9WxdQEkk.&quot;"><id>tag:blogger.com,1999:blog-3335029349658819939.post-1075623520222923</id><published>2008-06-12T09:34:00.002+05:30</published><updated>2008-06-12T09:40:17.134+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-06-12T09:40:17.134+05:30</app:edited><title>Visual Studio 2008 and .NET 2.0</title><content type="html">
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/JOFSPTcs9LDJKL9VZqQntSUUkYk/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/JOFSPTcs9LDJKL9VZqQntSUUkYk/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/JOFSPTcs9LDJKL9VZqQntSUUkYk/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/JOFSPTcs9LDJKL9VZqQntSUUkYk/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;HI.Friends
Recently I m Working With Visual Studio 2008 and .Net 3.5 But I found that &lt;span style="font-weight: bold;"&gt;VS2008 can also Be used With .Net 2.0 &lt;/span&gt;and it Is more Powerful in some areas where VS2005 has poor functionality.So
 &lt;p class="MsoNormal" style="line-height: normal;"&gt;&lt;b&gt;&lt;u&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;So why use VS 2008 if you aren't using the new .NET 3.5 features?&lt;/span&gt;&lt;/u&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-size: 13.5pt; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;ol start="1" type="1"&gt;&lt;li class="MsoNormal" style="line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;JavaScript intellisense &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style="line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Much richer JavaScript debugging &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style="line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Nested ASP.NET master page support at design-time &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style="line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Rich CSS editing and layout support within the WYSIWYG      designer &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style="line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Split-view designer support for having both source and      design views open on a page at the same time &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style="line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;A much faster ASP.NET page designer - with dramatic      perf improvements in view-switches between source/design mode &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style="line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Automated .SQL script generation and hosting      deployment support for databases on remote servers&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3335029349658819939-1075623520222923?l=niravbhattsai.blogspot.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/AspnetCProgramming?a=RYo8K4Cz"&gt;&lt;img src="http://feeds.feedburner.com/~f/AspnetCProgramming?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/AspnetCProgramming?a=D8uPtRgj"&gt;&lt;img src="http://feeds.feedburner.com/~f/AspnetCProgramming?i=D8uPtRgj" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/AspnetCProgramming?a=X9udNPXf"&gt;&lt;img src="http://feeds.feedburner.com/~f/AspnetCProgramming?i=X9udNPXf" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/AspnetCProgramming?a=e0v0J3Dj"&gt;&lt;img src="http://feeds.feedburner.com/~f/AspnetCProgramming?i=e0v0J3Dj" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/AspnetCProgramming?a=4FBnxWRM"&gt;&lt;img src="http://feeds.feedburner.com/~f/AspnetCProgramming?i=4FBnxWRM" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/AspnetCProgramming/~4/rS1Wktrc8Us" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://niravbhattsai.blogspot.com/feeds/1075623520222923/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://niravbhattsai.blogspot.com/2008/06/visual-studio-2008-and-net-20.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3335029349658819939/posts/default/1075623520222923?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3335029349658819939/posts/default/1075623520222923?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/AspnetCProgramming/~3/rS1Wktrc8Us/visual-studio-2008-and-net-20.html" title="Visual Studio 2008 and .NET 2.0" /><author><name>Haresh Dhameliya</name><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="07825556947841798092" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://niravbhattsai.blogspot.com/2008/06/visual-studio-2008-and-net-20.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Ck8EQX85eCp7ImA9WxdQFUg.&quot;"><id>tag:blogger.com,1999:blog-3335029349658819939.post-4837446587194486906</id><published>2008-06-11T18:20:00.003+05:30</published><updated>2008-06-15T22:56:40.120+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-06-15T22:56:40.120+05:30</app:edited><title>Overview  to Reverse Ajax</title><content type="html">
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/4XzMtp0_8NhkfMcG2X6i2Vq4dGY/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/4XzMtp0_8NhkfMcG2X6i2Vq4dGY/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/4XzMtp0_8NhkfMcG2X6i2Vq4dGY/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/4XzMtp0_8NhkfMcG2X6i2Vq4dGY/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;span style="FONT-WEIGHT: bold; COLOR: rgb(0,153,0)font-family:arial;" &gt;An introduction to Reverse Ajax&lt;/span&gt;
&lt;span style="font-family:arial;"&gt;Despite all the hype, Ajax cannot get real time information directly from the server. If some information arrives after the user has loaded a page they will never see it, unless they refresh the page.&lt;/span&gt;

&lt;span style="font-family:arial;"&gt;We could easily solve this problem in the traditional way, by having a having a little bit of Javascript in the webpage that automatically refreshes the page every few seconds. But refreshing an entire page every few seconds is overkill. If the millions of users of a large site were to refresh every few seconds it would increase the bandwidth dramatically. The effect on the servers would be similar to a DOS attack!&lt;/span&gt;

&lt;span style="font-family:arial;"&gt;We really just need the small piece of real time data to be updated on the browser as soon as it arrives in the server. The simplest way would be to have the server tell all the browsers that the data has been updated. But as we discussed in the introduction to Ajax, servers cannot initiate contact with browsers. Hence we need a solution which gets around this problem.

&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;span style="FONT-WEIGHT: bold;font-family:arial;" &gt;Reverse Ajax allows servers to push content out to browsers immediately it becomes available&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3335029349658819939-4837446587194486906?l=niravbhattsai.blogspot.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/AspnetCProgramming?a=hqLY0vWw"&gt;&lt;img src="http://feeds.feedburner.com/~f/AspnetCProgramming?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/AspnetCProgramming?a=aE2I1CcV"&gt;&lt;img src="http://feeds.feedburner.com/~f/AspnetCProgramming?i=aE2I1CcV" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/AspnetCProgramming?a=eBv7kF7K"&gt;&lt;img src="http://feeds.feedburner.com/~f/AspnetCProgramming?i=eBv7kF7K" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/AspnetCProgramming?a=rywe6r1o"&gt;&lt;img src="http://feeds.feedburner.com/~f/AspnetCProgramming?i=rywe6r1o" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/AspnetCProgramming?a=c6swzPfK"&gt;&lt;img src="http://feeds.feedburner.com/~f/AspnetCProgramming?i=c6swzPfK" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/AspnetCProgramming/~4/aX7DwpwHn0I" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://niravbhattsai.blogspot.com/feeds/4837446587194486906/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://niravbhattsai.blogspot.com/2008/06/overview-to-reverse-ajax.html#comment-form" title="4 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3335029349658819939/posts/default/4837446587194486906?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3335029349658819939/posts/default/4837446587194486906?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/AspnetCProgramming/~3/aX7DwpwHn0I/overview-to-reverse-ajax.html" title="Overview  to Reverse Ajax" /><author><name>Haresh Dhameliya</name><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="07825556947841798092" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">4</thr:total><feedburner:origLink>http://niravbhattsai.blogspot.com/2008/06/overview-to-reverse-ajax.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkEDQn8-fSp7ImA9WxdQFUg.&quot;"><id>tag:blogger.com,1999:blog-3335029349658819939.post-5189946804410809638</id><published>2008-06-11T10:56:00.003+05:30</published><updated>2008-06-15T22:54:33.155+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-06-15T22:54:33.155+05:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="SQL Server Query" /><title>SQL Server Case Sensitive or case insensitive Quries</title><content type="html">
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/mFR8pE7ZfRZTEZawebrl17wt450/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/mFR8pE7ZfRZTEZawebrl17wt450/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/mFR8pE7ZfRZTEZawebrl17wt450/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/mFR8pE7ZfRZTEZawebrl17wt450/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;When we need That Comparison in SQL server should be Case Sensitive or Case Insensitive Regardless Database is configured or Not for Case Sensitivity We can Write Such Queries Using Following Syntax.&lt;/p&gt;&lt;p class="MsoNormal"&gt;By default queries behave as per Database configured.&lt;/p&gt;&lt;p class="MsoNormal"&gt;(1)Default Query:&lt;/p&gt;&lt;p&gt;&lt;i&gt;&lt;span style="font-family:Consolas;color:blue;"&gt;SELECT *
FROM Members WHERE Email = ‘&lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;span style="font-family:Consolas;"&gt;&lt;a href="mailto:dhameliyaharesh@gmail.com%27"&gt;mailto:dhameliyaharesh@gmail.com%27&lt;/a&gt;&lt;/span&gt; &lt;span style="font-size:0;"&gt;&lt;/span&gt;&lt;?xml:namespace prefix = o /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/i&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-size:0;"&gt;&lt;/span&gt;(2)Case Sensitive Query:&lt;/p&gt;&lt;p&gt;&lt;i&gt;&lt;span style="font-family:Consolas;color:blue;"&gt;SELECT *
FROM Members WHERE Email = ‘&lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;span style="font-family:Consolas;"&gt;&lt;a href="mailto:dhameliyaharesh@gmail.com%27"&gt;mailto:dhameliyaharesh@gmail.com%27&lt;/a&gt;&lt;/span&gt; &lt;span style="font-size:0;"&gt;&lt;/span&gt;&lt;/i&gt;&lt;span style="COLOR: rgb(0,128,255);font-family:Consolas;" &gt;COLLATE SQL_Latin1_General_CP1_CS_AS&lt;/span&gt;&lt;i&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/i&gt;&lt;/p&gt;&lt;p&gt;Above query will matches&lt;span style="font-size:0;"&gt; &lt;/span&gt;&lt;span style="font-size:0;"&gt;&lt;/span&gt;&lt;a href="mailto:dhameliyaharesh@gmail.com"&gt;dhameliyaharesh@gmail.com&lt;/a&gt; &lt;span style="font-size:0;"&gt;&lt;/span&gt;&lt;span style="font-size:0;"&gt;&lt;/span&gt;And Not Matches DHAMELIYAHARESH@GMAIL.COM&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;(3)Case Insensitive Query:&lt;/p&gt;&lt;p&gt;&lt;i&gt;&lt;span style="font-family:Consolas;color:blue;"&gt;SELECT *
FROM Members WHERE Email = ‘&lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;span style="font-family:Consolas;"&gt;&lt;a href="mailto:dhameliyaharesh@gmail.com%27"&gt;mailto:dhameliyaharesh@gmail.com%27&lt;/a&gt; &lt;/span&gt;&lt;/i&gt;&lt;span style="font-family:Consolas;color:blue;"&gt;COLLATE SQL_Latin1_General_CP1_CI_AS&lt;/span&gt;&lt;i&gt; &lt;span style="font-size:0;"&gt;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/i&gt;&lt;/p&gt;&lt;p&gt;Above query will matches&lt;span style="font-size:0;"&gt; &lt;/span&gt;&lt;span style="font-size:0;"&gt;&lt;/span&gt;&lt;a href="mailto:dhameliyaharesh@gmail.com"&gt;dhameliyaharesh@gmail.com&lt;/a&gt; &lt;span style="font-size:0;"&gt;&lt;/span&gt;as well as DHAMELIYAHARESH@GMAIL.COM&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3335029349658819939-5189946804410809638?l=niravbhattsai.blogspot.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/AspnetCProgramming?a=RxchVCPO"&gt;&lt;img src="http://feeds.feedburner.com/~f/AspnetCProgramming?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/AspnetCProgramming?a=Q3qsiA0Z"&gt;&lt;img src="http://feeds.feedburner.com/~f/AspnetCProgramming?i=Q3qsiA0Z" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/AspnetCProgramming?a=9Vkg9A16"&gt;&lt;img src="http://feeds.feedburner.com/~f/AspnetCProgramming?i=9Vkg9A16" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/AspnetCProgramming?a=ECTyRB6O"&gt;&lt;img src="http://feeds.feedburner.com/~f/AspnetCProgramming?i=ECTyRB6O" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/AspnetCProgramming?a=RSGiIVUm"&gt;&lt;img src="http://feeds.feedburner.com/~f/AspnetCProgramming?i=RSGiIVUm" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/AspnetCProgramming/~4/R1Xo43aWOZ8" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://niravbhattsai.blogspot.com/feeds/5189946804410809638/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://niravbhattsai.blogspot.com/2008/06/sql-server-case-sensitive-or-case.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3335029349658819939/posts/default/5189946804410809638?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3335029349658819939/posts/default/5189946804410809638?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/AspnetCProgramming/~3/R1Xo43aWOZ8/sql-server-case-sensitive-or-case.html" title="SQL Server Case Sensitive or case insensitive Quries" /><author><name>Haresh Dhameliya</name><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="07825556947841798092" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://niravbhattsai.blogspot.com/2008/06/sql-server-case-sensitive-or-case.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUIFR3szeyp7ImA9WxdaF0o.&quot;"><id>tag:blogger.com,1999:blog-3335029349658819939.post-6329947084850748490</id><published>2008-05-23T14:30:00.002+05:30</published><updated>2008-08-26T23:28:36.583+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-08-26T23:28:36.583+05:30</app:edited><title>Query XML in SQL-2005</title><content type="html">
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/WFZZTRgtaNsGdNsARXGqGnC4ILA/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/WFZZTRgtaNsGdNsARXGqGnC4ILA/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/WFZZTRgtaNsGdNsARXGqGnC4ILA/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/WFZZTRgtaNsGdNsARXGqGnC4ILA/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div&gt;Hi friends lets take one look at new feature of SQL-2005 which Supports Query sql Data like
relational database.
it is rarly used but powerful feature of database.generally this it is not feasible to use XML as relational database but when you have information in which columns are varies frequently in such situation you can Use such feature.
and u might know that SQL-2005 have new datatype called xml datatype.
Using power of XQuery and XML datatype we fatch data in Tabular format.

&lt;span style="font-size:85%;"&gt;Declare @XMLFriends xml &lt;/span&gt;&lt;span style="font-size:85%;"&gt;
set @XMLFriends ='&lt;user&gt;&lt;name&gt;haresh&lt;/name&gt;&lt;name&gt;Paresh&lt;/name&gt;&lt;/user&gt;'&lt;user&gt;&lt;name&gt;&lt;/name&gt;&lt;name&gt;&lt;/name&gt;&lt;/user&gt;&lt;pre&gt;&lt;/pre&gt;
&lt;/span&gt;&lt;span style="font-size:85%;"&gt;Select ParamValues.name.value('.','VARCHAR(200)') as FriendId
FROM @XMLFriends.nodes('/User/name') as ParamValues(name)&lt;/span&gt;

Output of above query is:
&lt;span style="font-size:85%;"&gt;1 haresh&lt;/span&gt;
&lt;span style="font-size:85%;"&gt;2 nirav&lt;/span&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3335029349658819939-6329947084850748490?l=niravbhattsai.blogspot.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/AspnetCProgramming?a=B3GxNcYX"&gt;&lt;img src="http://feeds.feedburner.com/~f/AspnetCProgramming?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/AspnetCProgramming?a=DN9grP0f"&gt;&lt;img src="http://feeds.feedburner.com/~f/AspnetCProgramming?i=DN9grP0f" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/AspnetCProgramming?a=WGn4gVSg"&gt;&lt;img src="http://feeds.feedburner.com/~f/AspnetCProgramming?i=WGn4gVSg" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/AspnetCProgramming?a=CyAmrKS0"&gt;&lt;img src="http://feeds.feedburner.com/~f/AspnetCProgramming?i=CyAmrKS0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/AspnetCProgramming?a=qTxuEz9K"&gt;&lt;img src="http://feeds.feedburner.com/~f/AspnetCProgramming?i=qTxuEz9K" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/AspnetCProgramming/~4/3-zELmX8Ux8" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://niravbhattsai.blogspot.com/feeds/6329947084850748490/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://niravbhattsai.blogspot.com/2008/05/query-xml-in-sql-2005.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3335029349658819939/posts/default/6329947084850748490?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3335029349658819939/posts/default/6329947084850748490?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/AspnetCProgramming/~3/3-zELmX8Ux8/query-xml-in-sql-2005.html" title="Query XML in SQL-2005" /><author><name>Haresh Dhameliya</name><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="07825556947841798092" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://niravbhattsai.blogspot.com/2008/05/query-xml-in-sql-2005.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0YBQX46cSp7ImA9WxdQGEw.&quot;"><id>tag:blogger.com,1999:blog-3335029349658819939.post-4344817969445135262</id><published>2008-05-21T14:07:00.006+05:30</published><updated>2008-06-18T23:15:50.019+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-06-18T23:15:50.019+05:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Regular Expression" /><category scheme="http://www.blogger.com/atom/ns#" term="URL Validation" /><title>URL  Validation With Javascript</title><content type="html">
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/y7qDUBCgXbTUp5llH1ZG9pZ2IG8/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/y7qDUBCgXbTUp5llH1ZG9pZ2IG8/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/y7qDUBCgXbTUp5llH1ZG9pZ2IG8/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/y7qDUBCgXbTUp5llH1ZG9pZ2IG8/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;span style="font-size:100%;"&gt;Hi friends.
in this post i will explain How can we Validate Web abbress.
Once upon i want regular expression in my application which can eliminate full url like (http://www.google.com Not just www.google.com) i tried hard to find but i cant. so i have to develop my own.&lt;/span&gt;

This is the function i have used:
&lt;div style="TEXT-ALIGN: left"&gt;&lt;span style="font-size:85%;"&gt;
function ValidateURL(url)
{
var regexp=new RegExp('^(http[s]?://ftp://)(w{3}\.{1})([A-Za-z0-9]+\.{1}) (comedugovintmilnetorgbizarpainfonameproaerocoopmuseum([a-zA-Z]{2})) ((\.{1})([A-Za-z0-9]{2,3}))?$');
if(!url.match(regexp))
{
alert('Please Enter a valid URL: For Eg. "http://somesite.com" or "http://www.somesite.co.in" ');
return false;
}

}

You can refer Below Post for develop your own Regular expression

&lt;a href="http://niravbhattsai.blogspot.com/2008/04/regular-expression-syntax-use-in-aspnet.html"&gt;http://niravbhattsai.blogspot.com/2008/04/regular-expression-syntax-use-in-aspnet.html&lt;/a&gt;
&lt;script src="http://www.google-analytics.com/urchin.js" type="text/javascript"&gt;
&lt;/script&gt;
&lt;script type="text/javascript"&gt;
_uacct = "UA-4497887-1";
urchinTracker();
&lt;/script&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3335029349658819939-4344817969445135262?l=niravbhattsai.blogspot.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/AspnetCProgramming?a=7xigsRf5"&gt;&lt;img src="http://feeds.feedburner.com/~f/AspnetCProgramming?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/AspnetCProgramming?a=P1NQVeR1"&gt;&lt;img src="http://feeds.feedburner.com/~f/AspnetCProgramming?i=P1NQVeR1" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/AspnetCProgramming?a=Bs47uHDj"&gt;&lt;img src="http://feeds.feedburner.com/~f/AspnetCProgramming?i=Bs47uHDj" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/AspnetCProgramming?a=RDfm2oWn"&gt;&lt;img src="http://feeds.feedburner.com/~f/AspnetCProgramming?i=RDfm2oWn" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/AspnetCProgramming?a=F5rp2ryh"&gt;&lt;img src="http://feeds.feedburner.com/~f/AspnetCProgramming?i=F5rp2ryh" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/AspnetCProgramming/~4/M7hnEQdsEtY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://niravbhattsai.blogspot.com/feeds/4344817969445135262/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://niravbhattsai.blogspot.com/2008/05/url-validation-with-javascript.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3335029349658819939/posts/default/4344817969445135262?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3335029349658819939/posts/default/4344817969445135262?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/AspnetCProgramming/~3/M7hnEQdsEtY/url-validation-with-javascript.html" title="URL  Validation With Javascript" /><author><name>Haresh Dhameliya</name><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="07825556947841798092" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://niravbhattsai.blogspot.com/2008/05/url-validation-with-javascript.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkYCRnw7eCp7ImA9WxdQFko.&quot;"><id>tag:blogger.com,1999:blog-3335029349658819939.post-2409589735044144912</id><published>2008-05-17T08:55:00.001+05:30</published><updated>2008-06-17T09:12:47.200+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-06-17T09:12:47.200+05:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Regular Expression" /><category scheme="http://www.blogger.com/atom/ns#" term="ASP.Net C#" /><category scheme="http://www.blogger.com/atom/ns#" term="Nirav Bhatt" /><title>Regular Expression Syntax &amp; use in ASP.Net C#.Net</title><content type="html">
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/_OelYzb0455edZfsvueOqyW5Pjw/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/_OelYzb0455edZfsvueOqyW5Pjw/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/_OelYzb0455edZfsvueOqyW5Pjw/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/_OelYzb0455edZfsvueOqyW5Pjw/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;First of all we will know what is Regular Expression. A regular expression (or RE) specifies a set of strings that matches it; the functions in this module let you check if a particular string matches a given regular expression (or if a given regular expression matches a particular string, which comes down to the same thing).

&lt;p&gt;Regular expressions can be concatenated to form new regular expressions; if &lt;em&gt;A&lt;/em&gt; and &lt;em&gt;B&lt;/em&gt; are both regular expressions, then &lt;em&gt;AB&lt;/em&gt; is also a regular expression. In general, if a string &lt;em&gt;p&lt;/em&gt; matches &lt;em&gt;A&lt;/em&gt; and another string &lt;em&gt;q&lt;/em&gt; matches &lt;em&gt;B&lt;/em&gt;, the string &lt;em&gt;pq&lt;/em&gt; will match AB. This holds unless &lt;em&gt;A&lt;/em&gt; or &lt;em&gt;B&lt;/em&gt; contain low precedence operations; boundary conditions between &lt;em&gt;A&lt;/em&gt; and &lt;em&gt;B&lt;/em&gt;; or have numbered group references. Thus, complex expressions can easily be constructed from simpler primitive expressions like the ones described here. &lt;/p&gt;&lt;p&gt;Regular expressions can contain both special and ordinary characters. Most ordinary characters, like "&lt;tt&gt;A&lt;/tt&gt;", "&lt;tt&gt;a&lt;/tt&gt;", or "&lt;tt&gt;0&lt;/tt&gt;", are the simplest regular expressions; they simply match themselves. You can concatenate ordinary characters, so &lt;tt&gt;last&lt;/tt&gt; matches the string &lt;code&gt;'last'&lt;/code&gt;. (In the rest of this section, we'll write RE's in &lt;tt&gt;this special style&lt;/tt&gt;, usually without quotes, and strings to be matched &lt;code&gt;'in single quotes'&lt;/code&gt;.) &lt;/p&gt;&lt;p&gt;Some characters, like "&lt;tt&gt;&lt;/tt&gt;" or "&lt;tt&gt;(&lt;/tt&gt;", are special. Special characters either stand for classes of ordinary characters, or affect how the regular expressions around them are interpreted. &lt;/p&gt;&lt;p&gt;The special characters that used in Regular Expression are: &lt;/p&gt;&lt;dl&gt;&lt;dt&gt;&lt;strong&gt;"&lt;tt&gt;.&lt;/tt&gt;"&lt;/strong&gt; &lt;/dt&gt;&lt;dd&gt;(Dot.) In the default mode, this matches any character except a newline. If the &lt;tt&gt;DOTALL&lt;/tt&gt; flag has been specified, this matches any character including a newline. &lt;p&gt;&lt;/p&gt;&lt;/dd&gt;&lt;dt&gt;&lt;strong&gt;"&lt;tt&gt;^&lt;/tt&gt;"&lt;/strong&gt; &lt;/dt&gt;&lt;dd&gt;(Caret.) Matches the start of the string, and in &lt;tt&gt;MULTILINE&lt;/tt&gt; mode also matches immediately after each newline. &lt;p&gt;&lt;/p&gt;&lt;/dd&gt;&lt;dt&gt;&lt;strong&gt;"&lt;tt&gt;$&lt;/tt&gt;"&lt;/strong&gt; &lt;/dt&gt;&lt;dd&gt;Matches the end of the string or just before the newline at the end of the string, and in &lt;tt&gt;MULTILINE&lt;/tt&gt; mode also matches before a newline. &lt;tt&gt;foo&lt;/tt&gt; matches both 'foo' and 'foobar', while the regular expression &lt;tt&gt;foo$&lt;/tt&gt; matches only 'foo'. More interestingly, searching for &lt;tt&gt;foo.$&lt;/tt&gt; in 'foo1\nfoo2\n' matches 'foo2' normally, but 'foo1' in &lt;tt&gt;MULTILINE&lt;/tt&gt; mode. &lt;p&gt;&lt;/p&gt;&lt;/dd&gt;&lt;dt&gt;&lt;strong&gt;"&lt;tt&gt;*&lt;/tt&gt;"&lt;/strong&gt; &lt;/dt&gt;&lt;dd&gt;Causes the resulting RE to match 0 or more repetitions of the preceding RE, as many repetitions as are possible. &lt;tt&gt;ab*&lt;/tt&gt; will match 'a', 'ab', or 'a' followed by any number of 'b's. &lt;p&gt;&lt;/p&gt;&lt;/dd&gt;&lt;dt&gt;&lt;strong&gt;"&lt;tt&gt;+&lt;/tt&gt;"&lt;/strong&gt; &lt;/dt&gt;&lt;dd&gt;Causes the resulting RE to match 1 or more repetitions of the preceding RE. &lt;tt&gt;ab+&lt;/tt&gt; will match 'a' followed by any non-zero number of 'b's; it will not match just 'a'. &lt;p&gt;&lt;/p&gt;&lt;/dd&gt;&lt;dt&gt;&lt;strong&gt;"&lt;tt&gt;?&lt;/tt&gt;"&lt;/strong&gt; &lt;/dt&gt;&lt;dd&gt;Causes the resulting RE to match 0 or 1 repetitions of the preceding RE. &lt;tt&gt;ab?&lt;/tt&gt; will match either 'a' or 'ab'. &lt;p&gt;&lt;/p&gt;&lt;/dd&gt;&lt;dt&gt;&lt;strong&gt;&lt;code&gt;*?&lt;/code&gt;, &lt;code&gt;+?&lt;/code&gt;, &lt;code&gt;??&lt;/code&gt;&lt;/strong&gt; &lt;/dt&gt;&lt;dd&gt;The "&lt;tt&gt;*&lt;/tt&gt;", "&lt;tt&gt;+&lt;/tt&gt;", and "&lt;tt&gt;?&lt;/tt&gt;" qualifiers are all &lt;i&gt;greedy&lt;/i&gt;; they match as much text as possible. Sometimes this behaviour isn't desired; if the RE &lt;tt&gt;&amp;lt;.*&amp;gt;&lt;/tt&gt; is matched against &lt;code&gt;'&amp;lt;H1&amp;gt;title&amp;lt;/H1&amp;gt;'&lt;/code&gt;, it will match the entire string, and not just &lt;code&gt;'&amp;lt;H1&amp;gt;'&lt;/code&gt;. Adding "&lt;tt&gt;?&lt;/tt&gt;" after the qualifier makes it perform the match in &lt;i&gt;non-greedy&lt;/i&gt; or &lt;i&gt;minimal&lt;/i&gt; fashion; as &lt;em&gt;few&lt;/em&gt; characters as possible will be matched. Using &lt;tt&gt;.*?&lt;/tt&gt; in the previous expression will match only &lt;code&gt;'&amp;lt;H1&amp;gt;'&lt;/code&gt;. &lt;p&gt;&lt;/p&gt;&lt;/dd&gt;&lt;dt&gt;&lt;strong&gt;&lt;code&gt;{&lt;var&gt;m&lt;/var&gt;}&lt;/code&gt;&lt;/strong&gt; &lt;/dt&gt;&lt;dd&gt;Specifies that exactly &lt;var&gt;m&lt;/var&gt; copies of the previous RE should be matched; fewer matches cause the entire RE not to match. For example, &lt;tt&gt;a{6}&lt;/tt&gt; will match exactly six "&lt;tt&gt;a&lt;/tt&gt;" characters, but not five. &lt;p&gt;&lt;/p&gt;&lt;/dd&gt;&lt;dt&gt;&lt;strong&gt;&lt;code&gt;{&lt;var&gt;m&lt;/var&gt;,&lt;var&gt;n&lt;/var&gt;}&lt;/code&gt;&lt;/strong&gt; &lt;/dt&gt;&lt;dd&gt;Causes the resulting RE to match from &lt;var&gt;m&lt;/var&gt; to &lt;var&gt;n&lt;/var&gt; repetitions of the preceding RE, attempting to match as many repetitions as possible. For example, &lt;tt&gt;a{3,5}&lt;/tt&gt; will match from 3 to 5 "&lt;tt&gt;a&lt;/tt&gt;" characters. Omitting &lt;var&gt;m&lt;/var&gt; specifies a lower bound of zero, and omitting &lt;var&gt;n&lt;/var&gt; specifies an infinite upper bound. As an example, &lt;tt&gt;a{4,}b&lt;/tt&gt; will match &lt;code&gt;aaaab&lt;/code&gt; or a thousand "&lt;tt&gt;a&lt;/tt&gt;" characters followed by a &lt;code&gt;b&lt;/code&gt;, but not &lt;code&gt;aaab&lt;/code&gt;. The comma may not be omitted or the modifier would be confused with the previously described form. &lt;p&gt;&lt;/p&gt;&lt;/dd&gt;&lt;dt&gt;&lt;strong&gt;&lt;code&gt;{&lt;var&gt;m&lt;/var&gt;,&lt;var&gt;n&lt;/var&gt;}?&lt;/code&gt;&lt;/strong&gt; &lt;/dt&gt;&lt;dd&gt;Causes the resulting RE to match from &lt;var&gt;m&lt;/var&gt; to &lt;var&gt;n&lt;/var&gt; repetitions of the preceding RE, attempting to match as &lt;em&gt;few&lt;/em&gt; repetitions as possible. This is the non-greedy version of the previous qualifier. For example, on the 6-character string &lt;code&gt;'aaaaaa'&lt;/code&gt;, &lt;tt&gt;a{3,5}&lt;/tt&gt; will match 5 "&lt;tt&gt;a&lt;/tt&gt;" characters, while &lt;tt&gt;a{3,5}?&lt;/tt&gt; will only match 3 characters. &lt;p&gt;&lt;/p&gt;&lt;/dd&gt;&lt;dt&gt;&lt;strong&gt;"&lt;tt&gt;\&lt;/tt&gt;"&lt;/strong&gt; &lt;/dt&gt;&lt;dd&gt;Either escapes special characters (permitting you to match characters like "&lt;tt&gt;*&lt;/tt&gt;", "&lt;tt&gt;?&lt;/tt&gt;", and so forth), or signals a special sequence; special sequences are discussed below. &lt;p&gt;If you're not using a raw string to express the pattern, remember that Python also uses the backslash as an escape sequence in string literals; if the escape sequence isn't recognized by Python's parser, the backslash and subsequent character are included in the resulting string. However, if Python would recognize the resulting sequence, the backslash should be repeated twice. This is complicated and hard to understand, so it's highly recommended that you use raw strings for all but the simplest expressions. &lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;/dd&gt;&lt;dt&gt;&lt;strong&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/strong&gt; &lt;/dt&gt;&lt;dd&gt;Used to indicate a set of characters. Characters can be listed individually, or a range of characters can be indicated by giving two characters and separating them by a "&lt;tt&gt;-&lt;/tt&gt;". Special characters are not active inside sets. For example, &lt;tt&gt;[akm$]&lt;/tt&gt; will match any of the characters "&lt;tt&gt;a&lt;/tt&gt;", "&lt;tt&gt;k&lt;/tt&gt;", "&lt;tt&gt;m&lt;/tt&gt;", or "&lt;tt&gt;$&lt;/tt&gt;"; &lt;tt&gt;[a-z]&lt;/tt&gt; will match any lowercase letter, and &lt;code&gt;[a-zA-Z0-9]&lt;/code&gt; matches any letter or digit. Character classes such as &lt;code&gt;\w&lt;/code&gt; or &lt;code&gt;\S&lt;/code&gt; (defined below) are also acceptable inside a range. If you want to include a "&lt;tt&gt;]&lt;/tt&gt;" or a "&lt;tt&gt;-&lt;/tt&gt;" inside a set, precede it with a backslash, or place it as the first character. The pattern &lt;tt&gt;[]]&lt;/tt&gt; will match &lt;code&gt;']'&lt;/code&gt;, for example. &lt;p&gt;You can match the characters not within a range by &lt;i&gt;complementing&lt;/i&gt; the set. This is indicated by including a "&lt;tt&gt;^&lt;/tt&gt;" as the first character of the set; "&lt;tt&gt;^&lt;/tt&gt;" elsewhere will simply match the "&lt;tt&gt;^&lt;/tt&gt;" character. For example, &lt;tt&gt;[^5]&lt;/tt&gt; will match any character except "&lt;tt&gt;5&lt;/tt&gt;", and &lt;tt&gt;[^&lt;code&gt;^&lt;/code&gt;]&lt;/tt&gt; will match any character except "&lt;tt&gt;^&lt;/tt&gt;". &lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;/dd&gt;&lt;dt&gt;&lt;strong&gt;"&lt;tt&gt;&lt;/tt&gt;"&lt;/strong&gt; &lt;/dt&gt;&lt;dd&gt;&lt;code&gt;AB&lt;/code&gt;, where A and B can be arbitrary REs, creates a regular expression that will match either A or B. An arbitrary number of REs can be separated by the "&lt;tt&gt;&lt;/tt&gt;" in this way. This can be used inside groups (see below) as well. As the target string is scanned, REs separated by "&lt;tt&gt;&lt;/tt&gt;" are tried from left to right. When one pattern completely matches, that branch is accepted. This means that once &lt;code&gt;A&lt;/code&gt; matches, &lt;code&gt;B&lt;/code&gt; will not be tested further, even if it would produce a longer overall match. In other words, the "&lt;tt&gt;&lt;/tt&gt;" operator is never greedy. To match a literal "&lt;tt&gt;&lt;/tt&gt;", use &lt;tt&gt;\&lt;/tt&gt;, or enclose it inside a character class, as in &lt;tt&gt;[]&lt;/tt&gt;. &lt;p&gt;&lt;/p&gt;&lt;/dd&gt;&lt;dt&gt;&lt;strong&gt;&lt;code&gt;(...)&lt;/code&gt;&lt;/strong&gt; &lt;/dt&gt;&lt;dd&gt;Matches whatever regular expression is inside the parentheses, and indicates the start and end of a group; the contents of a group can be retrieved after a match has been performed, and can be matched later in the string with the &lt;tt&gt;\&lt;var&gt;number&lt;/var&gt;&lt;/tt&gt; special sequence, described below. To match the literals "&lt;tt&gt;(&lt;/tt&gt;" or "&lt;tt&gt;)&lt;/tt&gt;", use &lt;tt&gt;\(&lt;/tt&gt; or &lt;tt&gt;\)&lt;/tt&gt;, or enclose them inside a character class: &lt;tt&gt;[(] [)]&lt;/tt&gt;. &lt;p&gt;&lt;/p&gt;&lt;/dd&gt;&lt;dt&gt;&lt;strong&gt;&lt;code&gt;(?...)&lt;/code&gt;&lt;/strong&gt; &lt;/dt&gt;&lt;dd&gt;This is an extension notation (a "&lt;tt&gt;?&lt;/tt&gt;" following a "&lt;tt&gt;(&lt;/tt&gt;" is not meaningful otherwise). The first character after the "&lt;tt&gt;?&lt;/tt&gt;" determines what the meaning and further syntax of the construct is. Extensions usually do not create a new group; &lt;tt&gt;(?P&amp;lt;&lt;var&gt;name&lt;/var&gt;&amp;gt;...)&lt;/tt&gt; is the only exception to this rule. Following are the currently supported extensions. &lt;p&gt;&lt;/p&gt;&lt;/dd&gt;&lt;dt&gt;&lt;strong&gt;&lt;code&gt;(?iLmsux)&lt;/code&gt;&lt;/strong&gt; &lt;/dt&gt;&lt;dd&gt;(One or more letters from the set "&lt;tt&gt;i&lt;/tt&gt;", "&lt;tt&gt;L&lt;/tt&gt;", "&lt;tt&gt;m&lt;/tt&gt;", "&lt;tt&gt;s&lt;/tt&gt;", "&lt;tt&gt;u&lt;/tt&gt;", "&lt;tt&gt;x&lt;/tt&gt;".) The group matches the empty string; the letters set the corresponding flags (&lt;tt&gt;re.I&lt;/tt&gt;, &lt;tt&gt;re.L&lt;/tt&gt;, &lt;tt&gt;re.M&lt;/tt&gt;, &lt;tt&gt;re.S&lt;/tt&gt;, &lt;tt&gt;re.U&lt;/tt&gt;, &lt;tt&gt;re.X&lt;/tt&gt;) for the entire regular expression. This is useful if you wish to include the flags as part of the regular expression, instead of passing a &lt;var&gt;flag&lt;/var&gt; argument to the &lt;tt&gt;compile()&lt;/tt&gt; function. &lt;p&gt;Note that the &lt;tt&gt;(?x)&lt;/tt&gt; flag changes how the expression is parsed. It should be used first in the expression string, or after one or more whitespace characters. If there are non-whitespace characters before the flag, the results are undefined. &lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;/dd&gt;&lt;dt&gt;&lt;strong&gt;&lt;code&gt;(?:...)&lt;/code&gt;&lt;/strong&gt; &lt;/dt&gt;&lt;dd&gt;A non-grouping version of regular parentheses. Matches whatever regular expression is inside the parentheses, but the substring matched by the group &lt;em&gt;cannot&lt;/em&gt; be retrieved after performing a match or referenced later in the pattern. &lt;p&gt;&lt;/p&gt;&lt;/dd&gt;&lt;dt&gt;&lt;strong&gt;&lt;code&gt;(?P&amp;lt;&lt;var&gt;name&lt;/var&gt;&amp;gt;...)&lt;/code&gt;&lt;/strong&gt; &lt;/dt&gt;&lt;dd&gt;Similar to regular parentheses, but the substring matched by the group is accessible via the symbolic group name &lt;var&gt;name&lt;/var&gt;. Group names must be valid Python identifiers, and each group name must be defined only once within a regular expression. A symbolic group is also a numbered group, just as if the group were not named. So the group named 'id' in the example above can also be referenced as the numbered group 1. &lt;p&gt;For example, if the pattern is &lt;tt&gt;(?P&amp;lt;id&amp;gt;[a-zA-Z_]\w*)&lt;/tt&gt;, the group can be referenced by its name in arguments to methods of match objects, such as &lt;code&gt;m.group('id')&lt;/code&gt; or &lt;code&gt;m.end('id')&lt;/code&gt;, and also by name in pattern text (for example, &lt;tt&gt;(?P=id)&lt;/tt&gt;) and replacement text (such as &lt;code&gt;\g&amp;lt;id&amp;gt;&lt;/code&gt;). &lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;/dd&gt;&lt;dt&gt;&lt;strong&gt;&lt;code&gt;(?P=&lt;var&gt;name&lt;/var&gt;)&lt;/code&gt;&lt;/strong&gt; &lt;/dt&gt;&lt;dd&gt;Matches whatever text was matched by the earlier group named &lt;var&gt;name&lt;/var&gt;. &lt;p&gt;&lt;/p&gt;&lt;/dd&gt;&lt;dt&gt;&lt;strong&gt;&lt;code&gt;(?#...)&lt;/code&gt;&lt;/strong&gt; &lt;/dt&gt;&lt;dd&gt;A comment; the contents of the parentheses are simply ignored. &lt;p&gt;&lt;/p&gt;&lt;/dd&gt;&lt;dt&gt;&lt;strong&gt;&lt;code&gt;(?=...)&lt;/code&gt;&lt;/strong&gt; &lt;/dt&gt;&lt;dd&gt;Matches if &lt;tt&gt;...&lt;/tt&gt; matches next, but doesn't consume any of the string. This is called a lookahead assertion. For example, &lt;tt&gt;Isaac (?=Asimov)&lt;/tt&gt; will match &lt;code&gt;'Isaac '&lt;/code&gt; only if it's followed by &lt;code&gt;'Asimov'&lt;/code&gt;. &lt;p&gt;&lt;/p&gt;&lt;/dd&gt;&lt;dt&gt;&lt;strong&gt;&lt;code&gt;(?!...)&lt;/code&gt;&lt;/strong&gt; &lt;/dt&gt;&lt;dd&gt;Matches if &lt;tt&gt;...&lt;/tt&gt; doesn't match next. This is a negative lookahead assertion. For example, &lt;tt&gt;Isaac (?!Asimov)&lt;/tt&gt; will match &lt;code&gt;'Isaac '&lt;/code&gt; only if it's &lt;em&gt;not&lt;/em&gt; followed by &lt;code&gt;'Asimov'&lt;/code&gt;. &lt;p&gt;&lt;/p&gt;&lt;/dd&gt;&lt;dt&gt;&lt;strong&gt;&lt;code&gt;(?&amp;lt;=...)&lt;/code&gt;&lt;/strong&gt; &lt;/dt&gt;&lt;dd&gt;Matches if the current position in the string is preceded by a match for &lt;tt&gt;...&lt;/tt&gt; that ends at the current position. This is called a &lt;i&gt;positive lookbehind assertion&lt;/i&gt;. &lt;tt&gt;(?&amp;lt;=abc)def&lt;/tt&gt; will find a match in "&lt;tt&gt;abcdef&lt;/tt&gt;", since the lookbehind will back up 3 characters and check if the contained pattern matches. The contained pattern must only match strings of some fixed length, meaning that &lt;tt&gt;abc&lt;/tt&gt; or &lt;tt&gt;ab&lt;/tt&gt; are allowed, but &lt;tt&gt;a*&lt;/tt&gt; and &lt;tt&gt;a{3,4}&lt;/tt&gt; are not. Note that patterns which start with positive lookbehind assertions will never match at the beginning of the string being searched; you will most likely want to use the &lt;tt&gt;search()&lt;/tt&gt; function rather than the &lt;tt&gt;match()&lt;/tt&gt; function: &lt;pre&gt;&amp;gt;&amp;gt;&amp;gt; import re
&amp;gt;&amp;gt;&amp;gt; m = re.search('(?&amp;lt;=abc)def', 'abcdef')
&amp;gt;&amp;gt;&amp;gt; m.group(0)
'def'&lt;/pre&gt;&lt;p&gt;This example looks for a word following a hyphen: &lt;/p&gt;&lt;pre&gt;&amp;gt;&amp;gt;&amp;gt; m = re.search('(?&amp;lt;=-)\w+', 'spam-egg')
&amp;gt;&amp;gt;&amp;gt; m.group(0)
'egg'&lt;/pre&gt;&lt;/dd&gt;&lt;dt&gt;&lt;strong&gt;&lt;code&gt;(?&amp;lt;!...)&lt;/code&gt;&lt;/strong&gt; &lt;/dt&gt;&lt;dd&gt;Matches if the current position in the string is not preceded by a match for &lt;tt&gt;...&lt;/tt&gt;. This is called a &lt;i&gt;negative lookbehind assertion&lt;/i&gt;. Similar to positive lookbehind assertions, the contained pattern must only match strings of some fixed length. Patterns which start with negative lookbehind assertions may match at the beginning of the string being searched.
&lt;/dd&gt;&lt;dt&gt;&lt;strong&gt;&lt;code&gt;(?(&lt;var&gt;id/name&lt;/var&gt;)yes-patternno-pattern)&lt;/code&gt;&lt;/strong&gt; &lt;/dt&gt;&lt;dd&gt;Will try to match with &lt;tt&gt;yes-pattern&lt;/tt&gt; if the group with given &lt;var&gt;id&lt;/var&gt; or &lt;var&gt;name&lt;/var&gt; exists, and with &lt;tt&gt;no-pattern&lt;/tt&gt; if it doesn't. &lt;tt&gt;no-pattern&lt;/tt&gt; is optional and can be omitted. For example, &lt;tt&gt;(&amp;lt;)?(\w+@\w+(?:\.\w+)+)(?(1)&amp;gt;)&lt;/tt&gt; is a poor email matching pattern, which will match with &lt;code&gt;'&amp;lt;user@host.com&amp;gt;'&lt;/code&gt; as well as &lt;code&gt;'user@host.com'&lt;/code&gt;, but not with &lt;code&gt;'&amp;lt;user@host.com'&lt;/code&gt;. New in version 2.4.&lt;/dd&gt;&lt;/dl&gt;&lt;p&gt;The special sequences consist of "&lt;tt&gt;\&lt;/tt&gt;" and a character from the list below. If the ordinary character is not on the list, then the resulting RE will match the second character. For example, &lt;tt&gt;\$&lt;/tt&gt; matches the character "&lt;tt&gt;$&lt;/tt&gt;". &lt;/p&gt;&lt;dl&gt;&lt;dt&gt;&lt;strong&gt;&lt;code&gt;\&lt;var&gt;number&lt;/var&gt;&lt;/code&gt;&lt;/strong&gt; &lt;/dt&gt;&lt;dd&gt;Matches the contents of the group of the same number. Groups are numbered starting from 1. For example, &lt;tt&gt;(.+) \1&lt;/tt&gt; matches &lt;code&gt;'the the'&lt;/code&gt; or &lt;code&gt;'55 55'&lt;/code&gt;, but not &lt;code&gt;'the end'&lt;/code&gt; (note the space after the group). This special sequence can only be used to match one of the first 99 groups. If the first digit of &lt;var&gt;number&lt;/var&gt; is 0, or &lt;var&gt;number&lt;/var&gt; is 3 octal digits long, it will not be interpreted as a group match, but as the character with octal value &lt;var&gt;number&lt;/var&gt;. Inside the "&lt;tt&gt;[&lt;/tt&gt;" and "&lt;tt&gt;]&lt;/tt&gt;" of a character class, all numeric escapes are treated as characters. &lt;/dd&gt;&lt;dd&gt; &lt;/dd&gt;&lt;dd&gt;&lt;strong&gt;&lt;code&gt;\A&lt;/code&gt;&lt;/strong&gt; &lt;/dd&gt;&lt;dd&gt;Matches only at the start of the string.
&lt;/dd&gt;&lt;dt&gt;&lt;strong&gt;&lt;code&gt;\b&lt;/code&gt;&lt;/strong&gt; &lt;/dt&gt;&lt;dd&gt;Matches the empty string, but only at the beginning or end of a word. A word is defined as a sequence of alphanumeric or underscore characters, so the end of a word is indicated by whitespace or a non-alphanumeric, non-underscore character. Note that &lt;code&gt;\b&lt;/code&gt; is defined as the boundary between &lt;code&gt;\w&lt;/code&gt; and &lt;code&gt;\ W&lt;/code&gt;, so the precise set of characters deemed to be alphanumeric depends on the values of the &lt;code&gt;UNICODE&lt;/code&gt; and &lt;code&gt;LOCALE&lt;/code&gt; flags. Inside a character range, &lt;tt&gt;\b&lt;/tt&gt; represents the backspace character, for compatibility with Python's string literals.
&lt;/dd&gt;&lt;dt&gt;&lt;strong&gt;&lt;code&gt;\B&lt;/code&gt;&lt;/strong&gt; &lt;/dt&gt;&lt;dd&gt;Matches the empty string, but only when it is &lt;em&gt;not&lt;/em&gt; at the beginning or end of a word. This is just the opposite of &lt;code&gt;\ b&lt;/code&gt;, so is also subject to the settings of &lt;code&gt;LOCALE&lt;/code&gt; and &lt;code&gt;UNICODE&lt;/code&gt;.

&lt;strong&gt;&lt;code&gt;\d&lt;/code&gt;&lt;/strong&gt; &lt;/dd&gt;&lt;dd&gt;When the &lt;tt&gt;UNICODE&lt;/tt&gt; flag is not specified, matches any decimal digit; this is equivalent to the set &lt;tt&gt;[0-9]&lt;/tt&gt;. With &lt;tt&gt;UNICODE&lt;/tt&gt;, it will match whatever is classified as a digit in the Unicode character properties database.

&lt;/dd&gt;&lt;dt&gt;&lt;strong&gt;&lt;code&gt;\D&lt;/code&gt;&lt;/strong&gt; &lt;/dt&gt;&lt;dd&gt;When the &lt;tt&gt;UNICODE&lt;/tt&gt; flag is not specified, matches any non-digit character; this is equivalent to the set &lt;tt&gt;[^0-9]&lt;/tt&gt;. With &lt;tt&gt;UNICODE&lt;/tt&gt;, it will match anything other than character marked as digits in the Unicode character properties database.
&lt;/dd&gt;&lt;dt&gt;&lt;strong&gt;&lt;code&gt;\s&lt;/code&gt;&lt;/strong&gt; &lt;/dt&gt;&lt;dd&gt;When the &lt;tt&gt;LOCALE&lt;/tt&gt; and &lt;tt&gt;UNICODE&lt;/tt&gt; flags are not specified, matches any whitespace character; this is equivalent to the set &lt;tt&gt;[ \t\n\r\f\v]&lt;/tt&gt;. With &lt;tt&gt;LOCALE&lt;/tt&gt;, it will match this set plus whatever characters are defined as space for the current locale. If &lt;tt&gt;UNICODE&lt;/tt&gt; is set, this will match the characters &lt;tt&gt;[ \t\n\r\f\v]&lt;/tt&gt; plus whatever is classified as space in the Unicode character properties database.
&lt;/dd&gt;&lt;dt&gt;&lt;strong&gt;&lt;code&gt;\S&lt;/code&gt;&lt;/strong&gt; &lt;/dt&gt;&lt;dd&gt;When the &lt;tt&gt;LOCALE&lt;/tt&gt; and &lt;tt&gt;UNICODE&lt;/tt&gt; flags are not specified, matches any non-whitespace character; this is equivalent to the set &lt;tt&gt;[^ \t\n\r\f\v]&lt;/tt&gt; With &lt;tt&gt;LOCALE&lt;/tt&gt;, it will match any character not in this set, and not defined as space in the current locale. If &lt;tt&gt;UNICODE&lt;/tt&gt; is set, this will match anything other than &lt;tt&gt;[ \t\n\r\f\v]&lt;/tt&gt; and characters marked as space in the Unicode character properties database.
&lt;/dd&gt;&lt;dt&gt;&lt;strong&gt;&lt;code&gt;\w&lt;/code&gt;&lt;/strong&gt; &lt;/dt&gt;&lt;dd&gt;When the &lt;tt&gt;LOCALE&lt;/tt&gt; and &lt;tt&gt;UNICODE&lt;/tt&gt; flags are not specified, matches any alphanumeric character and the underscore; this is equivalent to the set &lt;tt&gt;[a-zA-Z0-9_]&lt;/tt&gt;. With &lt;tt&gt;LOCALE&lt;/tt&gt;, it will match the set &lt;tt&gt;[0-9_]&lt;/tt&gt; plus whatever characters are defined as alphanumeric for the current locale. If &lt;tt&gt;UNICODE&lt;/tt&gt; is set, this will match the characters &lt;tt&gt;[0-9_]&lt;/tt&gt; plus whatever is classified as alphanumeric in the Unicode character properties database.
&lt;/dd&gt;&lt;dt&gt;&lt;strong&gt;&lt;code&gt;\W&lt;/code&gt;&lt;/strong&gt; &lt;/dt&gt;&lt;dd&gt;When the &lt;tt&gt;LOCALE&lt;/tt&gt; and &lt;tt&gt;UNICODE&lt;/tt&gt; flags are not specified, matches any non-alphanumeric character; this is equivalent to the set &lt;tt&gt;[^a-zA-Z0-9_]&lt;/tt&gt;. With &lt;tt&gt;LOCALE&lt;/tt&gt;, it will match any character not in the set &lt;tt&gt;[0-9_]&lt;/tt&gt;, and not defined as alphanumeric for the current locale. If &lt;tt&gt;UNICODE&lt;/tt&gt; is set, this will match anything other than &lt;tt&gt;[0-9_]&lt;/tt&gt; and characters marked as alphanumeric in the Unicode character properties database.
&lt;/dd&gt;&lt;dt&gt;&lt;strong&gt;&lt;code&gt;\Z&lt;/code&gt;&lt;/strong&gt; &lt;/dt&gt;&lt;dd&gt;Matches only at the end of the string&lt;/dd&gt;&lt;/dl&gt;&lt;p&gt;Now we will see how can we use Regular Expression with ASP.Net and C#.Net&lt;/p&gt;&lt;p&gt;Some time we need to check for a field that whether it contains only characters or not. Suppose we have field for First Name then it should contain only characters not and digits and not any special characters. For this we can use Regular Expression. In ASP.Net we have RegularExpressionValidator server control. This control have property ValidationExpression in which you have to set your Regular Expression. For only characters we will create a range of characters [a-z] this will allow only small letters and only one character, so we will use [a-zA-Z]* it will allow capital and small letters and any number of characters in the text.&lt;/p&gt;&lt;p&gt;Syntax for RegularExpressionValidator is :&lt;/p&gt;&lt;p&gt;&amp;lt;asp:RegularExpressionValidator ID="rev_FirstName" runat="server" ControlToValidate="txt_FirstName" ErrorMessage="Only characters allowed" ValidationExpression="[a-zA-Z]*" &amp;gt;&amp;lt;/asp:RegularExpressionValidator&amp;gt;&lt;/p&gt;&lt;p&gt;Now use Regular Expression in C#.Net, we will use namespace System.Text.RegularExpressions&lt;/p&gt;&lt;p&gt;When we add this name space we will get Regex class reference. We will create an object of this class.&lt;/p&gt;
&lt;p&gt;Regex syntax is : &lt;/p&gt;&lt;p&gt;Regex re = new Regex("Regular Expression string",Regular Expression Options);&lt;/p&gt;&lt;p&gt;Regular Expression Options are options that we can use along with regular expression like RegexOptions.IgnoreCase or RegexOptions.Compiled&lt;/p&gt;&lt;p&gt;Here I am lisitng some Regular Expressions:&lt;/p&gt;&lt;p&gt;[a-zA-Z]* - Regular Expression to allow only charactors&lt;/p&gt;&lt;p&gt;[0-9]* - Regular Expression to allow only numbers&lt;/p&gt;&lt;p&gt;[a-zA-Z0-9]* - Regular Expression to allow only alphanumeric charactors&lt;/p&gt;&lt;p&gt;[0-9]*(\.[0-9]{1,2})? - Regular Expression to validate a float number with 1 or 2 decimal points&lt;/p&gt;&lt;p&gt;You can request Regular Expression here....&lt;/p&gt;&lt;div class="blogger-post-footer"&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3335029349658819939-2409589735044144912?l=niravbhattsai.blogspot.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/AspnetCProgramming?a=R8Eh51jX"&gt;&lt;img src="http://feeds.feedburner.com/~f/AspnetCProgramming?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/AspnetCProgramming?a=PEfB1giu"&gt;&lt;img src="http://feeds.feedburner.com/~f/AspnetCProgramming?i=PEfB1giu" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/AspnetCProgramming?a=zVDXPunN"&gt;&lt;img src="http://feeds.feedburner.com/~f/AspnetCProgramming?i=zVDXPunN" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/AspnetCProgramming?a=rWwCSusz"&gt;&lt;img src="http://feeds.feedburner.com/~f/AspnetCProgramming?i=rWwCSusz" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/AspnetCProgramming?a=b5dls78o"&gt;&lt;img src="http://feeds.feedburner.com/~f/AspnetCProgramming?i=b5dls78o" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/AspnetCProgramming/~4/8FluE81Pw24" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://niravbhattsai.blogspot.com/feeds/2409589735044144912/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://niravbhattsai.blogspot.com/2008/04/regular-expression-syntax-use-in-aspnet.html#comment-form" title="5 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3335029349658819939/posts/default/2409589735044144912?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3335029349658819939/posts/default/2409589735044144912?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/AspnetCProgramming/~3/8FluE81Pw24/regular-expression-syntax-use-in-aspnet.html" title="Regular Expression Syntax &amp;amp; use in ASP.Net C#.Net" /><author><name>Nirav Bhatt</name><uri>http://www.blogger.com/profile/04140615764814901399</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="08501418167249067995" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">5</thr:total><feedburner:origLink>http://niravbhattsai.blogspot.com/2008/04/regular-expression-syntax-use-in-aspnet.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0EEQnsyfip7ImA9WxZbF00.&quot;"><id>tag:blogger.com,1999:blog-3335029349658819939.post-518648964979665779</id><published>2008-04-03T17:37:00.014+05:30</published><updated>2008-04-20T19:56:43.596+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-04-20T19:56:43.596+05:30</app:edited><title>Validating E-Mail Address Using JavaScript Regular Expression:</title><content type="html">
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/qR94l5RrcBuiiRXIQ-SYZ6k1w2s/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/qR94l5RrcBuiiRXIQ-SYZ6k1w2s/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/qR94l5RrcBuiiRXIQ-SYZ6k1w2s/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/qR94l5RrcBuiiRXIQ-SYZ6k1w2s/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;span style="font-size: 85%"&gt;   &lt;br /&gt;In this Post I will tell you how to Validate E-Mail address format using javascript regular expression&lt;/span&gt;   &lt;br /&gt; &lt;br /&gt;&lt;span style="font-size: 100%"&gt;function ValidateEmail()    &lt;br /&gt;{     &lt;br /&gt;var EmaiAddress=document.getElementById(&amp;quot;txtemail&amp;quot;).value;     &lt;br /&gt;var RegExEmail = /^(?:\w+\.?)*\w+@(?:\w+\.)+\w+$/;     &lt;br /&gt;if (!RegExEmail.test(EmaiAddress))     &lt;br /&gt;{     &lt;br /&gt;alert(&amp;quot;Please Enter Valid E-mail Adress&amp;quot;);     &lt;br /&gt;}     &lt;br /&gt;else     &lt;br /&gt;{     &lt;br /&gt;alert(&amp;quot;Go Ahead!&amp;quot;);     &lt;br /&gt;}     &lt;br /&gt;}&lt;/span&gt;   &lt;br /&gt;  &lt;br /&gt;&lt;span style="font-size: 85%"&gt;All i have done in above code is Call ValidateEmail function on click of a Button named Checkit! and check value in text element. to call function write onclick=&amp;quot;ValidateEmail()&amp;quot; in attribute of button element&lt;/span&gt;   &lt;div class="blogger-post-footer"&gt;   &lt;br /&gt;&lt;/div&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3335029349658819939-518648964979665779?l=niravbhattsai.blogspot.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/AspnetCProgramming?a=PbYQGtFf"&gt;&lt;img src="http://feeds.feedburner.com/~f/AspnetCProgramming?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/AspnetCProgramming?a=daFDS8iv"&gt;&lt;img src="http://feeds.feedburner.com/~f/AspnetCProgramming?i=daFDS8iv" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/AspnetCProgramming?a=1EAk3VLX"&gt;&lt;img src="http://feeds.feedburner.com/~f/AspnetCProgramming?i=1EAk3VLX" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/AspnetCProgramming?a=SpSVQemN"&gt;&lt;img src="http://feeds.feedburner.com/~f/AspnetCProgramming?i=SpSVQemN" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/AspnetCProgramming?a=427WYN0D"&gt;&lt;img src="http://feeds.feedburner.com/~f/AspnetCProgramming?i=427WYN0D" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/AspnetCProgramming/~4/SH4lV1U8j1U" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://niravbhattsai.blogspot.com/feeds/518648964979665779/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://niravbhattsai.blogspot.com/2008/04/validating-e-mail-addressusing.html#comment-form" title="5 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3335029349658819939/posts/default/518648964979665779?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3335029349658819939/posts/default/518648964979665779?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/AspnetCProgramming/~3/SH4lV1U8j1U/validating-e-mail-addressusing.html" title="Validating E-Mail Address Using JavaScript Regular Expression:" /><author><name>Haresh Dhameliya</name><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="07825556947841798092" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">5</thr:total><feedburner:origLink>http://niravbhattsai.blogspot.com/2008/04/validating-e-mail-addressusing.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkcAQH4yfyp7ImA9WxZXF0k.&quot;"><id>tag:blogger.com,1999:blog-3335029349658819939.post-5389208377905691724</id><published>2008-01-24T23:33:00.000+05:30</published><updated>2008-03-06T00:37:21.097+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-03-06T00:37:21.097+05:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Windows Service with C#.Net" /><category scheme="http://www.blogger.com/atom/ns#" term="Windows Service" /><category scheme="http://www.blogger.com/atom/ns#" term="Nirav Bhatt" /><category scheme="http://www.blogger.com/atom/ns#" term="Scheduling Windows Service" /><title>Scheduling and Event Logging Windows Service</title><content type="html">
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/NoRPEhef_CQL7mIkUleXWXS2JKI/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/NoRPEhef_CQL7mIkUleXWXS2JKI/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/NoRPEhef_CQL7mIkUleXWXS2JKI/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/NoRPEhef_CQL7mIkUleXWXS2JKI/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;In previous post we had seen how to create a windows service. In this part we will see how can we log events in windows service and how to schedule service to occur at specific interval.   &lt;br /&gt;  &lt;br /&gt;  &lt;br /&gt;  &lt;br /&gt;First we will see how we can Log events in EventViewer event of Windows Service. Steps are as follows.   &lt;br /&gt;  &lt;br /&gt;- Add an EventLog to your windows service class, from Toolbox.   &lt;br /&gt;  &lt;br /&gt;- Give an ID say &amp;quot;MyEventLog1&amp;quot;, Set Log to &amp;quot;MyEventLog&amp;quot; and Source to &amp;quot;MyEventLogSource&amp;quot;   &lt;br /&gt;  &lt;br /&gt;  &lt;br /&gt;  &lt;br /&gt;This will help you to differentiate your log in event viewer. And you can also create a new view of your event source log. Create new Log View on application and rename it to &amp;quot;MyEventLogSource&amp;quot;. Now clear logs, then each new entry with log source &amp;quot;MyEventLogSource&amp;quot; will be logged in the new view.   &lt;br /&gt;  &lt;br /&gt;  &lt;br /&gt;  &lt;br /&gt;Now how will we write a new log entry in Windows Service.   &lt;br /&gt;  &lt;br /&gt;Write the following code in OnStart Code block of your Service.   &lt;br /&gt;  &lt;br /&gt;  &lt;br /&gt;  &lt;br /&gt;MyEventLog1.WriteEntry(&lt;span style="color: #cc0000"&gt;&amp;quot;My Windows Service Started.......&amp;quot;&lt;/span&gt;);   &lt;br /&gt;  &lt;br /&gt;  &lt;br /&gt;  &lt;br /&gt;This will be write a log entry. But make sure that you write this code in try-catch block, because on some OS, Windows Service do not have permission to log events. At that time your service will generate an unhandeled exception and it will stop &lt;strong&gt;immediately&lt;/strong&gt; and you will unable to identify the problem that why your service is stopped immediately after it starts.   &lt;br /&gt;  &lt;br /&gt;  &lt;br /&gt;  &lt;br /&gt;  &lt;br /&gt;  &lt;br /&gt;There can be two types of windows service.   &lt;br /&gt;  &lt;br /&gt;1) Windows service that run only once. There is no any scheduling of the service. If you want to run it again the you must start the service again. It will stop automatically after it complete its job.   &lt;br /&gt;  &lt;br /&gt;  &lt;br /&gt;  &lt;br /&gt;2) Windows service that run at specific interval. This service is useful to run Insert command from one server to other backup server. Or it can be use to complete tasks that are added in Database.   &lt;br /&gt;  &lt;br /&gt;  &lt;br /&gt;  &lt;br /&gt;The first type of Windows service is very easy. Just put your code in OnStart event of the Windows Service.   &lt;br /&gt;  &lt;br /&gt;  &lt;br /&gt;  &lt;h3&gt;Scheduling Windows Service with Timer Control&lt;/h3&gt;  &lt;br /&gt;For scheduling a Windows service declare two global variables in your service class (Make sure not in Service.designer.cs Designer class)   &lt;br /&gt;This timer control is not System.Timer, this control is   &lt;h5&gt;System.Threading.Timer&lt;/h5&gt;  &lt;br /&gt;  &lt;br /&gt;  &lt;br /&gt;&lt;span style="color: #3333ff"&gt;private&lt;/span&gt; &lt;span style="color: #009900"&gt;Timer&lt;/span&gt; stateTimer;   &lt;br /&gt;  &lt;br /&gt;&lt;span style="color: #3333ff"&gt;private&lt;/span&gt; &lt;span style="color: #009900"&gt;TimerCallback&lt;/span&gt; timerDelegate;   &lt;br /&gt;  &lt;br /&gt;  &lt;br /&gt;  &lt;br /&gt;Timer is useful for creating the scheduling the Service. TimerCallback is useful for specifying the function which will be called when timer interval ends(Tick event fires).   &lt;br /&gt;  &lt;br /&gt;  &lt;br /&gt;  &lt;br /&gt;Now write this code in your OnStart block.   &lt;br /&gt;  &lt;br /&gt;timerDelegate = &lt;span style="color: #3333ff"&gt;new&lt;/span&gt; &lt;span style="color: #009900"&gt;TimerCallback&lt;/span&gt;(DoSomething);   &lt;br /&gt;stateTimer = &lt;span style="color: #3333ff"&gt;new&lt;/span&gt; &lt;span style="color: #009900"&gt;Timer&lt;/span&gt;(timerDelegate, null, 0, 5000); // 5000 = 5 secs   &lt;br /&gt;  &lt;br /&gt;In above code the timerDelegate is a callback function which will specify the Function that will be called each time your timer fires tick event.   &lt;br /&gt;  &lt;br /&gt;Now the stateTimer is assigned to a new timer object which specify timerDelegate, initial delay and interval. In above example '0' is initial delay which specify after timer object is created how much to delay for firing first Tick event. '5000' this specify the interval, this indicate the delay of firing the tick event since the last tick event is fired. Both Initial delay and Interval are specified in milisecond.   &lt;br /&gt;  &lt;br /&gt;  &lt;br /&gt;Now we will see how to create the function.   &lt;br /&gt;  &lt;br /&gt;&lt;span style="color: #3333ff"&gt;protected void&lt;/span&gt; DoSomething(&lt;span style="color: #3333ff"&gt;object&lt;/span&gt; sender)   &lt;br /&gt;{   &lt;br /&gt;MyEventLog1.WriteEntry(&lt;span style="color: #990000"&gt;&amp;quot;Windows Service event fired at &amp;quot;&lt;/span&gt; + &lt;span style="color: #009900"&gt;DateTime&lt;/span&gt;.Now.ToString());   &lt;br /&gt;}   &lt;br /&gt;  &lt;br /&gt;Above I have specified the function to be fired at tick event of timer. It will log in EventViewer with date and time.   &lt;br /&gt;  &lt;br /&gt;  &lt;br /&gt;In next part we will see how can we add a configuration file to the Windows Service, how to install the service and common problem while using with Windows Server 2003 system.   &lt;div class="blogger-post-footer"&gt;   &lt;br /&gt;&lt;a href="http://niravbhattsai.blogspot.com"&gt;Nirav Bhatt&lt;/a&gt;&lt;/div&gt;  &lt;div class="blogger-post-footer"&gt;&amp;#160;&lt;/div&gt;  &lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:38cb8778-ce57-4ada-8c3f-edc549cec042" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/Windows%20Service" rel="tag"&gt;Windows Service&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Scheduling%20Windows%20Service" rel="tag"&gt;Scheduling Windows Service&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Event%20Logging%20Windows%20Service" rel="tag"&gt;Event Logging Windows Service&lt;/a&gt;,&lt;a href="http://technorati.com/tags/System.Threading.Timer" rel="tag"&gt;System.Threading.Timer&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Nirav%20Bhatt" rel="tag"&gt;Nirav Bhatt&lt;/a&gt;&lt;/div&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3335029349658819939-5389208377905691724?l=niravbhattsai.blogspot.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/AspnetCProgramming?a=MLGQJFUT"&gt;&lt;img src="http://feeds.feedburner.com/~f/AspnetCProgramming?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/AspnetCProgramming?a=9rbFiuGD"&gt;&lt;img src="http://feeds.feedburner.com/~f/AspnetCProgramming?i=9rbFiuGD" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/AspnetCProgramming?a=adgd5Qi0"&gt;&lt;img src="http://feeds.feedburner.com/~f/AspnetCProgramming?i=adgd5Qi0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/AspnetCProgramming?a=MsLyRZTz"&gt;&lt;img src="http://feeds.feedburner.com/~f/AspnetCProgramming?i=MsLyRZTz" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/AspnetCProgramming?a=pwB9XTSC"&gt;&lt;img src="http://feeds.feedburner.com/~f/AspnetCProgramming?i=pwB9XTSC" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/AspnetCProgramming/~4/ISiqTbBJrIw" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://niravbhattsai.blogspot.com/feeds/5389208377905691724/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://niravbhattsai.blogspot.com/2008/01/create-windows-service-with-cnet-part-2.html#comment-form" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3335029349658819939/posts/default/5389208377905691724?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3335029349658819939/posts/default/5389208377905691724?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/AspnetCProgramming/~3/ISiqTbBJrIw/create-windows-service-with-cnet-part-2.html" title="Scheduling and Event Logging Windows Service" /><author><name>Nirav Bhatt</name><uri>http://www.blogger.com/profile/04140615764814901399</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="08501418167249067995" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">2</thr:total><feedburner:origLink>http://niravbhattsai.blogspot.com/2008/01/create-windows-service-with-cnet-part-2.html</feedburner:origLink></entry></feed>
