<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-3096271591668550621</id><updated>2011-12-06T04:48:27.521-08:00</updated><category term='book reviews'/><category term='C# Interview Questions'/><category term='technology'/><category term='Code Challenges'/><category term='Microsoft'/><category term='introduction'/><category term='WebsiteSpark'/><category term='project plan'/><category term='Single Query'/><category term='SQL Server'/><category term='job seekers'/><category term='blog'/><category term='NULL Values'/><category term='codebate'/><category term='ASP.NET'/><category term='C#'/><category term='overriding'/><category term='mpxj'/><category term='Email Validation'/><category term='Advanced'/><category term='code4asp.net'/><category term='Polymorphism'/><category term='EMail'/><category term='.NET Interview Questions'/><category term='Method Hiding'/><category term='virtual'/><category term='WHERE Clause'/><category term='import mpp data'/><category term='learning'/><category term='msproject'/><category term='Inheritance'/><category term='.NET'/><title type='text'>CoDebate</title><subtitle type='html'>Debating Code - [ASP.NET, C#, Sql Server, VB.NET]</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://codebate.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3096271591668550621/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://codebate.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Karthikeyan</name><uri>http://www.blogger.com/profile/02626008644253946651</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://4.bp.blogspot.com/_KmQnpGV2_0c/SuPqNjh4DoI/AAAAAAAAAf4/gknbh7YSsbk/S220/3.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>8</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-3096271591668550621.post-7759779355419799855</id><published>2009-12-13T03:12:00.000-08:00</published><updated>2009-12-13T03:34:30.051-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Code Challenges'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server'/><category scheme='http://www.blogger.com/atom/ns#' term='Single Query'/><title type='text'>Code Challenges (SQL Server)</title><content type='html'>Challenges are really great in the sense of personal and professional improvement.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;BeyondRelational&lt;/span&gt; -  one kind of raising and solving Challenges for &lt;span style="font-weight: bold;"&gt;Microsoft Sql Server&lt;/span&gt; Developers. &lt;br /&gt;&lt;br /&gt;&lt;a href="http://beyondrelational.com"&gt;&lt;img src="http://i970.photobucket.com/albums/ae190/karthik1979/BR.jpg" height="100" width="300" border="2" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Please check this in here..&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;http://beyondrelational.com/blogs/tc/default.aspx&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;What they do actually ?&lt;br /&gt;Well, they raise a problem which should be solved by a SQL Server queries.&lt;br /&gt;Of those Challenges, which might have many other rules and conditions, the main rule might be - to write a &lt;span style="font-weight: bold;"&gt;single query&lt;/span&gt; for complex problems.&lt;br /&gt;&lt;br /&gt;Happy Challenging !!!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3096271591668550621-7759779355419799855?l=codebate.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://codebate.blogspot.com/feeds/7759779355419799855/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://codebate.blogspot.com/2009/12/code-challenges-sql-server.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3096271591668550621/posts/default/7759779355419799855'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3096271591668550621/posts/default/7759779355419799855'/><link rel='alternate' type='text/html' href='http://codebate.blogspot.com/2009/12/code-challenges-sql-server.html' title='Code Challenges (SQL Server)'/><author><name>Karthikeyan</name><uri>http://www.blogger.com/profile/02626008644253946651</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://4.bp.blogspot.com/_KmQnpGV2_0c/SuPqNjh4DoI/AAAAAAAAAf4/gknbh7YSsbk/S220/3.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3096271591668550621.post-1855292358904156941</id><published>2009-10-24T00:15:00.000-07:00</published><updated>2009-10-24T00:52:47.891-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mpxj'/><category scheme='http://www.blogger.com/atom/ns#' term='msproject'/><category scheme='http://www.blogger.com/atom/ns#' term='project plan'/><category scheme='http://www.blogger.com/atom/ns#' term='import mpp data'/><category scheme='http://www.blogger.com/atom/ns#' term='Microsoft'/><title type='text'>Importing MS Project Plan (.mpp) Data in ASP.NET</title><content type='html'>If you are struggling with Native libraries to import mpp (MSProject Plan)  file data, this article is for you. This is written after my personal experience.&lt;br /&gt;&lt;br /&gt;In the beginning , I used MSProject (InterOp) assemblies and a demo version of MSProject for my development. The problem I faced is the license. Like my other Office Automation Efforts(not recommended by MS because of its inconsistency), this assembly  demands a MS Project Installation and a license in my machine.&lt;br /&gt;&lt;br /&gt;So, I was placed in a chance to search of alternative methods. I got &lt;span style="font-weight: bold;"&gt;MPXJ&lt;/span&gt;, a Java-based Free Open Source library which has extensive collections of methods and utilities in it to read enough an mpp data. This pack also comes with JVM library as it needs for its compilation.&lt;br /&gt;&lt;br /&gt;Functions,shown below, are the some of the useful things and will return a &lt;span style="font-style: italic;"&gt;List object&lt;/span&gt;.&lt;br /&gt;&lt;span style="font-style: italic;"&gt;task.getResourceNames()&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;resource.getTaskAssignments()&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;resourceassignment.getPeakUnits()&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Download MPXJ:  http://mpxj.sourceforge.net/&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;Happy Programming !!! &lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3096271591668550621-1855292358904156941?l=codebate.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://codebate.blogspot.com/feeds/1855292358904156941/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://codebate.blogspot.com/2009/10/importing-ms-project-plan-mpp-data-in.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3096271591668550621/posts/default/1855292358904156941'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3096271591668550621/posts/default/1855292358904156941'/><link rel='alternate' type='text/html' href='http://codebate.blogspot.com/2009/10/importing-ms-project-plan-mpp-data-in.html' title='Importing MS Project Plan (.mpp) Data in ASP.NET'/><author><name>Karthikeyan</name><uri>http://www.blogger.com/profile/02626008644253946651</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://4.bp.blogspot.com/_KmQnpGV2_0c/SuPqNjh4DoI/AAAAAAAAAf4/gknbh7YSsbk/S220/3.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3096271591668550621.post-2727309155528106320</id><published>2009-10-08T09:51:00.000-07:00</published><updated>2009-10-15T12:15:07.220-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Microsoft'/><category scheme='http://www.blogger.com/atom/ns#' term='WebsiteSpark'/><title type='text'>A Great Spark from Microsoft - WebsiteSpark</title><content type='html'>&lt;blockquote style="font-weight: bold; font-family: georgia;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;Microsoft announces WebsiteSpark for Web Portal Owners !!!&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: normal;"&gt;With every offer announced by other commercial products, there may be little &lt;/span&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;* Condition Apply&lt;/span&gt;&lt;span style="font-weight: normal;"&gt; tag appear to declare a &lt;span style="font-style: italic;"&gt;Win-Lose&lt;/span&gt; chance in which usually customer is the loser. But MS announces a &lt;span style="font-style: italic;"&gt;Win-Win&lt;/span&gt; chance for website owners to make their portals still in .NET environment.&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-weight: normal;"&gt;When more and more open source software users increased, it is Microsoft's turn to bring back the Website Owners and Deployers to Microsoft's Native Platform for their commercial portals and corporate sites. &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: normal;"&gt;What a .NET developer would prefer to develop and deploy portals in .NET Technologies,  a Website Owner would prefer  to use Open Source Database such as MySQL, etc, as it costs nothing.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;So, actually what is WebsiteSpark?&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: normal;"&gt;Last Month, ScottGu of MS announces the WebsiteSpark program, which holds a couple of &lt;span style="font-weight: bold;"&gt;free development and production licenses&lt;/span&gt; in the .NET Platform for the &lt;span style="font-weight: bold;"&gt;three &lt;/span&gt;years.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: normal;"&gt;The free licenses include:&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-size:85%;" &gt;&lt;ul style="font-weight: normal;"&gt;&lt;li&gt;3 licenses of Visual Studio 2008 Professional Edition &lt;/li&gt;&lt;li&gt;1 license of Expression Studio 3 (which includes Expression Blend, Sketchflow, and Web) &lt;/li&gt;&lt;li&gt;2 licenses of Expression Web 3 &lt;/li&gt;&lt;li&gt;4 processor licenses of Windows Web Server 2008 R2 &lt;/li&gt;&lt;li&gt;4 processor licenses of SQL Server 2008 Web Edition &lt;/li&gt;&lt;li&gt;DotNetPanel control panel (enabling easy remote/hosted management of your servers) &lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: normal;"&gt;MS believes giving them at no cost encourages the use of .NET deployment environment  &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-size:85%;" &gt;&lt;h3&gt;&lt;span style="font-size:100%;"&gt;&lt;u&gt;What happens after the 3 years?&lt;/u&gt;&lt;/span&gt;&lt;/h3&gt;&lt;h3&gt;&lt;span style="font-weight: normal;font-size:100%;" &gt;Still there is no compulsion to continue with the same licenses. But if the user would like to continue, then he has to pay a minimum amount of about Rs.10000/Yr.&lt;/span&gt;&lt;/h3&gt;For more details:&lt;br /&gt;http://www.microsoft.com/web/websitespark/&lt;br /&gt;http://weblogs.asp.net/scottgu/archive/2009/09/24/announcing-the-websitespark-program.aspx&lt;/span&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3096271591668550621-2727309155528106320?l=codebate.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://codebate.blogspot.com/feeds/2727309155528106320/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://codebate.blogspot.com/2009/10/great-spark-from-microsoft-websitespark.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3096271591668550621/posts/default/2727309155528106320'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3096271591668550621/posts/default/2727309155528106320'/><link rel='alternate' type='text/html' href='http://codebate.blogspot.com/2009/10/great-spark-from-microsoft-websitespark.html' title='A Great Spark from Microsoft - WebsiteSpark'/><author><name>Karthikeyan</name><uri>http://www.blogger.com/profile/02626008644253946651</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://4.bp.blogspot.com/_KmQnpGV2_0c/SuPqNjh4DoI/AAAAAAAAAf4/gknbh7YSsbk/S220/3.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3096271591668550621.post-3492285899322827053</id><published>2009-07-01T10:22:00.001-07:00</published><updated>2009-07-03T10:01:36.213-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='NULL Values'/><category scheme='http://www.blogger.com/atom/ns#' term='.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='job seekers'/><category scheme='http://www.blogger.com/atom/ns#' term='.NET Interview Questions'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server'/><category scheme='http://www.blogger.com/atom/ns#' term='WHERE Clause'/><title type='text'>Strange Behavior of NULL Values in SQL Queries</title><content type='html'>&lt;p&gt;I found a strange behavior of NULL Values when I have a table values as in the following: &lt;/p&gt; &lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;  &lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;Declare&lt;/span&gt; @val &lt;span class="kwrd"&gt;table&lt;/span&gt;&lt;br /&gt;(&lt;br /&gt;Id &lt;span class="kwrd"&gt;int&lt;/span&gt;,&lt;br /&gt;Username &lt;span class="kwrd"&gt;varchar&lt;/span&gt;(100),&lt;br /&gt;Desg &lt;span class="kwrd"&gt;varchar&lt;/span&gt;(100),&lt;br /&gt;&lt;span class="kwrd"&gt;Level&lt;/span&gt; &lt;span class="kwrd"&gt;varchar&lt;/span&gt;(100)&lt;br /&gt;) &lt;br /&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;Insert&lt;/span&gt; &lt;span class="kwrd"&gt;into&lt;/span&gt; @val&lt;br /&gt;&lt;span class="kwrd"&gt;select&lt;/span&gt; 1,&lt;span class="str"&gt;'AAA'&lt;/span&gt;,&lt;span class="kwrd"&gt;NULL&lt;/span&gt;,1 &lt;span class="kwrd"&gt;union&lt;/span&gt; &lt;span class="kwrd"&gt;all&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;select&lt;/span&gt; 1,&lt;span class="str"&gt;'BBB'&lt;/span&gt;,&lt;span class="kwrd"&gt;NULL&lt;/span&gt;,1 &lt;span class="kwrd"&gt;union&lt;/span&gt; &lt;span class="kwrd"&gt;all&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;select&lt;/span&gt; &lt;span class="kwrd"&gt;NULL&lt;/span&gt;,&lt;span class="str"&gt;'CCC'&lt;/span&gt;,&lt;span class="str"&gt;'SE'&lt;/span&gt;,1 &lt;span class="kwrd"&gt;union&lt;/span&gt; &lt;span class="kwrd"&gt;all&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;select&lt;/span&gt; 2,&lt;span class="kwrd"&gt;NULL&lt;/span&gt;,&lt;span class="str"&gt;'PL'&lt;/span&gt;,4 &lt;span class="kwrd"&gt;union&lt;/span&gt; &lt;span class="kwrd"&gt;all&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;select&lt;/span&gt; 2,&lt;span class="str"&gt;'EEE'&lt;/span&gt;,&lt;span class="kwrd"&gt;NULL&lt;/span&gt;,5&lt;br /&gt;&lt;br /&gt;&lt;span class="rem"&gt;-- Query 1 &lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;select&lt;/span&gt; * &lt;span class="kwrd"&gt;from&lt;/span&gt; @val  &lt;br /&gt;&lt;br /&gt;&lt;span class="rem"&gt;-- Query 2 &lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;select&lt;/span&gt; Id,Username,desg,&lt;span class="kwrd"&gt;COUNT&lt;/span&gt;(*)&lt;br /&gt;[&lt;span class="kwrd"&gt;No&lt;/span&gt;. &lt;span class="kwrd"&gt;of&lt;/span&gt;  Employees] &lt;span class="kwrd"&gt;from&lt;/span&gt; @val&lt;br /&gt;&lt;span class="kwrd"&gt;where&lt;/span&gt; desg  &amp;lt;&amp;gt; &lt;span class="str"&gt;'SE'&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;group&lt;/span&gt; &lt;span class="kwrd"&gt;by&lt;/span&gt; Id,Username,Desg&lt;br /&gt;&lt;br /&gt;&lt;span class="rem"&gt;-- Query 3&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;select&lt;/span&gt; Id,Username,desg,&lt;span class="kwrd"&gt;COUNT&lt;/span&gt;(*)&lt;br /&gt;[&lt;span class="kwrd"&gt;No&lt;/span&gt;. &lt;span class="kwrd"&gt;of&lt;/span&gt; Employees] &lt;span class="kwrd"&gt;from&lt;/span&gt; @val&lt;br /&gt;&lt;span class="kwrd"&gt;where&lt;/span&gt; desg &lt;span class="kwrd"&gt;is&lt;/span&gt; &lt;span class="kwrd"&gt;null&lt;/span&gt; &lt;span class="kwrd"&gt;or&lt;/span&gt; desg  &amp;lt;&amp;gt; &lt;span class="str"&gt;'SE'&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;group&lt;/span&gt; &lt;span class="kwrd"&gt;by&lt;/span&gt; Id,Username,Desg&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;When we execute the above queries in the Sql Server Management Studio, we would get the following outputs:&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;span style="color:#000080;"&gt;&lt;strong&gt;Query 1 Result: &lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://s838.photobucket.com/albums/zz302/tamilpoo/Codebate/?action=view&amp;amp;current=FullTable.png" target="_blank"&gt;&lt;img alt="Full Table Selection" src="http://i838.photobucket.com/albums/zz302/tamilpoo/Codebate/FullTable.png" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;span style="color:#000000;"&gt;This is the output of the entire table we just created.&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;Query 2 Result:&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://s838.photobucket.com/albums/zz302/tamilpoo/Codebate/?action=view&amp;amp;current=SelectingCondition.png" target="_blank"&gt;&lt;img alt="Condition: desg  'SE'" src="http://i838.photobucket.com/albums/zz302/tamilpoo/Codebate/SelectingCondition.png" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;span style="color:#000000;"&gt;This is the output when I use this condition – &lt;strong&gt;desg &amp;lt;&amp;gt; ‘SE’&lt;/strong&gt;. But it should show the remaining rows that are with NULL values.&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;span style="font-size:+0;"&gt;&lt;strong&gt;Query 3 Result:&lt;/strong&gt;&lt;/span&gt; &lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://s838.photobucket.com/albums/zz302/tamilpoo/Codebate/?action=view&amp;amp;current=SelectingNULLs.png" target="_blank"&gt;&lt;img alt="Condition: desg IS NULL OR desg  'SE'" src="http://i838.photobucket.com/albums/zz302/tamilpoo/Codebate/SelectingNULLs.png" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;span style="color:#000000;"&gt;when I use this condition – &lt;strong&gt;desg IS NULL or desg &amp;lt;&amp;gt; ‘SE’&lt;/strong&gt;, I am able to get the required output. &lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Somebody who knows can explain the trick ;-)&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3096271591668550621-3492285899322827053?l=codebate.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://codebate.blogspot.com/feeds/3492285899322827053/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://codebate.blogspot.com/2009/07/strange-behavior-of-null-values-in-sql.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3096271591668550621/posts/default/3492285899322827053'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3096271591668550621/posts/default/3492285899322827053'/><link rel='alternate' type='text/html' href='http://codebate.blogspot.com/2009/07/strange-behavior-of-null-values-in-sql.html' title='Strange Behavior of NULL Values in SQL Queries'/><author><name>Karthikeyan</name><uri>http://www.blogger.com/profile/02626008644253946651</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://4.bp.blogspot.com/_KmQnpGV2_0c/SuPqNjh4DoI/AAAAAAAAAf4/gknbh7YSsbk/S220/3.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://i838.photobucket.com/albums/zz302/tamilpoo/Codebate/th_FullTable.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3096271591668550621.post-497394764755178968</id><published>2009-07-01T09:28:00.001-07:00</published><updated>2009-07-03T10:01:54.844-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='Advanced'/><category scheme='http://www.blogger.com/atom/ns#' term='job seekers'/><category scheme='http://www.blogger.com/atom/ns#' term='EMail'/><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='.NET Interview Questions'/><category scheme='http://www.blogger.com/atom/ns#' term='learning'/><category scheme='http://www.blogger.com/atom/ns#' term='Email Validation'/><title type='text'>ASP.NET EMail Validation – Revised.</title><content type='html'>&lt;p&gt;Sometimes back, I had searched to find an easy way to validate email address with some restricted patterns such as fixed domains, common suffices, etc. &lt;/p&gt;  &lt;p&gt;The very common regular expression for email validation is as we know: &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;span style="color:#000080;"&gt;\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;But if we want to restrict emails of specific domains, that is also simply possible by :  &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;span style="color:#000080;"&gt;\w+([-+.']\w+)*@(domA\.com|domB\.com)&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;The above expression will validate only if the emails are with &lt;strong&gt;&lt;em&gt;@domA.com&lt;/em&gt;&lt;/strong&gt; and &lt;strong&gt;&lt;em&gt;@domB.com&lt;/em&gt;&lt;/strong&gt; in the suffix.&lt;/p&gt;  &lt;p&gt;And When we want to have a specific pattern in the email:&lt;/p&gt;  &lt;p&gt;  &lt;br /&gt;&lt;strong&gt;&lt;span style="color:#000080;"&gt;\w+([-+.']\w+)*@(domA+[A-Za-z0-9]*.com)&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;With the above expression, we can validate email ids with the format abc&lt;b&gt;@domA&lt;/b&gt;bbb.com, acde&lt;b&gt;@domA&lt;/b&gt;cgfdg32.com, etc. As we could have &lt;strong&gt;&lt;em&gt;@domA&lt;/em&gt;&lt;/strong&gt; as the part of the email address after &lt;strong&gt;@&lt;/strong&gt; symbol.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3096271591668550621-497394764755178968?l=codebate.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://codebate.blogspot.com/feeds/497394764755178968/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://codebate.blogspot.com/2009/07/aspnet-email-validation-revised.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3096271591668550621/posts/default/497394764755178968'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3096271591668550621/posts/default/497394764755178968'/><link rel='alternate' type='text/html' href='http://codebate.blogspot.com/2009/07/aspnet-email-validation-revised.html' title='ASP.NET EMail Validation – Revised.'/><author><name>Karthikeyan</name><uri>http://www.blogger.com/profile/02626008644253946651</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://4.bp.blogspot.com/_KmQnpGV2_0c/SuPqNjh4DoI/AAAAAAAAAf4/gknbh7YSsbk/S220/3.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3096271591668550621.post-8365270409523050349</id><published>2008-12-20T06:45:00.000-08:00</published><updated>2009-01-18T06:21:20.536-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Method Hiding'/><category scheme='http://www.blogger.com/atom/ns#' term='Inheritance'/><category scheme='http://www.blogger.com/atom/ns#' term='virtual'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><category scheme='http://www.blogger.com/atom/ns#' term='C# Interview Questions'/><category scheme='http://www.blogger.com/atom/ns#' term='Polymorphism'/><category scheme='http://www.blogger.com/atom/ns#' term='overriding'/><title type='text'>Inheritance, Polymorphism and Method Hiding</title><content type='html'>Whenever I meet .NET people in the code-debate mode, I encounter a common question which is the good example for the concepts like inheritance, polymorphism and method hiding.&lt;br /&gt;&lt;br /&gt;Check the code snippet below:&lt;br /&gt;&lt;strong&gt;Snippet I:&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;&lt;br /&gt;&lt;div class="csharpcode"&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;class&lt;/span&gt; A&lt;br /&gt;{&lt;br /&gt;&lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;virtual&lt;/span&gt; methodA()&lt;br /&gt; {&lt;br /&gt;  Console.WriteLine(&lt;span class="str"&gt;"From Class A"&lt;/span&gt;);&lt;br /&gt; }&lt;br /&gt;}&lt;br /&gt;&lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;class&lt;/span&gt; B : A&lt;br /&gt;{&lt;br /&gt; &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;override&lt;/span&gt; methodA()&lt;br /&gt; {&lt;br /&gt; Console.WriteLine(&lt;span class="str"&gt;"From Class B"&lt;/span&gt;);&lt;br /&gt; }&lt;br /&gt;}&lt;br /&gt;&lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;class&lt;/span&gt; classMain&lt;br /&gt;{&lt;br /&gt; &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; Main(&lt;span class="kwrd"&gt;string&lt;/span&gt;[] args) {&lt;br /&gt;  A objA = &lt;span class="kwrd"&gt;new&lt;/span&gt; A();&lt;br /&gt;  B objB = &lt;span class="kwrd"&gt;new&lt;/span&gt; B();&lt;br /&gt;&lt;br&gt;&lt;span class="rem"&gt;// This calls A's methodA()&lt;/span&gt;&lt;br /&gt;  objA.methodA();&lt;br /&gt;&lt;br&gt;&lt;br /&gt; &lt;span class="rem"&gt;// This calls B's methodA()&lt;/span&gt;&lt;br /&gt;  objB.methodA();&lt;br /&gt;&lt;br&gt;  objA = &lt;span class="kwrd"&gt;new&lt;/span&gt; B();&lt;br /&gt;&lt;br&gt;&lt;br /&gt;&lt;span class="rem"&gt;// This calls B's methodA()&lt;/span&gt;&lt;br /&gt;  objA.methodA();&lt;br /&gt; }&lt;br /&gt;}&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Consider the change in the Classes&lt;em&gt;&lt;strong&gt; B &lt;/strong&gt;&lt;/em&gt;and&lt;em&gt;&lt;strong&gt; classMain&lt;/strong&gt;&lt;/em&gt;, as follows:&lt;br /&gt;&lt;strong&gt;Snippet II:&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;&lt;br /&gt;&lt;div class="csharpcode"&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;class&lt;/span&gt; A&lt;br /&gt;{&lt;br /&gt; &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;virtual&lt;/span&gt; methodA()&lt;br /&gt; {&lt;br /&gt; Console.WriteLine(&lt;span class="str"&gt;"From Class A"&lt;/span&gt;);&lt;br /&gt; }&lt;br /&gt;}&lt;br /&gt;&lt;br&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;class&lt;/span&gt; B : A&lt;br /&gt;{&lt;br /&gt; &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;new&lt;/span&gt; methodA()&lt;br /&gt; {&lt;br /&gt; Console.WriteLine(&lt;span class="str"&gt;"From Class B"&lt;/span&gt;);&lt;br /&gt; }&lt;br /&gt;}&lt;br /&gt;&lt;br&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;class&lt;/span&gt; classMain&lt;br /&gt;{&lt;br /&gt; &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; Main(&lt;span class="kwrd"&gt;string&lt;/span&gt;[] args)&lt;br /&gt; {&lt;br /&gt;  A objA = &lt;span class="kwrd"&gt;new&lt;/span&gt; A();&lt;br /&gt;  B objB = &lt;span class="kwrd"&gt;new&lt;/span&gt; B();&lt;br /&gt;&lt;br&gt;&lt;br /&gt; &lt;span class="rem"&gt;// This calls A's methodA()&lt;/span&gt;&lt;br /&gt; &lt;span class="rem"&gt;// From the object of class A&lt;/span&gt;&lt;br /&gt;  objA.methodA();&lt;br /&gt;&lt;br&gt;&lt;br /&gt; &lt;span class="rem"&gt;// This calls B's methodA()&lt;/span&gt;&lt;br /&gt; &lt;span class="rem"&gt;// From the object of class B&lt;/span&gt;&lt;br /&gt;  objB.methodA();&lt;br /&gt;&lt;br&gt;&lt;br /&gt;  objA = &lt;span class="kwrd"&gt;new&lt;/span&gt; B();&lt;br /&gt;&lt;br&gt;&lt;br /&gt; &lt;span class="rem"&gt;// This calls A's methodA()&lt;/span&gt;&lt;br /&gt; &lt;span class="rem"&gt;// From the object of class B&lt;/span&gt;&lt;br /&gt;  ((A)objB).methodA();       &lt;br /&gt; }&lt;br /&gt;}&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Hope you got the execution flow and output of the above snippets.&lt;br /&gt;I place some questions here:&lt;br /&gt;&lt;br /&gt;1) In the snippet I, from the &lt;strong&gt;main&lt;/strong&gt; class, if I want to call the method &lt;em&gt;&lt;strong&gt;methodA()&lt;/strong&gt;&lt;/em&gt; of class &lt;strong&gt;A&lt;/strong&gt; by the object of class &lt;strong&gt;B&lt;/strong&gt;, I will get compile time error. &lt;em&gt;&lt;u&gt;Whats the purpose of inheritance here?&lt;/u&gt;&lt;/em&gt;&lt;br /&gt;&lt;p&gt;2) In the snippet II, from the &lt;strong&gt;main&lt;/strong&gt; class, if I am able to call &lt;strong&gt;&lt;em&gt;methodA()&lt;/em&gt;&lt;/strong&gt; of class &lt;strong&gt;A&lt;/strong&gt; by the object of class &lt;strong&gt;B&lt;/strong&gt;, &lt;em&gt;&lt;u&gt;whats the purpose of method overriding then?&lt;/u&gt;.&lt;/em&gt; (Whenever I see ILDASM, it shows two &lt;em&gt;methodA()&lt;/em&gt; in that) .&lt;/p&gt;&lt;p&gt;3) &lt;em&gt;Whats the significant performance improvement in using method overriding over method hiding?&lt;/em&gt;&lt;br /&gt;&lt;/p&gt;Shoot your answers here...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3096271591668550621-8365270409523050349?l=codebate.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://codebate.blogspot.com/feeds/8365270409523050349/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://codebate.blogspot.com/2008/12/inheritance-polymorphism-and-method.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3096271591668550621/posts/default/8365270409523050349'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3096271591668550621/posts/default/8365270409523050349'/><link rel='alternate' type='text/html' href='http://codebate.blogspot.com/2008/12/inheritance-polymorphism-and-method.html' title='Inheritance, Polymorphism and Method Hiding'/><author><name>Karthikeyan</name><uri>http://www.blogger.com/profile/02626008644253946651</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://4.bp.blogspot.com/_KmQnpGV2_0c/SuPqNjh4DoI/AAAAAAAAAf4/gknbh7YSsbk/S220/3.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3096271591668550621.post-320959950143765429</id><published>2008-12-16T08:02:00.000-08:00</published><updated>2008-12-16T08:16:44.581-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='job seekers'/><category scheme='http://www.blogger.com/atom/ns#' term='.NET Interview Questions'/><category scheme='http://www.blogger.com/atom/ns#' term='learning'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><category scheme='http://www.blogger.com/atom/ns#' term='C# Interview Questions'/><category scheme='http://www.blogger.com/atom/ns#' term='code4asp.net'/><title type='text'>Yet another .NET Blog - CODE4ASP.NET</title><content type='html'>&lt;a href="http://blogger.code4asp.net/" target="_blank"&gt;Code For ASP.NET&lt;/a&gt; - yet another site for .NET Technologies.&lt;br /&gt;&lt;br /&gt;Srinath Gnath is the author blogger compiles .NET/C# code digests, who is also a friend and colleague of mine. According to him, this is a kind of knowledge sharing. Like me, he is also a consistent learner for advanced techniques in C# and ASP.NET.&lt;br /&gt;&lt;br /&gt;For regular Updates, readers can &lt;a href="http://blogger.code4asp.net/" target="_blank"&gt;check out his articles here&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3096271591668550621-320959950143765429?l=codebate.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://codebate.blogspot.com/feeds/320959950143765429/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://codebate.blogspot.com/2008/12/another-net-blog-code4aspnet.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3096271591668550621/posts/default/320959950143765429'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3096271591668550621/posts/default/320959950143765429'/><link rel='alternate' type='text/html' href='http://codebate.blogspot.com/2008/12/another-net-blog-code4aspnet.html' title='Yet another .NET Blog - CODE4ASP.NET'/><author><name>Karthikeyan</name><uri>http://www.blogger.com/profile/02626008644253946651</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://4.bp.blogspot.com/_KmQnpGV2_0c/SuPqNjh4DoI/AAAAAAAAAf4/gknbh7YSsbk/S220/3.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3096271591668550621.post-6472667867221274392</id><published>2008-12-16T06:47:00.000-08:00</published><updated>2008-12-19T23:13:22.085-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='introduction'/><category scheme='http://www.blogger.com/atom/ns#' term='blog'/><category scheme='http://www.blogger.com/atom/ns#' term='technology'/><category scheme='http://www.blogger.com/atom/ns#' term='codebate'/><category scheme='http://www.blogger.com/atom/ns#' term='book reviews'/><title type='text'>Welcome CoDebaters !!!</title><content type='html'>&lt;span style="FONT-WEIGHT: bold;font-size:100%;" &gt;" Co&lt;span style="COLOR: rgb(51,102,255)"&gt;Debate &lt;span style="COLOR: rgb(102,102,102)"&gt;"&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This term is coined from 2 words ... &lt;span style="COLOR: rgb(102,102,102)"&gt;Code &amp;amp; &lt;/span&gt;&lt;span style="COLOR: rgb(102,102,102)"&gt;Debate...&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Debating What ??&lt;br /&gt;&lt;br /&gt;Of Course...&lt;br /&gt;&lt;br /&gt;.NET Code..&lt;br /&gt;&lt;br /&gt;Well, its a great pleasure to write down here for the purpose of debating .NET code.&lt;br /&gt;&lt;br /&gt;For your note...&lt;br /&gt;&lt;br /&gt;&lt;span style="FONT-WEIGHT: bold"&gt;Technology in CoDebate:&lt;/span&gt;&lt;br /&gt;ASP.NET, C#, Sql Server, VB.NET, AJAX, jQuery,....&lt;br /&gt;&lt;br /&gt;&lt;span style="FONT-WEIGHT: bold"&gt;Possible Topics can be covered&lt;/span&gt;&lt;span style="FONT-WEIGHT: bold"&gt; in CoDebate&lt;/span&gt;&lt;span style="FONT-WEIGHT: bold"&gt;:&lt;/span&gt;&lt;br /&gt;Advanced Programming Techniques,&lt;br /&gt;Discussion on conventional codes,&lt;br /&gt;Tips &amp;amp; Tricks,&lt;br /&gt;Interview Questions,&lt;br /&gt;Book Reviews,&lt;br /&gt;General Technology Updates,...&lt;br /&gt;&lt;br /&gt;&lt;span style="FONT-WEIGHT: bold"&gt;Suitable contents for:&lt;/span&gt;&lt;br /&gt;.NET Developers  (Advanced/Intermediate/Beginners),&lt;br /&gt;Job Seekers(.NET),...&lt;br /&gt;&lt;br /&gt;Happy Programming...!!!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3096271591668550621-6472667867221274392?l=codebate.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://codebate.blogspot.com/feeds/6472667867221274392/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://codebate.blogspot.com/2008/12/welcome-codebaters.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3096271591668550621/posts/default/6472667867221274392'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3096271591668550621/posts/default/6472667867221274392'/><link rel='alternate' type='text/html' href='http://codebate.blogspot.com/2008/12/welcome-codebaters.html' title='Welcome CoDebaters !!!'/><author><name>Karthikeyan</name><uri>http://www.blogger.com/profile/02626008644253946651</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://4.bp.blogspot.com/_KmQnpGV2_0c/SuPqNjh4DoI/AAAAAAAAAf4/gknbh7YSsbk/S220/3.jpg'/></author><thr:total>2</thr:total></entry></feed>
