<?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/"
	>

<channel>
	<title>Ruchit Surati&#039;s blog &#187; Web Development</title>
	<atom:link href="http://www.ruchitsurati.net/index.php/category/web-development/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.ruchitsurati.net</link>
	<description>thoughts and ideas of a .net developer</description>
	<lastBuildDate>Wed, 23 Feb 2011 19:48:23 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.5</generator>
		<item>
		<title>Building ASP.Net Applications &#8211; Best practices</title>
		<link>http://www.ruchitsurati.net/index.php/2011/02/18/building-asp-net-best-practices/</link>
		<comments>http://www.ruchitsurati.net/index.php/2011/02/18/building-asp-net-best-practices/#comments</comments>
		<pubDate>Fri, 18 Feb 2011 12:05:05 +0000</pubDate>
		<dc:creator>Ruchit</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://www.ruchitsurati.net/?p=496</guid>
		<description><![CDATA[ASP.Net has come a long way and it is by far the most widely accepted development platform (no offense to php, you have your own place..). I have been using it since long and I just love it. This post is about my best practices while working on an ASP.Net project. Web applications are more [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">ASP.Net has come a long way and it is by far the most widely accepted development platform (no offense to php, you have your own place..). I have been using it since long and I just love it. This post is about my best practices while working on an ASP.Net project. Web applications are more performance conscious compared to a native windows client app. You need to take care of many aspects before you actually call it a performing production-grade web-application. Here, I have published a non-exhaustive set of my best practices.</p>
<p style="text-align: justify;"><strong>Create a common base page for all your asp.net pages.</strong> This page will derive from System.Web.UI.Page and you may put this under YourApp.Web.UI custom namespace. Let all your asp.net pages derive from YourApp.Web.UI.PageBase class. This can reduce a lot of pain when it comes to changing a common behavior or functional aspects across all pages in your application. Like exposing common properties and methods that are used across all the pages.</p>
<pre class="brush: csharp; title: ;">
public class PageBase : System.Web.UI.Page
{
    public PageBase()
    {
        this.Load += new EventHandler(PageBase_Load);
    }

    protected string LoggedInUserName {get;private set;}

    void PageBase_Load(object sender, EventArgs e)
    {
        //Set the LoggedInUserName here, that all pages can access.
    }
}
</pre>
<p style="text-align: justify;"><strong>Use Application_OnError handler to gracefully handle any orphan exceptions.</strong> In medium to large size projects, you will have many developers working on the same project, and as a team-lead or module-lead, you are not going to have the scope to check if all developers are dealing with exceptions meticulously. The uncaught orphan exceptions cause the <em><strong>Yellow Screen of death</strong></em>, crash your application and client will see all the things that he or she should not see. Use Application_OnError event within the global.asax where all those nasty unattended exceptions will land up. From here, you can log the exception and notify respective authorities about the error. This will also help you trace back to the piece of code that caused this. You can makr the exception as Handled and show a standard error page to the client telling him &#8211; &#8220;something went wrong, we will fix it soon. Click here to continue&#8221; or something like that that does not ruin the reputation of your application.</p>
<p style="text-align: justify;"><strong>Use MembershipProvider and RoleProvider. And Never use inbuilt ProfileProvider</strong> &#8211; Many developers are totally ignorant about the using the providers that shipped with ASP.Net 2.0. We use them heavily and it takes care of our entire user and roles management mechanism leaving us with more time to focus on the actual application. I recommend not to use the inbuilt ProfileProvider since I do not like the way they store the information (They store everything in plain strings.). This could slow down the performance of your application when you have large number of users. We have written our own custom MembershipProvider and RoleProvider and they just work great.</p>
<p style="text-align: justify;"><strong>Use Firebug for client-side debugging.</strong> In web development, the tools that you use for development also make a great difference. The rendered mark-up is loaded on the client-side browser where you need to inspect the elements in the DOM and its attributes. Firebug is a boon to web-developers. It knows what you need before you ask. Les you inspect an element with all details that you may ever want to know. Firebug also has YSlow extension which can evaluate the performance-rank of your web-page and advise you on how to improve it.</p>
<p><a href="http://getfirebug.com/whatisfirebug"><img class="size-medium wp-image-499 alignnone" title="firebug" src="http://www.ruchitsurati.net/wp-content/uploads/2011/02/firebug-300x144.png" alt="" width="300" height="144" /></a></p>
<p style="text-align: justify;"><strong>Use jQuery for client-scripting.</strong> jQuery is one of the most essential part of any web application, be it any platform. It has changed the way we script for clients. It has established a standard for client scripting. I have to make sure in any web application project that I work on, I must have at least one cool jQuery ninja programmer within the team. Try it and you will understand what you have been missing till date.</p>
<p><a href="http://www.ruchitsurati.net/wp-content/uploads/2011/02/jquery-logo1.png"><img class="alignnone size-full wp-image-533" title="jquery-logo" src="http://www.ruchitsurati.net/wp-content/uploads/2011/02/jquery-logo1.png" alt="" width="175" height="175" /></a></p>
<p style="text-align: justify;"><strong>Never store User Authentication information in session</strong> or do not use sessions to judge if user is logged on. Every asp.net request carries an HttpCookie for authentication and if you are using FormsAuthentication,you will find all authentication information within the Page object itself. Store only minimum necessary information in sessions.</p>
<p style="text-align: justify;"><strong>Disable ViewState where you dont need it.</strong> In a page if the UIobject does not need to retain the state across post-backs, just disable the viewstate for the object by setting <em>EnableViewState </em>property to false. At times you may want to disable the viewstate for an entire page. You will soon figure out the page loading faster consuming less bytes of data to transport.</p>
<p style="text-align: justify;"><strong>Never ever Deploy asp.net application under debug configuration on production. </strong>To me this is a crime. You can never ever deploy a build with debug symbols or config. This is valid for any sort of .Net project whose end-output is a .Net assembly. SottGu has written a <a href="http://weblogs.asp.net/scottgu/archive/2006/04/11/Don_1920_t-run-production-ASP.NET-Applications-with-debug_3D001D20_true_1D20_-enabled.aspx">nice post</a> on this as to why you should not do this.</p>
<p style="text-align: justify;"><strong>User Web Deployment projects.</strong> I love simple and compact things. Web Deployment project can compile and merge all your code-behind classes and the classes in app_code into one single project output assembly which you just need to put in the bin directory of deployment. It can transform web.config sections and replace with production server settings during post compilation phase. I have seen projects with 200 pages and their individual assemblies being deployed in bin which means you have a big assembly mess in the bin directory. How about summing them all up in single assembly ? <a href="http://msdn.microsoft.com/en-us/magazine/cc163448.aspx" target="_blank">Web deployment projects</a> is just worth for this single feature.</p>
<p style="text-align: justify;"><strong>Use Cookie-less domains to serve static resources</strong> like images, scripts, styles etc. Each client request brings along a whole bunch of cookies, that you do not need while serving pictures or scripts from server. So host those resources on a cookie-less domain. We have a sub-domain setup to serve cookie-less resources. So we host all our images and scripts on the sub-domain. and from the primary application we just point the resource by its url on the sub-domain. We make sure sub-domain remains cookie-free by not serving any dynamic script on that domain or by creating any asp.net or php sessions. If you dont write cookies from domain, the domain will be cookie-less.</p>
<p style="text-align: justify;"><strong>Minify scripts, stylesheets and HTML responses</strong> from the server. Markups and scripts are meant for browser engine and they never need to be in readable format post-production. Removing unnecessary line-breaks and white-spaces can improve the time-to-load and bandwidth optimization.</p>
<p style="text-align: justify;">These are the few important things, that I must do in any web application. I am sure you would have your own tricks of the trade that others can benefit from. Please feel free to throw in your ideas and techniques for writing well-performing asp.net applications, in comments to this post.</p>
<p>
<script type="text/javascript"><!--
google_ad_client = "ca-pub-3020293614675538";
/* 300x250, created 14-July-2010 */
google_ad_slot = "4146580937";
google_ad_width = 300;
google_ad_height = 250;
//-->
</script><br />
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ruchitsurati.net/index.php/2011/02/18/building-asp-net-best-practices/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Yet another Shopping Cart for Classic ASP</title>
		<link>http://www.ruchitsurati.net/index.php/2008/08/29/yet-another-shopping-cart-for-classic-asp/</link>
		<comments>http://www.ruchitsurati.net/index.php/2008/08/29/yet-another-shopping-cart-for-classic-asp/#comments</comments>
		<pubDate>Fri, 29 Aug 2008 23:58:02 +0000</pubDate>
		<dc:creator>Ruchit</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[classic-asp]]></category>
		<category><![CDATA[shopping-cart]]></category>

		<guid isPermaLink="false">http://www.ruchitsurati.net/post.aspx?id=8072637a-6c4c-4efd-b278-8db22e421374</guid>
		<description><![CDATA[Like my previous Paging component, I wrote this shopping cart component during my classic ASP days. Nothing was so easily feasible in classic ASP. Complex applications needed to be developed as COM components and the DLL required to be registered on the deployment platform. Ahhh, we all can imagine the pain. This is a very [...]]]></description>
			<content:encoded><![CDATA[<p>Like my previous Paging component, I wrote this shopping cart component during my classic ASP days. Nothing was so easily feasible in classic ASP. Complex applications needed to be developed as COM components and the DLL required to be registered on the deployment platform. Ahhh, we all can imagine the pain.</p>
<p>This is a very light-weight Session-driven shopping cart written in VBScript. You can download the Shopping Cart from <a title="Shopping Cart Demo" href="http://ruchitsurati.net/CodeBase/CCart/CartManager.asp" target="_blank">here</a> and plug-n-play in your classic ASP applications.</p>
<p><a title="Shopping Cart Demo" rel="tag" href="http://demo.ruchitsurati.net/CodeBase/CCart/CartManager.asp" target="_blank">Shopping Cart Demo</a></p>
<p><a title="Download Shopping Cart Component" rel="enclosure" href="http://demo.ruchitsurati.net/CodeBase/CCart/ShoppingCart.zip" target="_blank">Download Shopping Cart Example with Source (8KB</a>)</p>
<p><strong>Screen-Shots</strong></p>
<p>Shopping-Cart</p>
<p><a href="http://ruchitsurati.net/myfiles/classic-asp-cart.jpg"><img style="border: 0px;" src="http://ruchitsurati.net/myfiles/classic-asp-cart.jpg" border="0" alt="shopping cart" width="534" height="205" /></a></p>
<p>Shopping-Cart Statistics</p>
<p><a href="http://ruchitsurati.net/myfiles/classic-asp-cart-2.jpg"><img style="border: 0px;" src="http://ruchitsurati.net/myfiles/classic-asp-cart-2.jpg" border="0" alt="shopping-cart stats" width="501" height="222" /></a></p>
<p>The example code includes the basic operations of shopping cart to let you understand how to add/update/delete items in cart. The unique key to any item in cart is the product-code or item-code. If an item or product is being added to cart and if any item in cart with same product/item-code already exists then the quantity of the item in cart will be increased by 1.</p>
<p>You also have option for cart statistics which you can use on every page to display the current cart stats. You can modify the look and feel the way you want as per your page layout and structure.</p>
<p>Thanks.</p>
<p>Ruchit S.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ruchitsurati.net/index.php/2008/08/29/yet-another-shopping-cart-for-classic-asp/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Coolite &#8211; ExtJs For ASP.NET 2.0</title>
		<link>http://www.ruchitsurati.net/index.php/2008/04/23/coolite-extjs-for-asp-net-2-0/</link>
		<comments>http://www.ruchitsurati.net/index.php/2008/04/23/coolite-extjs-for-asp-net-2-0/#comments</comments>
		<pubDate>Wed, 23 Apr 2008 01:44:27 +0000</pubDate>
		<dc:creator>Ruchit</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[asp.net]]></category>
		<category><![CDATA[extjs]]></category>

		<guid isPermaLink="false">http://www.ruchitsurati.net/post.aspx?id=0ad46792-1234-4eba-96bd-a7a5d7c175eb</guid>
		<description><![CDATA[A marriage of server-side and client-side frameworks. For all ASP.NET developers, the great news is that the very reach js framework for building RIA is now bound into a set of ASP.NET web controls.&#160; Coolite Toolkit is an Ext official suite of ASP.NET Web Controls based on the Ext JavaScript Framework. Coolite, Inc. collaborates with [...]]]></description>
			<content:encoded><![CDATA[<p> <br />
<blockquote>A marriage of server-side and client-side frameworks. </p></blockquote>
<p> 
<p>For all ASP.NET developers, the great news is that the very reach js framework for building RIA is now bound into a set of ASP.NET web controls.&nbsp; Coolite Toolkit is an Ext official suite of ASP.NET Web Controls based on the Ext JavaScript Framework. Coolite, Inc. collaborates with ExtJS, LLC. The suite of web controls are (being) built with a focus on bringing full Visual Studio Design-Time support to the Ext JavaScript Framework. </p>
<p>You can visit the ExtJs examples page <a href="http://www.extjs.com/deploy/dev/examples/samples.html" target="_blank">here</a> to experience the capabilities of ExtJs. As you read this, Coolite is at version 0.4 and ships with these controls.</p>
<table style="width: 400px" cellspacing="2" cellpadding="2" width="400" border="0">
<tbody>
<tr>
<td valign="top" width="200"><strong>Rich Blocks</strong></td>
<td valign="top" width="200"><strong>Form Controls</strong></td>
</tr>
<tr>
<td valign="top" width="200"> 
<ul>
<li>TabPanel
<li>Panel
<li>Window
<li>AjaxLoad
<li>Specialized ScriptManager
<li>ScriptContainer
<li>Store </li>
</ul>
</td>
<td valign="top" width="200"> 
<ul>
<li>Button
<li>Calendar
<li>Checkox
<li>DatePicker
<li>FieldSet
<li>HtmlEditor
<li>NumberTextBox
<li>RadioButton
<li>TextArea
<li>TextBox </li>
</ul>
</td>
</tr>
</tbody>
</table>
<p>&nbsp; <br />Developers using Coolite Toolkit benefit from features including: </p>
<ul>
<li>Powerful integration of the Ext JavaScript Framework.
<li>Full Design-Time support in Microsoft Visual Studio 2005 &amp; 2008 and Visual Web Developer 2005 &amp; 2008.
<li>Drag-and-drop ease of use.
<li>Current support for Window, Panel and a many Form Controls including DatePicker, Calendar and HtmlEditor.
<li>New Controls being added weekly.
<li>Dual Licensed (LGPL 3.0 and Coolite Commercial License).
<li>Professional support options available shortly. </li>
</ul>
<p>You can just refer the Assembly in your <strong>\bin</strong> folder of website and additionally stick the controls to appear on your toolbox. You can check out the ExtJs Coolite ASP.NET Server Controls examples <a href="http://www.coolite.com/examples/" target="_blank">here</a> and say wow!
<p>Check out some more stunning examples here..</p>
<p><a href="http://sandbox.coolite.com/ViewPort.aspx" target="_blank">here</a> , <a href="http://www.coolite.com/examples/tabpanel/fixed-height-with-options.aspx" target="_blank">here</a> and <a href="http://sandbox.coolite.com/SimpleLayout.aspx" target="_blank">here</a>.</p>
<p>Happy Programming!</p>
<p>Ruchit S. </p>
]]></content:encoded>
			<wfw:commentRss>http://www.ruchitsurati.net/index.php/2008/04/23/coolite-extjs-for-asp-net-2-0/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mobile Web Server &#8211; An Apache port to Symbian Platform</title>
		<link>http://www.ruchitsurati.net/index.php/2008/01/29/mobile-web-server-an-apache-port-to-symbian-platform/</link>
		<comments>http://www.ruchitsurati.net/index.php/2008/01/29/mobile-web-server-an-apache-port-to-symbian-platform/#comments</comments>
		<pubDate>Tue, 29 Jan 2008 05:52:25 +0000</pubDate>
		<dc:creator>Ruchit</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[mobile-application]]></category>
		<category><![CDATA[symbian]]></category>
		<category><![CDATA[web-server]]></category>

		<guid isPermaLink="false">http://www.ruchitsurati.net/post.aspx?id=2fd0998a-19b0-4c0b-b80c-c22f8b189155</guid>
		<description><![CDATA[Yes, you&#8217;ve got it right. The first ever HTTP web server for mobiles and it does all you can expect, in fact it does more then what you expect. Nokia Beta Labs has come up with a Web Server for Mobile phones. The first working prototype was deployed in October, 2007 and I&#8217;ve been chasing [...]]]></description>
			<content:encoded><![CDATA[<p>Yes, you&#8217;ve got it right. The first ever HTTP web server for mobiles and it does all you can expect, in fact it does more then what you expect. Nokia Beta Labs has come up with a Web Server for Mobile phones. The first working prototype was deployed in October, 2007 and I&#8217;ve been chasing the project for every bit of it so far. Currently you have the version 1.2 Beta released on their <a title="Mobile Web Server - Official Web-site" href="http://mymobilesite.net/" target="_blank">web-site</a>. Basically, it&#8217;s an Apache port to Symbian platform and the web-server is deployed as a Symbian application which comes as a SIS file package.</p>
<p>I will blog about this as a series of posts, with this being the Part I itself. In this post, I will have you installed your first working mobile web server and provide you with features and functions. Later parts will include the architecture, how it works, the application areas and will try to elaborate more useful information and details on the web-server. So, here we go..</p>
<h3>Getting Started:</h3>
<p>To start with it, you must register and you can do so by filling up the form at this <a title="Mobile Web Server Registration" href="https://secure.mymobilesite.net/register/" target="_blank">location</a>. You must choose a valid and available Sub-Domain name for making your cell-phone uniquely reachable on the internet. Like mine is <strong>ruchit</strong>.mymobilesite.net and you can hit to the web-server running on my cell-phone by typing this URL in any web-browser, anywhere in the world. So, please choose a good name as well. The web-server can host CGI applications on py60 (Python for S60), static HTML web-pages and it comes with pre-bundled application with basic services which you can access at your URL, which in my case is <a href="http://ruchit.mymobilesite.net">http://ruchit.mymobilesite.net</a> , as I said earlier. Once you&#8217;ve reserved a unique location on the web for your Cell-Phone + Web-Server, you can download the web-server and install it on your cell-phone. You can download the server from <a title="Mobile Web Server - Download" href="http://mymobilesite.net/download/" target="_blank">here</a>. You can use Nokia PC suite to install the server application. After installation, your application menu should display with the icon of the server like this..</p>
<p><a href="http://www.ruchitsurati.net/myfiles/mobile-web-server.jpg"><img style="border: 0px;" src="http://www.ruchitsurati.net/myfiles/mobile-web-server.jpg" border="0" alt="webservericon" /></a></p>
<p>Now, start the application by clicking on the icon and you should see the main application menu. Now, our objective is to let the server know is identity by binding it to the respective URL, in my case as you know it&#8217;d be <a href="http://ruchit.mymobilesite.net">http://ruchit.mymobilesite.net</a>. When you run it for the first time, it will detect it as fresh installation and will prompt you to punch in the most basic details to let itself bind it to a unique Internet location. You can download the <a title="Mobile Web Server - User Guide" href="http://mymobilesite.net/files/MobileWebServer_UG_en_v12.pdf" target="_blank">User Manual</a> from the web-site in order to complete the installation and play around with it in more details. Once you&#8217;ve started the server successfully you should see this screen on your mobile.</p>
<p><a href="http://www.ruchitsurati.net/myfiles/mobile-web-server-2.jpg"><img style="border: 0px;" src="http://www.ruchitsurati.net/myfiles/mobile-web-server-2.jpg" border="0" alt="webserver1" /></a></p>
<p>And yes, Symbian S60 2nd and 3rd edition phones have multitasking capabilities, so you can let this server be running in background continue working as normal. Phone like N95 and higher E series phones, have floating point units, which makes it a breeze.</p>
<h3>Features and Functions:</h3>
<p>You/Anybody can access your Web-Server by typing the associated unique URL, you gained as part of your registration process. You can have administrator logging into your cell-phone or you can entertain guest users as well. They will have following features accessible.</p>
<p><strong>Camera:</strong> The person logged in can access your camera. The person can take pictures by clicking a single button and he can watch it straight on the browser and he can save that picture on local desktop. He can&#8217;t have the video streaming as this way beyond the scope of possibilities, demanding good amount of resources. Yes, you can think of real good ideas to tap on this feature. Like, you can so immediate sharing or remote cam kind of solution.</p>
<p><strong>Web Chat:</strong> You can chat with the cell-phone owner in real time with his approval. It supports some smileys  too.</p>
<p><strong>Messaging:</strong> You can send a single message to the cell-phone owner like a quick-drop message for owner&#8217;s information or for any other important stuff.</p>
<p><strong>Calendar:</strong> You can access person&#8217;s calendar entries right in the browser. You can manipulate them if you&#8217;ve enough rights or you can add one. How about adding your birth-day in your friends mobile without his knowledge and check back his expressions, thinking when reminded, &#8220;Hey, I never did it!&#8221;</p>
<p><strong>Phone Log:</strong> You can access owner&#8217;s Dialed Calls&#8217; Logs, Received Calls&#8217; Logs and Missed Calls&#8217; Logs in real time.</p>
<p><strong>Presence:</strong> You can view cell-phone&#8217;s status and availability information, on which the web-server is running. You can learn, if an active call is ongoing or what&#8217;s battery level of the server phone or even the data bearer of the web-server, either EDGE, 3G or WLAN.</p>
<p><strong>Send SMS:</strong> You can send an SMS to any-other cell-phone number from the web. This will be charged into owner&#8217;s telco. account.</p>
<p><strong>GuestBook:</strong> You can fill up the guest book of the owner, if you like.</p>
<p><strong>Contacts:</strong> You can access owner&#8217;s phone book on the web and manipulate, If you&#8217;ve got enough rights. How about checking a number you need without bothering your friend by asking, &#8220;Hey, do you have this guy&#8217;s number?&#8221;.</p>
<p><strong>Gallery:</strong> You will have access to owner&#8217;s pictures album both on phone memory and external memory facilities.</p>
<p>Well, there are more other exciting features like blogging, contact me and etc. You can check out and download the latest version at <a href="http://www.mymobilesite.net">http://www.mymobilesite.net</a>. Feel free to comment or write to me on my email <a href="mailto:ruchit@ruchitsurati.net">ruchit@ruchitsurati.net</a>. Please mark the subject as &#8216;<strong>Mobile Web Server</strong>&#8216;. More information on Mobile Web Server will follow this post in later posts. Till then Cheers!</p>
<p>Get Ready for the next generation of connected applications. It&#8217;s not that shallow as it seems. There&#8217;s lot more to it.</p>
<p>- Ruchit S.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ruchitsurati.net/index.php/2008/01/29/mobile-web-server-an-apache-port-to-symbian-platform/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Windows Live messenger, Straight in your Blog &#8211; A smart and Free Live-Chat solution.</title>
		<link>http://www.ruchitsurati.net/index.php/2008/01/25/windows-live-messenger-straight-in-your-blog-a-smart-and-free-live-chat-solution/</link>
		<comments>http://www.ruchitsurati.net/index.php/2008/01/25/windows-live-messenger-straight-in-your-blog-a-smart-and-free-live-chat-solution/#comments</comments>
		<pubDate>Fri, 25 Jan 2008 18:57:19 +0000</pubDate>
		<dc:creator>Ruchit</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[windows-live]]></category>

		<guid isPermaLink="false">http://www.ruchitsurati.net/post.aspx?id=47c8293d-13b3-47b8-b962-fe4ce26a8314</guid>
		<description><![CDATA[Recently, Windows Live team at Microsoft has released a light-weight, web page control for Windows Live messenger. Once plugged into your website&#8217;s page, visitor&#8217;s can spot if you&#8217;re online and no matter they have a LiveID or not, they can start a live chat session if you&#8217;re online in your Windows Live messenger at your [...]]]></description>
			<content:encoded><![CDATA[<p>Recently, Windows Live team at Microsoft has released a light-weight, web page control for Windows Live messenger. Once plugged into your website&#8217;s page, visitor&#8217;s can spot if you&#8217;re online and no matter they have a LiveID or not, they can start a live chat session if you&#8217;re online in your Windows Live messenger at your local desk or workstation. Like, I&#8217;ve put the control/gadget in my blog post, you can also have one in your blog or website. Yes, it is a real good alternate for your Live Chat Solution, quite amazing, right !!!</p>
<p align="center">
<p><iframe style="border-right: black 1px solid; border-top: black 1px solid; border-left: black 1px solid; width: 300px; border-bottom: black 1px solid; height: 300px" src="http://settings.messenger.live.com/Conversation/IMMe.aspx?invitee=24f226172ef6427d@apps.messenger.live.com&amp;mkt=en-US&amp;useTheme=true&amp;foreColor=333333&amp;backColor=DCF2E5&amp;linkColor=333333&amp;borderColor=8ED4AB&amp;buttonForeColor=2C0034&amp;buttonBackColor=CFE9D9&amp;buttonBorderColor=8ED4AB&amp;buttonDisabledColor=CFE9D9&amp;headerForeColor=006629&amp;headerBackColor=92D6AE&amp;menuForeColor=006629&amp;menuBackColor=FFFFFF&amp;chatForeColor=333333&amp;chatBackColor=F4FBF7&amp;chatDisabledColor=F6F6F6&amp;chatErrorColor=760502&amp;chatLabelColor=6E6C6C" frameborder="0" width="300" height="300"></iframe></p>
<p align="center">&nbsp;</p>
<p align="left">My Windows Live IM Gadget code.</p>
<div style="border-right: gray 1px solid; padding-right: 4px; border-top: gray 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: gray 1px solid; width: 97.4%; cursor: text; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; font-family: consolas, 'Courier New', courier, monospace; height: 51px; background-color: #f4f4f4">
<div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060">   1:</span> <span style="color: #0000ff">&lt;</span><span style="color: #800000">iframe</span> <span style="color: #ff0000">src</span><span style="color: #0000ff">="http://settings.messenger.live.com/Conversation/IMMe.aspx?invitee=24f226172ef6427d@apps.messenger.live.com&amp;mkt=en-US&amp;useTheme=true&amp;foreColor=333333&amp;backColor=DCF2E5&amp;linkColor=333333&amp;borderColor=8ED4AB&amp;buttonForeColor=2C0034&amp;buttonBackColor=CFE9D9&amp;buttonBorderColor=8ED4AB&amp;buttonDisabledColor=CFE9D9&amp;headerForeColor=006629&amp;headerBackColor=92D6AE&amp;menuForeColor=006629&amp;menuBackColor=FFFFFF&amp;chatForeColor=333333&amp;chatBackColor=F4FBF7&amp;chatDisabledColor=F6F6F6&amp;chatErrorColor=760502&amp;chatLabelColor=6E6C6C"</span> <span style="color: #ff0000">width</span><span style="color: #0000ff">="300"</span> <span style="color: #ff0000">height</span><span style="color: #0000ff">="300"</span> <span style="color: #ff0000">style</span><span style="color: #0000ff">="border: solid 1px black; width: 300px; height: 300px;"</span> <span style="color: #ff0000">frameborder</span><span style="color: #0000ff">="0"</span><span style="color: #0000ff">&gt;&lt;/</span><span style="color: #800000">iframe</span><span style="color: #0000ff">&gt;</span></pre>
</div>
</div>
<style type="text/css">.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; }
</style>
<p align="left">My Windows Live IM Button Gadget code.</p>
<div style="border-right: gray 1px solid; padding-right: 4px; border-top: gray 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: gray 1px solid; width: 97.5%; cursor: text; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4">
<div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060">   1:</span> <span style="color: #0000ff">&lt;</span><span style="color: #800000">script</span> <span style="color: #ff0000">type</span><span style="color: #0000ff">="text/javascript"</span> <span style="color: #ff0000">src</span><span style="color: #0000ff">="http://settings.messenger.live.com/controls/1.0/PresenceButton.js"</span><span style="color: #0000ff">&gt;&lt;/</span><span style="color: #800000">script</span><span style="color: #0000ff">&gt;</span>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060">   1:</span>&nbsp; </pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #606060">   2:</span> &lt;div</pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060">   3:</span>   id=<span style="color: #006080">"Microsoft_Live_Messenger_PresenceButton_24f226172ef6427d"</span></pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #606060">   4:</span>   msgr:width=<span style="color: #006080">"100"</span></pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060">   5:</span>   msgr:backColor=<span style="color: #006080">"#92D6AE"</span></pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #606060">   6:</span>   msgr:altBackColor=<span style="color: #006080">"#FFFFFF"</span></pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060">   7:</span>   msgr:foreColor=<span style="color: #006080">"#424542"</span></pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #606060">   8:</span>   msgr:conversationUrl=<span style="color: #006080">"http://settings.messenger.live.com/Conversation/IMMe.aspx?invitee=24f226172ef6427d@apps.messenger.live.com&amp;mkt=en-US&amp;useTheme=true&amp;foreColor=333333&amp;backColor=DCF2E5&amp;linkColor=333333&amp;borderColor=8ED4AB&amp;buttonForeColor=2C0034&amp;buttonBackColor=CFE9D9&amp;buttonBorderColor=8ED4AB&amp;buttonDisabledColor=CFE9D9&amp;headerForeColor=006629&amp;headerBackColor=92D6AE&amp;menuForeColor=006629&amp;menuBackColor=FFFFFF&amp;chatForeColor=333333&amp;chatBackColor=F4FBF7&amp;chatDisabledColor=F6F6F6&amp;chatErrorColor=760502&amp;chatLabelColor=6E6C6C"</span>&gt;&lt;/div&gt;</pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060">   9:</span> &lt;script type=<span style="color: #006080">"text/javascript"</span> src=<span style="color: #006080">"http://messenger.services.live.com/users/24f226172ef6427d@apps.messenger.live.com/presence?mkt=en-US&amp;cb=Microsoft_Live_Messenger_PresenceButton_onPresence"</span>&gt;</pre>
<p><span style="color: #0000ff">&lt;/</span><span style="color: #800000">script</span><span style="color: #0000ff">&gt;</span></pre>
</div>
</div>
<p align="left">&nbsp;<br />Now, This is how you do it in your web-site or blog..</p>
<p align="left">You can visit this link and get the snippet which you shall put in desired part of your web page. Apart from the IM Control, you&#8217;ve got options for putting IM button or IM status Icon. You can find my IM button in Left-bar area.</p>
<blockquote>
<p align="left"><a title="http://settings.messenger.live.com/Applications/CreateHtml.aspx" href="http://settings.messenger.live.com/Applications/CreateHtml.aspx">http://settings.messenger.live.com/Applications/CreateHtml.aspx</a></p>
</blockquote>
<p align="left">The next thing, is to authorize your messenger status to be displayed on web pages. This is as simple as it gets. You can do so on this link.</p>
<blockquote>
<p align="left"><a title="http://settings.messenger.live.com/Applications/WebSettings.aspx" href="http://settings.messenger.live.com/Applications/WebSettings.aspx">http://settings.messenger.live.com/Applications/WebSettings.aspx</a></p>
</blockquote>
<p align="left">That&#8217;s it, Now you can run/view this page in your web browser. Surprised!</p>
<p align="left">Note that, You&#8217;ll end up having a dumb and non-working messenger gadget in your web page if you&#8217;ve not done the authorization.</p>
<p align="left">This gadget has been built upon using Script# framework from Nikhil Kothari from Microsoft. You can visit the project page <a title="Script# Project" href="http://projects.nikhilk.net/Projects/ScriptSharp.aspx" target="_blank">here</a>. Script# is a C# based development platform which when compiled generates JavaScript code instead of IL. Sounds cool, right? Well, it&#8217;s more than that. You can visit the project page and get started with Script#.</p>
<p align="left">&nbsp;</p>
<p align="left">Cheers!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ruchitsurati.net/index.php/2008/01/25/windows-live-messenger-straight-in-your-blog-a-smart-and-free-live-chat-solution/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Yet Another Paging Component For Classic ASP</title>
		<link>http://www.ruchitsurati.net/index.php/2007/08/10/yet-another-paging-component-for-classic-asp/</link>
		<comments>http://www.ruchitsurati.net/index.php/2007/08/10/yet-another-paging-component-for-classic-asp/#comments</comments>
		<pubDate>Fri, 10 Aug 2007 01:56:00 +0000</pubDate>
		<dc:creator>Ruchit</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[classic-asp]]></category>
		<category><![CDATA[paging]]></category>

		<guid isPermaLink="false">http://www.ruchitsurati.net/post.aspx?id=99ffb065-9bfa-483f-b36c-60a7258c60a1</guid>
		<description><![CDATA[I had developed this Paging Component for Classic ASP/ASP 3.0 few years back. Click here to see working example of my paging component. You are free to download and use in your classic ASP application the way you want. You can also modify the code but just put a link back to this blog for [...]]]></description>
			<content:encoded><![CDATA[<p><!-- google_ad_section_start --></p>
<p><span style="font-size: medium;">I</span> had developed this Paging Component for Classic ASP/ASP 3.0 few years back. <a title="Paging Example" href="http://ruchitsurati.net/CodeBase/Pager/PagingDemo.asp" target="_blank">Click here</a> to see working example of my paging component. You are free to download and use in your classic ASP application the way you want. You can also modify the code but just put a link back to this blog for credits in source.</p>
<p><script type="text/javascript">// <![CDATA[
 google_ad_client = "pub-3020293614675538"; google_ad_width = 468; google_ad_height = 60; google_ad_format = "468x60_as"; google_ad_type = "image"; google_ad_channel = ""; google_color_border = "EAEADA"; google_color_bg = "F7F7F2"; google_color_link = "555544"; google_color_text = "000000"; google_color_url = "E6E6E6"; google_ui_features = "rc:0";
// ]]&gt;</script><br />
<script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript">
</script></p>
<p><code><a title="Download Pager Source and Example" href="http://demo.ruchitsurati.net/CodeBase/Pager/Pager.zip" target="_blank">Download Pager Source With Example - (27 KB)</a> </code></p>
<p><code>usage</code></p>
<p><code><span style="font-family: 'courier new', courier;"> </span></p>
<p>&lt;%</p>
<p><span style="font-family: 'courier new', courier;"> Dim MPager</span></p>
<p>set MPager = New Pager</p>
<p>MPager.Script_Name = "PagingDemo.asp"</p>
<p>MPager.Total_Items = rs_country.recordcount</p>
<p>MPager.PageSize = rows*cols</p>
<p>MPager.Style = "class=""displaylist""" <span class="style1"> </span></p>
<p>MPager.HStyle = "class=""blackspace""" <span class="style1"> </span></p>
<p>MPager.Synchronize<span class="style1"> </span></p>
<p><span style="font-family: 'comic sans ms', sand;"><span style="font-family: 'courier new', courier;"> MPager.DisplayAll</span></span></p>
<p><span style="font-family: 'courier new', courier;"><em>' Check out Source for Comments and examples. </em></span></p>
<p><span style="font-family: 'comic sans ms', sand;"><span style="font-family: 'courier new', courier;">%&gt;</span></span></p>
<p><a title="Download Pager Source and Example" href="http://demo.ruchitsurati.net/CodeBase/Pager/Pager.zip" target="_blank">Download Pager - (27 KB)</a></p>
<p><a title="Paging Example" href="http://demo.ruchitsurati.net/CodeBase/Pager/PagingDemo.asp" target="_blank">Run Pager Example</a></p>
<p>Example Screen Shot</p>
<p><a href="http://ruchitsurati.net/CodeBase/Pager/PagingDemo.asp" target="_blank"><img title="Paging Demo Screenshot" src="http://www.ruchitsurati.net/myfiles/pager.jpg" alt="Paging Demo Screenshot" width="520" height="216" /></a><br />
Thanks.</p>
<p></code></p>
<p>Happy Coding..</p>
<p>Ruchit S.</p>
<p><!-- google_ad_section_end --></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ruchitsurati.net/index.php/2007/08/10/yet-another-paging-component-for-classic-asp/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

