<?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>Seree Woradechjamroen &#187; Application Development</title>
	<atom:link href="http://www.iamseree.com/category/application-development/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.iamseree.com</link>
	<description>Keep learning everyday, willing to win and take action</description>
	<lastBuildDate>Fri, 23 Jul 2010 16:58:11 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Complete Guide to use IoC with ASP.NET MVC (Using Castle Windsor and MVCContrib) Part #1</title>
		<link>http://www.iamseree.com/application-development/complete-guide-to-use-ioc-with-asp-net-mvc-using-castle-windsor-and-mvccontrib-part-1/</link>
		<comments>http://www.iamseree.com/application-development/complete-guide-to-use-ioc-with-asp-net-mvc-using-castle-windsor-and-mvccontrib-part-1/#comments</comments>
		<pubDate>Fri, 11 Dec 2009 05:14:44 +0000</pubDate>
		<dc:creator>Seree</dc:creator>
				<category><![CDATA[Application Development]]></category>
		<category><![CDATA[asp.net mvc]]></category>
		<category><![CDATA[castle windsor]]></category>
		<category><![CDATA[inversion of control]]></category>
		<category><![CDATA[ioc]]></category>
		<category><![CDATA[mvccontrib]]></category>

		<guid isPermaLink="false">http://www.iamseree.com/application-development/complete-guide-to-use-ioc-with-asp-net-mvc-using-castle-windsor-and-mvccontrib-part-1/</guid>
		<description><![CDATA[Hi guys, Today I’m going to share with you if you get stuck trying to learn IoC and implement it into your own ASP.NET MVC application. I’ll not going to write a deep content about IoC but somehow I will share the short brief of the concept of IoC and how you can easily implement ...]]></description>
			<content:encoded><![CDATA[<p>Hi guys,</p>
<p>Today I’m going to share with you if you get stuck trying to learn IoC and implement it into your own ASP.NET MVC application.</p>
<p>I’ll not going to write a deep content about IoC but somehow I will share the short brief of the concept of IoC and how you can easily implement IoC in your ASP.NET MVC application using MVCContrib.</p>
<p>First of all, let’s share together what is IoC? and what it is for?</p>
<p>IoC stands for “Inversion of Control” which sometime it had been named as DI or “Dependency Injection”.</p>
<p>Actually, both is the same, just a different name.</p>
<p>IoC or DI is the concept that looks like how you code your application to make it support for plug-in architecture.</p>
<p>Such as the old days WinAmp which it can output multiple result from audio files such as…</p>
<ul>
<li>Output a sound to speaker (playing music)</li>
<li>Output a sound to MP3 (encoding)</li>
<li>Output a sound to WAV (decoding)</li>
</ul>
<p>and blah blah blah…</p>
<p>There are several plug-ins for WinAmp as a DLL, when you need some new to make WinAmp to output to, you just coding a new DLL and implement what you want there.</p>
<p>This way, when you code the main app, you will never know or never care of what the output will do, it (main app) just output the sound stream to the output plug-in.</p>
<p>This is a good pattern and fit for ASP.NET MVC approach as it’s a real separation-of-concern.</p>
<p>And here is a snippet code of how you can implement this type of application. (plug-in enabled)</p>
<p>- Create an Interface for the output such as …<br />
[csharp]</p>
<p>public interface IPlayerOutput<br />
{<br />
void Play(byte[] soundStream);</p>
<p>void Pause();</p>
<p>void Resume();</p>
<p>void Stop();<br />
}<br />
[/csharp]<br />
- In the main app, you should add reference to IPlayerOutput interface and using it like this…<br />
public void btnPlayClicked(object sender)</p>
<p>{</p>
<p>IPlayerOutput *output = new XXX; //Replace XXX with the code to create an instance of the chosen plug-in – usually populate from .DLL files within the output plug-in folder</p>
<p>output.Play(YYY); //Replace YYY with a stream of audio file</p>
<p>}<br />
- This way, the main app will never care of what the output plug-in will do, it just send the audio stream to.</p>
<p>- When you want to code for a send-to-speaker plug-in, you just implement the IPlayerOutput interface and write code to send-to-speak there such as…<br />
public class SpeakerOutput : IPlayerOutput</p>
<p>{</p>
<p>public void Play(byte[] stream)<br />
{</p>
<p>// 1. Decode the audio stream</p>
<p>// 2. Send RAW to speaker</p>
<p>}<br />
}<br />
- If you want to code for WAV output plug-in, just do the same thing but different in the Play function such as…</p>
<p>public class WavOutput : IPlayerOutput</p>
<p>{</p>
<p>public void Play(byte[] stream)</p>
<p>{</p>
<p>// 1. Decode the audio stream as WAV format</p>
<p>// 2. Save WAV data to disk</p>
<p>}<br />
}</p>
<p>- Then, you can let user choose which DLL to be used and load it into the IPlayerOutput interface within the main app. Voila!</p>
<p><strong>So… How it is related to IoC?</strong></p>
<p>Actually, it is the same concept as the plug-in architecture.</p>
<p>The main point is to make each components of application loosely coupled.</p>
<p>To make it simple, IoC is the concept to make your application’s layers independent as much as possible.</p>
<p>You can do IoC by coding like the above set of code in your application. However, it will take you sometime to do yourself.</p>
<p>And that’s why Castle Windsor come into place… They already created this type of things for you! <img src='http://www.iamseree.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Anyway, I will not show here how it is being used by generic application. Instead of, I will use Castle Windsor in combination with MVCContrib to do IoC in ASP.NET MVC application.</p>
<p>All I can say is… “It is very easy to do, not that hard like what the concept did”.</p>
<p>To be continued on Part #2…</p>
]]></content:encoded>
			<wfw:commentRss>http://www.iamseree.com/application-development/complete-guide-to-use-ioc-with-asp-net-mvc-using-castle-windsor-and-mvccontrib-part-1/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>The most easiest method to implement a SEO-friendly URL for ASP.NET application</title>
		<link>http://www.iamseree.com/application-development/the-most-easiest-method-to-implement-a-seo-friendly-url-for-asp-net-application/</link>
		<comments>http://www.iamseree.com/application-development/the-most-easiest-method-to-implement-a-seo-friendly-url-for-asp-net-application/#comments</comments>
		<pubDate>Tue, 06 Oct 2009 05:55:03 +0000</pubDate>
		<dc:creator>Seree</dc:creator>
				<category><![CDATA[Application Development]]></category>
		<category><![CDATA[asp.net]]></category>
		<category><![CDATA[asp.net mvc]]></category>
		<category><![CDATA[seo]]></category>
		<category><![CDATA[seo friendly url]]></category>

		<guid isPermaLink="false">http://www.iamseree.com/application-development/the-most-easiest-method-to-implement-a-seo-friendly-url-for-asp-net-application/</guid>
		<description><![CDATA[Well, as a ASP.NET developer. You and me know that it’s a bit hard to apply what we called SEO-friendly URL for ASP.NET applications. What is SEO-friendly URL? It’s a URL that search engine love and will result in a better ranking for your web pages/site. Let’s say you have an accounting system software and ...]]></description>
			<content:encoded><![CDATA[<p>Well, as a ASP.NET developer. You and me know that it’s a bit hard to apply what we called SEO-friendly URL for ASP.NET applications.</p>
<blockquote><p>What is SEO-friendly URL?</p>
<p>It’s a URL that search engine love and will result in a better ranking for your web pages/site.</p>
<p>Let’s say you have an accounting system software and your product URL is <a href="http://www.xxx.com/product.aspx?Id=432">http://www.xxx.com/product.aspx?Id=432</a> //Search engine will never know what the product is all about. They just saw Id=432 which doesn’t make sense for them. Actually, it also doesn’t make sense for human as well.</p>
<p>The SEO-friendly URL is a ‘wrapped’ URL to let people/robot read and know what this URL is all about. Let’s say about the above Product which have a new URL as <a href="http://www.xxx.com/product/AccountingSoftware">http://www.xxx.com/product/AccountingSoftware</a> </p>
<p>Search engine will know that this URL is all about Accounting software, then they will forward some traffic to your site with the “Accounting software” keyword.</p>
</blockquote>
<p>&#160;</p>
<p>In the PHP/Apache platform, the developer will usually use URL rewrite module easily. Almost every web hosting support this.</p>
<p>Unlike ASP.NET/IIS which is less flexible for configuration. You have to enable some URL rewrite ISAPI libraries which almost every web hosting don’t allow you to do that.</p>
<p>The good news is after ASP.NET MVC was released, it has a built-in routing feature which let you implement a SEO-friendly URL easily without messing up with IIS ISAPI.</p>
<p>You can provide many samples on Google, or even on Microsoft ASP.NET MVC website as well. See –&gt; ASP.NET MVC –&gt; Learn –&gt; Routing and you will see how it’s easy to implement. <img src='http://www.iamseree.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>I’ll not provide a sample code here as I just want to mention that now you can easily implement SEO-friendly URL with ASP.NET.</p>
<p>Just try and leave me some messages if you got a problem implement it.</p>
<p>See ya babe!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.iamseree.com/application-development/the-most-easiest-method-to-implement-a-seo-friendly-url-for-asp-net-application/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>In research of a javascript library to be used with ASP.NET on my next project&#8230;</title>
		<link>http://www.iamseree.com/application-development/in-research-of-a-javascript-library-to-be-used-with-aspnet-on-my-next-project/</link>
		<comments>http://www.iamseree.com/application-development/in-research-of-a-javascript-library-to-be-used-with-aspnet-on-my-next-project/#comments</comments>
		<pubDate>Thu, 16 Oct 2008 06:26:49 +0000</pubDate>
		<dc:creator>Seree</dc:creator>
				<category><![CDATA[Application Development]]></category>
		<category><![CDATA[.net]]></category>
		<category><![CDATA[asp.net]]></category>
		<category><![CDATA[extjs]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[javascript library]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[web development]]></category>
		<category><![CDATA[yui]]></category>

		<guid isPermaLink="false">http://www.iamseree.com/?p=3</guid>
		<description><![CDATA[Hi fellow readers, Today I come to share with you how I choose a javascript library to be used on my new project. I&#8217;m not talk about choosing just an AJAX library but I want some &#8216;full&#8217; set of library which including both AJAX core and user interface core. Here are my choices before consideration&#8230; ...]]></description>
			<content:encoded><![CDATA[<p>Hi fellow readers,</p>
<p>Today I come to share with you how I choose a javascript library to be used on my new project.</p>
<p>I&#8217;m not talk about choosing just an AJAX library but I want some &#8216;full&#8217; set of library which including both AJAX core and user interface core.</p>
<p>Here are my choices before consideration&#8230;</p>
<ul>
<li>jQuery</li>
<li>YUI (Yahoo User Interface)</li>
<li>ExtJs</li>
</ul>
<p>Sorry that I didn&#8217;t included other libraries because I&#8217;m not impressed with any other at all.</p>
<p>First, jQuery, this is by far the best AJAX + effect library for me personally. I really love it because it produces a &#8216;short&#8217; script. Especially when compared to YUI.</p>
<p>However, what jQuery lack of is UI components. You have to find out 3rd party for yourself.</p>
<p>So, I decide to move on YUI which currently have a bunch of UI components included.</p>
<p>What I can say about YUI is I really impressed with it. It has a BUNCH of UI included in the library which you can select to use or bypass.</p>
<p>However, most of the script produced by YUI is so &#8216;long&#8217; when compared to jQuery.</p>
<p>So, now, I hold on both YUI and jQuery and finding for a better library in the market.</p>
<p>I finally found ExtJs.</p>
<p>Try yourself and let me know how you feel about it.</p>
<p>I feel the &#8216;MOST&#8217; impress with ExtJs.</p>
<p>Cool UI and effect and I decided to use it in combination with jQuery.</p>
<p>This will help me reduce much time to develop my project.</p>
<p>Technical details will be continued in the next part while I&#8217;m developing my project. <img src='http://www.iamseree.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<p>Talk soon,</p>
<p>Seree W.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.iamseree.com/application-development/in-research-of-a-javascript-library-to-be-used-with-aspnet-on-my-next-project/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Why you need validation in your web application?</title>
		<link>http://www.iamseree.com/application-development/why-you-need-validation-in-your-web-application/</link>
		<comments>http://www.iamseree.com/application-development/why-you-need-validation-in-your-web-application/#comments</comments>
		<pubDate>Tue, 18 Mar 2008 08:08:14 +0000</pubDate>
		<dc:creator>Seree</dc:creator>
				<category><![CDATA[Application Development]]></category>
		<category><![CDATA[.net]]></category>
		<category><![CDATA[asp.net]]></category>
		<category><![CDATA[validation]]></category>
		<category><![CDATA[validation controls]]></category>
		<category><![CDATA[web development]]></category>

		<guid isPermaLink="false">http://www.iamseree.com/?p=51</guid>
		<description><![CDATA[Hi folks, Did you ever use ASP.NET validation controls? If you never heard or never use it before, see on the toolbox at the &#8220;validation&#8221; group. Those are all validation controls. - RequiredFieldValidator - RangeValidator - CompareValidator - RegularExpressionValidator - CustomValidator - ValidationSummary The main point of this control group is to be used to ...]]></description>
			<content:encoded><![CDATA[<p>Hi folks,</p>
<p>Did you ever use ASP.NET validation controls?</p>
<p>If you never heard or never use it before, see on the toolbox at the &#8220;validation&#8221; group.</p>
<p>Those are all validation controls.</p>
<p>- RequiredFieldValidator</p>
<p>- RangeValidator</p>
<p>- CompareValidator</p>
<p>- RegularExpressionValidator</p>
<p>- CustomValidator</p>
<p>- ValidationSummary</p>
<p>The main point of this control group is to be used to validate the input form entered by user before doing any postback.</p>
<p>But why?</p>
<p>As we can implement validation easily in code-behind.</p>
<p>Right?</p>
<p>It had to say Yes and No.</p>
<p>Yes, because validation coding in server-side (code-behind) is easier to code.</p>
<p>No, because while you know at the client that the data is invalid. Why you will let user postback to server?</p>
<p>Waste of bandwidth.</p>
<p>Totally waste!</p>
<p>This is the main reason why you have to use validation controls in your web forms.</p>
<p>Because it&#8217;ll help to reduce the unnecessary roundtrip between client and web server.</p>
<p>This will not affect much on the application that consumes less resource.</p>
<p>But it will be a big pain on the application that consumes much resource.</p>
<p>So, when you are dealing with input form.</p>
<p>Always use validation controls!</p>
<p>I know it will help you much.</p>
<p> <img src='http://www.iamseree.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.iamseree.com/application-development/why-you-need-validation-in-your-web-application/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Cryptography in .NET &#8211; Part I</title>
		<link>http://www.iamseree.com/application-development/cryptography-in-net-part-i/</link>
		<comments>http://www.iamseree.com/application-development/cryptography-in-net-part-i/#comments</comments>
		<pubDate>Wed, 19 Dec 2007 12:52:36 +0000</pubDate>
		<dc:creator>Seree</dc:creator>
				<category><![CDATA[Application Development]]></category>
		<category><![CDATA[.net]]></category>
		<category><![CDATA[asymmetric]]></category>
		<category><![CDATA[cryptography]]></category>
		<category><![CDATA[decryption]]></category>
		<category><![CDATA[encryption]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[symmetric]]></category>

		<guid isPermaLink="false">http://www.iamseree.com/?p=37</guid>
		<description><![CDATA[Hi folks, Today, let&#8217;s see what .NET was provided to developer like us about cryptography. In this post, I&#8217;ll talk about a brief of cryptography. How .NEt handle it and how many way to do some cryptographic in .NET. For sample of implementation, I&#8217;ll cover it all from basic encryption to decryption, hashing, using message ...]]></description>
			<content:encoded><![CDATA[<p>Hi folks,</p>
<p>Today, let&#8217;s see what .NET was provided to developer like us about cryptography.</p>
<p>In this post, I&#8217;ll talk about a brief of cryptography. How .NEt handle it and how many way to do some cryptographic in .NET.</p>
<p>For sample of implementation, I&#8217;ll cover it all from basic encryption to decryption, hashing, using message authentication code (MAC), hash-based message authentication code (HMAC) and even Digital signature. But it&#8217;ll continue to the next part.</p>
<p>Here we&#8217;ll focus to the cryptography in System.Security.Cryptography namespace.</p>
<p>.NET has divided cryptography into three main functionality basis.</p>
<p>1. Basic cryptography &#8211; See about encrypt &amp; decrypt.</p>
<p>2. Hashing algorithm &#8211; See about hash calculation.</p>
<p>3. Digital signature &#8211; See about digital signature to be used in data transfer on network.</p>
<p>Let&#8217;s talk a brief one-by-one. Begin with basic cryptography.</p>
<p>1. Basic Cryptography</p>
<p>It&#8217;s like what its name saids. It&#8217;s totally a basic function on cryptography. With basic cryptography like this, it have been divided into two sub models.</p>
<blockquote><p>1.1 Symmetric Key</p>
<p>Someone call this &#8220;Secret Key&#8221; but in theoritical, it usually named as &#8220;Symmetric Key&#8221; in term.</p>
<p>With this model, the person who want to encrypt the data required a single key called &#8220;Secret Key&#8221; in encryption process. Someone call this key as &#8220;Private Key&#8221;. It&#8217;s equal in meaning.</p>
<p>When people want to decrypt the data, they need to use the &#8220;Secret Key&#8221; that used to encrypt the data.</p>
<p>This all means both encryptor and decryptor should have the same &#8220;Secret Key&#8221; to work properly.</p>
<p>This wasn&#8217;t much secured because you need to give away the &#8220;Key&#8221; to public people to encrypt the data and send back to you. So with this model, we&#8217;ll have a higher risk to be attacked by man-in-the-middle method. As he may know the &#8220;Key&#8221; that we distributes. This known as weakness of symmetric key model.</p>
<p>1.2 Asymmetric Keys</p>
<p>Someone call this &#8220;Public Key Cryptographic System&#8221; or &#8220;PKCS&#8221;. As you may seen its name &#8220;Asymmetric Keys&#8221;. See the &#8220;Keys&#8221; not a &#8220;Key&#8221;. This extra &#8220;s&#8221; means we&#8217;ll have more than one key in this model. This requires a pair of keys.</p>
<p>The first one we call it &#8220;Public Key&#8221; and the second one is &#8220;Private Key&#8221;.</p>
<p>&#8220;Public Key&#8221; will be distributed to public people who want to encrypt the data and send back to us.</p>
<p>The only thing you should know about &#8220;Public Key&#8221; is that it should be used to encrypt data only. It&#8217;s unable to decrypt the data that have been encrypt by itself.</p>
<p>When you want to decrypt it, you should use &#8220;Private Key&#8221; only. This means, the data collector will keep &#8220;Private Key&#8221; alone and no need to distribute &#8220;Private Key&#8221; to anyone except himself.</p>
<p>This model will lowering the risk of man-in-the-middle attack. It&#8217;s all because the data collector people not need to distribute &#8220;Private Key&#8221;. So, It&#8217;s much easier to keep it confidential.</p></blockquote>
<p>All we&#8217;ve talk is about the basic cryptography. The next part I&#8217;ll cover into the next topic. Hashing algorithm in brief.</p>
<p>I&#8217;ll try to finish all brief on MAC, HMAC and Digital signature in the next part. After that, we&#8217;ll play with the sample code in real world case study. And not theoritically-based at all, because I hate theoritically sample!</p>
<p>See yah next part.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.iamseree.com/application-development/cryptography-in-net-part-i/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Why my .style.left doesn&#8221;t work with FireFox?</title>
		<link>http://www.iamseree.com/application-development/why-my-styleleft-doesnt-work-with-firefox/</link>
		<comments>http://www.iamseree.com/application-development/why-my-styleleft-doesnt-work-with-firefox/#comments</comments>
		<pubDate>Tue, 13 Nov 2007 07:50:20 +0000</pubDate>
		<dc:creator>Seree</dc:creator>
				<category><![CDATA[Application Development]]></category>
		<category><![CDATA[dom]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[style.left]]></category>
		<category><![CDATA[web development]]></category>

		<guid isPermaLink="false">http://www.iamseree.com/?p=35</guid>
		<description><![CDATA[This is a simple &#38; stupid knowledge that I taken about 2 days to solve it. I have a project that have to use this code&#8230;. var con = document.getElementById(&#8220;menu&#8221;); con.style.left = &#8220;10&#8243;; con.style.top = &#8220;20&#8243;; When I run this code in Internet Explorer 6, 7. I got it working like I want! But when ...]]></description>
			<content:encoded><![CDATA[<p>This is a simple &amp; stupid knowledge that I taken about 2 days to solve it.</p>
<p>I have a project that have to use this code&#8230;.</p>
<p>var con = document.getElementById(&#8220;menu&#8221;);</p>
<p>con.style.left = &#8220;10&#8243;;</p>
<p>con.style.top = &#8220;20&#8243;;</p>
<p>When I run this code in Internet Explorer 6, 7.</p>
<p>I got it working like I want!</p>
<p>But when I try with Mozilla FireFox.</p>
<p>It never works!</p>
<p>Man! I hate DOM, if I have enough money. I&#8217;ll buy Microsoft and stop Internet Explorer project to reduce browser compatibility issues. <img src='http://www.iamseree.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>I try to use FireBug to change the css real-time, it does work very well.</p>
<p>The key point of this issue is that YOU MUST APPEND the property with UNIT!</p>
<p>I changed the code to&#8230;</p>
<p>con.style.left = &#8220;10px&#8221;;</p>
<p>con.style.top = &#8220;20px&#8221;;</p>
<p>And now it works!</p>
<p>Gotcha!</p>
<p>Simple &amp; Stupid, right?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.iamseree.com/application-development/why-my-styleleft-doesnt-work-with-firefox/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Use JavaScript to change &#8220;float&#8221; style</title>
		<link>http://www.iamseree.com/application-development/use-javascript-to-change-float-style/</link>
		<comments>http://www.iamseree.com/application-development/use-javascript-to-change-float-style/#comments</comments>
		<pubDate>Thu, 08 Nov 2007 07:47:59 +0000</pubDate>
		<dc:creator>Seree</dc:creator>
				<category><![CDATA[Application Development]]></category>
		<category><![CDATA[cssfloat]]></category>
		<category><![CDATA[dom]]></category>
		<category><![CDATA[float]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[web development]]></category>

		<guid isPermaLink="false">http://www.iamseree.com/?p=33</guid>
		<description><![CDATA[Hey friends, In a few days ago, I’ve just stuck with how to change “float” style in JavaScript and very confuse why it doesn’t work at all! I’m using … var obj = document.getElementById(“some1”); obj.style.float = “left”; No luck at all. I tried both on Internet Explorer and Firefox. Even I use Internet Explorer Toolbar and ...]]></description>
			<content:encoded><![CDATA[<p>Hey friends,</p>
<p>In a few days ago, I’ve just stuck with how to change “float” style in JavaScript and very confuse why it doesn’t work at all!</p>
<p>I’m using …</p>
<p>var obj = document.getElementById(“some1”);</p>
<p>obj.style.float = “left”;</p>
<p>No luck at all. I tried both on Internet Explorer and Firefox. Even I use Internet Explorer Toolbar and Firebug. I can change the style via that tools but no luck with JavaScript.</p>
<p>Silly?</p>
<p>I’m fool with DOM. I try to find a solution and suddenly found that.</p>
<p>In DOM, there are no “float” property but “cssFloat”.</p>
<p>Just change my code to …</p>
<p>var obj = document.getElementById(“some1”);</p>
<p>obj.style.cssFloat = “left”;</p>
<p>Really silly huh?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.iamseree.com/application-development/use-javascript-to-change-float-style/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>How do you do when dealing with cross-browser web development?</title>
		<link>http://www.iamseree.com/application-development/how-do-you-do-when-dealing-with-cross-browser-web-development/</link>
		<comments>http://www.iamseree.com/application-development/how-do-you-do-when-dealing-with-cross-browser-web-development/#comments</comments>
		<pubDate>Sun, 04 Nov 2007 23:46:19 +0000</pubDate>
		<dc:creator>Seree</dc:creator>
				<category><![CDATA[Application Development]]></category>
		<category><![CDATA[asp.net]]></category>
		<category><![CDATA[cross browser]]></category>
		<category><![CDATA[web development]]></category>

		<guid isPermaLink="false">http://www.iamseree.com/?p=31</guid>
		<description><![CDATA[Hi friends, I just want to know that how do you do when you&#8217;re dealing with cross-browser web development. Which tools you are using? How do you handle those all buggies browser? What experiences you faced? As I&#8217;m dealing with cross-browser web development project where I generally strict with XHTML 1.0 standard. (As I&#8217;m using ...]]></description>
			<content:encoded><![CDATA[<p>Hi friends,</p>
<p>I just want to know that how do you do when you&#8217;re dealing with cross-browser web development.</p>
<p>Which tools you are using?</p>
<p>How do you handle those all buggies browser?</p>
<p>What experiences you faced?</p>
<p>As I&#8217;m dealing with cross-browser web development project where I generally strict with XHTML 1.0 standard. (As I&#8217;m using Microsoft Visual Studio 2005 and there is built-in XHTML 1.0 validator. Also, it has a built-in CSS validator too.)</p>
<p>I generally focus to most popular browsers including Internet Explorer 6.x, 7.x and Mozilla Firefox 2.x.</p>
<p>Below is my experiences and how I handle the project after I failed one. Yes, I failed one! Don&#8217;t get wrong like me! It waste your valuable time.</p>
<p><span id="more-31"></span>Internet Explorer 7.x, I love this one as it&#8217;s easiest to work with while I&#8217;m using Visual Studio 2005. For me, it&#8217;s not that hard to make Internet Explorer 7.x render HTML as I want.</p>
<p>Next, Firefox is ok but need some care to make it render HTML as you want.</p>
<p>Last, Internet Explorer 6.x is sucks for me as it made me headache over a few nights to get pass its rendering issues. Did you believe that if your pages crash. It might cause you&#8217;re using some standard CSS the wrong way (IE6 wrong way) such as float:left; Yes, it can crash most of IE6. Just try to googling for &#8220;IE6 float:left crash&#8221; and you gonna see the weird thing.</p>
<p>So, If you gonna begin on cross-browser web development. I suggests to go this way&#8230;</p>
<p>1. Open up your Visual Studio 2005, for your all pages (.aspx, .html). Set the HTML validator to &#8220;XHTML 1.0 Transitional&#8221;. This will let Visual Studio 2005 warn you when you not follow the XHTML 1.0 standard. Which is a good way to go. (Don&#8217;t go with later version of XHTML as It seems IE6 didn&#8217;t fully support it)</p>
<p>2. When working with CSS files. Set your CSS validator to &#8220;Internet Explorer 6.0&#8243; or &#8220;CSS 1.0&#8243;. Don&#8217;t go later version for safety. Believe me, less version = less pain.</p>
<p>3. Using your targeted browsers to test your page layout in step-by-step. Do it strictly or you will entering the impossible to solve state after your hard work. I&#8217;m using IE7 as the main one. Then using Firefox in the same machine. For IE6, I go with Virtual PC. Yes, I&#8217;m working like this actually!</p>
<p>If you follow these 3 steps strictly. You will never get wrong with cross-browser issue like me. When I got this pain, I&#8217;ve to waste my time to re-architecture all pages layout.</p>
<p><strong>More tips&#8230;</strong></p>
<p>- If you&#8217;re using &#8220;float:left;&#8221; just follow with &#8220;display:inline;&#8221; to avoid the silly bug of IE6.</p>
<p>- If you&#8217;re in design state. Don&#8217;t go with table layout. Force yourself to go with table-less layout. Yes, I means using &lt;DIV&gt; instead of &lt;TABLE&gt;. Googling &#8220;tableless layout css&#8221; for more information. Strictly follow this! or you gonna hate IE later. Forget all about &lt;TABLE&gt;, it&#8217;s history now.</p>
<p><strong>Conclusions</strong></p>
<p>I&#8217;m very appreciated to receive all comments. Maybe your experiences or tips or &#8230;</p>
<p>Thanks you</p>
]]></content:encoded>
			<wfw:commentRss>http://www.iamseree.com/application-development/how-do-you-do-when-dealing-with-cross-browser-web-development/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Best tools when you are dealing with advanced web development</title>
		<link>http://www.iamseree.com/application-development/best-tools-when-you-are-dealing-with-advanced-web-development/</link>
		<comments>http://www.iamseree.com/application-development/best-tools-when-you-are-dealing-with-advanced-web-development/#comments</comments>
		<pubDate>Tue, 30 Oct 2007 07:44:38 +0000</pubDate>
		<dc:creator>Seree</dc:creator>
				<category><![CDATA[Application Development]]></category>
		<category><![CDATA[advanced web development]]></category>
		<category><![CDATA[debug web]]></category>
		<category><![CDATA[debugging]]></category>
		<category><![CDATA[firebug]]></category>
		<category><![CDATA[internet explorer developer toolbar]]></category>
		<category><![CDATA[web development]]></category>

		<guid isPermaLink="false">http://www.iamseree.com/?p=29</guid>
		<description><![CDATA[Hi friends, Are you facing with the hell experiences when dealing with advanced web development? First of all, We gonna clarify about what did I means for &#8220;advanced web development&#8221;. For the sentence, I means that your web project are mostly dealing with client technologies. Such as those JavaScript, CSS, DOM, Ajax or even cross-browser ...]]></description>
			<content:encoded><![CDATA[<p>Hi friends,</p>
<p>Are you facing with the hell experiences when dealing with advanced web development?</p>
<p>First of all, We gonna clarify about what did I means for &#8220;advanced web development&#8221;.</p>
<p>For the sentence, I means that your web project are mostly dealing with client technologies. Such as those JavaScript, CSS, DOM, Ajax or even cross-browser compatibility issue. Those all are hard to track bugs and solve it.</p>
<p>After my bad experiences regards on this issue, I actually found that there are many useful tools that will help you much reduce the time to deal with them. Best lucks, most of all are FREE! Yes, right! It&#8217;s FREE! Don&#8217;t get me wrong.</p>
<p>Let&#8217;s see what I gonna suggests you to grab and use it on all of your web development project.</p>
<p><span id="more-29"></span><br />
<strong>Internet Explorer Developer Toolbar</strong></p>
<p>This tool will let you track all HTML element in your desired web page. Best of all, you can modify any CSS in real-time. Just as easy as you change CSS, the page get changed immediately. This tool is an add-on for Microsoft Internet Explorer 6.x, 7.x.</p>
<p>Let&#8217;s say it&#8217;s nearly a FireBug clone for Internet Explorer.</p>
<p>You can grab it <a href="http://www.microsoft.com/downloads/details.aspx?familyid=e59c3964-672d-4511-bb3e-2d5e1db91038&amp;displaylang=en">here</a>.</p>
<p><strong>Fiddler </strong></p>
<p>Don&#8217;t tell me you never heard about it! This tool will tell you how browser gonna load for your page. How many resources loaded? How about page&#8217;s size including their size. For my experiences, this is a cool tool but sometime it affect my IE to working in low stability.</p>
<p>You can grab it <a href="http://www.fiddlertool.com">here</a>.</p>
<p>For me. With these 2 tools, I can make my life much easier when doing general web development. But it&#8217;s not the same case if it&#8217;s an advanced web development!</p>
<p>Now I&#8217;ll face with cross-browser compatibility issue. Yes, if my web has a complex interface. They might not display the same in Internet Explorer or FireFox or even Safari.</p>
<p>So now, we gonna find some tools to deal with FireFox. (Sorry but I don&#8217;t mention to Safari)</p>
<p><strong>FireBug</strong></p>
<p>Ooh, If you play with FireFox long time enough. You should heard about FireBug. It just the same as Internet Explorer Developer Toolbar. But it&#8217;s definitely better by far.</p>
<p>Just grab it <a href="http://www.getfirebug.com">here</a> and try out yourself.</p>
<p><strong>Conclusion</strong></p>
<p>There are many more tools available for your advanced web development today. But I select a few tools as to reduce your brain-conflict by too many tools. Believe me that you can stick with these tools and produce a high quality web site.</p>
<p>Bye</p>
]]></content:encoded>
			<wfw:commentRss>http://www.iamseree.com/application-development/best-tools-when-you-are-dealing-with-advanced-web-development/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to randomly select records from SQL Server?</title>
		<link>http://www.iamseree.com/application-development/how-to-randomly-select-records-from-sql-server/</link>
		<comments>http://www.iamseree.com/application-development/how-to-randomly-select-records-from-sql-server/#comments</comments>
		<pubDate>Fri, 19 Oct 2007 07:41:00 +0000</pubDate>
		<dc:creator>Seree</dc:creator>
				<category><![CDATA[Application Development]]></category>
		<category><![CDATA[random]]></category>
		<category><![CDATA[sql]]></category>
		<category><![CDATA[sql server]]></category>

		<guid isPermaLink="false">http://www.iamseree.com/?p=25</guid>
		<description><![CDATA[Hi all SQLers! Last week I&#8217;ve found this quiz from my consultant customer. He has a scenario to let me help as a short describe here. How do I select some records from SQL Server randomly? It seems to be an easy question but what we can do if SQL Server doesn&#8217;t directly support this ...]]></description>
			<content:encoded><![CDATA[<p>Hi all SQLers!</p>
<p>Last week I&#8217;ve found this quiz from my consultant customer. He has a scenario to let me help as a short describe here.</p>
<p><!--adsense--><br />
How do I select some records from SQL Server randomly?</p>
<p>It seems to be an easy question but what we can do if SQL Server doesn&#8217;t directly support this functionality! So, I decide to read on SQL Server&#8217;s online help to find out the solution and result on SQL Server don&#8217;t have any function that can select records randomly.</p>
<p>Now I&#8217;m thinking about Joe Celko, the person who you know when thinking about SQL puzzle or quiz. Just thinks to him but didn&#8217;t try to contact him cause I still believe this quiz gonna be too easy for him to implement.</p>
<p>So, I just continue on research&#8230;<span id="more-25"></span></p>
<p>After that, I seen many various methods to implement this functionality but most of them are implement at application level. Means your application just select all records and randomize some number then select the records randomly by indexing access. That I thinks not efficiency. Certainly, you feel the same as me or you&#8217;ll not reading until this. ^_^</p>
<p>In last weekend, while I&#8217;m finding for the best solution for this case. My friend come along to my home and talking about SQL Server and blah blah blah&#8230; and then he gave me an idea to solve this case. For god sake, this is a solution not an idea!</p>
<p><!--adsense--><br />
How the solution be and how it works?</p>
<p>The key just stay in <em>NEWID()</em> function!</p>
<p>For all people who don&#8217;t know what is <em>NEWID()</em> function. This is a built-in function in SQL Server that will generate a unique string which will not the same on each call. Just try it in SQL Server by executing this command. &#8220;<em>SELECT NEWID()</em>&#8220;.</p>
<p>Gotcha! It&#8217;s what someone called &#8220;unique identifier&#8221;, &#8220;GUID&#8221; or somethings else.</p>
<p>So now, how can I use this function to select records randomly?</p>
<p>It&#8217;s easy as someone may already clear on this case when I said on <em>NEWID()</em>. Just use it in <em>ORDER BY</em> clause!</p>
<p><em>SELECT * FROM Books ORDER BY NEWID()</em></p>
<p>You got it now. How easily!</p>
<p><!--adsense--></p>
]]></content:encoded>
			<wfw:commentRss>http://www.iamseree.com/application-development/how-to-randomly-select-records-from-sql-server/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>7 Tips made rendering HTML faster (Do it lately!)</title>
		<link>http://www.iamseree.com/application-development/7-tips-made-rendering-html-faster-do-it-lately/</link>
		<comments>http://www.iamseree.com/application-development/7-tips-made-rendering-html-faster-do-it-lately/#comments</comments>
		<pubDate>Tue, 02 Oct 2007 16:57:26 +0000</pubDate>
		<dc:creator>Seree</dc:creator>
				<category><![CDATA[Application Development]]></category>
		<category><![CDATA[.net]]></category>
		<category><![CDATA[asp.net]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[html optimization]]></category>
		<category><![CDATA[optimization]]></category>
		<category><![CDATA[web development]]></category>

		<guid isPermaLink="false">http://www.iamseree.com/?p=23</guid>
		<description><![CDATA[Any serious web developers should experience a too long rendering time for his/her web pages. Here is the list that I usually do it before release my web application to production stage. I call it my &#8220;Optimization check-list&#8221;. Please note that, some of tip should be used on ASP.NET specifically and any other may not. ...]]></description>
			<content:encoded><![CDATA[<p>Any serious web developers should experience a too long rendering time for his/her web pages. Here is the list that I usually do it before release my web application to production stage. I call it my &#8220;Optimization check-list&#8221;. Please note that, some of tip should be used on ASP.NET specifically and any other may not.</p>
<p>Please keep in mind that, these tips can be effectively used after you&#8217;ve completed develop your web application too. As it doesn&#8217;t required much effort to re-design or re-programming. I&#8217;ll release another tips series that can be done before development begin too as It&#8217;s very effective than these tips.</p>
<p>Let&#8217;s roll out your hand now.<span id="more-23"></span></p>
<p><!--adsense--></p>
<p><strong>Tip 1 : Turn off debugging (Very effective)</strong></p>
<blockquote><p>This tip is for ASP.NET only, just go to your web.config and finding &lt;compilation&gt; then change debug=&#8221;false&#8221;</p>
<p>This will increase your web application performance dramatically!</p>
<p>What&#8217;s behind the scene?</p>
<p>When you change debug flag to false. All web resources (WebResource.axd?xyz) will be cached by browser while not when debug flag is true. Also, any script related with ASP.NET will be decreased in size. The output assembly will reduce on size too.</p>
<p>Don&#8217;t thinks much, when you go to production stage. <span style="color: #ff0000;">Just turn it off!</span></p></blockquote>
<h3><strong>Tip 2 : Turn off un-necessary ViewStates (Very effective)</strong></h3>
<blockquote><p>This be able to do with ASP.NET only and will dramatically decrease your output HTML size! and you can do it just like turn off debug flag at the above.</p>
<p>Find out your ASP.NET standard control tags and check to see whether its state needed to be kept on every page lifecycle? If not, change the attribute &#8220;EnableViewState&#8221; to &#8220;false&#8221;. Do it all for every ASP.NET controls in your pages.</p>
<p>What&#8217;s behind the scene?</p>
<p>ViewState was used to keep the state on every page lifecycle. They implement by adding some characters into your output HTML. You can see it by view source at the browser and finding for ViewState keyword. You then see the unreadable characters in the output HTML. There is where the control&#8217;s state be kept. This tip <span style="color: #ff0000;">can reduce much size</span> on the output HTML!</p></blockquote>
<h3>Tip 3 : Re-organize objects in the page</h3>
<blockquote><p>Re-organize, I means revise the order of objects in your pages. Move your unnecessary objects (objects in my meaning is everything that reside on HTML including HTML tags, script, CSS, &#8230;) to the bottom of the page. Such as move your big script into the bottom of the page. <span style="color: #ff0000;">This will let browser render the layout first then load big scripts later</span>. In some case, very effective!. In one of my project, I can use this method to reduce around 12-15 seconds by re-organize objects in the page.</p></blockquote>
<p><!--adsense--></p>
<h3>Tip 4 : Wrap up your inline/external script into a big external file</h3>
<blockquote><p>This means if you have write your javascript inline in the page. You may consider to <span style="color: #ff0000;">wrap it up into one single external file</span>. (assume myscripts.js)</p>
<p>Also, If you have many external files. (many .js) You may consider to combine all of them in to one big file instead of.</p>
<p>What&#8217;s behind the scene?</p>
<p>Browser can cache the external script file. (.js) and combine them into one single file will benefits on reducing the number of roundtrip when browser need to do cache validation.</p></blockquote>
<h3>Tip 5 : Change your HTML formatting style into CSS style</h3>
<blockquote><p>Throw away the old HTML formatting style such as &lt;FONT&#8230;&gt;,&lt;COLOR&#8230;&gt;, etc&#8230;</p>
<p>Replace with CSS formatting style that use class based. Define the formatting class then apply it to any tag you want.</p>
<p>eg.</p>
<p>.hilight<br />
{<br />
font-family:tahoma;<br />
font-size:small;<br />
color:white;<br />
}</p>
<p>When any tags want to use this format, just apply to it.</p>
<p>eg.</p>
<p>&lt;span class=&#8221;hilight&#8221; &#8230;&gt;&#8230;&lt;/span&gt;</p>
<p>Then <span style="color: #ff0000;">combine your all classes into one big CSS file</span>. (.css) This will gain the benefits like what Tip 6 did. Browser will cache it and reduce the number of roundtrip when browser do some cache validation.</p></blockquote>
<h3>Tip 6 : Use progressive rendering on your &lt;TABLE&gt;</h3>
<blockquote><p>If your targeted browser is Mozilla FireFox, just skip this tip as FireFox will do it naturally. But for Internet Explorer? No luck today. We&#8217;ve to do it ourselves to let Internet Explorer do progressive rendering. Before we go,</p>
<p>What&#8217;s progressive rendering?</p>
<p>In nature, when Internet Explorer found &lt;TABLE&gt; tag that generally be used to arrange the page&#8217;s layout. Internet Explorer will need to &#8230;</p>
<p>- Determine the table&#8217;s size by determine every cell&#8217;s size first</p>
<p>- Rendering entire table</p>
<p>This means, when Internet Explorer can&#8217;t determine the cell&#8217;s size then it will slow on rendering. Such as the case that you have a complex content in some cells that can&#8217;t be determine the content&#8217;s size. So, Internet Explorer should wait until all content be loaded and it&#8217;ll be able to determine the cell&#8217;s size now then it will render table later.</p>
<p>So, this will generate a very slow rendering for Internet Explorer when it found many complex content within the table.</p>
<p>Now, we should known the key that made Internet Explorer so slow rendering on table. <span style="color: #ff0000;">Because it needs to know every cell&#8217;s size first!</span></p>
<p>So, what will happen if we can fix the size of cell?</p>
<p>Absolutely, it&#8217;ll render much faster and this is what we call &#8220;Progressive Rendering&#8221;. So now, how can I do it?</p>
<p>Here are the steps&#8230;</p>
<p>1. Apply CSS attribute called &#8220;table-layout:fixed&#8221; to &lt;TABLE&gt;.</p>
<p>2. Enter the &lt;TABLE&gt;&#8217;s width in style-sheet.</p>
<p>Here is what we&#8217;ll get&#8230;</p>
<p>&lt;TABLE style=&#8221;table-layout:fixed;width:780px;&#8221; &#8230;&gt; &#8230;</p>
<p>3. Enter each column&#8217;s width by using &lt;colgroup&gt; tag and style-sheet class.</p>
<p>For style-sheet,</p></blockquote>
<blockquote><p>.col1 {width: 31px;}<br />
.col2 {width: 118px;}<br />
.col3 {width: 109px;}<br />
.col4 {width: 140px;}<br />
.col5 {width: 376px;}<br />
.col6 {width: 9px;}<br />
.col7 {width: 200px;}<br />
.col8 {width: 17px;}<br />
.col9 {width: 1px;}</p></blockquote>
<blockquote><p>For &lt;TABLE&gt; tag,</p>
<p>&lt;table style=&#8221;table-layout:fixed;width:780px;&#8221;&gt;<br />
&lt;colgroup&gt;<br />
&lt;col class=&#8221;col1&#8243; /&gt;<br />
&lt;col class=&#8221;col2&#8243; /&gt;<br />
&lt;col class=&#8221;col3&#8243; /&gt;<br />
&lt;col class=&#8221;col4&#8243; /&gt;<br />
&lt;col class=&#8221;col5&#8243; /&gt;<br />
&lt;col class=&#8221;col6&#8243; /&gt;<br />
&lt;col class=&#8221;col7&#8243; /&gt;<br />
&lt;col class=&#8221;col8&#8243; /&gt;<br />
&lt;col class=&#8221;col9&#8243; /&gt;<br />
&lt;/colgroup&gt;</p>
<p>&lt;tr&gt;&#8230;<br />
&#8230;</p>
<p>4. That&#8217;s all!</p></blockquote>
<h3>Tip 7 : Don&#8217;t slice your image too many!</h3>
<blockquote><p>Wow, go to the previous time. Web developer try to do their page to response faster by slicing a large image into many small images and use table to lay it out. It&#8217;s good for the pass, but in my opinion. It&#8217;s bad for now if you slice the images too much.</p>
<p>Why?</p>
<p>You may know that the browser such as Internet Explorer has a main thread to load for main page and 2 children threads to load related resources from the main page. So, what will happen If you have too much resources in the page? Even all of the resources are small. It loads very fast, but how about the roundtrip occurred? I seen many cases that too many small files will be loaded much slower than a few medium files.</p>
<p>So, just try and prove yourself that too many resource files can be pain to your page than a less but larger in size.</p></blockquote>
<p><!--adsense--></p>
<h3>Conclusion</h3>
<p>In the next time, I&#8217;ll write the optimization check-list that you can do it in design stage and can gain much benefits than these methods. I&#8217;ll include how-to do things like what PageFlake, NetVibes did. Highly interactive with fast response time. Ajax!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.iamseree.com/application-development/7-tips-made-rendering-html-faster-do-it-lately/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>SQL Tricks #1</title>
		<link>http://www.iamseree.com/application-development/sql-tricks-1/</link>
		<comments>http://www.iamseree.com/application-development/sql-tricks-1/#comments</comments>
		<pubDate>Sun, 16 Sep 2007 06:55:28 +0000</pubDate>
		<dc:creator>Seree</dc:creator>
				<category><![CDATA[Application Development]]></category>
		<category><![CDATA[sql]]></category>
		<category><![CDATA[sql puzzle]]></category>
		<category><![CDATA[sql tips]]></category>
		<category><![CDATA[sql tricks]]></category>

		<guid isPermaLink="false">http://www.iamseree.com/?p=21</guid>
		<description><![CDATA[Hello all, After my last few Transact-SQL training courses, one of my trainee had ask me on this scenario and I thinks it should be useful for most of people who are not concern much about SQL query performance which produce better processing time when compared to generic coding to query the result. You may ...]]></description>
			<content:encoded><![CDATA[<p>Hello all,</p>
<p>After my last few Transact-SQL training courses, one of my trainee had ask me on this scenario and I thinks it should be useful for most of people who are not concern much about SQL query performance which produce better processing time when compared to generic coding to query the result. You may not clear about what I&#8217;m writing now. Just see the following scenario.</p>
<p>Assume I have a table named [Book] which has the following structure.</p>
<blockquote><p>- BookId as int &#8211; identity(1,1) &#8211; Primary key<br />
- Title as varchar(100)<br />
- Price as int</p></blockquote>
<p>Then I assume that manager want a report just like this.</p>
<blockquote>
<table border="1" cellspacing="0" cellpadding="2" width="373">
<tbody>
<tr>
<td width="164" valign="top"><strong>Title</strong></td>
<td width="67" valign="top"><strong>Price</strong></td>
<td width="139" valign="top"><strong>Price Range</strong></td>
</tr>
<tr>
<td width="163" valign="top">Advanced SQL</td>
<td width="67" valign="top">25</td>
<td width="139" valign="top">Expensive</td>
</tr>
<tr>
<td width="162" valign="top">Intermediate C#</td>
<td width="67" valign="top">12</td>
<td width="139" valign="top">Cheap</td>
</tr>
</tbody>
</table>
</blockquote>
<p>You should see the column &#8220;Price Range&#8221; which do not reside in the table structure. Continue, I assume that if the price is expensive than 20 then I count as &#8220;Expensive&#8221; price range. If the price is less than 15 then I count as &#8220;Cheap&#8221;.</p>
<p><strong>How should you do this report?</strong></p>
<p>Most of my trainee do the following method.</p>
<p>1. Create an application then query for the columns [Title, Price].</p>
<p>2. They create a new column in report. In case of ASP.NET, they add a new template column into GridView.</p>
<p>3. In querying event for every record. (Such as Item data bound) They coding to check the condition whether the current record is expensive or cheap then output it.</p>
<p><!--adsense--></p>
<p><strong>Are there a better solution?</strong></p>
<p>Certainly, If you focus on SQL query optimization. You should got a point to improve the performance of this process.</p>
<p>Let&#8217;s see the key.<span id="more-21"></span></p>
<p><em>Do you know about &#8220;CASE WHEN&#8221; statement in SQL?</em></p>
<p>Try to figure this query. Especially at the <span style="color: #22ffff;">high-light</span>.</p>
<blockquote><p>SELECT Title, Price,<br />
<span style="color: #22ffff;">CASE<br />
WHEN price &gt; 20 THEN &#8216;Expensive&#8217;<br />
WHEN price BETWEEN 15 AND 20 THEN &#8216;Medium&#8217;<br />
ELSE &#8216;Cheap&#8217;<br />
END<br />
</span>As &#8216;Price Range&#8217;<br />
FROM [Book]</p></blockquote>
<p>With this method, you never do some additional tasks like &#8220;adding template column&#8221; and &#8220;coding for price range&#8221;. You just binding this query to the GridView. I call this method &#8220;Column morphing&#8221; as with this method, you can create new column without structured on the table&#8217;s schema and can set the value in the column with any logical that SQL statement support.</p>
<p><strong>So, does it better than the first method?</strong></p>
<p>Definitely sure. Both on performance and less task effort. You can do more about &#8220;Column morphing&#8221; with the integration of <em>sub-query</em>. Just like the following case.</p>
<blockquote><p>SELECT Title, Price,<br />
CASE<br />
WHEN Price &gt; (SELECT AVG(Price) FROM [Book]) THEN &#8216;More than average&#8217;<br />
WHEN Price = (SELECT AVG(price) FROM [Book]) THEN &#8216;Equal to average&#8217;<br />
ELSE &#8216;Less then average&#8217;<br />
END<br />
As &#8216;Price Range&#8217;<br />
FROM [Book]</p></blockquote>
<p>Even more flexible when integrate with <em>correlated sub-query</em>. See the following more advanced case.</p>
<blockquote><p>SELECT Title, Price,<br />
CASE<br />
WHEN Price &gt; <span style="color: #22ffff;">b.avgPrice</span> THEN &#8216;More than average&#8217;<br />
WHEN Price = <span style="color: #22ffff;">b.avgPrice</span> FROM [Book]) THEN &#8216;Equal to average&#8217;<br />
ELSE &#8216;Less then average&#8217;<br />
END<br />
FROM [Book], <span style="color: #22ffff;">(SELECT AVG(price) AS &#8216;avgPrice&#8217; FROM [Book]) b</span></p></blockquote>
<p>The last query will produce the same result as the previous one. (see if the current record is expensive than the average price or not) Except what each method actually process is very different.</p>
<p>In the 1st method, the average price calculation will be processed in every record. Think that If you have 100 records then it will calculate 100 times. Pain or not?</p>
<p>But the 2nd method will do the different. As you seen in the correlated sub-query. (which I&#8217;ve high-lighted as brown) You see that I put the average price calculation after FROM clause. This will force SQL parser to calculate the average price once and kept in alias table &#8216;<strong><em><span style="color: #22ffff;">b</span></em></strong>&#8216;. This will generate much better in case of you&#8217;ve so much number of record to process.</p>
<p><strong>Conclusion</strong></p>
<p>It&#8217;s good to do what you can in SQL query as they&#8217;ve been optimized by database engine-self. If possible, provide as stored procedure is the best way to do as it will provide the fastest performance since the execution plan of query will be cached in memory. Got fast!</p>
<p><!--adsense--></p>
]]></content:encoded>
			<wfw:commentRss>http://www.iamseree.com/application-development/sql-tricks-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Prevent your .NET application from SQL Injection</title>
		<link>http://www.iamseree.com/application-development/prevent-your-net-application-from-sql-injection/</link>
		<comments>http://www.iamseree.com/application-development/prevent-your-net-application-from-sql-injection/#comments</comments>
		<pubDate>Mon, 03 Sep 2007 12:53:56 +0000</pubDate>
		<dc:creator>Seree</dc:creator>
				<category><![CDATA[Application Development]]></category>
		<category><![CDATA[.net]]></category>
		<category><![CDATA[asp.net]]></category>
		<category><![CDATA[c#]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[sql]]></category>
		<category><![CDATA[sql injection]]></category>
		<category><![CDATA[vb.net]]></category>

		<guid isPermaLink="false">http://www.iamseree.com/?p=19</guid>
		<description><![CDATA[Hello everyone, Now I&#8217;ll talking about a technique that script kiddies widely used to attack to the first wall of your application. If you&#8217;re a rookie for security topics on development then you may never heard about this before. In my .NET courses training experiences, most of my trainees never know about this issue before ...]]></description>
			<content:encoded><![CDATA[<p>Hello everyone,</p>
<p>Now I&#8217;ll talking about a technique that script kiddies widely used to attack to the first wall of your application. If you&#8217;re a rookie for security topics on development then you may never heard about this before. In my .NET courses training experiences, most of my trainees never know about this issue before and they feel very surprises when I&#8217;ve hacked into their system in no time.</p>
<p><strong><span style="text-decoration: underline;">What is SQL injection?</span></strong></p>
<p>Straightly, It&#8217;s something like you try to inject some unexpected characters into SQL querying process to gain the out-of-case result.</p>
<p>Let&#8217;s see it in more detail!</p>
<p>What should you do If you want to coding your application to authenticate user&#8217;s credential that kept in database?</p>
<p>So easy, right? I&#8217;m just querying the result from database with this simple SQL query and a few line of code.</p>
<blockquote><p>Dim strSQL As String = &#8220;Select COUNT(*) From Members WHERE LoginName=&#8217;&#8221; &amp; txtLoginName.Text &amp; &#8220;&#8216; AND Password=&#8217;&#8221; &amp; txtPassword.Text &amp; &#8220;&#8216;&#8221;</p>
<p>Dim cmd As New SqlCommand(strSQL, con)</p>
<p>cmd.ExecuteScalar()</p></blockquote>
<p>It works perfectly! but how the it&#8217;ll handle if a hard core user input something unexpected into login name just like the following</p>
<blockquote><p>xyz&#8217; OR &#8217;1&#8242;=&#8217;1</p></blockquote>
<p>When it concatenate into SQL string. It&#8217;ll result in to&#8230;<span id="more-19"></span></p>
<blockquote><p>Select COUNT(*) From Members<br />
WHERE LoginName=&#8217;<span style="color: #ff0000;">xyz&#8217; OR &#8217;1&#8242;=&#8217;1</span>&#8216; AND Password=&#8217;<span style="color: #ff0000;">1234</span>&#8216;</p></blockquote>
<p>Yeah, you can see that <em><span style="color: #ff0000;">OR &#8217;1&#8242;=&#8217;1&#8242;</span></em> which always result in TRUE. So, the hard core user can authenticate to the application without knowing of any user&#8217;s login name or password.</p>
<p><!--adsense--></p>
<p><strong><span style="text-decoration: underline;">How can I prevent SQL injection?</span></strong></p>
<p>Yeah, it&#8217;s very easy to do. Just use the technique named as &#8220;Parameterized Query&#8221;.</p>
<p>OMG! What&#8217;s about it? I never heard about those &#8220;Parameterized Query&#8221;.<br />
You get me in trouble again!</p>
<p>Not that serious, It&#8217;s very easy to implement this technique as .NET alraedy provide the framework for you. Just do the following two steps.</p>
<p>1. When you want to create the dynamic SQL query string just like this case. You should use parameter instead of concatenate the variables yourself.</p>
<blockquote><p>Select COUNT(*) From Members WHERE LoginName=<span style="color: #ff0000;">@LoginName</span> AND Password=<span style="color: #ff0000;">@Pwd</span></p></blockquote>
<p>We call <span style="color: #ff0000;">@LoginName</span> and <span style="color: #ff0000;">@Pwd</span> as parameter.</p>
<p>2. Before executing the command. Please specify the value for each parameter first.</p>
<blockquote><p>cmd.Parameters.AddWithValue(&#8220;<span style="color: #ff0000;">@LoginName</span>&#8220;, txtLoginName.Text)</p>
<p>cmd.Parameters.AddWithValue(&#8220;<span style="color: #ff0000;">@Pwd</span>&#8220;, txtPassword.Text)</p>
<p>cmd.ExecuteScalar()</p></blockquote>
<p>When the command was executed. All parameters will be transformed into the value that suitable for the data type of those database. The good things you get here is that. For string (varchar) data type, generally it should open and close with single quote &#8221; &#8216; &#8220;. (You can see this code of the first code block) But not for parameterized query, as it will do automatically internal. So, you don&#8217;t have to pay your attention to those data type symbol for each database. (Especially datetime data type) and another point, the generated SQL query will never been attacked by SQL injection anymore as it know now how to handle those type of technique.</p>
<p>This is all about that!</p>
<p>For more information about SQL injection, please <a href="http://en.wikipedia.org/wiki/SQL_Injection" target="_blank">visit here</a>.</p>
<p><!--adsense--></p>
]]></content:encoded>
			<wfw:commentRss>http://www.iamseree.com/application-development/prevent-your-net-application-from-sql-injection/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Real world ASP.NET authentication</title>
		<link>http://www.iamseree.com/application-development/real-world-aspnet-authentication/</link>
		<comments>http://www.iamseree.com/application-development/real-world-aspnet-authentication/#comments</comments>
		<pubDate>Thu, 02 Aug 2007 15:49:32 +0000</pubDate>
		<dc:creator>Seree</dc:creator>
				<category><![CDATA[Application Development]]></category>
		<category><![CDATA[.net]]></category>
		<category><![CDATA[.net authentication]]></category>
		<category><![CDATA[asp.net]]></category>
		<category><![CDATA[authentication]]></category>
		<category><![CDATA[cookies authentication]]></category>
		<category><![CDATA[form based authentication]]></category>

		<guid isPermaLink="false">http://www.iamseree.com/?p=14</guid>
		<description><![CDATA[Hello everyone, I&#8217;m here to say that most of ASP.NET books on the market didn&#8217;t provide you the effective way to use authentication cookies. Assume that when you&#8217;re working with form-based authentication. (Setting in web.config) When we do some manual authentication method, we imports System.Web.Security and using FormsAuthentication.RedirectFromLoginPage(&#8220;userName&#8221;, false). The ASP.NET authentication engine will automatically ...]]></description>
			<content:encoded><![CDATA[<p>Hello everyone,</p>
<p>I&#8217;m here to say that most of ASP.NET books on the market didn&#8217;t provide you the effective way to use authentication cookies.</p>
<p>Assume that when you&#8217;re working with form-based authentication. (Setting in web.config) When we do some manual authentication method, we imports System.Web.Security and using FormsAuthentication.RedirectFromLoginPage(&#8220;userName&#8221;, false). The ASP.NET authentication engine will automatically create a cookie to persist authenticate status. This cookies was used to identify the user have been signed in or not. So, when we want to store some of user&#8217;s profile. How do we do it?</p>
<p>We can coding to create new cookie object to store those profile but we already known that ASP.NET authentication engine already created the cookie when signed in. The question should be &#8220;How do we access this cookie? Is it possible?&#8221;.</p>
<p>Certainly, you can do it. Please review the following code.</p>
<p>In your login button&#8217;s click event.</p>
<blockquote><p>if(AuthSucceeded){<span id="more-14"></span></p>
<p>HttpCookie cookie = FormsAuthentication.GetAuthCookie(txtLoginName.Text, false);</p>
<p>FormsAuthenticationTicket ticket = FormsAuthentication.Decrypt(cookie.Value);</p>
<p>FormsAuthenticationTicket newticket = new FormsAuthenticationTicket(ticket.Version, ticket.Name, ticket.IssueDate, ticket.Expiration, ticket.IsPersistent, &#8220;Secret|Role|CustomVar1&#8243;, ticket.CookiePath);</p>
<p>cookie.Value = FormsAuthentication.Encrypt(newticket);</p>
<p>Context.Response.Cookies.Set(cookie);</p>
<p>}</p></blockquote>
<p>The above code was used to create an authenticated cookie with custom profile/data. (&#8220;Secret|Role|CustomVar1&#8243;)</p>
<p>When we need to extract the custom profile/data, we do with the following code.</p>
<blockquote><p>FormsIdentity ident = (FormsIdentity)User.Identity;string strCustomData = ident.Ticket.UserData.ToString();</p></blockquote>
<p>With this method, we don&#8217;t need any separated cookies to store the authenticated user&#8217;s profile anymore.</p>
<p><strong>Hope this help you get step ahead on your ASP.NET skill.</strong></p>
<p><!--adsense--></p>
]]></content:encoded>
			<wfw:commentRss>http://www.iamseree.com/application-development/real-world-aspnet-authentication/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Create RSS Feed from your data with .NET</title>
		<link>http://www.iamseree.com/application-development/create-rss-feed-from-your-data-with-net/</link>
		<comments>http://www.iamseree.com/application-development/create-rss-feed-from-your-data-with-net/#comments</comments>
		<pubDate>Thu, 02 Aug 2007 12:51:34 +0000</pubDate>
		<dc:creator>Seree</dc:creator>
				<category><![CDATA[Application Development]]></category>
		<category><![CDATA[.net]]></category>
		<category><![CDATA[asp.net]]></category>
		<category><![CDATA[atom]]></category>
		<category><![CDATA[create rss]]></category>
		<category><![CDATA[feed]]></category>
		<category><![CDATA[rss]]></category>
		<category><![CDATA[web 2.0]]></category>

		<guid isPermaLink="false">http://www.iamseree.com/?p=17</guid>
		<description><![CDATA[Hello, Today I&#8217;ll give you a quick guide on how to create RSS Feed channel from your existing data. Before we go to the implementation, let&#8217;s see a brief overview of What is RSS, Feed or Atom? RSS, Feed or Atom is a format name of the method for latest generation webmaster to feed their ...]]></description>
			<content:encoded><![CDATA[<p>Hello,</p>
<p>Today I&#8217;ll give you a quick guide on how to create RSS Feed channel from your existing data. Before we go to the implementation, let&#8217;s see a brief overview of <a href="http://en.wikipedia.org/wiki/RSS" target="_blank">What is RSS, Feed or Atom?</a></p>
<p>RSS, Feed or Atom is a format name of the method for latest generation webmaster to feed their own <strong><em>updated contents</em></strong> into external web sites or any external applications. I focus to the word <strong><em>updated contents</em></strong> because this is a point of the method. (Now I&#8217;ll call it RSS and no more Feed or Atom) The content that provide RSS Feed channel almost often updated.</p>
<p>RSS content can be read by any RSS reader software such as Internet Explorer 7.0, Mozilla FireFox, Microsoft Outlook or any third party. Sometime it called &#8220;Feed reader&#8221; or &#8220;Aggregator&#8221; instead of &#8220;RSS reader&#8221;. Most of RSS reader can monitoring the RSS Feed channel and seeing if there are any changes occurred in the content when compared to previous time. This is very useful when some user don&#8217;t want to spend too much time to load any UI as it takes so much time than actual contents. If you still don&#8217;t get an idea and you have some RSS reader installed, you can try it online <a href="http://www.knowhowdd.com/GetGroupFeed.aspx?groupId=4" target="_blank">here</a>. (Sorry, but the content of the feed is in Thai language. Just prove to get you idea)</p>
<p>For webmaster or developer like us, If you want to build your web site to stay tuned with <a href="http://en.wikipedia.org/wiki/Web_2.0" target="_blank">Web 2.0</a> trend. You should build RSS Feed channel to your web application to let external applications consume your data and get more traffics.</p>
<p>In technically terms. RSS, Feed or Atom are all just an XML file that had their own format which RSS reader can be read. You can see the sample of XML structure <a href="http://msdn2.microsoft.com/en-us/xml/bb190613.aspx" target="_blank">here</a>. (Just RSS 2.0)</p>
<p>So, how can we coding to build up RSS Feed channel from the existing data? It&#8217;s very easy, easier than you thinks!<span id="more-17"></span></p>
<p><!--adsense--></p>
<p>Let&#8217;s examine the RSS 2.0 specification first.</p>
<blockquote><p><span style="color: #22ffff; font-size: x-small;">&lt;?xml version=&#8221;1.0&#8243;?&gt;<br />
&lt;rss version=&#8221;2.0&#8243;&gt;<br />
&lt;channel&gt;<br />
&lt;title&gt;Latest Know-How&lt;/title&gt;<br />
&lt;link&gt;</span><a href="http://www.knowhowdd.com/"><span style="color: #22ffff; font-size: x-small;">http://www.knowhowdd.com/</span></a><span style="font-size: x-small;"><span style="color: #22ffff;">&lt;/link&gt;<br />
&lt;description&gt;Latest knowhow from www.knowhowdd.com&lt;/description&gt;<br />
&lt;language&gt;en-us&lt;/language&gt;<br />
&lt;pubDate&gt;Tue, 10 Jun 2003 04:00:00 GMT&lt;/pubDate&gt;<br />
&lt;managingEditor&gt;rss@knowhowdd.com&lt;/managingEditor&gt;<br />
&lt;webMaster&gt;webmaster@knowhowdd.com&lt;/webMaster&gt;<br />
</span><br />
<span style="color: #22ffff;">&lt;item&gt;<br />
&lt;title&gt;Custom ASP.NET Membership Provider&lt;/title&gt;      &lt;link&gt;</span></span><a href="http://www.knowhowdd.com/ShowKnowhow.aspx?khId=11"><span style="color: #22ffff; font-size: x-small;">http://www.knowhowdd.com/ShowKnowhow.aspx?khId=11</span></a><span style="color: #22ffff; font-size: x-small;">&lt;/link&gt;<br />
&lt;description&gt;How to create your own custom ASP.NET authentication membership provider&lt;/description&gt;<br />
&lt;pubDate&gt;Tue, 03 Jun 2003 09:39:21 GMT&lt;/pubDate&gt;<br />
&lt;/item&gt;</span></p>
<p><span style="color: #22ffff; font-size: x-small;"> &lt;item&gt;<br />
&lt;title&gt;Custom ASP.NET Role Provider&lt;/title&gt;<br />
&lt;link&gt;</span><a href="http://www.knowhowdd.com/ShowKnowhow.aspx?khId=25"><span style="color: #22ffff; font-size: x-small;">http://www.knowhowdd.com/ShowKnowhow.aspx?khId=25</span></a><span style="font-size: x-small;"><span style="color: #22ffff;">&lt;/link&gt;<br />
&lt;description&gt;How to create your own custom ASP.NET authentication role provider&lt;/description&gt;<br />
&lt;pubDate&gt;Fri, 30 May 2003 11:06:42 GMT&lt;/pubDate&gt;<br />
&lt;/item&gt;<br />
</span><br />
<span style="color: #22ffff;">&lt;/channel&gt;<br />
&lt;/rss&gt;</span></span></p></blockquote>
<p>What I&#8217;ve hi-lighted in blue are header and footer sections which describe itself meaning. Next, what I&#8217;ve hi-lighted as red is body which contains your content items.</p>
<p>So, our development task is just to generate this XML stream from the existing data. It&#8217;s really easy to complete this task as .NET already provide a great XML class library. Let&#8217;s begin coding with VB.NET.</p>
<p>First of all, import some necessary namespaces.</p>
<blockquote><p>Imports System.Text<br />
Imports System.Xml</p></blockquote>
<p>Then go to the code block where you want to generate the RSS Feed and coding to build header section just like the following&#8230;</p>
<blockquote><p><span style="color: #008000;">&#8216;Clear response</span><br />
Response.Clear()</p>
<p><span style="color: #008000;">&#8216;Write the beginning of RSS content</span><br />
Response.ContentType = &#8220;text/xml&#8221;<br />
Dim xtwFeed As New XmlTextWriter(Response.OutputStream, Encoding.UTF8)<br />
xtwFeed.WriteStartDocument()<br />
xtwFeed.WriteStartElement(&#8220;rss&#8221;)<br />
xtwFeed.WriteAttributeString(&#8220;version&#8221;, &#8220;2.0&#8243;)<br />
xtwFeed.WriteStartElement(&#8220;channel&#8221;)<br />
xtwFeed.WriteElementString(&#8220;title&#8221;, &#8220;KnowHowDD.com &#8211; Latest Know-How on group : &#8221; &amp; g.Title)<br />
xtwFeed.WriteElementString(&#8220;link&#8221;, &#8220;<a href="http://www.knowhowdd.com"><span style="color: #22ffff;">http://www.knowhowdd.com&#8221;)</span></a><br />
xtwFeed.WriteElementString(&#8220;description&#8221;, &#8220;The latest know-how from KnowHowDD.com&#8221;)<br />
xtwFeed.WriteElementString(&#8220;copyright&#8221;, &#8220;Copyright 2006 &#8211; 2007 KnowHowDD.com. All rights reserved.&#8221;)</p></blockquote>
<p>The header section was completed now, then we&#8217;ll begin to build the body section of the RSS feed. Normally I&#8217;ll loop through the collection of data which I want to provide as RSS Feed channel.</p>
<blockquote><p><span style="color: #008000;">&#8216;Loop through all records to generate RSS body<br />
</span>For Each kh As KnowHowEntity In knowHows<br />
<span style="color: #008000;">&#8216;Write body (Extract from database)<br />
</span> xtwFeed.WriteStartElement(&#8220;item&#8221;)<br />
xtwFeed.WriteElementString(&#8220;title&#8221;, kh.Title)<br />
xtwFeed.WriteElementString(&#8220;description&#8221;, kh.Description)<br />
xtwFeed.WriteElementString(&#8220;link&#8221;, &#8220;<a href="http://www.knowhowdd.com/ShowKnowHow.aspx?knowHowId="><span style="color: #22ffff;">http://www.knowhowdd.com/ShowKnowHow.aspx?knowHowId=&#8221;</span></a> &amp; kh.KnowHowId)<br />
xtwFeed.WriteElementString(&#8220;pubDate&#8221;, kh.PubDate.ToString(&#8220;dd/MM/yyyy hh:mm:ss&#8221;))<br />
xtwFeed.WriteEndElement()<br />
Next</p></blockquote>
<p>Now, the body section was completely built. Let&#8217;s complete the footer section.</p>
<blockquote><p><span style="color: #008000;">&#8216;Write the ending of RSS content</span><br />
xtwFeed.WriteEndElement()<br />
xtwFeed.WriteEndElement()<br />
xtwFeed.WriteEndDocument()<br />
xtwFeed.Flush()<br />
xtwFeed.Close()<br />
Response.End()</p></blockquote>
<p>Easy or not, now it&#8217;s completed and we all got RSS Feed channel in our <a href="http://en.wikipedia.org/wiki/Web_2.0" target="_blank">Web 2.0</a> style application!</p>
<p><!--adsense--></p>
]]></content:encoded>
			<wfw:commentRss>http://www.iamseree.com/application-development/create-rss-feed-from-your-data-with-net/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>VB.NET vs C# &#8211; Who will win?</title>
		<link>http://www.iamseree.com/application-development/vbnet-vs-c-who-will-win/</link>
		<comments>http://www.iamseree.com/application-development/vbnet-vs-c-who-will-win/#comments</comments>
		<pubDate>Thu, 28 Jun 2007 06:45:32 +0000</pubDate>
		<dc:creator>Seree</dc:creator>
				<category><![CDATA[Application Development]]></category>
		<category><![CDATA[.net]]></category>
		<category><![CDATA[c#]]></category>
		<category><![CDATA[comparison]]></category>
		<category><![CDATA[csharp]]></category>
		<category><![CDATA[vb.net]]></category>
		<category><![CDATA[visual studio]]></category>

		<guid isPermaLink="false">http://www.iamseree.com/?p=10</guid>
		<description><![CDATA[Hi all, This is my first post on blog about Microsoft .NET development. So, let me say a little sorry about my bad English. Let&#8217;s go to those day that C/C++ language dominating Visual Basic all the time. If I can remember it takes more than ten years now since Visual Basic for DOS (1.0). ...]]></description>
			<content:encoded><![CDATA[<p>Hi all,</p>
<p>This is my first post on blog about Microsoft .NET development. So, let me say a little sorry about my bad English.<br />
Let&#8217;s go to those day that C/C++ language dominating Visual Basic all the time. If I can remember it takes more than ten years now since Visual Basic for DOS (1.0). In this blog I&#8217;ll show the various perspective and conclude about these two languages of choices for developer to be chosen for Microsoft .NET development.</p>
<p>Let&#8217;s take a look after them!</p>
<p><!--adsense--></p>
<p><strong>Comparison begin, who will win?</strong></p>
<p>For Visual Basic, this language had dominated the development community due to it&#8217;s ease of use, short learning curve, rich GUI(s) and many more reasons. As It&#8217;s really easy for people to learn and begin programming in no time!<br />
Personally, I&#8217;ve used Visual Basic since version 3.0. In those time it still using 3.5&#8243; diskettes for setup. The first time I try it, I&#8217;m wondering how they can made GUI programming very easy. But I never use it in any commercial applications as those time the application built from Visual Basic is so slow when comparing to any C++ based compiler. So, I&#8217;m sticking with Borland C++ and Visual C++. A few years quickly passed, I&#8217;ve a chance to try Visual Basic again but now for 5.0. It had been improved so much! Very impresses to me. However, Its performance still generate the reason that I should not use it cause of it&#8217;s so slow when comparing to C++ based. But that time I&#8217;m really think that its WYSIWYG is very good and will increase my productivity significantly. So, I decide to learn it in a little deep details. At last, I still consider to stick with C++ based as the speed really made me sick about it. But now I&#8217;m finding some tools that has a cool WYSIWYG but based on C++. So, now I got a really cool tools. Borland C++ Builder.<br />
I used Borland C++ Builder instead of Microsoft Visual C++ with MFC for a couple of years until what Microsoft said it&#8217;ll be the next generation of software development platform named Microsoft .NET. So, now I got a chance to try again on Visual Basic. Now in version 7.0 aka VB.NET. When compared to C++ application with Win32API it still slow in nature. But the productivity was very high now for .NET. So, I use just a few days to decide to go on .NET platform instead of any Win32API or J2EE platform and using both C# and VB.NET until today.<br />
In my experiences regards on both languages. VB.NET has higher productivity in means of a few line of code and less task effort when developing than C#. So, I call it higher productivity. C# also high productivity but in my opinion, VB.NET is better on this topic. But there are somethings you should know about VB.NET and C# when comparison is begin. I written below as one-by-one&#8230;</p>
<p><strong>Performance<br />
</strong>No one win! as it&#8217;ll produce the same output as based on Microsoft CLR. (Common Language Runtime) So, who think that C# will take ahead from VB.NET on performance. It does not!</p>
<p><strong>Number of line</strong><br />
In my experiences, VB.NET may written less number of line in the same task but in most case It should be equal as they using the same class library.</p>
<p><strong>3rd party components</strong><br />
Equality.</p>
<p><strong>3rd party tools</strong><br />
C# is better as some refactoring/intellisense tools support only for C#.</p>
<p><strong>OOP</strong><br />
Now both of them is fully OOP. In .NET 1.1, VB.NET can&#8217;t do operator overloading but in .NET 2.0, it fully support!</p>
<p><strong>My personal conclusion</strong><br />
For my experiences, I preferred VB.NET on small to medium scale of project but C# for large. As on the internet community, I found many C# developers was better than VB.NET. I should not be 100% but for my idea. I think that VB.NET is easies for learning. So, VB.NET may not clearly understand much about architecture and programming logic. But in case of C#, it may not that case as It&#8217;s a long time well structured from the past.<br />
At last, it up to you and the application will produce a good or bad result will be based on your understanding of problem domain, solution and your logic. So, don&#8217;t bother much about languages!</p>
<p><strong>Clearly no winner between VB.NET and C# but Microsoft!</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.iamseree.com/application-development/vbnet-vs-c-who-will-win/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Great 3rd party Ajax control suite</title>
		<link>http://www.iamseree.com/application-development/great-3rd-party-ajax-control-suite/</link>
		<comments>http://www.iamseree.com/application-development/great-3rd-party-ajax-control-suite/#comments</comments>
		<pubDate>Fri, 22 Jun 2007 06:47:10 +0000</pubDate>
		<dc:creator>Seree</dc:creator>
				<category><![CDATA[Application Development]]></category>
		<category><![CDATA[.net]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[ajax library]]></category>
		<category><![CDATA[asp.net]]></category>
		<category><![CDATA[asp.net ajax]]></category>
		<category><![CDATA[telerik]]></category>
		<category><![CDATA[web development]]></category>

		<guid isPermaLink="false">http://www.iamseree.com/?p=12</guid>
		<description><![CDATA[Have you ever tried Ajaxify your ASP.NET application? Have you tried and tired? I&#8217;m one of those guys who already tried and tired on ajaxify the application to fully working in Ajax basis. Until the day I found one of a great Ajax control suite named Telerik RadControls for ASP.NET. It was combined by various ...]]></description>
			<content:encoded><![CDATA[<p>Have you ever tried Ajaxify your ASP.NET application? Have you tried and tired?</p>
<p>I&#8217;m one of those guys who already tried and tired on ajaxify the application to fully working in Ajax basis. Until the day I found one of a great Ajax control suite named <a href="http://www.telerik.com">Telerik RadControls for ASP.NET</a>. It was combined by various ASP.NET UI controls. Most of the controls, I can say nearly 100% already ajaxified for your instant using without deep knowledge on Javascript writing.</p>
<p>I found that my productivity was much increased by this suite and their support are great as I never seen this support anywhere even the more famous controls suite like Infragistics NetAdvantage, ComponentArt, ComponentOne or any other else. You can get quick response back within 24 hours with many samples on your desired case. So, for me It doesn&#8217;t a hard decision to afford it for 1 year subscription. After I&#8217;ve purchased, I found the bonus are very impressive as Telerik give us many interesting things than I thought. In my case, I purchase Telerik RadControls for ASP.NET with subscription for 1 year. I got Telerik RadControls for WinForms too. After purchase date around three months, Telerik releases new version of Telerik RadControls for WinForms with WPF. (Windows Presentation Foundation) and they give me too! What&#8217;s a kindly guy! In next six months, I found that the product was continuously updated around 4 times with many new features. Again, when they release their Telerik Reporting product. I also got it from current subscription and I thinks this reporting product are compact, fast and very easy on deployment. (I kicked out Crystal Reports, Microsoft Reporting Services and even DevExpress&#8217; one &#8211; Every products I listed here are required to install some special executables into web server but Telerik&#8217;s just use XCOPY method)</p>
<p>If you are finding for a great Ajax controls suite. I can say that you will got the point when working with Telerik&#8217;s suite. Very very impressive!</p>
<p><!--adsense--></p>
]]></content:encoded>
			<wfw:commentRss>http://www.iamseree.com/application-development/great-3rd-party-ajax-control-suite/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
