<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Ramani Sandeep&#039;s Blog</title>
	<atom:link href="http://ramanisandeep.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://ramanisandeep.wordpress.com</link>
	<description>DotNetting - Fast , Easy Way of Developing Applications</description>
	<lastBuildDate>Fri, 06 Nov 2009 14:16:23 +0000</lastBuildDate>
	<generator>http://wordpress.com/</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<cloud domain='ramanisandeep.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://www.gravatar.com/blavatar/ce733b90c7daf4f0c385a904fda5b532?s=96&#038;d=http://s.wordpress.com/i/buttonw-com.png</url>
		<title>Ramani Sandeep&#039;s Blog</title>
		<link>http://ramanisandeep.wordpress.com</link>
	</image>
			<item>
		<title>Color Picker</title>
		<link>http://ramanisandeep.wordpress.com/2009/11/06/color-picker/</link>
		<comments>http://ramanisandeep.wordpress.com/2009/11/06/color-picker/#comments</comments>
		<pubDate>Fri, 06 Nov 2009 14:13:57 +0000</pubDate>
		<dc:creator>ramanisandeep</dc:creator>
				<category><![CDATA[ASP.NET 2.0]]></category>
		<category><![CDATA[ASP.NET 3.5]]></category>
		<category><![CDATA[ASP.NET Ajax]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Color Picker]]></category>
		<category><![CDATA[Color Picker using javascript]]></category>
		<category><![CDATA[ColorPicker AJAX Extender]]></category>

		<guid isPermaLink="false">http://ramanisandeep.wordpress.com/2009/11/06/color-picker/</guid>
		<description><![CDATA[There are lots of way show color picker on web site. Today I was search for such color picker which I want to use it in one of my website. 
I have searched a lot of color picker that can be useful, so here I m writing about it. 
ColorPicker AJAX Extender 
ColorPicker is an [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ramanisandeep.wordpress.com&blog=4219553&post=612&subd=ramanisandeep&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>There are lots of way show color picker on web site. Today I was search for such color picker which I want to use it in one of my website. </p>
<p>I have searched a lot of color picker that can be useful, so here I m writing about it. </p>
<h4><strong>ColorPicker AJAX Extender</strong> </h4>
<p align="justify">ColorPicker is an ASP.NET AJAX extender that can be attached to any ASP.NET TextBox control. It provides client-side color-picking functionality with UI in a popup control. You can interact with the ColorPicker by clicking on a colored area to set a color. It requires a binary reference to the ASP.NET AJAX Control Toolkit. </p>
<p align="justify">ColorPicker extender is multi-browser compatible: it works with IE 6/7/8, Firefox, Safari and Goggle Chrome. ColorPicker is built on top of ASP.NET AJAX Control Toolkit and internally utilizes a Popup extender. ColorPicker is compatible with the UpdatePanel: can be placed inside the UpdatePanel. </p>
<p align="justify">ColorPicker is included in Ajax Control Toolkit since <a href="http://ajaxcontroltoolkit.codeplex.com/wikipage?title=30512&amp;ProjectName=ajaxcontroltoolkit" target="_blank"><font color="#0000ff" size="1">Release 30512</font></a>. For those who use previous release of Ajax Control Toolkit this ColorPicker project will continue to evolve and stay in sync with the Ajax Control Toolkit. </p>
<p><a href="http://www.codeplex.com/cpe" target="_blank">Read more…</a><strong></strong></p>
<h4><strong>Color Picker using javascript</strong> </h4>
<p align="justify">This widget is used to select a color, in hexadecimal #RRGGBB form. It uses a color &quot;swatch&quot; to display the standard 216-color web-safe palette. The user can then click on a color to select it. </p>
<p align="justify">This script is very simple to implement, and can add a lot of style to your page that requires color values!</p>
<p align="justify">Because of the size of the table, this color picker may be slow on lower-end machines. Consider your target users when deciding whether or not it operates fast enough. </p>
<p><a href="http://www.mattkruse.com/javascript/colorpicker/" target="_blank">Read more…</a></p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ramanisandeep.wordpress.com/612/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ramanisandeep.wordpress.com/612/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ramanisandeep.wordpress.com/612/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ramanisandeep.wordpress.com/612/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ramanisandeep.wordpress.com/612/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ramanisandeep.wordpress.com/612/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ramanisandeep.wordpress.com/612/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ramanisandeep.wordpress.com/612/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ramanisandeep.wordpress.com/612/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ramanisandeep.wordpress.com/612/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ramanisandeep.wordpress.com&blog=4219553&post=612&subd=ramanisandeep&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://ramanisandeep.wordpress.com/2009/11/06/color-picker/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/6d269205ff05eb290eed22b7d422b7ec?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">sandy</media:title>
		</media:content>
	</item>
		<item>
		<title>Moving Values Between Select Boxes</title>
		<link>http://ramanisandeep.wordpress.com/2009/11/02/moving-values-between-select-boxes/</link>
		<comments>http://ramanisandeep.wordpress.com/2009/11/02/moving-values-between-select-boxes/#comments</comments>
		<pubDate>Mon, 02 Nov 2009 13:42:56 +0000</pubDate>
		<dc:creator>ramanisandeep</dc:creator>
				<category><![CDATA[JQuery]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[How to Add Remove ListItems from one ListBox to Another?]]></category>
		<category><![CDATA[Listbox]]></category>
		<category><![CDATA[Moving Values Between Select Boxes]]></category>

		<guid isPermaLink="false">http://ramanisandeep.wordpress.com/2009/11/02/moving-values-between-select-boxes/</guid>
		<description><![CDATA[These functions allowed you to do commonly-requested actions with select boxes. 
For example, you can easily pass values between two select boxes. This makes a nice Windows-style interface for choosing components, adding and removing items from a list, etc. Options are re-ordered as they are added and removed from the lists. 
Several other functions are [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ramanisandeep.wordpress.com&blog=4219553&post=609&subd=ramanisandeep&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p align="justify">These functions allowed you to do commonly-requested actions with select boxes. </p>
<p align="justify">For example, you can easily pass values between two select boxes. This makes a nice Windows-style interface for choosing components, adding and removing items from a list, etc. Options are re-ordered as they are added and removed from the lists. </p>
<p align="justify">Several other functions are included in the source that are not in the examples. This includes copying items in lists instead of moving them, copying/moving all items, and automatically selecting all items in a list. </p>
<p><a href="http://www.mattkruse.com/javascript/selectbox/index.html" target="_blank">read more</a></p>
<h4><strong>Other related articles</strong>&#160;</h4>
<ul>
<li><a href="http://www.codedigest.com/CodeDigest/90-How-to-Add--Remove-ListItems-from-one-ListBox-to-Another-Using-JQuery-.aspx" target="_blank">using jQuery moving Items in Listboxes</a> </li>
<li><a href="http://www.codedigest.com/CodeDigest/45-Add-Add-All--Remove--Remove-All-functionalities-from-one-ASP-Net-ListBox-to-another-in-Javascript.aspx" target="_blank">using javascript moving Items in Listboxes</a> </li>
</ul>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ramanisandeep.wordpress.com/609/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ramanisandeep.wordpress.com/609/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ramanisandeep.wordpress.com/609/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ramanisandeep.wordpress.com/609/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ramanisandeep.wordpress.com/609/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ramanisandeep.wordpress.com/609/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ramanisandeep.wordpress.com/609/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ramanisandeep.wordpress.com/609/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ramanisandeep.wordpress.com/609/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ramanisandeep.wordpress.com/609/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ramanisandeep.wordpress.com&blog=4219553&post=609&subd=ramanisandeep&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://ramanisandeep.wordpress.com/2009/11/02/moving-values-between-select-boxes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/6d269205ff05eb290eed22b7d422b7ec?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">sandy</media:title>
		</media:content>
	</item>
		<item>
		<title>Beginning with Digital Signatures in .NET Framework</title>
		<link>http://ramanisandeep.wordpress.com/2009/11/02/beginning-with-digital-signatures-in-net-framework/</link>
		<comments>http://ramanisandeep.wordpress.com/2009/11/02/beginning-with-digital-signatures-in-net-framework/#comments</comments>
		<pubDate>Mon, 02 Nov 2009 07:27:05 +0000</pubDate>
		<dc:creator>ramanisandeep</dc:creator>
				<category><![CDATA[.Net Framework]]></category>
		<category><![CDATA[Beginning with Digital Signatures in .NET Framework]]></category>
		<category><![CDATA[Digital Signatures]]></category>
		<category><![CDATA[Digital Signatures in .NET Framework]]></category>

		<guid isPermaLink="false">http://ramanisandeep.wordpress.com/2009/11/02/beginning-with-digital-signatures-in-net-framework/</guid>
		<description><![CDATA[This article explains how to get started with digital signatures, using X509 certificates in .NET. 
The purpose of digital signatures is to identify data in a way that cannot easily be faked.&#160; Phishing, infected software and illegal contents published by unknown subjects can be prevented with digital signatures. Digital signatures will allow data and digital [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ramanisandeep.wordpress.com&blog=4219553&post=608&subd=ramanisandeep&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p align="justify">This article explains how to get started with digital signatures, using X509 certificates in .NET. </p>
<p align="justify">The purpose of digital signatures is to identify data in a way that cannot easily be faked.&#160; Phishing, infected software and illegal contents published by unknown subjects can be prevented with digital signatures. Digital signatures will allow data and digital documents to be used as if they were signed paper. Browsers are now able to recognize X.509 certificates and know which Certificate Authorities are trusted. The X.509 system has grown to be the standard format for public key certificates, and is therefore the best way of proving that a document comes from the source it claims to come from. </p>
<p align="justify">This article will introduce X509 certificates, explain a little about the asymmetric cryptography that is at their heart, and end by describing how to use and manage these certificates within the .NET Framework classes. </p>
<p><strong>Asymmetric Cryptography and Digital Signatures</strong> </p>
<p align="justify">Digital signatures are created using asymmetric cryptography, the approach on which digital signatures are based. Asymmetric Cryptography is distinguished by having two different keys, a private key to encrypt messages and a public key to decrypt them. The cryptographic private key K0 (a suitable array of bytes) is used with an appropriate algorithm to&#160; transform the initial human-readable message into a different message that is encrypted. </p>
<p align="justify">A second public cryptographic key K1, which is related to the private one, is used to change the encrypted message back to its original decrypted form via a second related algorithm. </p>
<p align="justify">With this mechanism, your recipient is sure that the message that she/he received is your message, because only you hold the private key that is related to the public, shared, key. You digitally ‘sign’ your message. </p>
<p align="justify">In practice, you will hash the message beforehand (with hash algorithm such as MD5 or SHA1), obtaining the hashed message M1. Then you will encrypt M1 with your private key K0, digitally signing your message, and, finally, you will send your message M, the encrypted hash M1 (the signature) and the public key K1 to your recipient. Your recipient will compute the hash of your message M and will compare it with the decrypted value of M1. If the two hashes matches, the signature is valid. </p>
<p align="justify">You will notice that the signature is obtained by encrypting the hash of a message, rather than&#160; the message itself. This is done for performance reasons.&#160; Asymmetric cryptography is a slow process and the time required to encrypt, or decrypt, a message is directly related to the message length.&#160; You can make better use of the processor by reducing the amount of data to be processed. Sometimes, a very large (in bytes) message, can be reduced, by hashing it, to a much smaller hashed message. It is more convenient to transmit a the bulk of the data as clear text and just attach less than a hundred encrypted bytes attached to it than to encrypt the entire message and send it in the encrypted form. </p>
<p align="justify">Asymmetric key encryption by itself is not enough because it is necessary to trust the public key received. An attacker can deceive you by signing a message with his private key and send you a digitally confirmed message with its (related) public key, whilst&#160; pretending he is someone&#160; else. </p>
<p align="justify">The public-key infrastructure (PKI) avoids this by utilizing a third-party entity, called Certification Authority that, under its responsibility, binds a public key to its owner. The binding occurs when the Certification Authority digitally sign a message that contains the public key and the identity of its owner. A digital certificate is obtained. </p>
<p align="justify"><a href="http://www.simple-talk.com/dotnet/.net-framework/beginning-with-digital-signatures-in-.net-framework/?utm_source=simpletalk&amp;utm_medium=email&amp;utm_content=DigitalSignatures20091102&amp;utm_campaign=.NET" target="_blank">Read more</a></p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ramanisandeep.wordpress.com/608/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ramanisandeep.wordpress.com/608/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ramanisandeep.wordpress.com/608/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ramanisandeep.wordpress.com/608/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ramanisandeep.wordpress.com/608/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ramanisandeep.wordpress.com/608/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ramanisandeep.wordpress.com/608/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ramanisandeep.wordpress.com/608/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ramanisandeep.wordpress.com/608/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ramanisandeep.wordpress.com/608/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ramanisandeep.wordpress.com&blog=4219553&post=608&subd=ramanisandeep&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://ramanisandeep.wordpress.com/2009/11/02/beginning-with-digital-signatures-in-net-framework/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/6d269205ff05eb290eed22b7d422b7ec?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">sandy</media:title>
		</media:content>
	</item>
		<item>
		<title>.NET Challenge &#8211; for or foreach?</title>
		<link>http://ramanisandeep.wordpress.com/2009/11/02/net-challenge-for-or-foreach/</link>
		<comments>http://ramanisandeep.wordpress.com/2009/11/02/net-challenge-for-or-foreach/#comments</comments>
		<pubDate>Mon, 02 Nov 2009 07:20:48 +0000</pubDate>
		<dc:creator>ramanisandeep</dc:creator>
				<category><![CDATA[ASP.NET 2.0]]></category>
		<category><![CDATA[ASP.NET 3.5]]></category>
		<category><![CDATA[C# 2.0]]></category>
		<category><![CDATA[C# 3.0]]></category>
		<category><![CDATA[.NET Challenge – for or foreach?]]></category>
		<category><![CDATA[for]]></category>
		<category><![CDATA[for vs foreach]]></category>
		<category><![CDATA[foreach]]></category>
		<category><![CDATA[foreach vs for]]></category>

		<guid isPermaLink="false">http://ramanisandeep.wordpress.com/2009/11/02/net-challenge-for-or-foreach/</guid>
		<description><![CDATA[Question: 
for should be used instead of foreach to iterate over collections in performance-critical loops. 
Answer: True 
foreach uses an enumerator which can sometimes be slower than the simple iteration of a variable in a for loop. Enumerators, such as those contained in the .NET Framework, have both managed heap and virtual function overhead. The [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ramanisandeep.wordpress.com&blog=4219553&post=607&subd=ramanisandeep&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p><strong>Question:</strong> </p>
<p><strong>for</strong> should be used instead of <strong>foreach</strong> to iterate over collections in performance-critical loops. </p>
<p><strong>Answer:</strong> True </p>
<p align="justify"><strong>foreach</strong> uses an enumerator which can sometimes be slower than the simple iteration of a variable in a for loop. Enumerators, such as those contained in the .NET Framework, have both managed heap and virtual function overhead. The amount of overhead depends on the collection used and the version of the .NET Framework. As always, the best way to determine the overhead between techniques is to run a performance test and compare.</p>
<p align="justify">To illustrate the performance impact, 10 strings were concatenated 100 times using the techniques outlined below.&#160; </p>
<p align="justify">Running against .NET Framework 3.5 using an ArrayList, a generic List and a LinkedList with 5,000 strings, the following results were obtained using Ants Performance Profiler 5: </p>
<table cellspacing="0" cellpadding="2" width="400" border="0">
<tbody>
<tr>
<td valign="top" width="133"><strong>Wall Clock Time (ms)</strong></td>
<td valign="top" width="133"><strong>Loop</strong></td>
<td valign="top" width="133"><strong>Structure (5,000 strings)</strong></td>
</tr>
<tr>
<td valign="top" width="133">25.003</td>
<td valign="top" width="133">for</td>
<td valign="top" width="133">LinkedList&lt;string&gt;</td>
</tr>
<tr>
<td valign="top" width="133">0.037</td>
<td valign="top" width="133">foreach</td>
<td valign="top" width="133">LinkedList&lt;string&gt;</td>
</tr>
<tr>
<td valign="top" width="133">0.039</td>
<td valign="top" width="133">for</td>
<td valign="top" width="133">ArrayList</td>
</tr>
<tr>
<td valign="top" width="133">0.053</td>
<td valign="top" width="133">foreach</td>
<td valign="top" width="133">ArrayList</td>
</tr>
<tr>
<td valign="top" width="133">0.019</td>
<td valign="top" width="133">for</td>
<td valign="top" width="133">List&lt;string&gt;</td>
</tr>
<tr>
<td valign="top" width="133">0.034</td>
<td valign="top" width="133">foreach</td>
<td valign="top" width="133">List&lt;string&gt;</td>
</tr>
</tbody>
</table>
<p>&#160;</p>
<p>Except for the LinkedList, the for loop is faster. </p>
<p align="justify">The for loop is thought by many developers to be less readable and maintainable than foreach. Using foreach also makes it possible to iterate across anything that&#8217;s IEnumerable, allowing for the creation of more general algorithms and the use of &quot;yield&quot; to build custom collections. </p>
<p>It is normally good practice to code for clarity rather than micro-optimization. </p>
<p>Reference : <a href="http://www.red-gate.com/products/ants_performance_profiler/dotnet_challenge_question_1.htm?utm_source=simpletalk&amp;utm_medium=email&amp;utm_content=dotnetchallengeq1&amp;utm_campaign=antsperformanceprofiler" target="_blank">Rad-gate</a></p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ramanisandeep.wordpress.com/607/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ramanisandeep.wordpress.com/607/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ramanisandeep.wordpress.com/607/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ramanisandeep.wordpress.com/607/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ramanisandeep.wordpress.com/607/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ramanisandeep.wordpress.com/607/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ramanisandeep.wordpress.com/607/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ramanisandeep.wordpress.com/607/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ramanisandeep.wordpress.com/607/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ramanisandeep.wordpress.com/607/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ramanisandeep.wordpress.com&blog=4219553&post=607&subd=ramanisandeep&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://ramanisandeep.wordpress.com/2009/11/02/net-challenge-for-or-foreach/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/6d269205ff05eb290eed22b7d422b7ec?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">sandy</media:title>
		</media:content>
	</item>
		<item>
		<title>Multiple File Upload using JQuery</title>
		<link>http://ramanisandeep.wordpress.com/2009/10/28/multiple-file-upload-using-jquery/</link>
		<comments>http://ramanisandeep.wordpress.com/2009/10/28/multiple-file-upload-using-jquery/#comments</comments>
		<pubDate>Wed, 28 Oct 2009 14:36:33 +0000</pubDate>
		<dc:creator>ramanisandeep</dc:creator>
				<category><![CDATA[ASP.NET 2.0]]></category>
		<category><![CDATA[JQuery]]></category>
		<category><![CDATA[FileUpload in ASP.NET]]></category>
		<category><![CDATA[Upload files uaing jQuery]]></category>
		<category><![CDATA[Upload Files using File Upload Control]]></category>
		<category><![CDATA[Upload Multiple Files in ASP.NET using jQuery]]></category>
		<category><![CDATA[Upload Multiple files using jQuery]]></category>

		<guid isPermaLink="false">http://ramanisandeep.wordpress.com/2009/10/28/multiple-file-upload-using-jquery/</guid>
		<description><![CDATA[Introduction 
In this article I have explained how to upload multiple files using file upload control. I have used jQuery plugin for uploading multiple files. 
I have also explained how to check for file type, file maximum size limit using jQuery &#38; also using server side validation code. 
Download the Following Files 

jQuery 1.3.2 
Multiple [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ramanisandeep.wordpress.com&blog=4219553&post=601&subd=ramanisandeep&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><h4>Introduction </h4>
<p>In this article I have explained how to upload multiple files using file upload control. I have used jQuery plugin for uploading multiple files. </p>
<p>I have also explained how to check for file type, file maximum size limit using jQuery &amp; also using server side validation code. </p>
<h4>Download the Following Files </h4>
<ul>
<li><a href="http://code.google.com/p/jqueryjs/downloads/detail?name=jquery-1.3.2.js" target="_blank">jQuery 1.3.2</a> </li>
<li><a href="http://jquery-multifile-plugin.googlecode.com/svn/trunk/multiple-file-upload.zip" target="_blank">Multiple File Upload Plugin</a>&#160; </li>
</ul>
<h4>Namespace used</h4>
<p><font color="#0000ff" size="2">using System.Security.Cryptography;      <br />using System.Text;       <br />using System.IO;</font></p>
<h4><strong>Step 1: Include the jQuery Files needed on the page.</strong> </h4>
<p>Assuming you have downloaded these files, create a reference to these files in the &lt;head&gt; section of your page as shown below: </p>
<p><font color="#0000ff" size="2">&lt;head id=&quot;Head1&quot; runat=&quot;server&quot;&gt;      <br />&#160;&#160;&#160; &lt;title&gt;Multiple File Upload using JQuery&lt;/title&gt;       <br />&#160;&#160;&#160; &lt;script src=&quot;Scripts/jquery-1.3.2.js&quot;       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; type=&quot;text/javascript&quot;&gt;       <br />&#160;&#160;&#160; &lt;/script&gt;       <br />&#160;&#160;&#160; &lt;script src=&quot;Scripts/jquery.MultiFile.js&quot;       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; type=&quot;text/javascript&quot;&gt;       <br />&#160;&#160;&#160; &lt;/script&gt;       <br />&lt;/head&gt;</font></p>
<div class="csharpcode"><strong></strong></div>
<h4>Step 2: Add File Upload Control &amp; Button on the Page.</h4>
<div class="csharpcode">&#160;</div>
<p><font color="#0000ff" size="2">&lt;asp:FileUpload ID=&quot;FileUpload1&quot; runat=&quot;server&quot;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; class=&quot;multi&quot; accept=&quot;gif|jpeg|bmp|png|jpg&quot;       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; maxlength=&quot;5&quot; /&gt;       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;br /&gt;       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;asp:Button ID=&quot;btnUpload&quot; runat=&quot;server&quot;       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; Text=&quot;Upload All&quot; OnClick=&quot;btnUpload_Click&quot; /&gt;       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;br /&gt;       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;asp:Label ID=&quot;lblMsg&quot; runat=&quot;server&quot; Text=&quot;&quot;&gt;\       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;/asp:Label&gt;</font></p>
<div class="csharpcode">&#160;</div>
<div class="csharpcode"><strong>class=”multi”</strong> is used to specify that user can select multiple files. </div>
<div class="csharpcode">&#160;</div>
<p><strong>maxlength</strong> property specify that user can upload maximum 5 files not more than that. </p>
<p><strong>accept</strong> property used to restrict user to upload only certain type of file only. </p>
<h4>Step 3: Double click on Upload Button &amp; Write the code that is used to upload files.</h4>
<p><font color="#0000ff" size="2">protected void btnUpload_Click(object sender, EventArgs e)      <br />&#160;&#160;&#160; {       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; if (ServerSideValidation() == true)       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; {       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; string SavePath, Msg = null; </font></p>
<p><font color="#0000ff" size="2">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; // Get the HttpFileCollection      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; HttpFileCollection hfc = Request.Files;       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; for (int i = 0; i &lt; hfc.Count; i++)       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; {       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; HttpPostedFile hpf = hfc[i];       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; if (hpf.ContentLength &gt; 0)       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; {       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; SavePath = ConfigurationManager.AppSettings[&quot;PatientPhotoImages&quot;].ToString()       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; + GetUniqueKey() + GetFileExtension(hpf.FileName);       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; hpf.SaveAs(Server.MapPath(SavePath));       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; //SavePath can be saved in DB.       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; Msg += GetFileName(hpf.FileName.ToString()) + &quot; , &quot;;       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; }       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; }       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; lblMsg.Text = Msg + &quot; Uploaded Successfully.&quot;;       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; }       <br />&#160;&#160;&#160; }</font></p>
<h4>Step 4: Write the private function which helps to Upload files. </h4>
<p>This function helps to extract file extension from the fileName. </p>
<p><font color="#0000ff" size="2">private string GetFileExtension(string FileName)      <br />&#160;&#160; {       <br />&#160;&#160;&#160;&#160;&#160;&#160; char saperator = &#8216;.&#8217;;       <br />&#160;&#160;&#160;&#160;&#160;&#160; string[] temp = FileName.Split(saperator); </font></p>
<p><font color="#0000ff" size="2">&#160;&#160;&#160;&#160;&#160;&#160; return &quot;.&quot; + temp[1].ToString();      <br />&#160;&#160; }</font></p>
<p>This function helps to get Unique Key, which is used to save files on server with different name that does not collied with each other. </p>
<p><font color="#0000ff" size="2">private string GetUniqueKey()      <br />&#160;&#160;&#160; {       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; int maxSize = 8;       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; char[] chars = new char[62];       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; string a; </font></p>
<p><font color="#0000ff" size="2">&#160;&#160;&#160;&#160;&#160;&#160;&#160; a = &quot;abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890&quot;; </font></p>
<p><font color="#0000ff" size="2">&#160;&#160;&#160;&#160;&#160;&#160;&#160; chars = a.ToCharArray(); </font></p>
<p><font color="#0000ff" size="2">&#160;&#160;&#160;&#160;&#160;&#160;&#160; int size = maxSize;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; byte[] data = new byte[1]; </font></p>
<p><font color="#0000ff" size="2">&#160;&#160;&#160;&#160;&#160;&#160;&#160; RNGCryptoServiceProvider crypto = new RNGCryptoServiceProvider(); </font></p>
<p><font color="#0000ff" size="2">&#160;&#160;&#160;&#160;&#160;&#160;&#160; crypto.GetNonZeroBytes(data);      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; size = maxSize;       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; data = new byte[size];       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; crypto.GetNonZeroBytes(data);       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; StringBuilder result = new StringBuilder(size); </font></p>
<p><font color="#0000ff" size="2">&#160;&#160;&#160;&#160;&#160;&#160;&#160; foreach (byte b in data)      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; {       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; result.Append(chars[b % (chars.Length - 1)]);       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; } </font></p>
<p><font color="#0000ff" size="2">&#160;&#160;&#160;&#160;&#160;&#160;&#160; return result.ToString();      <br />&#160;&#160;&#160; }</font></p>
<p>This function help to get Filename from the filepath. </p>
<p>&#160;&#160; <font color="#0000ff" size="2">private string GetFileName(string filePath)      <br />&#160;&#160;&#160; {       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; FileInfo fi = new FileInfo(filePath);       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; return fi.Name;       <br />&#160;&#160;&#160; }</font></p>
<h4>Step 5: Add Server Side Validation Code</h4>
<p>This is the function which is used to validate files that user wants to upload. If the client side validation does not work, this code will help us to identify the invalid files. </p>
<p>Validation rules like whether file type is correct or not, file size is valid or not. </p>
<p>If you do not want to validate the files on server side, you can ignore this code. But I prefer to use it. </p>
<p><font color="#0000ff" size="2">private bool ServerSideValidation()      <br />&#160;&#160;&#160; {       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; string errorMsg = string.Empty , temp=null;       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; bool errorFlag = true; </font></p>
<p><font color="#0000ff" size="2">&#160;&#160;&#160;&#160;&#160;&#160;&#160; // Get the HttpFileCollection      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; HttpFileCollection hfc = Request.Files;       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; for (int i = 0; i &lt; hfc.Count; i++)       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; {       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; HttpPostedFile hpf = hfc[i];       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; if (hpf.ContentLength &gt; 0)       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; {       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; temp = ValidateImage(hpf);       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; if(temp != null)       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; {       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; errorMsg += GetFileName(hpf.FileName.ToString()) + &quot; has error : &quot; + temp;       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; temp = null;       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; }       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; }       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; } </font></p>
<p><font color="#0000ff" size="2">&#160;&#160;&#160;&#160;&#160;&#160;&#160; if (errorMsg != &quot;&quot;)      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; {       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; lblMsg.Text = errorMsg;       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; errorFlag = false;       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; }       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; return errorFlag;       <br />&#160;&#160;&#160; }</font></p>
<p>This function used to check file type &amp; file size. If file is invalid than it will return error message. </p>
<p><font color="#0000ff" size="2">private string ValidateImage(HttpPostedFile myFile)      <br />&#160;&#160;&#160; {       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; string msg = null;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; int FileMaxSize = Convert.ToInt32(ConfigurationManager.AppSettings[&quot;FileUploadSizeLimit&quot;].ToString());       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; //Check Length of File is Valid or Not.       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; if (myFile.ContentLength &gt; FileMaxSize)       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; {       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; msg = msg + &quot;File Size is Too Large.&quot;;       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; }       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; //Check File Type is Valid or Not.&#160;&#160;&#160;&#160;&#160;&#160;&#160; <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; if (!IsValidFile(myFile.FileName))       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; {&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; msg = msg + &quot;Invalid File Type.&quot;;       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; }       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; return msg;       <br />&#160;&#160;&#160; }</font></p>
<p>This function is used to check whether the file that user want to upload is valid file type or not. </p>
<p>&#160;&#160;&#160; <font color="#0000ff" size="2">private bool IsValidFile(string filePath)      <br />&#160;&#160;&#160; {       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; bool isValid = false; </font></p>
<p><font color="#0000ff" size="2">&#160;&#160;&#160;&#160;&#160;&#160;&#160; string[] fileExtensions = { &quot;.bmp&quot;, &quot;.jpg&quot;, &quot;.png&quot;, &quot;.gif&quot;, &quot;.jpeg&quot;, &quot;.BMP&quot;, &quot;.JPG&quot;, &quot;.PNG&quot;, &quot;.GIF&quot;, &quot;.JPEG&quot; }; </font></p>
<p><font color="#0000ff" size="2">&#160;&#160;&#160;&#160;&#160;&#160;&#160; for (int i = 0; i &lt; fileExtensions.Length; i++)      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; {       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; if (filePath.Contains(fileExtensions[i]))       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; {       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; isValid = true;       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; }       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; }       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; return isValid;       <br />&#160;&#160;&#160; }</font></p>
<h4>Conclusion: </h4>
<p>This code is complete solution that helps to upload multiple file using File Upload with jQuery plugin. I was always in a need of such code in my route work so I decided to write the code that helps others also.</p>
<p><strong>Hope this will help !!!      <br />Jay Ganesh</strong></p>
<p> <a href="http://11011.net/software/vspaste"></a>
<p><a href="http://11011.net/software/vspaste">&#160;</a></p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ramanisandeep.wordpress.com/601/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ramanisandeep.wordpress.com/601/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ramanisandeep.wordpress.com/601/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ramanisandeep.wordpress.com/601/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ramanisandeep.wordpress.com/601/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ramanisandeep.wordpress.com/601/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ramanisandeep.wordpress.com/601/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ramanisandeep.wordpress.com/601/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ramanisandeep.wordpress.com/601/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ramanisandeep.wordpress.com/601/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ramanisandeep.wordpress.com&blog=4219553&post=601&subd=ramanisandeep&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://ramanisandeep.wordpress.com/2009/10/28/multiple-file-upload-using-jquery/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/6d269205ff05eb290eed22b7d422b7ec?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">sandy</media:title>
		</media:content>
	</item>
		<item>
		<title>ASTreeView &#8211; A Powerful ASP.Net TreeView Control</title>
		<link>http://ramanisandeep.wordpress.com/2009/10/23/astreeview-a-powerful-asp-net-treeview-control/</link>
		<comments>http://ramanisandeep.wordpress.com/2009/10/23/astreeview-a-powerful-asp-net-treeview-control/#comments</comments>
		<pubDate>Fri, 23 Oct 2009 09:28:21 +0000</pubDate>
		<dc:creator>ramanisandeep</dc:creator>
				<category><![CDATA[ASP.NET 2.0]]></category>
		<category><![CDATA[ASP.NET Ajax]]></category>
		<category><![CDATA[A Powerful ASP.Net TreeView Control]]></category>
		<category><![CDATA[ASTreeView]]></category>
		<category><![CDATA[Treeview]]></category>

		<guid isPermaLink="false">http://ramanisandeep.wordpress.com/2009/10/23/astreeview-a-powerful-asp-net-treeview-control/</guid>
		<description><![CDATA[ASTreeView is a powerful treeview with drag drop, ajax loading, context menu, xml import/export, checkbox, selection, add/editing/deleting nodes with ajax. 
ASTreeView is developed on .NET framework 2.0. Demo project is a Visual Studio 2005 project. 
ASTreeView is FREE! That means you can use it anywhere! 
for more detail : click here
     [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ramanisandeep.wordpress.com&blog=4219553&post=598&subd=ramanisandeep&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>ASTreeView is a powerful treeview with drag drop, ajax loading, context menu, xml import/export, checkbox, selection, add/editing/deleting nodes with ajax. </p>
<p>ASTreeView is developed on .NET framework 2.0. Demo project is a Visual Studio 2005 project. </p>
<p>ASTreeView is FREE! That means you can use it anywhere! </p>
<p>for more detail : <a href="http://www.codeproject.com/KB/webforms/ASTreeView.aspx" target="_blank"><font color="#ff0000">click here</font></a></p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ramanisandeep.wordpress.com/598/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ramanisandeep.wordpress.com/598/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ramanisandeep.wordpress.com/598/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ramanisandeep.wordpress.com/598/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ramanisandeep.wordpress.com/598/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ramanisandeep.wordpress.com/598/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ramanisandeep.wordpress.com/598/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ramanisandeep.wordpress.com/598/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ramanisandeep.wordpress.com/598/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ramanisandeep.wordpress.com/598/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ramanisandeep.wordpress.com&blog=4219553&post=598&subd=ramanisandeep&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://ramanisandeep.wordpress.com/2009/10/23/astreeview-a-powerful-asp-net-treeview-control/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/6d269205ff05eb290eed22b7d422b7ec?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">sandy</media:title>
		</media:content>
	</item>
		<item>
		<title>Happy Diwali</title>
		<link>http://ramanisandeep.wordpress.com/2009/10/15/happy-diwali/</link>
		<comments>http://ramanisandeep.wordpress.com/2009/10/15/happy-diwali/#comments</comments>
		<pubDate>Thu, 15 Oct 2009 11:31:08 +0000</pubDate>
		<dc:creator>ramanisandeep</dc:creator>
				<category><![CDATA[Mics]]></category>
		<category><![CDATA[Happy Diwali]]></category>

		<guid isPermaLink="false">http://ramanisandeep.wordpress.com/2009/10/15/happy-diwali/</guid>
		<description><![CDATA[Hi Readers,
Happy Diwali to all the readers of this blog &#38; have a great time with your dear ones !!!
 
Celebrate your Diwali with Shree Ganesh’s Aarti :
Jai Ganesha Jai Ganesha Jai Ganesha Deva        Maata Jaaki Parvati Pitaa Mahadeva         Ladoowan [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ramanisandeep.wordpress.com&blog=4219553&post=596&subd=ramanisandeep&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Hi Readers,</p>
<p>Happy Diwali to all the readers of this blog &amp; have a great time with your dear ones !!!</p>
<p><a href="http://ramanisandeep.files.wordpress.com/2009/10/happy_diwali_big1.jpg"><img title="happy_diwali_big1" style="display:inline;border-width:0;" height="185" alt="happy_diwali_big1" src="http://ramanisandeep.files.wordpress.com/2009/10/happy_diwali_big1_thumb.jpg?w=244&#038;h=185" width="244" border="0" /></a> </p>
<p><strong>Celebrate your Diwali with Shree Ganesh’s Aarti :</strong></p>
<blockquote><p><font face="Calibri" color="#008080" size="2">Jai Ganesha Jai Ganesha Jai Ganesha Deva        <br />Maata Jaaki Parvati Pitaa Mahadeva         <br />Ladoowan Ka Bhog Lage Sant Karen Sevaa         <br />Jai Ganesh Deva         <br />Eka Dant Dayavant Chaar Bhujadhari         <br />Maathe Par Tilak Sohe Muse Ki Sawaari         <br />Paan Chadhe Phool Chadhe Aur Chadhe Mevaa         <br />Jai Ganesh Deva         <br />Andhe Ko Aankh Det Kohin Ko Kaaya         <br />Banjhan Ko Putra Det Nirdhan Ko Maaya         <br />Surya Shama Sharan Aaye Safal Kijye Sevaa         <br />Jai Ganesh Deva </font></p>
</blockquote>
<p>Jay Ganesh !!!</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ramanisandeep.wordpress.com/596/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ramanisandeep.wordpress.com/596/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ramanisandeep.wordpress.com/596/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ramanisandeep.wordpress.com/596/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ramanisandeep.wordpress.com/596/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ramanisandeep.wordpress.com/596/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ramanisandeep.wordpress.com/596/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ramanisandeep.wordpress.com/596/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ramanisandeep.wordpress.com/596/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ramanisandeep.wordpress.com/596/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ramanisandeep.wordpress.com&blog=4219553&post=596&subd=ramanisandeep&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://ramanisandeep.wordpress.com/2009/10/15/happy-diwali/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/6d269205ff05eb290eed22b7d422b7ec?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">sandy</media:title>
		</media:content>

		<media:content url="http://ramanisandeep.files.wordpress.com/2009/10/happy_diwali_big1_thumb.jpg" medium="image">
			<media:title type="html">happy_diwali_big1</media:title>
		</media:content>
	</item>
		<item>
		<title>Ebook : 51 Tips, Tricks and Recipes with jQuery and ASP.NET Controls</title>
		<link>http://ramanisandeep.wordpress.com/2009/10/14/ebook-51-tips-tricks-and-recipes-with-jquery-and-asp-net-controls/</link>
		<comments>http://ramanisandeep.wordpress.com/2009/10/14/ebook-51-tips-tricks-and-recipes-with-jquery-and-asp-net-controls/#comments</comments>
		<pubDate>Wed, 14 Oct 2009 11:32:23 +0000</pubDate>
		<dc:creator>ramanisandeep</dc:creator>
				<category><![CDATA[ASP.NET 2.0]]></category>
		<category><![CDATA[ASP.NET 3.5]]></category>
		<category><![CDATA[JQuery]]></category>
		<category><![CDATA[Ebook : 51 Tips]]></category>
		<category><![CDATA[EBook jQuery and ASP.NET]]></category>
		<category><![CDATA[Tricks and Recipes with jQuery and ASP.NET Controls]]></category>
		<category><![CDATA[using jQuery with ASP.NET controls]]></category>

		<guid isPermaLink="false">http://ramanisandeep.wordpress.com/?p=591</guid>
		<description><![CDATA[hi readers ,
here is a very useful book that explore the jQuery usage with ASP.NET Controls. This is very handy book for the web developer who uses jQuery along with ASP.NET.
It helps to enhance your web experience &#38; better understand how/where/when to use jQuery with ASP.NET Controls.
read more  : here
read the content  : [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ramanisandeep.wordpress.com&blog=4219553&post=591&subd=ramanisandeep&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>hi readers ,</p>
<p>here is a very useful book that explore the jQuery usage with ASP.NET Controls. This is very handy book for the web developer who uses jQuery along with ASP.NET.</p>
<p>It helps to enhance your web experience &amp; better understand how/where/when to use jQuery with ASP.NET Controls.</p>
<p>read more  : <a href="http://www.dotnetcurry.com/ShowArticle.aspx?ID=393" target="_blank">here</a></p>
<p>read the content  : <a href="http://www.scribd.com/doc/20458606/51-Recipes-With-jQuery-and-ASP-net-Preview" target="_blank">here </a></p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ramanisandeep.wordpress.com/591/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ramanisandeep.wordpress.com/591/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ramanisandeep.wordpress.com/591/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ramanisandeep.wordpress.com/591/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ramanisandeep.wordpress.com/591/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ramanisandeep.wordpress.com/591/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ramanisandeep.wordpress.com/591/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ramanisandeep.wordpress.com/591/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ramanisandeep.wordpress.com/591/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ramanisandeep.wordpress.com/591/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ramanisandeep.wordpress.com&blog=4219553&post=591&subd=ramanisandeep&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://ramanisandeep.wordpress.com/2009/10/14/ebook-51-tips-tricks-and-recipes-with-jquery-and-asp-net-controls/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/6d269205ff05eb290eed22b7d422b7ec?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">sandy</media:title>
		</media:content>
	</item>
		<item>
		<title>Watch the Video of Luke Hoban &amp; Luca Bolognese</title>
		<link>http://ramanisandeep.wordpress.com/2009/10/14/watch-the-video-of-luke-hoban-luca-bolognese/</link>
		<comments>http://ramanisandeep.wordpress.com/2009/10/14/watch-the-video-of-luke-hoban-luca-bolognese/#comments</comments>
		<pubDate>Wed, 14 Oct 2009 10:23:41 +0000</pubDate>
		<dc:creator>ramanisandeep</dc:creator>
				<category><![CDATA[ASP.NET 3.5]]></category>
		<category><![CDATA[C# 3.0]]></category>
		<category><![CDATA[An In-Depth Look at C# 3.0]]></category>
		<category><![CDATA[Linq to SQL]]></category>
		<category><![CDATA[Video of Luke Hoban's In-Depth Look at C# 3.0]]></category>

		<guid isPermaLink="false">http://ramanisandeep.wordpress.com/?p=588</guid>
		<description><![CDATA[Linq to SQL by Luca Bolognese
Luca Bolognese is the Principal Program Manager Lead on the C# team. His talk on LINQ to SQL endows developers with the knowledge necessary to wield the tools that drive data driven application development under C# 3.0. A consummate speaker, Luca skillfully guides his audience through the elements that comprise [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ramanisandeep.wordpress.com&blog=4219553&post=588&subd=ramanisandeep&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p><strong>Linq to SQL by Luca Bolognese</strong></p>
<p>Luca Bolognese is the Principal Program Manager Lead on the C# team. His talk on LINQ to SQL endows developers with the knowledge necessary to wield the tools that drive data driven application development under C# 3.0. A consummate speaker, Luca skillfully guides his audience through the elements that comprise LINQ to SQL development.</p>
<p>watch the video <a href="http://www.microsoft.com/emea/msdn/spotlight/sessionh.aspx?videoid=716" target="_blank">here</a></p>
<p><strong>An In-Depth Look at C# 3.0 by Luke Hoban</strong></p>
<p>Luke Hoban was the PM who drove the development of LINQ to Objects, and the man who created the now famous implementation of a ray tracer in a single, very long, LINQ query expression. He is now focusing his efforts on F#. By listening to his talk on C# 3.0 features you will get a chance to see a detailed and specific analysis of how LINQ works. Listening to him give this talk marked a turning point in my understanding of LINQ. For the first time I understood how the team folded extension methods and query expressions together to create the marvelously supple and deceptively simple syntax that we know as LINQ.</p>
<p>watch the video <a href="http://www.microsoft.com/emea/msdn/spotlight/sessionh.aspx?videoid=710" target="_blank">here</a></p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ramanisandeep.wordpress.com/588/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ramanisandeep.wordpress.com/588/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ramanisandeep.wordpress.com/588/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ramanisandeep.wordpress.com/588/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ramanisandeep.wordpress.com/588/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ramanisandeep.wordpress.com/588/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ramanisandeep.wordpress.com/588/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ramanisandeep.wordpress.com/588/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ramanisandeep.wordpress.com/588/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ramanisandeep.wordpress.com/588/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ramanisandeep.wordpress.com&blog=4219553&post=588&subd=ramanisandeep&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://ramanisandeep.wordpress.com/2009/10/14/watch-the-video-of-luke-hoban-luca-bolognese/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/6d269205ff05eb290eed22b7d422b7ec?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">sandy</media:title>
		</media:content>
	</item>
		<item>
		<title>What is httpHandler &amp; httpModule?</title>
		<link>http://ramanisandeep.wordpress.com/2009/09/24/what-is-httphandler-httpmodule/</link>
		<comments>http://ramanisandeep.wordpress.com/2009/09/24/what-is-httphandler-httpmodule/#comments</comments>
		<pubDate>Thu, 24 Sep 2009 10:01:54 +0000</pubDate>
		<dc:creator>ramanisandeep</dc:creator>
				<category><![CDATA[ASP.NET 2.0]]></category>
		<category><![CDATA[C# 2.0]]></category>
		<category><![CDATA[Displaying images in ASP.NET using HttpHandler]]></category>
		<category><![CDATA[httpHandler]]></category>
		<category><![CDATA[httpModule]]></category>
		<category><![CDATA[HttpModule and HttpHandlers]]></category>
		<category><![CDATA[What is httpHandler & httpModule?]]></category>

		<guid isPermaLink="false">http://ramanisandeep.wordpress.com/2009/09/24/what-is-httphandler-httpmodule/</guid>
		<description><![CDATA[httpHandler &#8211; Extenstion Based Preprocessor : 
ASP.NET HTTP handler is the process that runs in response to a request made to an ASP.NET Web application. The most common handler is an ASP.NET page handler that processes .aspx files. When users request an .aspx file, the request is processed by the page through the page handler. [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ramanisandeep.wordpress.com&blog=4219553&post=584&subd=ramanisandeep&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p><strong>httpHandler &#8211; Extenstion Based Preprocessor : </strong></p>
<p>ASP.NET HTTP handler is the process that runs in response to a request made to an ASP.NET Web application. The most common handler is an ASP.NET page handler that processes .aspx files. When users request an .aspx file, the request is processed by the page through the page handler. You can create your own HTTP handlers that render custom output to the browser. </p>
<p><strong>httpModule &#8211; Event based Preprocessor :</strong></p>
<p>An HTTP module is an assembly that is called on every request that is made to your application. HTTP modules are called as part of the ASP.NET request pipeline and have access to life-cycle events throughout the request. HTTP modules let you examine incoming and outgoing requests and take action based on the request. </p>
<p><strong>When to use HTTP handlers:</strong></p>
<ul>
<li><strong>RSS feeds:</strong> To create an RSS feed for a Web site, you can create a handler that emits RSS-formatted XML. You can then bind a file name extension such as .rss to the custom handler. When users send a request to your site that ends in .rss, ASP.NET calls your handler to process the request. </li>
<li><strong>Image server:</strong>&#160;&#160; If you want a Web application to serve images in a variety of sizes, you can write a custom handler to resize images and then send them to the user as the handler&#8217;s response. </li>
</ul>
<p><strong>When to use HTTP modules:</strong></p>
<ul>
<li><strong>Security:</strong>&#160;&#160; Because you can examine incoming requests, an HTTP module can perform custom authentication or other security checks before the requested page, XML Web service, or handler is called. In Internet Information Services (IIS) 7.0 running in Integrated mode, you can extend forms authentication to all content types in an application. </li>
<li><strong>Statistics and logging:</strong>&#160;&#160; Because HTTP modules are called on every request, you can gather request statistics and log information in a centralized module, instead of in individual pages. </li>
<li><strong>Custom headers or footers:</strong>&#160;&#160; Because you can modify the outgoing response, you can insert content such as custom header information into every page or XML Web service response. </li>
</ul>
<p><strong>Main Features:</strong></p>
<ul>
<li>The IHttpHandler and IHttpModule interfaces are the starting point for developing handlers and modules.      <br />The IHttpAsyncHandler interface is the starting point for developing asynchronous handlers. </li>
<li>Custom handler and module source code can be put in the App_Code folder of an application, or it can be compiled and put in the Bin folder of an application. </li>
<li>Handlers and modules developed for use in IIS 6.0 can be used in IIS 7.0 with little or no change. </li>
<li>Modules can subscribe to a variety of request-pipeline notifications. Modules can receive notification of events of the HttpApplication object. </li>
</ul>
<p><strong>Built-in HTTP Handlers in ASP.NET</strong></p>
<ul>
<li><strong>ASP.NET page handler (*.aspx):</strong> The default HTTP handler for all ASP.NET pages. </li>
<li><strong>Web service handler (*.asmx):</strong> The default HTTP handler for Web service pages created as .asmx files in ASP.NET. </li>
<li><strong>Generic Web handler (*.ashx):</strong> The default HTTP handler for all Web handlers that do not have a UI and that include the @ WebHandler directive. </li>
<li><strong>Trace handler (trace.axd):</strong> A handler that displays current page trace information. </li>
</ul>
<p><strong>Reference:</strong></p>
<p>I have taken the content &amp; compiled from <a href="http://msdn.microsoft.com/en-us/library/bb398986.aspx" target="_blank">here.</a></p>
<p><strong>Other Useful Articles are:</strong></p>
<ol>
<li>The Two Interceptors: HttpModule and HttpHandlers – <a href="http://www.c-sharpcorner.com/UploadFile/shivprasadk/1234612222008053711AM/12346.aspx?ArticleID=ed1b18d1-da24-46b9-a61d-07750fc856a7" target="_blank"><font size="1">Click here</font></a> </li>
<li>Displaying images in ASP.NET using HttpHandlers – <a href="http://www.worldofasp.net/aspnet/Tutorials/images/Displaying_images_in_ASP.NET_using_HttpHandlers_92.aspx" target="_blank"><font size="1">Click here</font></a> </li>
</ol>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ramanisandeep.wordpress.com/584/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ramanisandeep.wordpress.com/584/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ramanisandeep.wordpress.com/584/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ramanisandeep.wordpress.com/584/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ramanisandeep.wordpress.com/584/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ramanisandeep.wordpress.com/584/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ramanisandeep.wordpress.com/584/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ramanisandeep.wordpress.com/584/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ramanisandeep.wordpress.com/584/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ramanisandeep.wordpress.com/584/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ramanisandeep.wordpress.com&blog=4219553&post=584&subd=ramanisandeep&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://ramanisandeep.wordpress.com/2009/09/24/what-is-httphandler-httpmodule/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/6d269205ff05eb290eed22b7d422b7ec?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">sandy</media:title>
		</media:content>
	</item>
	</channel>
</rss>