<?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; .net</title>
	<atom:link href="http://www.iamseree.com/tag/net/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>Tue, 15 May 2012 16:06:11 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<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[<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> [...]]]></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>
<div align="left" style="float: ; padding: 5px 5px 0px 0px;"><a name="fb_share" type="button" share_url="http://www.iamseree.com/application-development/in-research-of-a-javascript-library-to-be-used-with-aspnet-on-my-next-project"></a></div>]]></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[<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 [...]]]></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>
<div align="left" style="float: ; padding: 5px 5px 0px 0px;"><a name="fb_share" type="button" share_url="http://www.iamseree.com/application-development/why-you-need-validation-in-your-web-application"></a></div>]]></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[<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 [...]]]></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>
<div align="left" style="float: ; padding: 5px 5px 0px 0px;"><a name="fb_share" type="button" share_url="http://www.iamseree.com/application-development/cryptography-in-net-part-i"></a></div>]]></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>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[<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> [...]]]></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>
<div align="left" style="float: ; padding: 5px 5px 0px 0px;"><a name="fb_share" type="button" share_url="http://www.iamseree.com/application-development/7-tips-made-rendering-html-faster-do-it-lately"></a></div>]]></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>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[<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 [...]]]></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" onclick="pageTracker._trackPageview('/outgoing/en.wikipedia.org/wiki/SQL_Injection?referer=');">visit here</a>.</p>
<p><!--adsense--></p>
<div align="left" style="float: ; padding: 5px 5px 0px 0px;"><a name="fb_share" type="button" share_url="http://www.iamseree.com/application-development/prevent-your-net-application-from-sql-injection"></a></div>]]></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[<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 [...]]]></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>
<div align="left" style="float: ; padding: 5px 5px 0px 0px;"><a name="fb_share" type="button" share_url="http://www.iamseree.com/application-development/real-world-aspnet-authentication"></a></div>]]></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[<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" onclick="pageTracker._trackPageview('/outgoing/en.wikipedia.org/wiki/RSS?referer=');">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 [...]]]></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" onclick="pageTracker._trackPageview('/outgoing/en.wikipedia.org/wiki/RSS?referer=');">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" onclick="pageTracker._trackPageview('/outgoing/www.knowhowdd.com/GetGroupFeed.aspx?groupId=4&amp;referer=');">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" onclick="pageTracker._trackPageview('/outgoing/en.wikipedia.org/wiki/Web_2.0?referer=');">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" onclick="pageTracker._trackPageview('/outgoing/msdn2.microsoft.com/en-us/xml/bb190613.aspx?referer=');">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/" onclick="pageTracker._trackPageview('/outgoing/www.knowhowdd.com/?referer=');"><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" onclick="pageTracker._trackPageview('/outgoing/www.knowhowdd.com/ShowKnowhow.aspx?khId=11&amp;referer=');"><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" onclick="pageTracker._trackPageview('/outgoing/www.knowhowdd.com/ShowKnowhow.aspx?khId=25&amp;referer=');"><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" onclick="pageTracker._trackPageview('/outgoing/www.knowhowdd.com?referer=');"><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=" onclick="pageTracker._trackPageview('/outgoing/www.knowhowdd.com/ShowKnowHow.aspx?knowHowId=&amp;referer=');"><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" onclick="pageTracker._trackPageview('/outgoing/en.wikipedia.org/wiki/Web_2.0?referer=');">Web 2.0</a> style application!</p>
<p><!--adsense--></p>
<div align="left" style="float: ; padding: 5px 5px 0px 0px;"><a name="fb_share" type="button" share_url="http://www.iamseree.com/application-development/create-rss-feed-from-your-data-with-net"></a></div>]]></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[<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 [...]]]></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>
<div align="left" style="float: ; padding: 5px 5px 0px 0px;"><a name="fb_share" type="button" share_url="http://www.iamseree.com/application-development/vbnet-vs-c-who-will-win"></a></div>]]></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[<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" onclick="pageTracker._trackPageview('/outgoing/www.telerik.com?referer=');">Telerik RadControls for ASP.NET</a>. It was combined by [...]]]></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" onclick="pageTracker._trackPageview('/outgoing/www.telerik.com?referer=');">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>
<div align="left" style="float: ; padding: 5px 5px 0px 0px;"><a name="fb_share" type="button" share_url="http://www.iamseree.com/application-development/great-3rd-party-ajax-control-suite"></a></div>]]></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>

