<?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-6903337</id><updated>2011-06-29T10:47:15.473-07:00</updated><title type='text'>Dotnet FAQs</title><subtitle type='html'>Here all the dot net queires i've have posted will be listed.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://dotnetfaqs.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6903337/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://dotnetfaqs.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Ashith Raj</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>71</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-6903337.post-5961974591676228101</id><published>2007-06-17T22:34:00.000-07:00</published><updated>2007-06-17T22:36:44.813-07:00</updated><title type='text'>TechMela was Awesome....</title><content type='html'>I attended the Technology Sessions with 8 Tracks and 150 Sessions in total.&lt;br /&gt; &lt;br /&gt;Day 1&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Visit the blogs on &lt;a href="http://www.techmela.com "&gt;www.techmela.com &lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6903337-5961974591676228101?l=dotnetfaqs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetfaqs.blogspot.com/feeds/5961974591676228101/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6903337&amp;postID=5961974591676228101' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6903337/posts/default/5961974591676228101'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6903337/posts/default/5961974591676228101'/><link rel='alternate' type='text/html' href='http://dotnetfaqs.blogspot.com/2007/06/techmela-was-awesome.html' title='TechMela was Awesome....'/><author><name>Ashith Raj</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6903337.post-115192267124178868</id><published>2006-07-03T03:30:00.000-07:00</published><updated>2006-07-03T03:31:11.673-07:00</updated><title type='text'>Microsoft Integration Options</title><content type='html'>Too Many Integration Options&lt;br /&gt;As Microsoft puts out more and more integration products the decision to use what, when and where become more muddled. But fear not because I am here to be your bridge over troubled waters (Wife dragged me to a piano bar last night, so I had to sneak that in).&lt;br /&gt;&lt;br /&gt;So lets start by looking at what we have today and what we will have in the near future.&lt;br /&gt;&lt;br /&gt;&lt;TABLE style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none; BORDER-COLLAPSE: collapse; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 0in 5.4pt 0in 5.4pt" cellSpacing=0 cellPadding=0 border=1&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 0.5pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: #e0e0e0; PADDING-BOTTOM: 0in; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 2.05in; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 0.5pt solid" width="197"&gt;&lt;br /&gt;&lt;h1 style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 16pt;font-family:Arial;font-size:12;"  &gt;Technology&lt;?xml:namespace prefix = o /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/h1&gt;&lt;/td&gt;&lt;br /&gt;&lt;td style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 0.5pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: #e0e0e0; PADDING-BOTTOM: 0in; BORDER-LEFT: #d4d0c8; WIDTH: 2.05in; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 0.5pt solid; mso-border-left-alt: solid windowtext .5pt" width="197"&gt;&lt;br /&gt;&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; TEXT-ALIGN: center" align="center"&gt;&lt;b&gt;&lt;span style="FONT-SIZE: 16pt;font-family:Arial;font-size:12;"  &gt;Purpose&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 0.5pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: #e0e0e0; PADDING-BOTTOM: 0in; BORDER-LEFT: #d4d0c8; WIDTH: 2.05in; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 0.5pt solid; mso-border-left-alt: solid windowtext .5pt" width="197"&gt;&lt;br /&gt;&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; TEXT-ALIGN: center" align="center"&gt;&lt;b&gt;&lt;span style="FONT-SIZE: 16pt;font-family:Arial;font-size:12;"  &gt;Future Technology&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #d4d0c8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 2.05in; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-: solid windowtext .5ptcolor:transparent;" width="197" valign="top" &gt;&lt;br /&gt;&lt;h1 style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="font-family:Arial;"&gt;&lt;span style="font-size:100%;"&gt;ASMX – Web Services&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h1&gt;&lt;/td&gt;&lt;br /&gt;&lt;td style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #d4d0c8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #d4d0c8; WIDTH: 2.05in; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 0.5pt solid; mso-border-top-alt: solid windowtext .5pt; BACKGROUND-: solid windowtext .5ptcolor:transparent;" width="197" rowspan="3" &gt;&lt;br /&gt;&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; TEXT-ALIGN: center" align="center"&gt;&lt;span style="FONT-SIZE: 11pt;font-family:Arial;font-size:12;"  &gt;Direct integration between applications.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; TEXT-ALIGN: center" align="center"&gt;&lt;span style="FONT-SIZE: 11pt;font-family:Arial;font-size:12;"  &gt;Usually in a synchronous fashion.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #d4d0c8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #d4d0c8; WIDTH: 2.05in; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 0.5pt solid; mso-border-top-alt: solid windowtext .5pt; BACKGROUND-: solid windowtext .5ptcolor:transparent;" width="197" valign="top" &gt;&lt;br /&gt;&lt;h1 style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:Times New Roman;"&gt; &lt;span style="font-family:Arial;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h1&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #d4d0c8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 2.05in; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-: solid windowtext .5ptcolor:transparent;" width="197" valign="top" &gt;&lt;br /&gt;&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; TEXT-ALIGN: center" align="center"&gt;&lt;b&gt;&lt;span style="font-family:Arial;"&gt;.Net Remoting&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #d4d0c8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #d4d0c8; WIDTH: 2.05in; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 0.5pt solid; mso-border-top-alt: solid windowtext .5pt; BACKGROUND-: solid windowtext .5ptcolor:transparent;" width="197" valign="top" &gt;&lt;br /&gt;&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; TEXT-ALIGN: center" align="center"&gt;&lt;span style="font-family:Times New Roman;"&gt; &lt;b&gt;&lt;span style="font-family:Arial;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #d4d0c8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 2.05in; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-: solid windowtext .5ptcolor:transparent;" width="197" valign="top" &gt;&lt;br /&gt;&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; TEXT-ALIGN: center" align="center"&gt;&lt;b&gt;&lt;span style="font-family:Arial;"&gt;Enterprise Services&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #d4d0c8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #d4d0c8; WIDTH: 2.05in; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 0.5pt solid; mso-border-top-alt: solid windowtext .5pt; BACKGROUND-: solid windowtext .5ptcolor:transparent;" width="197" valign="top" &gt;&lt;br /&gt;&lt;h1 style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:Times New Roman;"&gt; &lt;span style="font-family:Arial;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h1&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #d4d0c8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 2.05in; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-: solid windowtext .5ptcolor:transparent;" width="197" valign="top" &gt;&lt;br /&gt;&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; TEXT-ALIGN: center" align="center"&gt;&lt;b&gt;&lt;span style="font-family:Arial;"&gt;Microsoft Message Queuing &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;br /&gt;&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; TEXT-ALIGN: center" align="center"&gt;&lt;b&gt;&lt;span style="font-family:Arial;"&gt;(MSMQ)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #d4d0c8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #d4d0c8; WIDTH: 2.05in; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 0.5pt solid; mso-border-top-alt: solid windowtext .5pt; BACKGROUND-: solid windowtext .5ptcolor:transparent;" width="197" valign="top" &gt;&lt;br /&gt;&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; TEXT-ALIGN: center" align="center"&gt;&lt;span style="FONT-SIZE: 11pt;font-family:Arial;font-size:12;"  &gt;Asynchronous communication, using queues.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #d4d0c8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #d4d0c8; WIDTH: 2.05in; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 0.5pt solid; mso-border-top-alt: solid windowtext .5pt; BACKGROUND-: solid windowtext .5ptcolor:transparent;" width="197" valign="top" &gt;&lt;br /&gt;&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; TEXT-ALIGN: center" align="center"&gt;&lt;span style="font-family:Times New Roman;"&gt; &lt;b&gt;&lt;span style="font-family:Arial;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #d4d0c8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 2.05in; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-: solid windowtext .5ptcolor:transparent;" width="197" valign="top" &gt;&lt;br /&gt;&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; TEXT-ALIGN: center" align="center"&gt;&lt;b&gt;&lt;span style="font-family:Arial;"&gt;Host Integration Services &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;br /&gt;&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; TEXT-ALIGN: center" align="center"&gt;&lt;b&gt;&lt;span style="font-family:Arial;"&gt;(HIS)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #d4d0c8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #d4d0c8; WIDTH: 2.05in; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 0.5pt solid; mso-border-top-alt: solid windowtext .5pt; BACKGROUND-: solid windowtext .5ptcolor:transparent;" width="197" valign="top" &gt;&lt;br /&gt;&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; TEXT-ALIGN: center" align="center"&gt;&lt;span style="FONT-SIZE: 11pt;font-family:Arial;font-size:12;"  &gt;Integrating Windows applications with IBM systems.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #d4d0c8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #d4d0c8; WIDTH: 2.05in; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 0.5pt solid; mso-border-top-alt: solid windowtext .5pt; BACKGROUND-: solid windowtext .5ptcolor:transparent;" width="197" valign="top" &gt;&lt;br /&gt;&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; TEXT-ALIGN: center" align="center"&gt;&lt;span style="font-family:Times New Roman;"&gt; &lt;b&gt;&lt;span style="font-family:Arial;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #d4d0c8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 2.05in; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-: solid windowtext .5ptcolor:transparent;" width="197" valign="top" &gt;&lt;br /&gt;&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; TEXT-ALIGN: center" align="center"&gt;&lt;b&gt;&lt;span style="font-family:Arial;"&gt;BizTalk&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;br /&gt;&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; TEXT-ALIGN: center" align="center"&gt;&lt;b&gt;&lt;span style="font-family:Arial;"&gt;(BTS)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #d4d0c8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #d4d0c8; WIDTH: 2.05in; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 0.5pt solid; mso-border-top-alt: solid windowtext .5pt; BACKGROUND-: solid windowtext .5ptcolor:transparent;" width="197" valign="top" &gt;&lt;br /&gt;&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; TEXT-ALIGN: center" align="center"&gt;&lt;span style="FONT-SIZE: 11pt;font-family:Arial;font-size:12;"  &gt;Integrating applications using a broker or hub.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #d4d0c8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #d4d0c8; WIDTH: 2.05in; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 0.5pt solid; mso-border-top-alt: solid windowtext .5pt; BACKGROUND-: solid windowtext .5ptcolor:transparent;" width="197" valign="top" &gt;&lt;br /&gt;&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; TEXT-ALIGN: center" align="center"&gt;&lt;span style="font-family:Times New Roman;"&gt; &lt;b&gt;&lt;span style="font-family:Arial;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #d4d0c8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 2.05in; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-: solid windowtext .5ptcolor:transparent;" width="197" valign="top" &gt;&lt;br /&gt;&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; TEXT-ALIGN: center" align="center"&gt;&lt;b&gt;&lt;span style="font-family:Arial;"&gt;SQL Server Replication&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #d4d0c8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #d4d0c8; WIDTH: 2.05in; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 0.5pt solid; mso-border-top-alt: solid windowtext .5pt; BACKGROUND-: solid windowtext .5ptcolor:transparent;" width="197" valign="top" &gt;&lt;br /&gt;&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; TEXT-ALIGN: center" align="center"&gt;&lt;span style="FONT-SIZE: 11pt;font-family:Arial;font-size:12;"  &gt;Integrating data in a real time manner.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #d4d0c8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #d4d0c8; WIDTH: 2.05in; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 0.5pt solid; mso-border-top-alt: solid windowtext .5pt; BACKGROUND-: solid windowtext .5ptcolor:transparent;" width="197" valign="top" &gt;&lt;br /&gt;&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; TEXT-ALIGN: center" align="center"&gt;&lt;span style="font-family:Times New Roman;"&gt; &lt;b&gt;&lt;span style="font-family:Arial;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #d4d0c8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 2.05in; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-: solid windowtext .5ptcolor:transparent;" width="197" valign="top" &gt;&lt;br /&gt;&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; TEXT-ALIGN: center" align="center"&gt;&lt;span style="font-family:Times New Roman;"&gt; &lt;b&gt;&lt;span style="font-family:Arial;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #d4d0c8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #d4d0c8; WIDTH: 2.05in; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 0.5pt solid; mso-border-top-alt: solid windowtext .5pt; BACKGROUND-: solid windowtext .5ptcolor:transparent;" width="197" valign="top" &gt;&lt;br /&gt;&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; TEXT-ALIGN: center" align="center"&gt;&lt;span style="FONT-SIZE: 11pt;font-family:Arial;font-size:12;"  &gt;Queuing for SQL Server.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; TEXT-ALIGN: center" align="center"&gt;&lt;span style="FONT-SIZE: 11pt;font-family:Arial;font-size:12;"  &gt;Available with all SQL 2005 versions.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #d4d0c8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #d4d0c8; WIDTH: 2.05in; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 0.5pt solid; mso-border-top-alt: solid windowtext .5pt; BACKGROUND-: solid windowtext .5ptcolor:transparent;" width="197" valign="top" &gt;&lt;br /&gt;&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; TEXT-ALIGN: center" align="center"&gt;&lt;b&gt;&lt;span style="font-family:Arial;"&gt;SQL Service Broker (SSB)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #d4d0c8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 2.05in; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-: solid windowtext .5ptcolor:transparent;" width="197" valign="top" &gt;&lt;br /&gt;&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; TEXT-ALIGN: center" align="center"&gt;&lt;span style="font-family:Times New Roman;"&gt; &lt;b&gt;&lt;span style="font-family:Arial;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #d4d0c8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #d4d0c8; WIDTH: 2.05in; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 0.5pt solid; mso-border-top-alt: solid windowtext .5pt; BACKGROUND-: solid windowtext .5ptcolor:transparent;" width="197" valign="top" &gt;&lt;br /&gt;&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; TEXT-ALIGN: center" align="center"&gt;&lt;span style="font-family:Arial;"&gt;Integrating data from multiple data sources.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #d4d0c8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #d4d0c8; WIDTH: 2.05in; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 0.5pt solid; mso-border-top-alt: solid windowtext .5pt; BACKGROUND-: solid windowtext .5ptcolor:transparent;" width="197" valign="top" &gt;&lt;br /&gt;&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; TEXT-ALIGN: center" align="center"&gt;&lt;b&gt;&lt;span style="font-family:Arial;"&gt;SQL Server Integration Services&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;br /&gt;&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; TEXT-ALIGN: center" align="center"&gt;&lt;b&gt;&lt;span style="font-family:Arial;"&gt;(SSIS)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #d4d0c8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 2.05in; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-: solid windowtext .5ptcolor:transparent;" width="197" valign="top" &gt;&lt;br /&gt;&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; TEXT-ALIGN: center" align="center"&gt;&lt;span style="font-family:Times New Roman;"&gt; &lt;b&gt;&lt;span style="font-family:Arial;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #d4d0c8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #d4d0c8; WIDTH: 2.05in; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 0.5pt solid; mso-border-top-alt: solid windowtext .5pt; BACKGROUND-: solid windowtext .5ptcolor:transparent;" width="197" valign="top" &gt;&lt;br /&gt;&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; TEXT-ALIGN: center" align="center"&gt;&lt;span style="font-family:Arial;"&gt;A foundation for service oriented applications.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #d4d0c8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #d4d0c8; WIDTH: 2.05in; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 0.5pt solid; mso-border-top-alt: solid windowtext .5pt; BACKGROUND-: solid windowtext .5ptcolor:transparent;" width="197" valign="top" &gt;&lt;br /&gt;&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; TEXT-ALIGN: center" align="center"&gt;&lt;b&gt;&lt;span style="font-family:Arial;"&gt;Indigo – Windows Communication Foundation&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;br /&gt;&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; TEXT-ALIGN: center" align="center"&gt;&lt;b&gt;&lt;span style="font-family:Arial;"&gt;(WCF)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #d4d0c8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 2.05in; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-: solid windowtext .5ptcolor:transparent;" width="197" valign="top" &gt;&lt;br /&gt;&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; TEXT-ALIGN: center" align="center"&gt;&lt;span style="font-family:Times New Roman;"&gt; &lt;b&gt;&lt;span style="font-family:Arial;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #d4d0c8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #d4d0c8; WIDTH: 2.05in; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 0.5pt solid; mso-border-top-alt: solid windowtext .5pt; BACKGROUND-: solid windowtext .5ptcolor:transparent;" width="197" valign="top" &gt;&lt;br /&gt;&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; TEXT-ALIGN: center" align="center"&gt;&lt;span style="font-family:Arial;"&gt;A foundation for building workflow based applications&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #d4d0c8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #d4d0c8; WIDTH: 2.05in; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 0.5pt solid; mso-border-top-alt: solid windowtext .5pt; BACKGROUND-: solid windowtext .5ptcolor:transparent;" width="197" valign="top" &gt;&lt;br /&gt;&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; TEXT-ALIGN: center" align="center"&gt;&lt;b&gt;&lt;span style="font-family:Arial;"&gt;Windows Workflow Foundation&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;br /&gt;&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; TEXT-ALIGN: center" align="center"&gt;&lt;b&gt;&lt;span style="font-family:Arial;"&gt;(WF)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Each option has its role to play in the integration problem space, yet all of them have a common workspace (VS .Net), which makes solving complex integration scenarios fairly straightforward.&lt;br /&gt;&lt;br /&gt;Now that we know what is out there and what is on its way, we can take a more in-depth look at some of these. I will attempt to do a series of blog posts highlighting each of these options, and when it would be the best choice&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6903337-115192267124178868?l=dotnetfaqs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetfaqs.blogspot.com/feeds/115192267124178868/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6903337&amp;postID=115192267124178868' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6903337/posts/default/115192267124178868'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6903337/posts/default/115192267124178868'/><link rel='alternate' type='text/html' href='http://dotnetfaqs.blogspot.com/2006/07/microsoft-integration-options_03.html' title='Microsoft Integration Options'/><author><name>Ashith Raj</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6903337.post-115149136360434895</id><published>2006-06-28T03:39:00.000-07:00</published><updated>2006-06-28T03:42:44.003-07:00</updated><title type='text'></title><content type='html'>I am engaging on a new project focusing on the processes needed to facilitate communication and collaboration to manage the SOA environment. I believe that the requirements for communication and collaboration should be aligned with the life cycle of a service. I have defined the life cycle steps associated with &lt;a class="iAs" style="PADDING-BOTTOM: 1px; COLOR: darkgreen; BORDER-BOTTOM: darkgreen 0.07em solid; BACKGROUND-COLOR: transparent; TEXT-DECORATION: underline" href="http://blogs.ittoolbox.com/eai/practices/archives/soa-the-service-life-cycle-10157?rss=1#" target="_blank"&gt;services&lt;/a&gt; in an SOA environment.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;- Define the service requirement &lt;/strong&gt;- Specifying the purpose, functionality, interfaces etc of the services as well as &lt;a class="iAs" style="PADDING-BOTTOM: 1px; COLOR: darkgreen; BORDER-BOTTOM: darkgreen 0.07em solid; BACKGROUND-COLOR: transparent; TEXT-DECORATION: underline" href="http://blogs.ittoolbox.com/eai/practices/archives/soa-the-service-life-cycle-10157?rss=1#" target="_blank"&gt;service level agreements&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;- Plan the service development &lt;/strong&gt;- Prioritizing when the service must be developed as well as approving the &lt;a class="iAs" style="PADDING-BOTTOM: 1px; COLOR: darkgreen; BORDER-BOTTOM: darkgreen 0.07em solid; BACKGROUND-COLOR: transparent; TEXT-DECORATION: underline" href="http://blogs.ittoolbox.com/eai/practices/archives/soa-the-service-life-cycle-10157?rss=1#" target="_blank"&gt;budget&lt;/a&gt; and resources required.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;- Design/Selecting service - &lt;/strong&gt;Specifying in detail how the service will comply with the requirements.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;- Build/Acquire service - &lt;/strong&gt;Developing the service or acquire the service according to the design specification.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;- Test service - &lt;/strong&gt;Making sure the service and actually can perform in an operational environment.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;- Manage service portfolio - &lt;/strong&gt;Monitoring services availability, service states and compliance against the agreed service levels.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;- Deploy service - &lt;/strong&gt;Making the service available so that it can be called on in the operational environment.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;- Publish service - &lt;/strong&gt;Making the service definition and state knowable so that the service can be found and used by consumers.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;- Find service - &lt;/strong&gt;A consumer requesting or identifying a service that will satisfy a requirement.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;- Invoke service - &lt;/strong&gt;Adhering to security requirements, and protocols to call on the service and receive a response from the service called within an operational context.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;- Enable service integration - &lt;/strong&gt;Enable the infrastructure with the capacity to coordinate and enable the execution of services.&lt;br /&gt;&lt;strong&gt;- Change service - &lt;/strong&gt;Extending the functionality of the service to adapt to new user requirements.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;- Decommission service - &lt;/strong&gt;phasing the service out when it will no longer be supported or needed.&lt;br /&gt;&lt;br /&gt;Each step of the life cycle will require a contribution from different stakeholders and different decision parameters. Each step can be seen as a use case of the service oriented architecture with its own actors defining Business and IT requirements.Bottom line: To ensure communication and collaboration between Business and IT in the service oriented environment consideration must be taken of the complete life cycle of a service.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Robin Mulkers writes:&lt;br /&gt;I see it like this.Define the service requirement, Find the service/Select the service and manage service portfolios are a single process of SOA change management. This process has 3 actors, the service consumer who comes with his requirements, thepotential service providers who do manage specific systems or resources that are potentially needed by the consumer and the enterprise architect or service librarian who makes sure that the service is compliant with enterprise policies and shares a commonlook and feel (cares about canonical models, naming conventions and granularity for example).Design, Build/Acquire, Change, Test is an optional process that is used when an existing service must be changed or a new service must be created.Deploy, publish, enable service integration, decommission service are operational processesInvoke service is not a process I think.There are also management processes like gathering service usage metrics, change metrics.If your SOA uses intermediaries like security appliances or ESB kind of platforms, then there are processes to manage those platforms as well.And last but not least, defining several processes is one thing. Having those processes working together is another thing which is maybe even more critical for a successful SOA.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6903337-115149136360434895?l=dotnetfaqs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetfaqs.blogspot.com/feeds/115149136360434895/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6903337&amp;postID=115149136360434895' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6903337/posts/default/115149136360434895'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6903337/posts/default/115149136360434895'/><link rel='alternate' type='text/html' href='http://dotnetfaqs.blogspot.com/2006/06/i-am-engaging-on-new-project-focusing.html' title=''/><author><name>Ashith Raj</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6903337.post-115086187034168235</id><published>2006-06-20T20:51:00.000-07:00</published><updated>2006-06-20T20:53:11.693-07:00</updated><title type='text'>When a project fails , whose bad is it anyway ?</title><content type='html'>This is referenece to a Planet TW blog:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://imightdiesoon.blogspot.com/2005/10/when-project-fails-whose-bad-is-it.html"&gt;Anand Vishwanath: When a project fails , whose bad is it anyway ? ...&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;p class="MsoNormal"&gt;When a project fails , whose bad is it anyway ?&lt;/p&gt;&lt;div&gt;&lt;/div&gt;&lt;p class="MsoNormal"&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;A couple of drinks with Thoughtworkers , is like asking for hours of debate over some hot issues. This time it was not only developers, but even some manager â€œtypes â€œ. The topic of discussion was that if a project fails, who is most likely to be in the firing line, the project manager or the lead architect. &lt;p&gt;&lt;/p&gt;&lt;div&gt;&lt;/div&gt;&lt;p class="MsoNormal"&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;I think &lt;defanged-span&gt;&lt;/DEFANGED-SPAN&gt;Managers &lt;p&gt;&lt;/p&gt;&lt;div&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;Have the most interaction with the clients (whether useful or not ;-) ).&lt;/li&gt;&lt;li&gt;Are answerable to the client why functionality was not delivered&lt;defanged-span&gt; &lt;/DEFANGED-SPAN&gt;in an iteration when the technical team was playing technical cards, refactoring, clearing technical debt etcâ€�&lt;/li&gt;&lt;li&gt;Do the project planning/scheduling etcâ€� which &lt;defanged-span&gt;&lt;/DEFANGED-SPAN&gt;has more visibility to the clients.&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;The technical team on the other hand &lt;/div&gt;&lt;ul&gt;&lt;li&gt;Has to figure out a way to deal with legacy codebases&lt;/li&gt;&lt;li&gt;Work with &lt;defanged-span&gt;&lt;/DEFANGED-SPAN&gt;less skilled client developers&lt;/li&gt;&lt;li&gt;Keep &lt;defanged-span&gt;&lt;/DEFANGED-SPAN&gt;clearing technical debt etcâ€� &lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;/div&gt;&lt;p class="MsoNormal"&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;All while trying to deliver required number of story points in an iteration. &lt;p&gt;&lt;/p&gt;&lt;div&gt;&lt;defanged-span&gt;Also not to mention the salary for yours truly Project Manager is far too high compared to a Technical Lead in the team. Wonder why ?&lt;/DEFANGED-SPAN&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6903337-115086187034168235?l=dotnetfaqs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetfaqs.blogspot.com/feeds/115086187034168235/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6903337&amp;postID=115086187034168235' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6903337/posts/default/115086187034168235'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6903337/posts/default/115086187034168235'/><link rel='alternate' type='text/html' href='http://dotnetfaqs.blogspot.com/2006/06/when-project-fails-whose-bad-is-it.html' title='When a project fails , whose bad is it anyway ?'/><author><name>Ashith Raj</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6903337.post-115070794225938016</id><published>2006-06-19T02:05:00.000-07:00</published><updated>2006-06-19T02:05:42.716-07:00</updated><title type='text'>When we do denormalization in our database design</title><content type='html'>From BDOTNET forum,&lt;br /&gt;&lt;br /&gt;The &lt;strong&gt;main reason&lt;/strong&gt; for renormalization is &lt;em&gt;leverage performance&lt;/em&gt; and &lt;em&gt;helpful for ad-hoc reporting &lt;/em&gt;. In some situation a database design in 3rd normal form may require more table joins to process a query this additional table joins can degrade performance , rather than it can be achieved in 2nd or 1st normal form.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Another reason &lt;/strong&gt;to denormalize a database is to simplify ad-hoc reporting. Ad-hoc reporting is the unstructured reporting and querying performed by end users. End users are often confused when they have to join a significant number of tables. To avoid the confusion, you can create a special set of tables designed for ad-hoc reporting.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6903337-115070794225938016?l=dotnetfaqs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetfaqs.blogspot.com/feeds/115070794225938016/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6903337&amp;postID=115070794225938016' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6903337/posts/default/115070794225938016'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6903337/posts/default/115070794225938016'/><link rel='alternate' type='text/html' href='http://dotnetfaqs.blogspot.com/2006/06/when-we-do-denormalization-in-our_19.html' title='When we do denormalization in our database design'/><author><name>Ashith Raj</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6903337.post-114986605910093690</id><published>2006-06-09T08:14:00.000-07:00</published><updated>2006-06-09T08:14:30.716-07:00</updated><title type='text'>How to become an Architect</title><content type='html'>Worldwide Institute of Software Architects&lt;br /&gt;&lt;a href="http://www.wwisa.org/wwisamain/index.htm"&gt;http://www.wwisa.org/wwisamain/index.htm&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Role of Software Architects&lt;br /&gt;&lt;a href="http://www.wwisa.org/wwisamain/role.htm"&gt;http://www.wwisa.org/wwisamain/role.htm&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Books and Tools on Software Architects&lt;br /&gt;&lt;a href="http://www.wwisa.org/wwisamain/books.htm"&gt;http://www.wwisa.org/wwisamain/books.htm&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://designpatternsfor.net/"&gt;http://designpatternsfor.net/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6903337-114986605910093690?l=dotnetfaqs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetfaqs.blogspot.com/feeds/114986605910093690/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6903337&amp;postID=114986605910093690' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6903337/posts/default/114986605910093690'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6903337/posts/default/114986605910093690'/><link rel='alternate' type='text/html' href='http://dotnetfaqs.blogspot.com/2006/06/how-to-become-architect.html' title='How to become an Architect'/><author><name>Ashith Raj</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6903337.post-114656412657284814</id><published>2006-05-02T02:54:00.000-07:00</published><updated>2006-05-02T03:58:15.593-07:00</updated><title type='text'>Windows XP shortcuts and Environment Variables</title><content type='html'>List of the environment variables callable in windows 2000. e.g. Open a cmd prompt and type echo %appdata% which should return the full path to your profile's Application Data directory. If calling from a batch file remember to quote the %variable% e.g.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;IF EXIST "%appdata%"\workrave\historystats. (mkdir D:\AllMyFiles\Workrave.) ELSE echo Workrave. missing&lt;br /&gt;&lt;br /&gt;Here's the list with percentage included:&lt;a name="more"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;ALLUSERSPROFILE&lt;br /&gt;%ALLUSERSPROFILE%&lt;br /&gt;Local returns the location of the All Users Profile.&lt;br /&gt;&lt;br /&gt;APPDATA&lt;br /&gt;%APPDATA%&lt;br /&gt;Local returns the location where applications store data by default.&lt;br /&gt;&lt;br /&gt;CD&lt;br /&gt;%CD%&lt;br /&gt;Local returns the current directory string.&lt;br /&gt;&lt;br /&gt;CMDCMDLINE&lt;br /&gt;%CMDCMDLINE%&lt;br /&gt;Local returns the exact command line used to start the current cmd.exe.&lt;br /&gt;&lt;br /&gt;CMDEXTVERSION&lt;br /&gt;%CMDEXTVERSION%&lt;br /&gt;System returns the version number of the current Command Processor Extensions.&lt;br /&gt;&lt;br /&gt;COMPUTERNAME&lt;br /&gt;%COMPUTERNAME%&lt;br /&gt;System returns the name of the computer.&lt;br /&gt;&lt;br /&gt;COMSPEC&lt;br /&gt;%COMSPEC%&lt;br /&gt;System returns the exact path to the command shell executable.&lt;br /&gt;&lt;br /&gt;DATE&lt;br /&gt;%DATE%&lt;br /&gt;System returns the current date. This variable uses the same format as the date /t command. Cmd.exe generates this variable. For more information about the date command, see the Date command.&lt;br /&gt;&lt;br /&gt;ERRORLEVEL&lt;br /&gt;%ERRORLEVEL%&lt;br /&gt;System returns the error code of the most recently used command. A non-0 value usually indicates an error.&lt;br /&gt;&lt;br /&gt;HOMEDRIVE&lt;br /&gt;%HOMEDRIVE%&lt;br /&gt;System returns which local workstation drive letter is connected to the user's home directory. This variable is set based on the value of the home directory. The user's home directory is specified in Local Users and Groups.&lt;br /&gt;&lt;br /&gt;HOMEPATH&lt;br /&gt;%HOMEPATH%&lt;br /&gt;System returns the full path of the user's home directory. This variable is set based on the value of the home directory. The user's home directory is specified in Local Users and Groups.&lt;br /&gt;&lt;br /&gt;HOMESHARE&lt;br /&gt;%HOMESHARE%&lt;br /&gt;System returns the network path to the user's shared home directory. This variable is set based on the value of the home directory. The user's home directory is specified in Local Users and Groups.&lt;br /&gt;&lt;br /&gt;LOGONSERVER&lt;br /&gt;%LOGONSERVER%&lt;br /&gt;Local returns the name of the domain controller that validated the current logon session.&lt;br /&gt;&lt;br /&gt;NUMBER_OF_PROCESSORS&lt;br /&gt;%NUMBER_OF_PROCESSORS%&lt;br /&gt;System specifies the number of processors installed on the computer.&lt;br /&gt;&lt;br /&gt;OS&lt;br /&gt;%OS%&lt;br /&gt;System returns the OS name. Windows XP and Windows 2000 display the OS as Windows_NT.&lt;br /&gt;&lt;br /&gt;PATH&lt;br /&gt;%PATH%&lt;br /&gt;System specifies the search path for executable files.&lt;br /&gt;&lt;br /&gt;PATHEXT&lt;br /&gt;%PATHEXT%&lt;br /&gt;System returns a list of the file extensions that the OS considers to be executable.&lt;br /&gt;&lt;br /&gt;PROCESSOR_ARCHITECTURE&lt;br /&gt;%PROCESSOR_ARCHITECTURE%&lt;br /&gt;System returns the processor's chip architecture. Values: x86, IA64.&lt;br /&gt;&lt;br /&gt;PROCESSOR_IDENTIFIER&lt;br /&gt;%PROCESSOR_IDENTIFIER%&lt;br /&gt;System returns a description of the processor.&lt;br /&gt;&lt;br /&gt;PROCESSOR_LEVEL&lt;br /&gt;%PROCESSOR_LEVEL%&lt;br /&gt;System returns the model number of the computer's processor.&lt;br /&gt;&lt;br /&gt;PROCESSOR_REVISION&lt;br /&gt;%PROCESSOR_REVISION%&lt;br /&gt;System returns the revision number of the processor.&lt;br /&gt;&lt;br /&gt;Program Files&lt;br /&gt;%PPROGRAMFILES%&lt;br /&gt;returns the location of the default install directory for applications.&lt;br /&gt;&lt;br /&gt;PROMPT&lt;br /&gt;%PROMPT%&lt;br /&gt;Local returns the command-prompt settings for the current interpreter. Cmd.exe generates this variable.&lt;br /&gt;&lt;br /&gt;RANDOM&lt;br /&gt;%RANDOM%&lt;br /&gt;System returns a random decimal number between 0 and 32767. Cmd.exe generates this variable.&lt;br /&gt;&lt;br /&gt;SYSTEMDRIVE&lt;br /&gt;%SYSTEMDRIVE%&lt;br /&gt;System returns the drive containing the Windows root directory (i.e., the system root).&lt;br /&gt;&lt;br /&gt;SYSTEMROOT&lt;br /&gt;%SYSTEMROOT%&lt;br /&gt;System returns the location of the Windows root directory.&lt;br /&gt;TEMP&lt;br /&gt;&lt;br /&gt;%TEMP%&lt;br /&gt;System and User return the default temporary directories for applications that are available to users who are currently logged on. Some applications require TEMP and others require TMP.&lt;br /&gt;&lt;br /&gt;TMP&lt;br /&gt;%TMP%&lt;br /&gt;System and User return the default temporary directories for applications that are available to users who are currently logged on. Some applications require TEMP and others require TMP.&lt;br /&gt;&lt;br /&gt;TIME&lt;br /&gt;%TIME%&lt;br /&gt;System returns the current time. This variable uses the same format as the time /t command. Cmd.exe generates this variable. For more information about the time command, see the Time command.&lt;br /&gt;&lt;br /&gt;USERDOMAIN&lt;br /&gt;%USERDOMAIN%&lt;br /&gt;Local returns the name of the domain that contains the user's account.&lt;br /&gt;&lt;br /&gt;USERNAME&lt;br /&gt;%USERNAME%&lt;br /&gt;Local returns the name of the user currently logged on.&lt;br /&gt;&lt;br /&gt;USERPROFILE&lt;br /&gt;%USERPROFILE%&lt;br /&gt;Local returns the location of the profile for the current user.&lt;br /&gt;&lt;br /&gt;WINDIR&lt;br /&gt;%WINDIR%&lt;br /&gt;System returns the location of the OS directory&lt;br /&gt;&lt;br /&gt;check out this &lt;a href="http://www.todocom.net/Products/SetGlobal/Tutorial.aspx"&gt;http://www.todocom.net/Products/SetGlobal/Tutorial.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;u&gt;Windows Key Shortcuts&lt;/u&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;/strong&gt;&lt;br /&gt;&lt;a href="http://www.codinghorror.com/blog/archives/000378.html"&gt;http://www.codinghorror.com/blog/archives/000378.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6903337-114656412657284814?l=dotnetfaqs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetfaqs.blogspot.com/feeds/114656412657284814/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6903337&amp;postID=114656412657284814' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6903337/posts/default/114656412657284814'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6903337/posts/default/114656412657284814'/><link rel='alternate' type='text/html' href='http://dotnetfaqs.blogspot.com/2006/05/windows-xp-shortcuts-and-environment.html' title='Windows XP shortcuts and Environment Variables'/><author><name>Ashith Raj</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6903337.post-114542541570734189</id><published>2006-04-18T21:43:00.000-07:00</published><updated>2006-05-02T03:02:25.486-07:00</updated><title type='text'>What skills should a .NET solution Architect Possess?</title><content type='html'>&lt;a href="http://www.theserverside.net/news/thread.tss?thread_id=33568"&gt;http://www.theserverside.net/news/thread.tss?thread_id=33568&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6903337-114542541570734189?l=dotnetfaqs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetfaqs.blogspot.com/feeds/114542541570734189/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6903337&amp;postID=114542541570734189' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6903337/posts/default/114542541570734189'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6903337/posts/default/114542541570734189'/><link rel='alternate' type='text/html' href='http://dotnetfaqs.blogspot.com/2006/04/what-skills-should-net-solution.html' title='What skills should a .NET solution Architect Possess?'/><author><name>Ashith Raj</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6903337.post-113984250556861033</id><published>2006-02-13T06:07:00.000-08:00</published><updated>2006-02-13T06:55:05.963-08:00</updated><title type='text'>How do you start SOA</title><content type='html'>This is post is linked to a &lt;a href="http://www.networkworld.com/research/2006/010906-soa-hot.html"&gt;Zapthink arcticle.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;A very Valid point is - you cannot buy SOA, but you can buy tools which enable SOA and help you setup a framework based on which you develop and deploy services.&lt;br /&gt;&lt;br /&gt;Most import thing is - you need to give back the business people a working model faster so that they have confidence in it and keep the SOA-izing the Enterprise applicaion Alive.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;A good first step &lt;/strong&gt;is to take an inventory of proprietary middleware and application interfaces and replace them with standards-based systems and APIs. The goals are to eliminate the application-integration nightmare that currently haunts a majority of IT shops and to remove redundant components. Adapting the interfaces, either with Web services or other standards, will speed the process of making application components work together. And don't discount legacy systems&lt;br /&gt;&lt;br /&gt;"If you can prove you can make SOA happen on legacy apps, you will have an easier time proving it for new ones," Schmelzer says.&lt;br /&gt;&lt;br /&gt;In SOA, we no longer think of building monolithic applications and integrating them. We think about building services and composing them.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6903337-113984250556861033?l=dotnetfaqs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetfaqs.blogspot.com/feeds/113984250556861033/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6903337&amp;postID=113984250556861033' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6903337/posts/default/113984250556861033'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6903337/posts/default/113984250556861033'/><link rel='alternate' type='text/html' href='http://dotnetfaqs.blogspot.com/2006/02/how-do-you-start-soa.html' title='How do you start SOA'/><author><name>Ashith Raj</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6903337.post-113959620308879704</id><published>2006-02-10T10:23:00.000-08:00</published><updated>2006-02-10T10:30:05.016-08:00</updated><title type='text'>Visual Studio Team Foundation Server Release Candidate</title><content type='html'>Kudos to Microsoft.The Long awaited VSTS is out with&lt;br /&gt;Team Foundation Server Release Candidate Now Available! - Wednesday, February 08, 2006&lt;br /&gt;Now Full App Life cycle can be underway with MSF, CMMI and Agile processes&lt;br /&gt;&lt;br /&gt;Good news for all the developers, Architect waiting for this release..&lt;br /&gt;&lt;br /&gt;Thanks Microsoft.&lt;br /&gt;get it at &lt;a href="http://msdn.microsoft.com/subscriptions/"&gt;http://msdn.microsoft.com/subscriptions/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6903337-113959620308879704?l=dotnetfaqs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetfaqs.blogspot.com/feeds/113959620308879704/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6903337&amp;postID=113959620308879704' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6903337/posts/default/113959620308879704'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6903337/posts/default/113959620308879704'/><link rel='alternate' type='text/html' href='http://dotnetfaqs.blogspot.com/2006/02/visual-studio-team-foundation-server.html' title='Visual Studio Team Foundation Server Release Candidate'/><author><name>Ashith Raj</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6903337.post-113896685051980568</id><published>2006-02-03T03:39:00.000-08:00</published><updated>2006-02-03T03:40:50.843-08:00</updated><title type='text'>debug Javascript in Visual Studio .NET 2005</title><content type='html'>In &lt;a href="javascript:ol("&gt;VS.NET&lt;/a&gt; 2005, No need to put Debugger(in &lt;a href="javascript:ol("&gt;VS.NET&lt;/a&gt; 2003) keyword in your javascript. it will automatically debug the code, but before that, make sure the following in IE&lt;br /&gt;&lt;br /&gt;IE and &lt;a href="javascript:ol("&gt;VS.NET&lt;/a&gt; both ship with nice javascript debugging support; here is the simple steps to get it to work:&lt;br /&gt;1. Turn off "Disable script debugging".  In IE go to Tools, Options, Avanced Tab and in the "Browsing" section make sure that "Disable script debugging" is NOT checked.  Accept that change.&lt;br /&gt;2. Open up &lt;a href="javascript:ol("&gt;VS.NET&lt;/a&gt; into your favorite solution, which of course includes some javascript markup.&lt;br /&gt;3. Run the solution.&lt;br /&gt;4. Once the project is ran, and the IE window is open jump back over to &lt;a href="javascript:ol("&gt;VS.NET&lt;/a&gt;. &lt;br /&gt;5. Under the Debug menu, Windows, choose Script Explorer.  This should show a window on the right side with a list of the running documents.  It should show the aspx page any any .js files you have included.  Open up any of the .JS files and set breakpoints in your code. Once the script is executed it should stop at your breakpoints and give you all the current watch funcationality that you have come to expect from &lt;a href="javascript:ol("&gt;VS.NET&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Followings are important steps while debugging with Mozilla:&lt;br /&gt;&lt;a href="javascript:ol("&gt;Mozilla has a project named "Venkman" just for debugging.&lt;/a&gt;&lt;br /&gt;Here is what I did in order to get this to work:&lt;br /&gt;1. Install the extension from &lt;a href="javascript:ol("&gt;http://www.hacksrus.com/~ginda/venkman/ &lt;/a&gt;.  Note: In order to get Firefox to actually install this you need to add the "&lt;a href="javascript:ol("&gt;hacksrus.com&lt;/a&gt;" to your trusted sites.  I dont trust this guy so what I did was right click the XPI and saved it to my desktop.  From there you can click and drag it into a Firefox window which it will then install it.  Also, remember that an XPI is just a zip file with a bunch of content.  Feel free to rename the .XPI file to a .ZIP and take a peek whats inside.&lt;br /&gt;2. Once you have the extension installed you will need to recycle the browser, do so now.&lt;br /&gt;3. Open up the Javascript debugger.  It can be found under Tools, Javascript debugger.&lt;br /&gt;&lt;br /&gt;this is an article by MSN group BDOTNET&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6903337-113896685051980568?l=dotnetfaqs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetfaqs.blogspot.com/feeds/113896685051980568/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6903337&amp;postID=113896685051980568' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6903337/posts/default/113896685051980568'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6903337/posts/default/113896685051980568'/><link rel='alternate' type='text/html' href='http://dotnetfaqs.blogspot.com/2006/02/debug-javascript-in-visual-studio-net.html' title='debug Javascript in Visual Studio .NET 2005'/><author><name>Ashith Raj</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6903337.post-113742327263500907</id><published>2006-01-16T06:54:00.000-08:00</published><updated>2006-01-16T06:54:33.753-08:00</updated><title type='text'>Biztalk Orchestration</title><content type='html'>&lt;strong&gt;&lt;u&gt;Biztalk Orchestration : &lt;/u&gt;&lt;/strong&gt;allows you to view the sequence in which the messages flow across the application in a business process. An orchestration helps coordinate the different applications of a business process.&lt;br /&gt;&lt;br /&gt;&lt;u&gt;&lt;strong&gt;components of Biztalk Orchestration &lt;/strong&gt;&lt;/u&gt;&lt;br /&gt;&lt;strong&gt;&lt;u&gt;&lt;/u&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;u&gt;1. Rules :&lt;/u&gt; &lt;/strong&gt;In BizTalk Server, rules contain a fact, a condition, and an action. A fact is an expression that evaluates to either true or false based on a specific condition. In BizTalk Server, you can create facts using SQL queries. A condition is a statement, such as if and else, based on which an expression is evaluated. An action is a task performed in response to the evaluation of the fact.&lt;br /&gt;&lt;u&gt;&lt;strong&gt;2. adapter:&lt;/strong&gt;&lt;/u&gt; is software that sends and receives messages to and from enterprise applications based on a protocol. The different types of adapters that BizTalk Server provides are BASE EDI, SQL, WSE2.0, FILE, FTP, HTTP, MSMQ, SMTP, SOAP.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;A BizTalk Server 2004 orchestration is designed using &lt;strong&gt;eXtensible Language (XLANG).&lt;br /&gt;&lt;/strong&gt;XLANG graphically defines the sequence of steps in a business process. Business process flow diagrams are called &lt;strong&gt;XLANG schedule drawings.&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;XLANG schedule &lt;/strong&gt;are executed using the XLANG scheduler engine.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6903337-113742327263500907?l=dotnetfaqs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetfaqs.blogspot.com/feeds/113742327263500907/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6903337&amp;postID=113742327263500907' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6903337/posts/default/113742327263500907'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6903337/posts/default/113742327263500907'/><link rel='alternate' type='text/html' href='http://dotnetfaqs.blogspot.com/2006/01/biztalk-orchestration.html' title='Biztalk Orchestration'/><author><name>Ashith Raj</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6903337.post-113741520608587655</id><published>2006-01-16T02:51:00.000-08:00</published><updated>2006-01-16T05:26:17.946-08:00</updated><title type='text'>Biztalk Server Glossary</title><content type='html'>&lt;strong&gt;&lt;u&gt;Message :&lt;/u&gt;  &lt;/strong&gt;Messages in BizTalk Server, which are the business data of a company, can be represented in a specific format, such as XML or Comma Separated Values (CSV). To process a message in BizTalk Server, you need to convert the message into XML format because the BizTalk Server architecture is designed in XML.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;u&gt;MessageBox :&lt;/u&gt; &lt;/strong&gt;MessageBox in BizTalk Server is a SQL Server database that stores messages.&lt;br /&gt;You can also use BizTalk Server to create various instances of MessageBox such as secondary&lt;br /&gt;MessageBox and master MessageBox. The master MessageBox distributes message traffic&lt;br /&gt;between different secondary MessageBoxes for processing. The secondary MessageBox handles a part of the message traffic that the master MessageBox sends.&lt;br /&gt;&lt;br /&gt;&lt;u&gt;&lt;strong&gt;Channels :&lt;/strong&gt;&lt;/u&gt; A channel is a collection of attributes that specify the source of documents, which contain the business data that you need to transmit across enterprise applications. A channel also specifies thetasks that messaging services need to perform to transfer a document. In BizTalk Server, each channel has a unique ID and is associated with a port, which transfers data to a destination.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;u&gt;PipeLine :&lt;/u&gt; &lt;/strong&gt;A pipeline is a group of Component Object Models (COM) or &lt;strong&gt;.NET components&lt;/strong&gt; that process a message before sending it to its destination. A pipeline divides the processing of a message into different tasks called &lt;strong&gt;stages &lt;/strong&gt;and defines the sequence to implement each stage. For example, a pipeline divides the processing of a message into three tasks: decoding the incoming message, dividing the incoming message into several parts, and converting the messages into XML format.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;u&gt;Ports :&lt;/u&gt; &lt;/strong&gt;Ports are interfaces to exchange messages between two applications of a business process. A port connects BizTalk Server to a URL using a protocol, such as https and ftps. BizTalk Server messaging requires &lt;strong&gt;&lt;u&gt;two types of ports, receive and send, &lt;/u&gt;&lt;/strong&gt;to transfer messages between the applications of a business process.&lt;br /&gt;&lt;br /&gt;A &lt;strong&gt;&lt;u&gt;receive port &lt;/u&gt;&lt;/strong&gt;combines the messages that an enterprise application sends to one or more&lt;br /&gt;destination locations, called receive locations. &lt;strong&gt;&lt;u&gt;A receive location &lt;/u&gt;&lt;/strong&gt;uses an adapter to continuously monitor a specific URL for the arrival of messages. A send port receives a message from the BizTalk Server MessageBox and transmits the message to a URL through an adapter.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6903337-113741520608587655?l=dotnetfaqs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetfaqs.blogspot.com/feeds/113741520608587655/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6903337&amp;postID=113741520608587655' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6903337/posts/default/113741520608587655'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6903337/posts/default/113741520608587655'/><link rel='alternate' type='text/html' href='http://dotnetfaqs.blogspot.com/2006/01/biztalk-server-glossary.html' title='Biztalk Server Glossary'/><author><name>Ashith Raj</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6903337.post-113740790203084476</id><published>2006-01-16T01:40:00.000-08:00</published><updated>2006-01-16T02:38:23.016-08:00</updated><title type='text'>Learning Biztalk 2004 and 2006</title><content type='html'>I've made a conscious commitment to learn and improvise my Biztalk Server Skills.&lt;br /&gt;&lt;br /&gt;I'll be posting and making journal entries about the progress I make in the Biztalk Server Concepts.&lt;br /&gt;&lt;br /&gt;When I refer to BizTalk Server, I mean Biztalk Server 2004 and 2006. I'll mention the version names when there is a discrepanicies in the features between 2004 and 2006.&lt;br /&gt;&lt;br /&gt;I would Like to start the Discussion about Biztalk by jotting down in what scenarios I would use Biztalk. (this is not an extensive list of biztalk scenarios but I intend to add to it in the future.) :&lt;br /&gt;&lt;br /&gt;1. Changing Business Rules. (A rule defines how the tasks involved in the business process are performed.)&lt;br /&gt;2. transfer business data (using adapter and accelerators.)&lt;br /&gt;3. connecting disparate enterprise applications using rules or publish and subscribe (centralised integration service).&lt;br /&gt;4. Structuring Business Processes using HUB - BUS Model .&lt;br /&gt;5. Optimise the Business Processes using centralised state container and Orchestrations, BAM.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6903337-113740790203084476?l=dotnetfaqs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetfaqs.blogspot.com/feeds/113740790203084476/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6903337&amp;postID=113740790203084476' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6903337/posts/default/113740790203084476'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6903337/posts/default/113740790203084476'/><link rel='alternate' type='text/html' href='http://dotnetfaqs.blogspot.com/2006/01/learning-biztalk-2004-and-2006.html' title='Learning Biztalk 2004 and 2006'/><author><name>Ashith Raj</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6903337.post-113628131964867721</id><published>2006-01-03T01:33:00.000-08:00</published><updated>2006-05-02T03:02:52.703-07:00</updated><title type='text'>What is Semantic Web</title><content type='html'>&lt;a href="http://www.w3.org/2001/sw/"&gt;Semantic Web&lt;/a&gt; : The Semantic Web provides a common framework that allows data to be shared and reused across application, enterprise, and community boundaries. It is a collaborative effort led by W3C with participation from a large number of researchers and industrial partners. It is based on the Resource Description Framework (&lt;a href="http://www.w3.org/RDF/"&gt;RDF&lt;/a&gt;), which integrates a variety of applications using XML for syntax and URIs for naming.&lt;br /&gt;&lt;br /&gt;"The Semantic Web is an extension of the current web in which information is given well-defined meaning, better enabling computers and people to work in cooperation."&lt;br /&gt;&lt;br /&gt;The Semantic Web is comprised of the standards and tools of XML, &lt;a title="XML Schema" href="http://en.wikipedia.org/wiki/XML_Schema"&gt;XML Schema&lt;/a&gt;, &lt;a title="Resource Description Framework" href="http://en.wikipedia.org/wiki/Resource_Description_Framework"&gt;RDF&lt;/a&gt;, &lt;a title="RDF Schema" href="http://en.wikipedia.org/wiki/RDF_Schema"&gt;RDF Schema&lt;/a&gt; and &lt;a title="Web Ontology Language" href="http://en.wikipedia.org/wiki/Web_Ontology_Language"&gt;OWL&lt;/a&gt;. The &lt;a class="external text" title="http://www.w3.org/TR/owl-features/" href="http://www.w3.org/TR/owl-features/"&gt;OWL Web Ontology Language Overview&lt;/a&gt; describes the function and relationship of each of these components of the Semantic Web:&lt;br /&gt;&lt;strong&gt;XML &lt;/strong&gt;provides a surface syntax for structured documents, but imposes no semantic constraints on the meaning of these documents.&lt;br /&gt;&lt;strong&gt;XML Schema &lt;/strong&gt;is a language for restricting the structure of XML documents.&lt;br /&gt;&lt;strong&gt;RDF&lt;/strong&gt; is a simple &lt;a title="Data model" href="http://en.wikipedia.org/wiki/Data_model"&gt;data model&lt;/a&gt; for referring to objects ("&lt;a title="Resource (Web)" href="http://en.wikipedia.org/wiki/Resource_(Web)"&gt;resources&lt;/a&gt;") and how they are related. An RDF-based model can be represented in XML syntax.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;RDF Schema &lt;/strong&gt;is a vocabulary for describing properties and classes of RDF resources, with a semantics for generalization-hierarchies of such properties and classes.&lt;br /&gt;&lt;strong&gt;OWL&lt;/strong&gt; adds more vocabulary for describing properties and classes: among others, relations between classes (e.g. disjointness), cardinality (e.g. "exactly one"), equality, richer typing of properties, characteristics of properties (e.g. symmetry), and enumerated classes.&lt;br /&gt;&lt;br /&gt;Check out &lt;a href="http://en.wikipedia.org/wiki/Semantic_web"&gt;http://en.wikipedia.org/wiki/Semantic_web&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6903337-113628131964867721?l=dotnetfaqs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetfaqs.blogspot.com/feeds/113628131964867721/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6903337&amp;postID=113628131964867721' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6903337/posts/default/113628131964867721'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6903337/posts/default/113628131964867721'/><link rel='alternate' type='text/html' href='http://dotnetfaqs.blogspot.com/2006/01/what-is-semantic-web.html' title='What is Semantic Web'/><author><name>Ashith Raj</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6903337.post-113576566084783197</id><published>2005-12-28T02:26:00.000-08:00</published><updated>2005-12-28T02:27:41.076-08:00</updated><title type='text'>What is Indigo in SOA World</title><content type='html'>Indigo combines support for Web services with transformation, intelligent routing and message-oriented middleware capabilities such as guaranteed delivery and publish-and-subscribe. Gartner classifies this type of middleware as an enterprise service bus (ESB).&lt;br /&gt;&lt;br /&gt;Like other ESBs, Indigo has a distributed design and supports multiple protocols, communication patterns, network topologies and encoding formats such as XML. However, unlike other ESBs, Indigo is built into the operating system.&lt;br /&gt;&lt;br /&gt;Indigo updates the Web services support and some other communication functions in the .NET framework. Indigo will include advanced Web services features, including security, transactions and management. Indigo will supersede all of Microsoft’s communication middleware, including COM, COM+, .NET remoting and Microsoft Message Queue Server, but will provide some backward compatibility to reduce coexistence and migration problems.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6903337-113576566084783197?l=dotnetfaqs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetfaqs.blogspot.com/feeds/113576566084783197/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6903337&amp;postID=113576566084783197' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6903337/posts/default/113576566084783197'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6903337/posts/default/113576566084783197'/><link rel='alternate' type='text/html' href='http://dotnetfaqs.blogspot.com/2005/12/what-is-indigo-in-soa-world.html' title='What is Indigo in SOA World'/><author><name>Ashith Raj</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6903337.post-113510254481612790</id><published>2005-12-20T10:14:00.000-08:00</published><updated>2005-12-20T10:15:44.826-08:00</updated><title type='text'>difference between workflow applications and Business Process Management (BPM)</title><content type='html'>What is the difference between workflow applications and Business Process Management (BPM) applications? To me, BPM just looks like workflow services with a 'managerial decision-making capabilities' plug-in. Am I right in assuming so?&lt;br /&gt;&lt;br /&gt;There is some grey area between workflow and BPM. Workflow is a somewhat more technical description (orchestration is a very technical term that tends to be used in this context also). BPM is more of a category focused on Business Processes. Thus you could even say that Workflow is one way to implement Business Processes, and that BPM is about the management of workflow. So you are right in suggesting that BPM is like workflow with a manager interface -- it is literally the management of business processes, which can be in some cases manifested as workflow.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6903337-113510254481612790?l=dotnetfaqs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetfaqs.blogspot.com/feeds/113510254481612790/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6903337&amp;postID=113510254481612790' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6903337/posts/default/113510254481612790'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6903337/posts/default/113510254481612790'/><link rel='alternate' type='text/html' href='http://dotnetfaqs.blogspot.com/2005/12/difference-between-workflow.html' title='difference between workflow applications and Business Process Management (BPM)'/><author><name>Ashith Raj</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6903337.post-113499106689205693</id><published>2005-12-19T03:09:00.000-08:00</published><updated>2005-12-19T03:18:27.603-08:00</updated><title type='text'>Two Stages of SOA</title><content type='html'>&lt;strong&gt;SOA Starts with Design and Delivery&lt;/strong&gt;&lt;br /&gt;In chronological order, &lt;strong&gt;&lt;u&gt;there are two stages to SOA.&lt;/u&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;The &lt;strong&gt;first stage&lt;/strong&gt; is called design and delivery. As the title suggests, design and delivery is about building, governing and deploying services and applications.&lt;br /&gt;&lt;br /&gt;The &lt;strong&gt;second stage&lt;/strong&gt; is called Run-time which consists of technologies such as registries, application servers and governance.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;u&gt;Build&lt;/u&gt;&lt;/strong&gt;&lt;br /&gt;Build is the first step in the design and delivery phase of SOA. Build describes the ability to create new services as well as custom and composite applications. Build is the most important step in the entire SOA lifecycle. It is the platform from which all other steps and phases are created. How a company builds services is critical to the success of SOA and maybe the company.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;u&gt;Govern&lt;/u&gt;&lt;/strong&gt;&lt;br /&gt;Traditional development and assembly models lack the ability to have business owners request services, govern the creation and reuse, and manage service dependencies.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;u&gt;Deploy&lt;/u&gt;&lt;/strong&gt;&lt;br /&gt;The final step in design and delivery is Deploy. In a nutshell, this means that after building and governing the creation of services and applications, companies must deploy the services and applications to application servers. This is easier said then done. The deploy step is complicated by multiple types of servers, multiple environments and even the server clusters. The key to any good SOA implementation is the support for any type of deployment option.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6903337-113499106689205693?l=dotnetfaqs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetfaqs.blogspot.com/feeds/113499106689205693/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6903337&amp;postID=113499106689205693' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6903337/posts/default/113499106689205693'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6903337/posts/default/113499106689205693'/><link rel='alternate' type='text/html' href='http://dotnetfaqs.blogspot.com/2005/12/two-stages-of-soa.html' title='Two Stages of SOA'/><author><name>Ashith Raj</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6903337.post-113405224533316018</id><published>2005-12-08T06:15:00.000-08:00</published><updated>2005-12-08T06:30:45.413-08:00</updated><title type='text'>Windows XP Media Center Edition</title><content type='html'>Media centre won't be any better for you if all you want is an operating system for a typical PC workstation.&lt;br /&gt;&lt;br /&gt;MCE is intended to be used as a home entertainment computer. It looks exactly like a normal XP install until you run the Media Centre.&lt;br /&gt;The Media Centre operates as a media player for vid files and DVDs, has a photo viewer (which automatically pans accross the images to make the viewing more interesting), and will play mp3 playlists etc...&lt;br /&gt;&lt;br /&gt;MCE really shines though when you get a hardware encoding TV Tuner card (and remote control) and pipe the video output to a television. Your computer then becomes a very good personal video recorder (you will never use a VCR again). It automatically downloads your program listings and lets you record by point and click in a variety of quality levels. MCE starts buffering a channel as soon as you flip to it. This will let you pause live TV and rewind to any point in the buffer. I've used lots of TV tuner apps (beyondTV SageTV ChrisTV) &lt;strong&gt;MCE blows them all away for ease of use.&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;MCE 2005 is a great OS&lt;/strong&gt; but you will want some special hardware to go along with it. MCE compatible Video card with TV out (min Gfx 5200) MCE compat. TV Tuner card (hauppaugge, ATI theatre 550 Pro - All-in-wonder cards are NOT compat) Wireless mouse and KB MCE Remote control (hauppauge remote works ok but requires special config. Mouse actually will work well enough but remote is much nicer) Quiet CPU and Case fan to reduce noise.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6903337-113405224533316018?l=dotnetfaqs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetfaqs.blogspot.com/feeds/113405224533316018/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6903337&amp;postID=113405224533316018' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6903337/posts/default/113405224533316018'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6903337/posts/default/113405224533316018'/><link rel='alternate' type='text/html' href='http://dotnetfaqs.blogspot.com/2005/12/windows-xp-media-center-edition.html' title='Windows XP Media Center Edition'/><author><name>Ashith Raj</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6903337.post-113102154978580357</id><published>2005-11-03T04:39:00.000-08:00</published><updated>2005-11-03T04:39:09.806-08:00</updated><title type='text'>Ajax Javascript Debugging in VS 2005</title><content type='html'>&lt;strong&gt;&lt;span style="font-family:Verdana;"&gt;In Ajax World, Java&lt;/span&gt;&lt;/strong&gt;&lt;a href="http://www.ben-rush.net/blog/PermaLink,guid,b20a27b8-66ba-43e5-b0d6-4aa11c76d739.aspx"&gt;Script Debugging under Visual Studio 2005&lt;/a&gt;&lt;strong&gt;&lt;span style="font-family:Verdana;"&gt; :&lt;/span&gt;&lt;/strong&gt;&lt;br/&gt;&lt;strong&gt;&lt;span style="font-family:Verdana;"&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br/&gt;&lt;strong&gt;&lt;span style="font-family:Verdana;"&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br/&gt;&lt;a href="http://www.ben-rush.net/blog/PermaLink,guid,b20a27b8-66ba-43e5-b0d6-4aa11c76d739.aspx"&gt;http://www.ben-rush.net/blog/PermaLink,guid,b20a27b8-66ba-43e5-b0d6-4aa11c76d739.aspx&lt;/a&gt;&lt;strong&gt;&lt;span style="font-family:Verdana;font-size:78%;"&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br/&gt;&lt;strong&gt;&lt;span style="font-family:Verdana;font-size:78%;"&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br/&gt;&lt;strong&gt;&lt;span style="font-family:Verdana;font-size:78%;"&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br/&gt;&lt;strong&gt;&lt;span style="font-family:Verdana;font-size:78%;"&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br/&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6903337-113102154978580357?l=dotnetfaqs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetfaqs.blogspot.com/feeds/113102154978580357/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6903337&amp;postID=113102154978580357' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6903337/posts/default/113102154978580357'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6903337/posts/default/113102154978580357'/><link rel='alternate' type='text/html' href='http://dotnetfaqs.blogspot.com/2005/11/ajax-javascript-debugging-in-vs-2005.html' title='Ajax Javascript Debugging in VS 2005'/><author><name>Ashith Raj</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6903337.post-112938000614053176</id><published>2005-10-15T05:39:00.000-07:00</published><updated>2005-10-15T05:40:06.146-07:00</updated><title type='text'>Workflow vs. BizTalk Server</title><content type='html'>&lt;a id="article-343024-1023" name="article-343024-1023"&gt;&lt;/a&gt;&lt;br /&gt;Now that Microsoft has announced Windows Workflow Foundation (know just "&lt;a class="blines3" title="Link outside of this blog" href="http://blogs.msdn.com/scottwoo/archive/2005/10/13/480676.aspx" target="_blank"&gt;WF&lt;/a&gt;", see why &lt;a class="blines3" title="Link outside of this blog" href="http://blogs.msdn.com/scottwoo/archive/2005/10/13/480676.aspx" target="_blank"&gt;here&lt;/a&gt;), everyone keeps asking "what's going to happen to BizTalk Server? Is it dead?"&lt;br /&gt;&lt;br /&gt;The press has been drawing their own &lt;a class="blines3" title="Link outside of this blog" href="http://www.infoworld.com/article/05/10/06/41OPenterwin_1.html" target="_blank"&gt;conclusions&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Scott Woodgate responds in an &lt;a class="blines3" title="Link outside of this blog" href="http://blogs.msdn.com/scottwoo/archive/2005/10/10/479331.aspx" target="_blank"&gt;excellent post&lt;/a&gt; on the future of BizTalk Server and it's relationship to WF. The bottom line: WF is for workflow within applications while BizTalk is for workflow across applications. The later is the primary use case for enterprise application integration where BizTalk Server will continue in force.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6903337-112938000614053176?l=dotnetfaqs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetfaqs.blogspot.com/feeds/112938000614053176/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6903337&amp;postID=112938000614053176' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6903337/posts/default/112938000614053176'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6903337/posts/default/112938000614053176'/><link rel='alternate' type='text/html' href='http://dotnetfaqs.blogspot.com/2005/10/workflow-vs-biztalk-server.html' title='Workflow vs. BizTalk Server'/><author><name>Ashith Raj</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6903337.post-111988569314883434</id><published>2005-06-27T08:19:00.000-07:00</published><updated>2005-10-15T05:42:24.920-07:00</updated><title type='text'>SQL Server 2005 and Visual Studio 2005 release dates</title><content type='html'>&lt;strong&gt;&lt;span style="color:#ff6600;"&gt;SQL Server 2005 and Visual Studio 2005&lt;/span&gt;&lt;/strong&gt; release dates were announced this morning at Tech Ed 2005. &lt;strong&gt;&lt;span style="color:#cc33cc;"&gt;November 7 2005&lt;/span&gt;&lt;/strong&gt; is the day. Mark your calendars.&lt;br /&gt;&lt;br /&gt;But For MSDN Subscribers It will be available for download from &lt;strong&gt;OCT 14 th 2005&lt;/strong&gt;. Watch MS for the Bandwith...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6903337-111988569314883434?l=dotnetfaqs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetfaqs.blogspot.com/feeds/111988569314883434/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6903337&amp;postID=111988569314883434' title='28 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6903337/posts/default/111988569314883434'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6903337/posts/default/111988569314883434'/><link rel='alternate' type='text/html' href='http://dotnetfaqs.blogspot.com/2005/06/sql-server-2005-and-visual-studio-2005.html' title='SQL Server 2005 and Visual Studio 2005 release dates'/><author><name>Ashith Raj</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>28</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6903337.post-111641883364928858</id><published>2005-05-18T05:20:00.000-07:00</published><updated>2005-05-18T05:20:48.923-07:00</updated><title type='text'>The Best .NET Products of 2005</title><content type='html'>Editors Choice Awards&lt;br /&gt;ASP.NET 2.0 (Microsoft)&lt;br /&gt;SQL Server 2005 Express Edition (Microsoft)&lt;br /&gt;&lt;br /&gt;Bug &amp; Feature Tracking&lt;br /&gt;Readers Choice Award&lt;br /&gt;SourceGear Vault (SourceGear)&lt;br /&gt;&lt;br /&gt;Readers Choice Merit Awards&lt;br /&gt;DevTrack (TechExcel)&lt;br /&gt;IBM Rational ClearQuest (IBM Rational)&lt;br /&gt;&lt;br /&gt;Charting &amp; Multimedia&lt;br /&gt;Readers Choice Award&lt;br /&gt;Chart FX for .NET (Software FX)&lt;br /&gt;&lt;br /&gt;Readers Choice Merit Award&lt;br /&gt;WinChart (Infragistics)&lt;br /&gt;&lt;br /&gt;Component Suites for .NET&amp;#8212;Desktop and Web&lt;br /&gt;Readers Choice Award&lt;br /&gt;NetAdvantage (Infragistics)&lt;br /&gt;&lt;br /&gt;Readers Choice Merit Award&lt;br /&gt;ComponentOne Studio for .NET (ComponentOne)&lt;br /&gt;&lt;br /&gt;Data Editing, Reporting, &amp; Analysis Tools&lt;br /&gt;Readers Choice Award&lt;br /&gt;Crystal Reports (Business Objects)&lt;br /&gt;&lt;br /&gt;Readers Choice Merit Award&lt;br /&gt;ActiveReports for .NET (Data Dynamics)&lt;br /&gt;&lt;br /&gt;Data, Network, &amp; Web Connectivity&lt;br /&gt;Readers Choice Award&lt;br /&gt;IP*Works! (/n software)&lt;br /&gt;&lt;br /&gt;Readers Choice Merit Award&lt;br /&gt;Xceed Data Manipulation Suite (Xceed Software)&lt;br /&gt;&lt;br /&gt;Development Tools&lt;br /&gt;Readers Choice Award&lt;br /&gt;VMware Workstation (VMware)&lt;br /&gt;&lt;br /&gt;Readers Choice Merit Awards&lt;br /&gt;CodeRush for Visual Studio .NET (Developer Express)&lt;br /&gt;SlickEdit (SlickEdit)&lt;br /&gt;&lt;br /&gt;Grid Components&amp;#8212;Web Forms&lt;br /&gt;Readers Choice Award&lt;br /&gt;ComponentOne WebGrid for ASP.NET (ComponentOne)&lt;br /&gt;&lt;br /&gt;Readers Choice Merit Award&lt;br /&gt;WebGrid (Infragistics)&lt;br /&gt;&lt;br /&gt;Grid Components&amp;#8212;Win Forms&lt;br /&gt;Readers Choice Award&lt;br /&gt;WinGrid (Infragistics)&lt;br /&gt;&lt;br /&gt;Readers Choice Merit Award&lt;br /&gt;ComponentOne FlexGrid for .NET (ComponentOne)&lt;br /&gt;&lt;br /&gt;Help Authoring&lt;br /&gt;Readers Choice Award&lt;br /&gt;RoboHelp (Macromedia)&lt;br /&gt;&lt;br /&gt;Readers Choice Merit Award&lt;br /&gt;ComponentOne Doc-To-Help (ComponentOne)&lt;br /&gt;&lt;br /&gt;Imaging &amp; Graphics&lt;br /&gt;Readers Choice Award&lt;br /&gt;LEADTOOLS Document Imaging Suite SDK (LEAD Technologies)&lt;br /&gt;&lt;br /&gt;Readers Choice Merit Awards&lt;br /&gt;GPS ToolKit.NET (Scientific Component)&lt;br /&gt;ImagXpress (Pegasus Imaging)&lt;br /&gt;&lt;br /&gt;Installation, Setup, &amp; Deployment Tools&lt;br /&gt;Readers Choice Award&lt;br /&gt;InstallShield (Macrovision)&lt;br /&gt;&lt;br /&gt;Readers Choice Merit Award&lt;br /&gt;Wise Installation System (Wise Solutions)&lt;br /&gt;ADVERTISEMENT&lt;br /&gt;&lt;br /&gt;Instructor-Led Training&lt;br /&gt;Readers Choice Award&lt;br /&gt;AppDev&lt;br /&gt;&lt;br /&gt;Middleware &amp; Server-Based Tools&lt;br /&gt;Readers Choice Award&lt;br /&gt;Crystal Reports Server (Business Objects)&lt;br /&gt;&lt;br /&gt;Readers Choice Merit Award&lt;br /&gt;StarTeam (Borland)&lt;br /&gt;&lt;br /&gt;Mobility Tools &amp; Frameworks&lt;br /&gt;Readers Choice Award&lt;br /&gt;IP*Works! .NET Compact Framework Edition (/n software)&lt;br /&gt;&lt;br /&gt;Readers Choice Merit Award&lt;br /&gt;ComponentOne Studio for Mobile Devices (ComponentOne)&lt;br /&gt;&lt;br /&gt;PDF Tools&lt;br /&gt;Readers Choice Award&lt;br /&gt;activePDF (activePDF)&lt;br /&gt;&lt;br /&gt;Readers Choice Merit Award&lt;br /&gt;DynamicPDF Generator for .NET (ceTe Software)&lt;br /&gt;&lt;br /&gt;Performance, Profiling, &amp; Debugging Tools&lt;br /&gt;Readers Choice Award&lt;br /&gt;DevPartner Studio (Compuware)&lt;br /&gt;&lt;br /&gt;Readers Choice Merit Award&lt;br /&gt;ANTS Profiler (Red Gate Software)&lt;br /&gt;&lt;br /&gt;Security &amp; Copy Protection&lt;br /&gt;Readers Choice Award&lt;br /&gt;DevPartner SecurityChecker (Compuware)&lt;br /&gt;&lt;br /&gt;Readers Choice Merit Award&lt;br /&gt;Dotfuscator (PreEmptive Solutions)&lt;br /&gt;&lt;br /&gt;Software Design, Frameworks, &amp; Modeling Tools&lt;br /&gt;Readers Choice Award&lt;br /&gt;IBM Rational Rose XDE Developer for Visual Studio (IBM Rational)&lt;br /&gt;&lt;br /&gt;Readers Choice Merit Award&lt;br /&gt;Visual UML (Visual Object Modelers)&lt;br /&gt;&lt;br /&gt;UI Components&amp;#8212;Web Forms&lt;br /&gt;Readers Choice Award&lt;br /&gt;ComponentOne WebMenus and WebBars for ASP.NET (ComponentOne)&lt;br /&gt;&lt;br /&gt;Readers Choice Merit Award&lt;br /&gt;WebEditor (Infragistics)&lt;br /&gt;&lt;br /&gt;UI Components&amp;#8212;Win Forms&lt;br /&gt;Readers Choice Award&lt;br /&gt;WinToolBars (Infragistics)&lt;br /&gt;&lt;br /&gt;Readers Choice Merit Award&lt;br /&gt;ComponentOne Input for .NET (ComponentOne)&lt;br /&gt;&lt;br /&gt;Web Design &amp; Development Tools&lt;br /&gt;Readers Choice Award&lt;br /&gt;Studio MX (Macromedia)&lt;br /&gt;&lt;br /&gt;Readers Choice Merit Award&lt;br /&gt;ComponentOne Studio for ASP.NET (ComponentOne)&lt;br /&gt;&lt;br /&gt;Web Hosting&lt;br /&gt;Readers Choice Awards&lt;br /&gt;1&amp;1&lt;br /&gt;DiscountASP.NET&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6903337-111641883364928858?l=dotnetfaqs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetfaqs.blogspot.com/feeds/111641883364928858/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6903337&amp;postID=111641883364928858' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6903337/posts/default/111641883364928858'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6903337/posts/default/111641883364928858'/><link rel='alternate' type='text/html' href='http://dotnetfaqs.blogspot.com/2005/05/free-trial-issue-of-visual-studio.html' title='The Best .NET Products of 2005'/><author><name>Ashith Raj</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6903337.post-111600600591621321</id><published>2005-05-13T10:40:00.000-07:00</published><updated>2005-05-13T10:40:05.916-07:00</updated><title type='text'>XInclude ver1.0</title><content type='html'>&lt;font size=3&gt;The World Wide Web Consortium has announced the release of&lt;strong&gt; XML Inclusions (XInclude) Version 1.0&lt;/strong&gt; as a final W3C Recommendation. Produced by members of the W3C XML Core Working Group, XInclude "provides a generic method for merging XML documents into a single composite document. Using existing XML constructs (elements, attributes and URI references), XInclude contributes to efficient content management at the enterprise level."&lt;br /&gt;&lt;br /&gt;The W3C announcement describes&lt;strong&gt; XInclude 1.0 &lt;/strong&gt;as useful "in environments without DTD (Document Type Definition) support, which are more common since the adoption of XML schemas. Unlike the mechanism used in DTDs, i.e., XML external entities, XInclude gives the content author a fallback mechanism in cases where the external document cannot be retrieved, for whatever reason. &lt;strong&gt;XInclude&lt;/strong&gt; allows an application to leverage the syntax in existing XML constructs... and allows an author to choose how to include another XML document in new composite content, either as markup or text. In addition, no XML entity declarations, which were required in the older method when using DTDs, are required for XInclude."&lt;/font&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6903337-111600600591621321?l=dotnetfaqs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetfaqs.blogspot.com/feeds/111600600591621321/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6903337&amp;postID=111600600591621321' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6903337/posts/default/111600600591621321'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6903337/posts/default/111600600591621321'/><link rel='alternate' type='text/html' href='http://dotnetfaqs.blogspot.com/2005/05/xinclude-ver10.html' title='XInclude ver1.0'/><author><name>Ashith Raj</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6903337.post-111600590730579013</id><published>2005-05-13T10:38:00.000-07:00</published><updated>2005-05-13T10:38:27.343-07:00</updated><title type='text'>TERM OF THE DAY: htaccess</title><content type='html'>&lt;font size=3&gt;TERM OF THE DAY: &lt;strong&gt;htaccess &lt;/strong&gt;&lt;br /&gt;A Web server configuration file that contains commands known by the server that tell the server how to behave in certain instances. Some of the most common uses of an htaccess file include the capability to restrict access to certain files or directories on the Internet (or intranet) through password protection. &lt;br /&gt;&lt;br /&gt;Additionally htaccess is used to automatically redirect users, ban or allow certain IP addresses access to the server, and to call a custom designed 404 error Web rather than the standard error 404 file that usually appears in your browser. &lt;br /&gt;&lt;br /&gt;Apache Web servers, and other NCSA compliant Web servers can use htaccess. &lt;/font&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6903337-111600590730579013?l=dotnetfaqs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetfaqs.blogspot.com/feeds/111600590730579013/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6903337&amp;postID=111600590730579013' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6903337/posts/default/111600590730579013'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6903337/posts/default/111600590730579013'/><link rel='alternate' type='text/html' href='http://dotnetfaqs.blogspot.com/2005/05/term-of-day-htaccess.html' title='TERM OF THE DAY: htaccess'/><author><name>Ashith Raj</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6903337.post-111597959646050496</id><published>2005-05-13T03:19:00.000-07:00</published><updated>2005-05-13T03:19:56.473-07:00</updated><title type='text'>BPEL FAQs</title><content type='html'>&lt;strong&gt;Why BPEL?  &lt;/strong&gt;&lt;br /&gt;A significant, industry-shaping event occurred on June 9, 2002 for web services technology. On that day, a coalition consisting of industry heavyweights IBM, Microsoft, OpenStorm and others released the Business Process Execution Language for Web Services (BPEL4WS) specification. BPEL is a 'service oriented language' that places integration and interoperability as a first order concern. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Business Value&lt;br /&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;BPEL4WS &lt;/strong&gt;is a specification to standardize integration logic and process automation between Web Services. Process automation software is not new. However, a platform-neutral, standards-based approach using Web Services is new. &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;BPEL4WS &lt;/strong&gt;is one of several new technologies and standards that have been released for Web Services. First generation Web Services enabled simple point-to-point integration using technologies like SOAP, WSDL, and UDDI. Newer technologies and standards are harnessing Web Services to create true enterprise-class business solutions that can encapsulate complex business logic while providing reliability, security and control. &lt;br /&gt;&lt;br /&gt;The ability to deliver these enterprise capabilities while remaining platform-neutral and standards-based has caught the attention of software vendors and corporate customers alike. Of obvious interest are the huge costs savings and broad interoperability benefits that these technologies promise. Corporate strategists and enterprise architects are also enticed by the vastly improved agility and flexibility provided, enabling rapid development of new business processes and business models to capitalize on opportunities. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;BPEL Foundations&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;BPEL4WS &lt;/strong&gt;represents a convergence of language features from IBM's Web Service Flow Language (WSFL), who's control flow language is almost identical to IBM's MQ Series workflow language, and Microsoft's XLANG, which is used by Microsoft's BizTalk product. Both WSFL and XLANG are superseded by the BPEL4WS specification, with a range of new products leveraging the new specification under development. &lt;br /&gt;&lt;br /&gt;In the spring of 2003, the BPEL 1.1 specification was formally submitted to the OASIS standards body. This move further ensured BPEL as the de-facto standard for web service orchestration and that the specification can be implemented on a royalty-free basis. OpenStorm was pleased to be a co-submitter of the BPEL 1.1 specification to OASIS.  &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Frequently Asked Questions  &lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;What is Web Service Orchestration (WSO)?&lt;br /&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;Web Service Orchestration &lt;/strong&gt;is a category of software that facilitates application integration using web service standards. Previously, systems were integrated using proprietary solutions by vendors like Tibco, SeeBeyond, Vitria, Web Methods and others. Each vendor created their own adaptors and their own &amp;#8220;integration logic&amp;#8221;. These proprietary integration mechanisms have been replaced by specification-driven standards allowing customers to avoid vendor lock-in. The recent standardization of BPEL4WS has enabled a new breed of standard, interoperable integration platforms. &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;What is BPEL4WS?&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;BPEL4WS,&lt;/strong&gt; also known as BPEL (rhymes with ripple), is an acronym for, &amp;#8220;Business Process Execution Language for Web Services&amp;#8221;. BPEL is the standard used to describe interactions between applications. BPEL is an XML based dialect that has strong semantics for describing message flows, asynchronous and parallel communications, and interaction with web services while leveraging the current set of XML and web service standards. BPEL is the successor to Microsoft&amp;rsquo;s XLang, which is used in BizTalk, and to IBM&amp;rsquo;s WSFL. Both XLang and WSFL will be phased out. &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;What kind of commands might I find in BPEL?&lt;br /&gt;&lt;/strong&gt;&lt;br /&gt;BPEL has commands for process flow control including While, Sequence, Pick, and Flow. It also has variables and faults. The ability to invoke web services is core, as well as the ability to listen for incoming messages from web services. Features for compensation handling, error/fault handling and event handling are built in. It contains most of the concepts found in simple scripting languages, but has a strong emphasis on working with XML, web services and long running processes. &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;What is an Orchestration?&lt;br /&gt;&lt;/strong&gt;&lt;br /&gt;An orchestration is a script that identifies partners, roles and logic to connect them all together. The orchestration script is often called a &amp;#8220;schedule&amp;#8221; or a process. &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Why do I need to Orchestrate my web services?&lt;br /&gt;&lt;/strong&gt;&lt;br /&gt;Web Services have &amp;lsquo;contracts&amp;rsquo; that define their capability and identify how to call them. This presents an opportunity to pipe one service into another, creating a chain of services that perform a greater function. BPEL allows one to chain together services to create an &amp;lsquo;aggregate service&amp;rsquo; or to chain services together in order to manage the steps of a business process. This enables one to quickly connect a set of services in a loosely coupled, yet controlled and managed environment. As an organization matures in its use of BPEL, the orchestration scripts begin to become one of the most important artifacts. The scripts become the definition for how Web Services are connected. Orchestration scripts become a first-order artifact to identify &amp;lsquo;integration logic&amp;rsquo;.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Is Orchestration a type of SOI?&lt;br /&gt;&lt;/strong&gt;&lt;br /&gt;Yes, orchestration is a type of Web Service Based Integration. It is currently the favored means of connecting participants using open standards. &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;What is a Service Oriented Architecture (SOA)?&lt;br /&gt;&lt;/strong&gt;&lt;br /&gt;A service-oriented architecture is an architectural guideline that emphasizes communications that are:&lt;br /&gt;&lt;br /&gt;&amp;nbsp; Message based &amp;#8211; use of messages like SOAP with XML Schema&lt;br /&gt;&amp;nbsp; Contract-based &amp;#8211; use of interface definition languages like WSDL&lt;br /&gt;&amp;nbsp; Protocol-based &amp;#8211; use of complementary protocols like WS-I profiles&lt;br /&gt;&lt;br /&gt;BPEL is a major participant in an SOA. In many ways, it acts as the brain of the loosely coupled system, making it all work together. &lt;br /&gt; &lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6903337-111597959646050496?l=dotnetfaqs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetfaqs.blogspot.com/feeds/111597959646050496/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6903337&amp;postID=111597959646050496' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6903337/posts/default/111597959646050496'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6903337/posts/default/111597959646050496'/><link rel='alternate' type='text/html' href='http://dotnetfaqs.blogspot.com/2005/05/bpel-faqs.html' title='BPEL FAQs'/><author><name>Ashith Raj</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6903337.post-111590802873634971</id><published>2005-05-12T07:27:00.000-07:00</published><updated>2005-05-12T07:27:08.780-07:00</updated><title type='text'>.NET Web Services FAQs #1</title><content type='html'>&lt;strong&gt;Does ASP.NET support server-side includes?&lt;br /&gt;&lt;/strong&gt;&lt;br /&gt;    Yes. Server-side includes work the same in ASP.NET as they do in ASP.&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;What platforms do .NET XML Web Services run on?&lt;br /&gt;&lt;/strong&gt;&lt;br /&gt;    Currently, they're supported on Windows 2000 and Windows XP. ASP.NET integrates with Internet Information Server (IIS) and thus requires that IIS be installed. It runs on server and non-server editions of Windows 2000 and XP as long as IIS is installed.&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;&lt;strong&gt;Can two different programming languages be mixed in a single ASMX file?&lt;br /&gt;&lt;/strong&gt;&lt;br /&gt;    No.&lt;br /&gt;	&lt;br /&gt;&lt;strong&gt;What is code-behind?&lt;br /&gt;&lt;/strong&gt;&lt;br /&gt;    Code-behind allows you to associate Web Service source code written in a CLR compliant language (such as C# or VB.NET) as compiled in a separate file (typically *.asmx.cs or *.asmx.vb). You would otherwise typically find the executable code directly inserted into the .asmx file.&lt;br /&gt;&lt;br /&gt; 	&lt;br /&gt;&lt;strong&gt;What event handlers can I include in Global.asax?&lt;br /&gt;&lt;/strong&gt;&lt;br /&gt;        * Application_Start&lt;br /&gt;        * Application_End&lt;br /&gt;        * Application_AcquireRequestState&lt;br /&gt;        * Application_AuthenticateRequest&lt;br /&gt;        * Application_AuthorizeRequest&lt;br /&gt;        * Application_BeginRequest&lt;br /&gt;        * Application_Disposed&lt;br /&gt;        * Application_EndRequest&lt;br /&gt;        * Application_Error&lt;br /&gt;        * Application_PostRequestHandlerExecute&lt;br /&gt;        * Application_PreRequestHandlerExecute&lt;br /&gt;        * Application_PreSendRequestContent&lt;br /&gt;        * Application_PreSendRequestHeaders&lt;br /&gt;        * Application_ReleaseRequestState&lt;br /&gt;        * Application_ResolveRequestCache&lt;br /&gt;        * Application_UpdateRequestCache&lt;br /&gt;        * Session_Start&lt;br /&gt;        * Session_End&lt;br /&gt;&lt;br /&gt;    You can optionally include "On" in any of method names. For example, you can name a BeginRequest event handler Application_BeginRequest or Application_OnBeginRequest.&lt;br /&gt;&lt;br /&gt;    You can also include event handlers in Global.asax for events fired by custom HTTP modules.&lt;br /&gt;&lt;br /&gt;    Note that not all of the event handlers make sense for Web Services (they're designed for ASP.NET applications in general, whereas .NET XML Web Services are specialized instances of an ASP.NET app). For example, the Application_AuthenticateRequest and Application_AuthorizeRequest events are designed to be used with ASP.NET Forms authentication.&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;What namespaces are imported by default in ASMX files?&lt;br /&gt;&lt;/strong&gt;&lt;br /&gt;    The following namespaces are imported by default. Other namespaces must be imported manually.&lt;br /&gt;&lt;br /&gt;        * System&lt;br /&gt;        * System.Collections&lt;br /&gt;        * System.ComponentModel&lt;br /&gt;        * System.Data&lt;br /&gt;        * System.Diagnostics&lt;br /&gt;        * System.Web&lt;br /&gt;        * System.Web.Services&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;&lt;strong&gt;What are ASHX files?&lt;br /&gt;&lt;/strong&gt;&lt;br /&gt;    ASHX files contain HTTP handlers-software modules that handle raw HTTP requests received by ASP.NET. The following code institutes a simple ASP.NET HTTP handler:&lt;br /&gt;    		&lt;br /&gt;    	&lt;%@ WebHandler Language="C#" Class="Hello" %&gt;&lt;br /&gt;&lt;br /&gt;    using System.Web;&lt;br /&gt;&lt;br /&gt;    public class Hello : IHttpHandler&lt;br /&gt;    {&lt;br /&gt;&lt;br /&gt;        public void ProcessRequest (HttpContext context)&lt;br /&gt;        {&lt;br /&gt;            string name = context.Request["Name"];&lt;br /&gt;            context.Response.Write ("Hello, " name);&lt;br /&gt;        {&lt;br /&gt;&lt;br /&gt;        public bool IsReusable&lt;br /&gt;        {&lt;br /&gt;            get { return true; }&lt;br /&gt;        }&lt;br /&gt;    } 	&lt;br /&gt;    		&lt;br /&gt;&lt;br /&gt;    If this code is placed in an ASHX file named Hello.ashx and requested using the URL http://.../hello.ashx?Name=Cindy, it returns "Hello, Cindy" in the HTTP response. ASHX files provide developers with a convenient way to deploy HTTP handlers without customizing Machine.config or Web.config. ASHX files can also employ code-behind just like ASPX and ASMX files.&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;If I want to charge for a Web service, how do I know who's calling it?&lt;br /&gt;&lt;/strong&gt;&lt;br /&gt;    While there are probably many possible use models, the three most likely are service agreement, subscription, and per-use.&lt;br /&gt;&lt;br /&gt;    With a service agreement, you and your clients sign agreements indicating the terms of the service. These terms vary widely, as you might imagine.&lt;br /&gt;&lt;br /&gt;    Subscriptions allow your clients to access the Web Service for a given period of time or for a set number of invocations. Assuming their account remains in good standing, you continue to allow them to access your Web Service.&lt;br /&gt;&lt;br /&gt;    Per-use, of course, is billed each time the client uses the Web Service.&lt;br /&gt;&lt;br /&gt;    The key to all of these use models is authentication. You simply must know with whom it is you're dealing (or in the case of per-use, you'll want to authenticate their payment method, such as validating a credit card number with the account holder's name). Therefore, it isn't uncommon for you to require the client authenticate prior to the use of billable Web Services. That is, you provide a "login" method, or you require the client provide login-style information with the use of each Web Service. The login method would return some sort of authentication token (akin to a session token with traditional ASP.NET), and the client would then return that token to you when a billable Web Service was accessed. Conversely, they could provide their authentication information with each use (username and password, for example).&lt;br /&gt;&lt;br /&gt;    One design facet to consider is where this information is located within your SOAP packet. Using the login method and authentication token as an example, the token might be passed into a protected Web Service through either a SOAP Header or as an input parameter to the Web Service method itself. Both have benefits and drawbacks.&lt;br /&gt;&lt;br /&gt;    The benefit of placing an authentication token as a method parameter is that the client doesn't need to deal with SOAP Headers. They simply pass the token into the method, typically as a Base64-encoded string of opaque bytes. The drawback is that the authentication token isn't really a necessary input parameter if it weren't for the requirement the client authenticate. That is, the authentication token is "out of band" information to the method, or "orthogonal." For example, if you provided a Web Service that calculated the sin of a given angle, the authentication token as an input string has no significance to the sin function. This leads to oddly-factored methods that could possibly look and feel like spaghetti.&lt;br /&gt;&lt;br /&gt;    You can counter this by requiring the client to place the authentication token in a SOAP Header. SOAP Headers were specifically designed to convey such orthogonal information (this token, a transactional ID, and so forth), and they're the perfect place to stuff this ugly, Base64-encoded string. The drawback is you then require the client to deal with the creation and use of the SOAP Header, thereby increasing the code they need to write to use your Web Service as well as increasing the "pain in the...typing hand" factor.&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;&lt;strong&gt;How do I require a SOAP Header when designing my Web Service?&lt;br /&gt;&lt;/strong&gt;&lt;br /&gt;    .NET is rich with classes and Web Service support, and SOAP Headers are but another example. Following up with the authentication theme... The first thing to do is create a class that will represent the header:&lt;br /&gt;    		&lt;br /&gt;    	public class AuthToken : SoapHeader&lt;br /&gt;    {&lt;br /&gt;        protected string m_strAuthToken;&lt;br /&gt;        public AuthToken ()&lt;br /&gt;        {&lt;br /&gt;            m_strAuthToken = "";&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        public string Token&lt;br /&gt;        {&lt;br /&gt;            get { return m_strAuthToken; }&lt;br /&gt;            set { m_strAuthToken = value; }&lt;br /&gt;        }&lt;br /&gt;    } 	&lt;br /&gt;    		&lt;br /&gt;&lt;br /&gt;    As it happens, SOAP Headers within the .NET Framework are actually implemented as attributes of the Web Method. Therefore, within your Web Service class you'll create an instance of the header class that may be referenced by each interested Web Method:&lt;br /&gt;    		&lt;br /&gt;    	public class Service1 : System.Web.Services.WebService&lt;br /&gt;    {&lt;br /&gt;        public AuthToken m_authToken;&lt;br /&gt;&lt;br /&gt;        ...&lt;br /&gt;&lt;br /&gt;        [WebMethod]&lt;br /&gt;        [SoapHeader("m_authToken",Direction=SoapHeaderDirection.In)]&lt;br /&gt;        public string MyBillableWebMethod()&lt;br /&gt;        {&lt;br /&gt;            m_authToken.DidUnderstand = true; // else SoapFault!&lt;br /&gt;            if ( !Authenticate(m_authToken.Token) )&lt;br /&gt;            {&lt;br /&gt;                return "";&lt;br /&gt;            }&lt;br /&gt;            // Continue processing...&lt;br /&gt;            ...&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;    } 	&lt;br /&gt;    		&lt;br /&gt;&lt;br /&gt;    Note that we needed to inform .NET that we, in fact, did understand the SOAP header or .NET will throw the requisite SOAP Fault (if we didn't do this, to .NET's way of thinking SOAP's mustUnderstand constraint wasn't met). You will also need to provide an implementation for Authenticate() to actually validate the authentication token.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;How do I provide information to the Web Service when the information is required as a SOAP Header?&lt;br /&gt;&lt;/strong&gt;&lt;br /&gt;    The key here is the Web Service proxy you created using wsdl.exe or through Visual Studio .NET's Add Web Reference menu option. If you happen to download a WSDL file for a Web Service that requires a SOAP header, .NET will create a SoapHeader class in the proxy source file. Using the previous example:&lt;br /&gt;    		&lt;br /&gt;    	public class Service1 : System.Web.Services.Protocols.SoapHttpClientProtocol {&lt;br /&gt;        public AuthToken AuthTokenValue;&lt;br /&gt;&lt;br /&gt;            ...&lt;br /&gt;&lt;br /&gt;            [System.Xml.Serialization.XmlRootAttribute(Namespace="http://tempuri.org/", IsNullable=false)]&lt;br /&gt;            public class AuthToken : SoapHeader {&lt;br /&gt;            public string Token;&lt;br /&gt;        }&lt;br /&gt;    } 	&lt;br /&gt;    		&lt;br /&gt;&lt;br /&gt;    In this case, when you create an instance of the proxy in your main application file, you'll also create an instance of the AuthToken class and assign the string:&lt;br /&gt;    		&lt;br /&gt;    	Service1 objSvc = new Service1();&lt;br /&gt;&lt;br /&gt;    // Create the header itself. This header will go to the&lt;br /&gt;    // Web Service for processing&lt;br /&gt;    objSvc.AuthTokenValue = new AuthToken();&lt;br /&gt;    objSvc.AuthTokenValue.Token = &lt;actual token value&gt;;&lt;br /&gt;&lt;br /&gt;    // Call the Web Service&lt;br /&gt;&lt;br /&gt;    string strResult = objSvc.MyBillableWebMethod(); 	&lt;br /&gt;    		&lt;br /&gt;&lt;br /&gt;   .NET will make sure the SOAP Header is created and filled with the authentication token's value (for this example).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6903337-111590802873634971?l=dotnetfaqs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetfaqs.blogspot.com/feeds/111590802873634971/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6903337&amp;postID=111590802873634971' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6903337/posts/default/111590802873634971'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6903337/posts/default/111590802873634971'/><link rel='alternate' type='text/html' href='http://dotnetfaqs.blogspot.com/2005/05/net-web-services-faqs-1.html' title='.NET Web Services FAQs #1'/><author><name>Ashith Raj</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6903337.post-111590788443689975</id><published>2005-05-12T07:24:00.000-07:00</published><updated>2005-05-12T07:24:44.480-07:00</updated><title type='text'>ASP.NET FAQs # 1</title><content type='html'>&lt;strong&gt;What platforms does ASP.NET run on?&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Currently, it's supported on Windows 2000 and Windows XP. ASP.NET integrates with Internet Information Server (IIS) and thus requires that IIS be installed. It runs on server and non-server editions of Windows 2000 and XP as long as IIS is installed. Microsoft originally planned to support ASP.NET on Windows NT 4.0, but had to reconsider due to time and technical constraints.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Can two different programming languages be mixed in a single ASPX file?&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;    No. ASP.NET uses parsers to strip the code from ASPX files and copy it to temporary files containing derived Page classes, and a given parser understands only one language.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Why can't I put &lt;%@ Page Language="C " %&gt; at the top of an ASPX file and write my server-side scripts in C ?&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;    Because the parsers ASP.NET uses to extract code from ASPX files only understand C#, Visual Basic.NET, and JScript.NET. However, if you use code-behind to get your code out of the ASPX file and into a separately compiled source code file. You can write server-side scripts in any language supported by a .NET compiler.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Can I use code-behind with Global.asax files?&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;    Yes. Here's a simple Global.asax file that doesn't use code-behind:&lt;br /&gt;    		&lt;br /&gt;    	&lt;%@ Import Namespace="System.Data" %&gt;&lt;br /&gt;&lt;br /&gt;    &lt;script language="C#" runat="server"&gt;&lt;br /&gt;      void Application_Start ()&lt;br /&gt;      {&lt;br /&gt;          DataSet ds = new DataSet ();&lt;br /&gt;          ds.ReadXml (Server.MapPath ("GlobalData.xml"));&lt;br /&gt;          Application["GlobalData"] = ds;&lt;br /&gt;      }&lt;br /&gt;    &lt;/script&gt; 	&lt;br /&gt;    		&lt;br /&gt;&lt;br /&gt;    Here's the equivalent file written to use code-behind:&lt;br /&gt;    		&lt;br /&gt;    	&lt;%@ Application Inherits="MyApp" %&gt; 	&lt;br /&gt;    		&lt;br /&gt;&lt;br /&gt;    And here's the MyApp class that it references:&lt;br /&gt;    		&lt;br /&gt;    	using System.Web;&lt;br /&gt;    using System.Data;&lt;br /&gt;&lt;br /&gt;    public class MyApp : HttpApplication&lt;br /&gt;    {&lt;br /&gt;        public void Application_Start ()&lt;br /&gt;        {&lt;br /&gt;            DataSet ds = new DataSet ();&lt;br /&gt;            ds.ReadXml ("GlobalData.xml");&lt;br /&gt;            Application["GlobalData"] = ds;&lt;br /&gt;        }&lt;br /&gt;    } 	&lt;br /&gt;    		&lt;br /&gt;&lt;br /&gt;So that ASP.NET can find the MyApp class, compile it into a DLL (csc /t:library filename.cs) and place it in the application root's bin subdirectory.&lt;br /&gt;	&lt;br /&gt;&lt;strong&gt;Can you override method="post" in a &lt;form runat="server"&gt; tag by writing &lt;form method="get" runat="server"&gt;?&lt;/strong&gt;&lt;br /&gt;    Yes.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Can an ASPX file contain more than one form marked runat="server"?&lt;/strong&gt;&lt;br /&gt;    No.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Is it possible to see the code that ASP.NET generates from an ASPX file?&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;    Yes. Enable debugging by including a &lt;%@ Page Debug="true" %&gt; directive in the ASPX file or a &lt;compilation debug="true"&gt; statement in Web.config. Then look for the generated CS or VB file in a subdirectory underneath \%SystemRoot%\Microsoft.NET\Framework\v1.0.nnnn\Temporary ASP.NET Files.&lt;br /&gt;&lt;br /&gt;	&lt;br /&gt;&lt;strong&gt;Does ASP.NET support server-side object tags?&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;    Yes. The following tag creates an instance of a custom type named ShoppingCart and assigns it session scope (that is, it creates a unique ShoppingCart instance for each and every session created on the server):&lt;br /&gt;    		&lt;br /&gt;    	&lt;object id="MyShoppingCart" class="ShoppingCart" scope="session" runat="server" /&gt; 	&lt;br /&gt;    		&lt;br /&gt;  Managed types created this way are identified by class name. Unmanaged types (COM classes) are identified by CLSID or ProgID.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;How do I comment out statements in ASPX files?&lt;/strong&gt;&lt;br /&gt;   		&lt;br /&gt;    	&lt;%--&lt;br /&gt;      &lt;asp:Button Text="Click Me" OnClick="OnClick" runat="server" /&gt;&lt;br /&gt;    --%&gt; 	&lt;br /&gt;    		&lt;br /&gt;&lt;strong&gt;Can I use custom .NET data types in a Web form?&lt;br /&gt;&lt;/strong&gt;&lt;br /&gt;    Yes. Place the DLL containing the type in the application root's bin directory and ASP.NET will automatically load the DLL when the type is referenced.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6903337-111590788443689975?l=dotnetfaqs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetfaqs.blogspot.com/feeds/111590788443689975/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6903337&amp;postID=111590788443689975' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6903337/posts/default/111590788443689975'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6903337/posts/default/111590788443689975'/><link rel='alternate' type='text/html' href='http://dotnetfaqs.blogspot.com/2005/05/aspnet-faqs-1.html' title='ASP.NET FAQs # 1'/><author><name>Ashith Raj</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6903337.post-111590757972436439</id><published>2005-05-12T07:19:00.000-07:00</published><updated>2005-05-12T07:20:55.493-07:00</updated><title type='text'>Tips # 1</title><content type='html'>&lt;strong&gt;Tip 1 :&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;Use The Call Stack Window To Set Breakpoints&lt;/strong&gt;&lt;br /&gt;If you are buried way down deep in your application during a debugging session and you want to quickly go back up the call stack, open the Call Stack window, highlight the function you want to return to and hit your breakpoint key (F9 by default). The Visual C debugger allows you to set breakpoints in the Call Stack window.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Tip 2 :&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;The Undocumented Pointer Array Expansion Format Code&lt;/strong&gt;&lt;br /&gt;If a pointer to an array only expands to a single item, the undocumented numerical format specifier will force the expansion. For example, if you have a LPDWORD pointer, pVals, that points to an array of 10 items, you can display all ten by entering "pVals,10" in the watch window. The number after the comma tells the watch window how many items to display.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Tip 3 :&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;Get Rid of the MSDEV Splash Screen When Using Just in Time Debugging&lt;/strong&gt;&lt;br /&gt;1. Run REGEDIT and open the key HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\AeDebug.2. Change the Debugger key from "&lt;your path&gt;\msdev.exe -p %ld -e %ld" to "&lt;your path&gt;\msdev.exe -nologo -p %ld -e %ld".&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Tip 4 :&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;Populate DataSets with XML Files&lt;/strong&gt;&lt;br /&gt;Want to populate an ADO.NET DataSet with data from an XML file? It's easy; here's how:&lt;br /&gt;		&lt;br /&gt;	DataSet ds = new DataSet (); &lt;br /&gt;                ds.ReadXml (new FileStream ("Credentials.xml", FileMode.Open, FileAccess.Read)); 	&lt;br /&gt;		&lt;br /&gt;This example passes the XML file's file name (Credentials.xml) to FileStream's constructor, and then passes the resultant FileStream to the DataSet's ReadXml method. What's really cool is that the DataSet will infer a schema from the contents of the XML file and structure itself accordingly. You can even modify the data and write it back out with WriteXml.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Tip 5 :&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;Building Stand-Alone ATL COM Servers&lt;/strong&gt;&lt;br /&gt;If you use ATL to build COM servers, you should know that there are two steps required to build a truly stand-alone ATL COM server--that is, one that has no DLL dependencies. &lt;br /&gt;Step 1 is to choose Release Min Dependency as your build type. &lt;br /&gt;Step 2 is to make sure that the preprocessor symbol _ATL_STATIC_REGISTRY is defined. The latter statically links your server to the ATL component registrar and allows it to self-register on machines that don't have Atl.dll installed on them. _ATL_STATIC_REGISTRY is defined by default for Release Min Dependency builds in Visual C 6.0, but not in 5.0.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Tip 6 :&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;Fix ATL COM Classes That Won't Register&lt;/strong&gt;&lt;br /&gt;Have you ever written a COM server with the Active Template Library (ATL) and discovered that one or more of the COM classes inside it doesn't register when the server self-registers? If so, check the server's object map for a missing OBJECT_ENTRY statement. A bug in Visual C sometimes prevents ATL COM classes added with the ATL Object Wizard from being added to the object map, and if it's not in the object map, then it won't register.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Tip 7 :&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;Path Name Parsing Made Easy with Regex&lt;/strong&gt;&lt;br /&gt;Remember how painful it was in the old days to write code that split a path name into its component parts? If you're writing .NET code, splitting path names is easy thanks to a handy little class named Regex that's one of many thousands of classes in the .NET Framework Class Library. Here's an example:&lt;br /&gt;		&lt;br /&gt;	Regex regex = new Regex (@"\\");&lt;br /&gt;                string[] parts = regex.Split (@"C:\Inetpub\wwwroot\AshiSystems");&lt;br /&gt;                foreach (string part in parts)&lt;br /&gt;                     Console.WriteLine (part); 	&lt;br /&gt;		&lt;br /&gt;Run this code in a console app and it will display the individual substrings that make up the path name.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Tip 7 :&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;Move ASP.NET Session State to an External Process&lt;/strong&gt;&lt;br /&gt;     One of the many features that makes ASP.NET better than ASP is the way it manages session state. By default, ASP.NET session state is stored in the same process as ASP.NET applications. But a simple configuration change lets you move session state to an external "state server" process that will survive IIS restarts. You can even run the state server on a separate machine, in which case session state will survive even if the machine hosting the ASP.NET application goes down completely. For beta testers running recent (post-Beta 1) builds of ASP.NET, here's how to make the configuration change:&lt;br /&gt;1) Create a text file named Web.config. Add the following text to it and copy the file to the directory where your ASP.NET application resides:&lt;br /&gt;		&lt;br /&gt;	&lt;configuration&gt;&lt;br /&gt;  &lt;system.web&gt;&lt;br /&gt;    &lt;sessionState&lt;br /&gt;      mode="stateserver"&lt;br /&gt;      stateConnectionString="tcpip=localhost:42424"&lt;br /&gt;    /&gt;&lt;br /&gt;  &lt;/system.web&gt;&lt;br /&gt;&lt;/configuration&gt; 	&lt;br /&gt;		&lt;br /&gt;2) Open a command prompt window and type NET START ASPNET_STATE to start the state server. Your application should now run as before, but if it uses session state, that state in now created in an external process named Aspnet_state.exe. &lt;br /&gt;You can prove that session state stored this way is more robust by starting and stopping IIS. Any data you tucked into session state before IIS was restarted will still be there after the restart. For even greater robustness, you can change "localhost" to an IP address to move session state to a remote machine.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Tip 7 :&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;Send E-Mail From .NET Applications&lt;/strong&gt;&lt;br /&gt;Want to send an e-mail message from a .NET app? It's easy using the MailMessage and SmtpMail classes found in the System.Web.Mail namespace. Here's an example written in C#:&lt;br /&gt;		&lt;br /&gt;	using System.Web.Mail;&lt;br /&gt;.&lt;br /&gt;.&lt;br /&gt;.&lt;br /&gt;                MailMessage message = new MailMessage ();&lt;br /&gt;                message.From = "webmaster@AshiSystems.com";&lt;br /&gt;                message.To = "luckywinner@somewhere.com";&lt;br /&gt;                message.Subject = "You Win!";&lt;br /&gt;                message.Body = "You have won the state lottery! To claim your prize, do a handstand on one hand and "&lt;br /&gt;                  "count backwards from 1,000,000 to 1";&lt;br /&gt;                SmtpMail.Send (message); 	&lt;br /&gt;		&lt;br /&gt;Note that this code is valid for Beta 2 of the .NET Framework SDK, but not for Beta 1. Also, you must include a reference to the System.Web.dll assembly when you compile.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Tip 8 :&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;Use StringBuilder to Build Strings Efficiently&lt;/strong&gt;&lt;br /&gt;It's easy to build strings on the fly using C# and other .NET programming languages. The following code fragment builds a string that counts from 1 to 99:&lt;br /&gt;		&lt;br /&gt;	string s = "";&lt;br /&gt;for (int j=1; j&lt;=99; j++) {&lt;br /&gt;  s += j.ToString ();&lt;br /&gt;  s += ", ";&lt;br /&gt;} 	&lt;br /&gt;		&lt;br /&gt;This code works, but it's slow. Why? Because in .NET, strings are instances of System.String, and System.Strings are immutable. Each time you use the = operator to append text to a string, a new string is created and text is copied from the old string to the new. To build strings on the fly and to do so efficiently, use the .NET Framework Class Library's StringBuilder class, which is found in the System.Text namespace. The following code fragment produces the same string as the code above, but does so in less than half the time:&lt;br /&gt;		&lt;br /&gt;	StringBuilder sb = new StringBuilder ();&lt;br /&gt;for (int j=1; j&lt;=99; j++) {&lt;br /&gt;  sb.Append (j.ToString ());&lt;br /&gt;  sb.Append (", ");&lt;br /&gt;}&lt;br /&gt;string s = sb.ToString (); 	&lt;br /&gt;		&lt;br /&gt;For an additional performance boost, you can override a StringBuilder's default capacity (enough to hold only 16 characters)&lt;br /&gt; and preallocate the memory required to build the new string by passing an integer value specifying the StringBuilder's capacity to StringBuilder's constructor.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6903337-111590757972436439?l=dotnetfaqs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetfaqs.blogspot.com/feeds/111590757972436439/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6903337&amp;postID=111590757972436439' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6903337/posts/default/111590757972436439'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6903337/posts/default/111590757972436439'/><link rel='alternate' type='text/html' href='http://dotnetfaqs.blogspot.com/2005/05/tips-1.html' title='Tips # 1'/><author><name>Ashith Raj</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6903337.post-111562847828804375</id><published>2005-05-09T01:47:00.000-07:00</published><updated>2005-05-09T01:47:58.403-07:00</updated><title type='text'>Test Driven Development  Articles and Tutorials</title><content type='html'>&lt;font face="Arial" color="#0000FF" size=2&gt;I expect that we could invest what is in effect a week of training in just teaching unit testing techniques and tools. At the end of the week some coverage of TDD, the benefits, approaches, and how the unit testing fits in could be delivered. &lt;font face="Arial" color="#0000FF" size=2&gt;I skimmed through a Unit Testing Patterns description that someone sent a link to recently. If their were 12 patterns, and an hour was spent discussing the unit testing pattern and another was spent performing a lab to apply the pattern then 24 out of the 40 hours would be consumed. &lt;font face="Arial" color="#0000FF" size=2&gt;Here is a list of the patterns described in that one article:&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;&lt;font color="#808000" size=3&gt;&lt;u&gt;Pass/Fail Patterns &lt;/u&gt;&lt;/font&gt;&lt;br /&gt;&lt;li&gt;&lt;font color="#808000" size=3&gt;&lt;u&gt;The Simple-Test Pattern &lt;/u&gt;&lt;/font&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;font color="#808000" size=3&gt;&lt;u&gt;The Code-Path Pattern &lt;/u&gt;&lt;/font&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;font color="#808000" size=3&gt;&lt;u&gt;The Parameter-Range Pattern &lt;/u&gt;&lt;/font&gt;&lt;/li&gt;&lt;br /&gt;&lt;font color="#808000" size=3&gt;&lt;u&gt;Data Driven Test Patterns &lt;/u&gt;&lt;/font&gt;&lt;br /&gt;&lt;li&gt;&lt;font color="#808000" size=3&gt;&lt;u&gt;The Simple-Test-Data Pattern &lt;/u&gt;&lt;/font&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;font color="#808000" size=3&gt;&lt;u&gt;The Data-Transformation-Test Pattern &lt;/u&gt;&lt;/font&gt;&lt;/li&gt;&lt;br /&gt;&lt;font color="#808000" size=3&gt;&lt;u&gt;Data Transaction Patterns &lt;/u&gt;&lt;/font&gt;&lt;br /&gt;&lt;li&gt;&lt;font color="#808000" size=3&gt;&lt;u&gt;The Simple-Data-I/O Pattern &lt;/u&gt;&lt;/font&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;font color="#808000" size=3&gt;&lt;u&gt;The Constraint-Data Pattern &lt;/u&gt;&lt;/font&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;font color="#808000" size=3&gt;&lt;u&gt;The Rollback Pattern &lt;/u&gt;&lt;/font&gt;&lt;/li&gt;&lt;br /&gt;&lt;font color="#808000" size=3&gt;&lt;u&gt;Collection Management Patterns &lt;/u&gt;&lt;/font&gt;&lt;br /&gt;&lt;li&gt;&lt;font color="#808000" size=3&gt;&lt;u&gt;The Collection-Order Pattern &lt;/u&gt;&lt;/font&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;font color="#808000" size=3&gt;&lt;u&gt;The Enumeration Pattern &lt;/u&gt;&lt;/font&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;font color="#808000" size=3&gt;&lt;u&gt;The Collection-Constraint Pattern &lt;/u&gt;&lt;/font&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;font color="#808000" size=3&gt;&lt;u&gt;The Collection-Indexing Pattern &lt;/u&gt;&lt;/font&gt;&lt;/li&gt;&lt;br /&gt;&lt;font color="#808000" size=3&gt;&lt;u&gt;Performance Patterns &lt;/u&gt;&lt;/font&gt;&lt;br /&gt;&lt;li&gt;&lt;font color="#808000" size=3&gt;&lt;u&gt;The Performance-Test Pattern &lt;/u&gt;&lt;/font&gt;&lt;/li&gt;&lt;br /&gt;&lt;font color="#808000" size=3&gt;&lt;u&gt;Process Patterns &lt;/u&gt;&lt;/font&gt;&lt;br /&gt;&lt;li&gt;&lt;font color="#808000" size=3&gt;&lt;u&gt;The Process-Sequence Pattern &lt;/u&gt;&lt;/font&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;font color="#808000" size=3&gt;&lt;u&gt;The Process-State Pattern &lt;/u&gt;&lt;/font&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;font color="#808000" size=3&gt;&lt;u&gt;The Process-Rule Pattern &lt;/u&gt;&lt;/font&gt;&lt;/li&gt;&lt;br /&gt;&lt;font color="#808000" size=3&gt;&lt;u&gt;Simulation Patterns &lt;/u&gt;&lt;/font&gt;&lt;br /&gt;&lt;li&gt;&lt;font color="#808000" size=3&gt;&lt;u&gt;Mock-Object Pattern &lt;/u&gt;&lt;/font&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;font color="#808000" size=3&gt;&lt;u&gt;The Service-Simulation Pattern &lt;/u&gt;&lt;/font&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;font color="#808000" size=3&gt;&lt;u&gt;The Bit-Error-Simulation Pattern &lt;/u&gt;&lt;/font&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;font color="#808000" size=3&gt;&lt;u&gt;The Component-Simulation Pattern &lt;/u&gt;&lt;/font&gt;&lt;/li&gt;&lt;br /&gt;&lt;font color="#808000" size=3&gt;&lt;u&gt;Multithreading Patterns &lt;/u&gt;&lt;/font&gt;&lt;br /&gt;&lt;li&gt;&lt;font color="#808000" size=3&gt;&lt;u&gt;The Signalled Pattern &lt;/u&gt;&lt;/font&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;font color="#808000" size=3&gt;&lt;u&gt;The Deadlock-Resolution Pattern &lt;/u&gt;&lt;/font&gt;&lt;/li&gt;&lt;br /&gt;&lt;font color="#808000" size=3&gt;&lt;u&gt;Stress-Test Patterns &lt;/u&gt;&lt;/font&gt;&lt;br /&gt;&lt;li&gt;&lt;font color="#808000" size=3&gt;&lt;u&gt;The Bulk-Data-Stress-Test Pattern &lt;/u&gt;&lt;/font&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;font color="#808000" size=3&gt;&lt;u&gt;The Resource-Stress-Test Pattern &lt;/u&gt;&lt;/font&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;font color="#808000" size=3&gt;&lt;u&gt;The Loading-Test Pattern &lt;/u&gt;&lt;/font&gt;&lt;/li&gt;&lt;br /&gt;&lt;font color="#808000" size=3&gt;&lt;u&gt;Presentation Layer Patterns &lt;/u&gt;&lt;/font&gt;&lt;br /&gt;&lt;li&gt;&lt;font color="#808000" size=3&gt;&lt;u&gt;The View-State Test Pattern &lt;/u&gt;&lt;/font&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;font color="#808000" size=3&gt;&lt;u&gt;The Model-State Test Pattern &lt;/u&gt;&lt;/font&gt;&lt;/li&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6903337-111562847828804375?l=dotnetfaqs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetfaqs.blogspot.com/feeds/111562847828804375/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6903337&amp;postID=111562847828804375' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6903337/posts/default/111562847828804375'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6903337/posts/default/111562847828804375'/><link rel='alternate' type='text/html' href='http://dotnetfaqs.blogspot.com/2005/05/test-driven-development-articles-and.html' title='Test Driven Development  Articles and Tutorials'/><author><name>Ashith Raj</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6903337.post-111416739466312219</id><published>2005-04-22T03:56:00.000-07:00</published><updated>2005-04-22T03:56:34.663-07:00</updated><title type='text'>What is WebDAV and DeltaV</title><content type='html'>&lt;font size=3&gt;&lt;strong&gt;* WebDAV:&lt;/strong&gt; RFC 2518. Extends the standard HTTP methods to make web servers behave as traditional fileservers, complete with a locking model and meta-data properties.&lt;br /&gt;&lt;strong&gt; * DeltaV:&lt;/strong&gt; RFC 3253. Adds more HTTP methods to&lt;em&gt; WebDAV&lt;/em&gt;&lt;u&gt;&lt;/u&gt;, introducing versioning concepts. Provides a number of flexible versioning models that servers can support, and some backwards-compatibility modes for older WebDAV or HTTP/1.1 clients. &lt;/font&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6903337-111416739466312219?l=dotnetfaqs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetfaqs.blogspot.com/feeds/111416739466312219/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6903337&amp;postID=111416739466312219' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6903337/posts/default/111416739466312219'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6903337/posts/default/111416739466312219'/><link rel='alternate' type='text/html' href='http://dotnetfaqs.blogspot.com/2005/04/what-is-webdav-and-deltav.html' title='What is WebDAV and DeltaV'/><author><name>Ashith Raj</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6903337.post-111389464646841023</id><published>2005-04-19T00:10:00.000-07:00</published><updated>2005-04-19T00:10:46.466-07:00</updated><title type='text'>Top Ten Tips for Web Services Interoperability</title><content type='html'>&lt;font size=5&gt;Top Ten Tips for Web Services Interoperability&lt;/font&gt;&lt;br /&gt;&lt;font size=2&gt;I thought it might be fun to put together a "Top Ten Tips for Web Services Interoperability" - especially between .NET and IBM WebSphere, BEA WebLogic and some of the open source toolkits. I'd love to add other people's experiences, findings and comments to this list...&lt;br /&gt;Here goes (from the bottom):&lt;br /&gt;10. Watch out for Empty Arrays&lt;br /&gt;Sending empty arrays over Web Services can create issues  some toolkits recognize an empty array as a single null value. If you are sending arrays of objects over a Web Service, always ensure that the array contains valid data.&lt;br /&gt;9. Use Package and Type Name Options when Generating Client Proxies&lt;br /&gt;Many Java based tools have the option of specifying a unique package and type name when generating client proxies (for example, BEA WebLogic uses clientgen parameters to do this). This is essential when you are creating proxies for Web Services that share the same data type.&lt;br /&gt;8. Testing Generated Java Beans for Null&lt;br /&gt;When using tools or an IDE to generate Java Beans from an XSD file, always make sure that you know how to test to see if the object is null. In some instances this is done using the &lt;/font&gt;&lt;font face="Courier New" size=2&gt;isNil()&lt;/font&gt;&lt;font size=2&gt; method on the bean itself.&lt;br /&gt;7. Null Dates and Times are recognized by Java, but not by .NET&lt;br /&gt;In Java, &lt;/font&gt;&lt;font face="Courier New" size=2&gt;java.util.Date&lt;/font&gt;&lt;font size=2&gt; and &lt;/font&gt;&lt;font face="Courier New" size=2&gt;java.util.Calendar&lt;/font&gt;&lt;font size=2&gt; are classed as reference types. In .NET, &lt;/font&gt;&lt;font face="Courier New" size=2&gt;System.DateTime&lt;/font&gt;&lt;font size=2&gt; is considered a value type. Reference types can be null, whereas value types cannot. If you are planning to send null date values across a Web Service, always send the value in a complex type, and set the value of the complex type to null. This will help prevent the null date value being interpreted incorrectly (and raising an exception).&lt;br /&gt;6. Always use compareTo() when comparing dates/times&lt;br /&gt;If sending dates and times over a Web Service between .NET and Java, always use the appropriate &lt;/font&gt;&lt;font face="Courier New" size=2&gt;compareTo()&lt;/font&gt;&lt;font size=2&gt; method in Java to compare dates (as opposed to date == value). This will help ensure accuracy for date comparisons between the platforms, especially when trying to compare those milliseconds values.&lt;br /&gt;5. Use Trace Tool to Investigate&lt;br /&gt;A Trace Tool can be invaluable for investigating SOAP requests and responses between Web Services. It can help validate data types and the construct of the message, and also report SOAP faults that you may miss in a browser. Using one that intercepts the request is more difficult to setup, but easier to use than looking through trace files.&lt;br /&gt;4. Add Option to Change Host and Port&lt;br /&gt;When designing your Web Service client, consider adding a helper method to change the host and port values of the Web Service location. This makes it easy if the location of the Web Service changes in the future or you want to redirect the output to a trace tool.&lt;br /&gt;3. Ensure Document/Literal when generating Web Services&lt;br /&gt;Many toolkits have the option of choosing either RPC/Encoding or Document/Literal as the default format when generating Web Services. To help ensure compliance with the WS-I Basic Profile 1.0, select Document/Literal as the default encoding mechanism for all of your Web Services. &lt;br /&gt;2. Use Unit Tests to Test Interoperability&lt;br /&gt;Unit tests (using NUnit for .NET and JUnit for Java) are invaluable for testing interoperability of multiple data types over a Web Service. Re-running the tests if data types change (or if you change versions of Web Services toolkits!) will give you the confidence that the Web Services that you design are fully interoperable.&lt;br /&gt;1. Use XSD First&lt;br /&gt;When designing for interoperability, always start with defining the data first. Deciding on what data will be sent, creating the data type in XSD first, and then using tools to generate classes from the XSD file will help guarantee data type interoperability on the wire.&lt;/font&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6903337-111389464646841023?l=dotnetfaqs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetfaqs.blogspot.com/feeds/111389464646841023/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6903337&amp;postID=111389464646841023' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6903337/posts/default/111389464646841023'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6903337/posts/default/111389464646841023'/><link rel='alternate' type='text/html' href='http://dotnetfaqs.blogspot.com/2005/04/top-ten-tips-for-web-services.html' title='Top Ten Tips for Web Services Interoperability'/><author><name>Ashith Raj</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6903337.post-111389459656380407</id><published>2005-04-19T00:09:00.000-07:00</published><updated>2005-04-19T00:09:56.563-07:00</updated><title type='text'>Getting Multiple Virtual PCs to Work Together</title><content type='html'>&lt;font size=2&gt;I'm a big fan of using multple Microsoft Virtual PC images, especially for demos and development. My current machine has a second hard disk that is dedicated to images that I use for such work.&lt;br /&gt;One of the problems I've run into in the past is getting multiple Virtual PC instances to talk nicely together over a network - regardless of whether the host machine is connected or not. On frequent occasions I've turned up to do demos only to find out that Virtual PC #1 cannot see Virtual PC #2 on the network - even though they are on the same machine!&lt;br /&gt;This week I've been putting together a demo that involves 4 Virtual PCs talking to each other simultaneously (showing interop between different vendors). I put in some time working out a foolproof way to get each Virtual PC to talk to each other, and also be able to use the network adapter of the host machine.&lt;br /&gt;&lt;br /&gt;Here's how I nailed it:&lt;br /&gt;1. Shutdown all of the Virtual PCs that you want to connect together (they must be turned off - suspend state is not good enough).&lt;br /&gt;2. In the Virtual PC console, select one of the Virtual PCs and select "Settings"&lt;br /&gt;3. In the Setting window, go down to "Networking"&lt;br /&gt;4. Under the "Number of network adapters", select "2" from the combo box.&lt;br /&gt;5. Set the first adapter to the network interface of your machine (e.g. Intel/PRO/1000 MT Mobile Connection).&lt;br /&gt;6. Set the second adapter to "Local only"&lt;br /&gt;7. Start the Virtual PC - log in and make sure that two network adapters have been recognized.&lt;br /&gt;8. Assign the first network adapter (Local Area Connection) to DHCP - or whatever settings you use on the network connected to your host machine.&lt;br /&gt;9. Set the second network adapter (Local Area Connection 2) to a static, private class C IP address (e.g. 192.168.200.1, with a subnet mask of 255.255.255.0). Set the default gateway to 192.168.200.254. Don't worry about DNS settings.&lt;br /&gt;10. Repeat Steps 2 - 9 for all your Virtual PCs - make sure you give each Virtual PC a unique IP address in step 9, but within the range of your subnet (e.g. 192.168.200.2, 192.168.200.3 etc. for my example).&lt;br /&gt;11. On each Virtual PC edit the hosts file (found in c:\windows\system32\drivers\etc directory). Add the name of all the other Virtual PCs, together with their IP address.&lt;br /&gt;12. Make sure that the Internet Firewall on adapter #2 is set correctly for the type of applications that you want to work between the Virtual PCs.&lt;br /&gt;That's it! - from any Virtual PC you will now be able to both access any other Virtual PC using the hostname and/or IP address you allocated on the second network card. You should also be able to access the outside world using the first network adapter. &lt;/font&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6903337-111389459656380407?l=dotnetfaqs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetfaqs.blogspot.com/feeds/111389459656380407/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6903337&amp;postID=111389459656380407' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6903337/posts/default/111389459656380407'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6903337/posts/default/111389459656380407'/><link rel='alternate' type='text/html' href='http://dotnetfaqs.blogspot.com/2005/04/getting-multiple-virtual-pcs-to-work.html' title='Getting Multiple Virtual PCs to Work Together'/><author><name>Ashith Raj</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6903337.post-111388781642428370</id><published>2005-04-18T22:16:00.000-07:00</published><updated>2005-04-18T22:16:56.426-07:00</updated><title type='text'>What is the difference between a CLS and non-CLS compliant object?</title><content type='html'>&lt;font size=3&gt;What is the difference between a CLS and non-CLS compliant object?&lt;br /&gt;CLS Compliant "things" can be consumed by all .NET languages that are themselves CLS compliant--IronPython, &lt;/font&gt;&lt;font color="#0000FF" size=3&gt;&lt;u&gt;Boo&lt;/u&gt;&lt;/font&gt;&lt;font size=3&gt;, etc&lt;br /&gt;.Things that aren't CLS Compliant tend to be things that are only available to a certain language--&lt;br /&gt;for instance, Boo's &lt;/font&gt;&lt;font color="#0000FF" size=3&gt;&lt;u&gt;duck type&lt;/u&gt;&lt;/font&gt;&lt;font size=3&gt; is not CLS compliant and probably shouldn't be exposed in any public API,&lt;br /&gt; because it only has meaning within the Boo language itself.&lt;/font&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6903337-111388781642428370?l=dotnetfaqs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetfaqs.blogspot.com/feeds/111388781642428370/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6903337&amp;postID=111388781642428370' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6903337/posts/default/111388781642428370'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6903337/posts/default/111388781642428370'/><link rel='alternate' type='text/html' href='http://dotnetfaqs.blogspot.com/2005/04/what-is-difference-between-cls-and-non.html' title='What is the difference between a CLS and non-CLS compliant object?'/><author><name>Ashith Raj</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6903337.post-111362509847628067</id><published>2005-04-15T21:18:00.000-07:00</published><updated>2005-04-15T21:18:18.476-07:00</updated><title type='text'>Wahoooooooo ! Visual Studio.NET 2005 Beta 2 in Out</title><content type='html'>This new is made my day...&lt;br /&gt;Currently  &lt;strong&gt;Visual Studio.NET 2005 Beta 2&lt;/strong&gt; is available for MSDN Subcribers&lt;br /&gt;&lt;br /&gt;I'm lucky I have one. It is Really a great News for lot of developers&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6903337-111362509847628067?l=dotnetfaqs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetfaqs.blogspot.com/feeds/111362509847628067/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6903337&amp;postID=111362509847628067' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6903337/posts/default/111362509847628067'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6903337/posts/default/111362509847628067'/><link rel='alternate' type='text/html' href='http://dotnetfaqs.blogspot.com/2005/04/wahoooooooo-visual-studionet-2005-beta.html' title='Wahoooooooo ! Visual Studio.NET 2005 Beta 2 in Out'/><author><name>Ashith Raj</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6903337.post-111350144714775284</id><published>2005-04-14T10:57:00.000-07:00</published><updated>2005-04-14T11:42:13.136-07:00</updated><title type='text'>Check the links below on April 14</title><content type='html'>&lt;a href="http://www.15seconds.com/issue/040812.htm" target="_blank"&gt;&lt;font size=3&gt;Middle-Tier Hosting: Enterprise Services, IIS, DCOM, Web Services, and RemotingBy Rockford Lhotka&lt;/font&gt;&lt;br /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.15seconds.com/issue/040624.htm" target="_blank"&gt;&lt;font size=3&gt;The Perfect Service - Part 1By J. Ambrose Little&lt;/font&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.15seconds.com/issue/040817.htm" target="_blank"&gt;&lt;font size=3&gt;The Perfect Service - Part 2By J. Ambrose Little&lt;/font&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://blog.magenic.com/andym/" target="_blank"&gt;&lt;b&gt;http://blog.magenic.com/andym/&lt;/b&gt;&lt;br /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://jelle.druyts.net/" target="_blank"&gt;http://jelle.druyts.net/&lt;/a&gt;&lt;br /&gt;&lt;a href="http://jelle.druyts.net/SyndicationService.asmx/GetRssCategory?categoryName=Blog" title="Rss" target="_blank"&gt;http://jelle.druyts.net/SyndicationService.asmx/GetRssCategory?categoryName=Blog&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://jelle.druyts.net/SyndicationService.asmx/GetRss" target="_blank"&gt;http://jelle.druyts.net/SyndicationService.asmx/GetRss&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6903337-111350144714775284?l=dotnetfaqs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetfaqs.blogspot.com/feeds/111350144714775284/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6903337&amp;postID=111350144714775284' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6903337/posts/default/111350144714775284'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6903337/posts/default/111350144714775284'/><link rel='alternate' type='text/html' href='http://dotnetfaqs.blogspot.com/2005/04/check-links-below-on-april-14.html' title='Check the links below on April 14'/><author><name>Ashith Raj</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6903337.post-111339549649563323</id><published>2005-04-13T05:31:00.000-07:00</published><updated>2005-04-13T05:31:36.496-07:00</updated><title type='text'>Be careful when doing lot of operations on strings</title><content type='html'>&lt;font size=3&gt;If your code has lot of string manipulation within it, you have to take a gentle care of the way you write your code. For example take a look at the following code snippet.&lt;br /&gt;string str = Hello Bob;&lt;br /&gt;str +=  &amp; Alice;&lt;br /&gt;As you see, you may assume that your code will allocate memory for only two strings. Actually your assumption is too bad this time. In .Net when you concatenate two strings it returns a COPY of the modified string. Therefore there will be 3 allocations for 3 strings in the above code execution.&lt;br /&gt;I'm pretty sure now you be wondering "why make a big fuzz for a single string concatenation line?" Actually your thinking is quiet good this time. Your code will not gain any significant performance issue with a single operation. But as the number of string operations grows up you code will tend to notice performance issues. The reason for this is, the runtime allocates memory for each any every copy of string.&lt;br /&gt;Thanx to microsoft, &lt;/font&gt;&lt;font color="#0000FF" size=3&gt;&lt;u&gt;StringBuilder&lt;/u&gt;&lt;/font&gt;&lt;font size=3&gt; class, alternative approach to overcome this problem, is there. Always try to use StringBuilder class when you are dealing with string operations. &lt;br /&gt;StringBuilder provides a rich set of functionality to do almost everything that you wanna do with a string. You could do the above operation as follows with the StringBuilder class.&lt;br /&gt;&lt;br /&gt;StringBuilder sb = new StringBuilder("Hello Bob");&lt;br /&gt;sb.Append("&amp; Alice");&lt;br /&gt;Even though you use StringBuilder, make sure you are aware of the reallocations. :-) So you can use &lt;br /&gt;sb.Capacity = 20;&lt;br /&gt;to specify the initial capacity you want for the final string. That makes sure that the reallocations happen when you reached the maximum number of characters. &lt;br /&gt;Happy Programming!&lt;/font&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6903337-111339549649563323?l=dotnetfaqs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetfaqs.blogspot.com/feeds/111339549649563323/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6903337&amp;postID=111339549649563323' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6903337/posts/default/111339549649563323'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6903337/posts/default/111339549649563323'/><link rel='alternate' type='text/html' href='http://dotnetfaqs.blogspot.com/2005/04/be-careful-when-doing-lot-of.html' title='Be careful when doing lot of operations on strings'/><author><name>Ashith Raj</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6903337.post-111339504606263095</id><published>2005-04-13T05:24:00.000-07:00</published><updated>2005-04-14T23:30:15.480-07:00</updated><title type='text'>Hiding your app when the close button is clicked!</title><content type='html'>&lt;span style="font-size:85%;"&gt;Have you ever tried to hide your Windows Forms application when the close button is clicked? Well then you'd probably have encountered problems when shuttin down.&lt;br /&gt;Actually if you try to hide your form in the Form_Closeing event Windows will not be able to close your application while shutting down. When you shut down windows, it will send WM_CLOSE message to each active window and closes them before shutting down. So if you avoid closing the application by adding some custom code, it will interrupt Windows being shut down.&lt;br /&gt;So what exactly you have to do is, to check whether the form is being closed by the user or the system shut down op. Perhaps you must be wondering under which event of the Form class, you should do it. Well... the answer is there is no particuler event. As you may all know by now, neither Form_Closing nor Form_Closed event has a parameter to detect the source of the close command.&lt;br /&gt;hmmm... now what?&lt;br /&gt;Dont worry! Thanks to the .Net Fx we still have a method for that. Form class is the base class for all Windows Forms. It has a overideable method called WndProc(). This is the default window message handler. We can overide this to allert us when the WM_CLOSE message is sent by System shutdown op.&lt;br /&gt;Following code snippet sets a public flag "on" if the WM_CLOSE is sent by shutdown op. If the flag is "on" then Form_Closing event will close form insead of hiding it. &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;font-size:85%;color:#0000ff;"&gt;private&lt;span style="font-size:100%;color:#0000ff;"&gt; bool _isShuttingDown = false&lt;span style="font-size:100%;color:#0000ff;"&gt;;&lt;br /&gt;&lt;span style="font-size:85%;color:#0000ff;"&gt;protected override void WndProc(ref&lt;span style="font-size:85%;color:#0000ff;"&gt; Message m)&lt;br /&gt;&lt;span style="font-family:Courier New;font-size:85%;color:#0000ff;"&gt;{&lt;br /&gt;&lt;span style="font-size:85%;color:#0000ff;"&gt;_isShuttingDown = (m.Msg == 0x11); &lt;span style="font-size:85%;color:#0000ff;"&gt;// Detect if shutting down.&lt;br /&gt;&lt;span style="font-size:85%;color:#0000ff;"&gt;base.WndProc (ref&lt;span style="font-size:85%;color:#0000ff;"&gt; m);&lt;br /&gt;&lt;span style="font-family:Courier New;font-size:85%;color:#0000ff;"&gt;}&lt;br /&gt;&lt;span style="font-size:85%;color:#0000ff;"&gt;private void Form_Closing(object&lt;span style="font-size:85%;color:#0000ff;"&gt; sender, CancelEventArgs e)&lt;br /&gt;&lt;span style="font-family:Courier New;font-size:85%;color:#0000ff;"&gt;{&lt;br /&gt;&lt;span style="font-family:Courier New;font-size:85%;color:#0000ff;"&gt;if(!_isShuttingDown) // Cancel closing if not shutting down.&lt;br /&gt;&lt;span style="font-family:Courier New;font-size:85%;color:#0000ff;"&gt;{&lt;br /&gt;&lt;span style="font-size:85%;color:#0000ff;"&gt;e.Cancel = &lt;span style="font-size:85%;color:#0000ff;"&gt;true&lt;span style="font-size:85%;color:#0000ff;"&gt;;&lt;br /&gt;&lt;span style="font-family:Courier New;font-size:85%;color:#0000ff;"&gt;this.Hide(); // Hide the form.&lt;br /&gt;&lt;span style="font-family:Courier New;font-size:85%;color:#0000ff;"&gt;}&lt;br /&gt;&lt;span style="font-family:Courier New;font-size:85%;color:#0000ff;"&gt;} &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;Hope this helps!&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;/span&gt;&lt;br /&gt;overriding WndProc will catch only messages for the form, not for contained controls. This will catch all messages for all forms and controls in your application:  &lt;br /&gt; partial class Form1 : Form, IMessageFilter&lt;br /&gt;{       &lt;br /&gt;public Form1()&lt;br /&gt;{            InitializeComponent();        }       &lt;br /&gt;&lt;br /&gt;private void Form1_Load(object sender, EventArgs e)&lt;br /&gt;{           &lt;br /&gt;  Application.AddMessageFilter(this);       &lt;br /&gt;}       &lt;br /&gt;public bool PreFilterMessage(ref Message m)&lt;br /&gt; {           &lt;br /&gt;   Control sender = Control.FromHandle(m.HWnd);                       &lt;br /&gt;   return false; // true to discard the message       &lt;br /&gt;}   &lt;br /&gt;}&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6903337-111339504606263095?l=dotnetfaqs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetfaqs.blogspot.com/feeds/111339504606263095/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6903337&amp;postID=111339504606263095' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6903337/posts/default/111339504606263095'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6903337/posts/default/111339504606263095'/><link rel='alternate' type='text/html' href='http://dotnetfaqs.blogspot.com/2005/04/hiding-your-app-when-close-button-is.html' title='Hiding your app when the close button is clicked!'/><author><name>Ashith Raj</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6903337.post-111339458315398050</id><published>2005-04-13T05:16:00.000-07:00</published><updated>2005-04-13T05:16:23.153-07:00</updated><title type='text'>Being productive when working</title><content type='html'>&lt;font size=3&gt;Recently I read an article about being productive when working. &lt;br /&gt;&lt;strong&gt;&lt;br /&gt;Hope the following tips will help you too.&lt;br /&gt;&lt;/strong&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Close all the messanger applications. [i.e. MSN, Yahoo, ICQ]&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Close your email client application [i.e. Outlook]&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Close your office room door and hang a notice "Do not disturb"&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Have some cool music playing in very low volume. &lt;/li&gt;&lt;br /&gt;&lt;li&gt;Ask your assistant or the answering machine to pickup the phone.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Just try to follow the rules atleast for 3 hours continuously and take a break. &lt;/li&gt;&lt;br /&gt;&lt;/ol&gt;&lt;br /&gt;Belive me it works! &lt;br /&gt;Enjoy your work!&lt;/font&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6903337-111339458315398050?l=dotnetfaqs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetfaqs.blogspot.com/feeds/111339458315398050/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6903337&amp;postID=111339458315398050' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6903337/posts/default/111339458315398050'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6903337/posts/default/111339458315398050'/><link rel='alternate' type='text/html' href='http://dotnetfaqs.blogspot.com/2005/04/being-productive-when-working.html' title='Being productive when working'/><author><name>Ashith Raj</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6903337.post-111339403124855533</id><published>2005-04-13T05:07:00.000-07:00</published><updated>2005-04-13T05:07:11.246-07:00</updated><title type='text'>Inheritance! Inheritance! Inheritance!</title><content type='html'>&lt;font size=3&gt;One of the key concepts in object oriented programming paradigm is Inheritance. Today Im going to show you an interesting thing for most of the C++, OO and .Net guys. &lt;br /&gt;In OO and C++ there are three levels of inheritance is available for the class members as public, protected and private.&lt;br /&gt; And the accessibility of your base classs members depends on two factors. &lt;br /&gt;&lt;br /&gt;The way the derived class declares its class head (public, protected or private) &lt;br /&gt;Access speceifier given for the class member (public, protected or private) &lt;br /&gt;&lt;strong&gt;If you mark members as private in your base class, those members are inaccessible regardless of the derivation access.&lt;br /&gt;If you mark members as protected in your base class, and if you do private derivation those members become private in the derived class.&lt;br /&gt;If you mark members as protected in your base class, and if you do protected derivation those members become protected in the derived class.&lt;br /&gt;If you mark members as protected in your base class, and if you do public derivation those members become protected in the derived class.&lt;br /&gt;If you mark members as public in your base class, and if you do private derivation those members become private in the derived class.&lt;br /&gt;If you mark members as public in your base class, and if you do protected derivation those members become protected in the derived class.&lt;br /&gt;If you mark members as public in your base class, and if you do public derivation those members become public in the derived class.&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Well those rules are for the old C++ folks. Take a careful look at the 2 scenarios highlighted. &lt;br /&gt;In .Net the way those two works is radically different. .Net supports public inheritance only. &lt;br /&gt;But when a class is inherited with public access the base classs protected members will become private to the derived class.&lt;br /&gt;&lt;br /&gt;Consider the following 3 classes in C++&lt;br /&gt;#include &lt;br /&gt;class A&lt;br /&gt;{&lt;br /&gt;protected: void fa()&lt;br /&gt;{printf("fa called"); }&lt;br /&gt;};&lt;br /&gt;class B : public A&lt;br /&gt;{&lt;br /&gt;public: void fb(){fa();}&lt;br /&gt;};&lt;br /&gt;class C : public B&lt;br /&gt;{&lt;br /&gt;public: void fc(){fa();}&lt;br /&gt;};&lt;br /&gt;int main()&lt;br /&gt;{&lt;br /&gt;C c;&lt;br /&gt;c.fc();&lt;br /&gt;return 0; &lt;br /&gt;} &lt;br /&gt;In C++ it will just work fine according to the rules I just described above. But if you make them managed classes you will not be able to call fa() from class c.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6903337-111339403124855533?l=dotnetfaqs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetfaqs.blogspot.com/feeds/111339403124855533/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6903337&amp;postID=111339403124855533' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6903337/posts/default/111339403124855533'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6903337/posts/default/111339403124855533'/><link rel='alternate' type='text/html' href='http://dotnetfaqs.blogspot.com/2005/04/inheritance-inheritance-inheritance.html' title='Inheritance! Inheritance! Inheritance!'/><author><name>Ashith Raj</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6903337.post-111339376145834270</id><published>2005-04-13T05:02:00.000-07:00</published><updated>2005-04-13T05:02:41.456-07:00</updated><title type='text'>Using SQL server as state server in ASP.NET</title><content type='html'>&lt;font size=3&gt;Choosing the correct place store the session state for web application is a real challenge.&lt;br /&gt; The way the session data is store and how much session data is going to be used are some of the questions rise when dealing with it. &lt;br /&gt;Over the past few years developers thought about using SQL server as their session state manager under certain circumstances. &lt;br /&gt;Some of them were because :&lt;br /&gt;1. The web application has to be deployed in a server farm. &lt;br /&gt;2. High number of users targeted to use the application and higher demand for large session data&lt;br /&gt;&lt;br /&gt;Out of the box ASP.Net brings a session state management integrated with SQL server. Developers can easily configure a SQL server to act as the Session management server. This also enables developers to implement a failover cluster, so that they can make sure that application is available even if one SQL server is down. Also this enables the application to be deployed in a web farm since the session is managed by SQL server running on a different process rather than the IIS process itself. &lt;br /&gt;&lt;br /&gt;How to configure : &lt;br /&gt;First run the InstallPersistSqlState.sql or InstallSqlState.sql you find in SystemFolder\Microsoft.NET\Framework\VersionBoth of these files do the same thing.&lt;br /&gt;But they differ from where they create the tables to hold session data. If you use InstallSqlState.sql it will create the tables in the TempDB causing the data to be removed when, the SQL server is restarted. But if you use the InstallPersistSqlState.sql it will create the tables in the ASPState database and data will not be deleted when, the SQL server is restarted. &lt;br /&gt;&lt;br /&gt;Once that is done your SQL server is ready to act as a session management server. Then you can simply add the following entry in Web.config to use it. &lt;br /&gt;&lt;sessionState mode="SQLServer" cookieless="false" sqlConnectionString="Integrated Security=SSPI;data source=YourServer;user id=YourUserID;password=YourPassword;"&gt;&lt;/sessionState&gt; &lt;br /&gt;&lt;br /&gt;So making SQL server as a State server is simple as that. But there is one more thing &lt;strong&gt;you should pay attention &lt;/strong&gt;when storing custom objects in the session. ASP.Net stores objects in SQL server by serializing them to a byte stream. &lt;strong&gt;Therefore your custom objects should be serializable in order to work with SQL session state server. &lt;/strong&gt;&lt;/font&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6903337-111339376145834270?l=dotnetfaqs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetfaqs.blogspot.com/feeds/111339376145834270/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6903337&amp;postID=111339376145834270' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6903337/posts/default/111339376145834270'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6903337/posts/default/111339376145834270'/><link rel='alternate' type='text/html' href='http://dotnetfaqs.blogspot.com/2005/04/using-sql-server-as-state-server-in.html' title='Using SQL server as state server in ASP.NET'/><author><name>Ashith Raj</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6903337.post-111234434093666465</id><published>2005-04-01T00:32:00.000-08:00</published><updated>2005-04-01T00:32:20.936-08:00</updated><title type='text'>State of .NET development almost three years after</title><content type='html'>&lt;font size=3&gt;Posted by: &lt;/font&gt;&lt;font color="#0000FF" size=3&gt;&lt;u&gt;Fabrice Marguerie&lt;/u&gt;&lt;/font&gt;&lt;font size=3&gt; on November 03, 2004 @ 09:30 AM &lt;br /&gt;Almost three years after .NET 1.0 has been released, and before .NET 2.0 appears, it looks like .NET reached a momentum.Projects based on the .NET platform are now common, the material available to developers is quite impressive, and the number of developers keeps growing.Let's take a look at where we are now, and see some numbers.Three years after its official release in 2002, it looks like .NET reached a momentum. Several statistics could be used as evidences.Let's just consider the number of books, articles, code samples, web sites or forums dedicated to .NET...A sign is the number of developers who join the .NET community &lt;/font&gt;&lt;font color="#0000FF" size=3&gt;&lt;u&gt;keeps growing&lt;/u&gt;&lt;/font&gt;&lt;font size=3&gt;. &lt;/font&gt;&lt;font color="#0000FF" size=3&gt;&lt;u&gt;Apparently&lt;/u&gt;&lt;/font&gt;&lt;font size=3&gt;, there are more than 2.5 million .NET developers world-wide.Showing how active the development sphere is, as of today more than 610 development tools, libraries and add-ins are referenced in the &lt;/font&gt;&lt;font color="#0000FF" size=3&gt;&lt;u&gt;SharpToolbox&lt;/u&gt;&lt;/font&gt;&lt;font size=3&gt;.The most prospering categories are &lt;/font&gt;&lt;font color="#0000FF" size=3&gt;&lt;u&gt;object/relational mapping products&lt;/u&gt;&lt;/font&gt;&lt;font size=3&gt;, all the other &lt;/font&gt;&lt;font color="#0000FF" size=3&gt;&lt;u&gt;persistence and data-related tools&lt;/u&gt;&lt;/font&gt;&lt;font size=3&gt;, &lt;/font&gt;&lt;font color="#0000FF" size=3&gt;&lt;u&gt;code generation&lt;/u&gt;&lt;/font&gt;&lt;font size=3&gt;, &lt;/font&gt;&lt;font color="#0000FF" size=3&gt;&lt;u&gt;testing&lt;/u&gt;&lt;/font&gt;&lt;font size=3&gt; and &lt;/font&gt;&lt;font color="#0000FF" size=3&gt;&lt;u&gt;profiling&lt;/u&gt;&lt;/font&gt;&lt;font size=3&gt;.Countless &lt;/font&gt;&lt;font color="#0000FF" size=3&gt;&lt;u&gt;Integrated Development Environments (IDE) and add-ins for IDEs&lt;/u&gt;&lt;/font&gt;&lt;font size=3&gt; such as Visual Studio also exist.Language fanatics are not underprivileged, far from it with &lt;/font&gt;&lt;font color="#0000FF" size=3&gt;&lt;u&gt;something like 70 programming languages&lt;/u&gt;&lt;/font&gt;&lt;font size=3&gt; compatible with .NET!The ability to target Linux with the release of Mono 1.0 this year is opening new horizons to .NET, without forgetting the various offerings for &lt;/font&gt;&lt;font color="#0000FF" size=3&gt;&lt;u&gt;interoperability&lt;/u&gt;&lt;/font&gt;&lt;font size=3&gt; with other platforms or systems.Another indicator is the number of sites running ASP.NET. &lt;/font&gt;&lt;font color="#0000FF" size=3&gt;&lt;u&gt;According to NetCraft&lt;/u&gt;&lt;/font&gt;&lt;font size=3&gt;, ASP.NET is currently on over 2.9 million active sites.After an important testing and validation phase, .NET becomes now widely adopted in enterprise. Numerous new developments are in progress, as well as heavy information systems migrations to the .NET platform.At first, companies were limiting themselves to a cautious adoption of the technology. But now .NET seems to be considered as valuable and as reliable as J2EE, and more than one enterprise uses both platforms at the same time.A lot has happened, but the future is still very promising. Next year will see the birth of .NET 2.0. In 2005 will also be released major products for .NET developers: Visual Studio 2005 and SQL Server 2005 (with .NET CLR integration), for example.&lt;/font&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6903337-111234434093666465?l=dotnetfaqs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetfaqs.blogspot.com/feeds/111234434093666465/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6903337&amp;postID=111234434093666465' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6903337/posts/default/111234434093666465'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6903337/posts/default/111234434093666465'/><link rel='alternate' type='text/html' href='http://dotnetfaqs.blogspot.com/2005/04/state-of-net-development-almost-three.html' title='State of .NET development almost three years after'/><author><name>Ashith Raj</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6903337.post-111114225498167054</id><published>2005-03-18T00:33:00.000-08:00</published><updated>2005-03-18T04:35:45.090-08:00</updated><title type='text'>Links : March 18 2005</title><content type='html'>&lt;a href="http://www.codertodeveloper.com/resource_list.htm"&gt;http://www.codertodeveloper.com/resource_list.htm&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.thundermain.com/resources.html" title="http://www.thundermain.com/resources.html" target="_blank"&gt;http://www.thundermain.com/resources.html&lt;/a&gt;&lt;br /&gt;&lt;a href="http://blogs.msdn.com/Virtual_PC_Guy" title="http://blogs.msdn.com/Virtual_PC_Guy" target="_blank"&gt;http://blogs.msdn.com/Virtual_PC_Guy&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6903337-111114225498167054?l=dotnetfaqs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetfaqs.blogspot.com/feeds/111114225498167054/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6903337&amp;postID=111114225498167054' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6903337/posts/default/111114225498167054'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6903337/posts/default/111114225498167054'/><link rel='alternate' type='text/html' href='http://dotnetfaqs.blogspot.com/2005/03/links-march-18-2005.html' title='Links : March 18 2005'/><author><name>Ashith Raj</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6903337.post-111108546805347979</id><published>2005-03-17T10:45:00.000-08:00</published><updated>2005-03-17T10:51:08.056-08:00</updated><title type='text'>Developers Must Have Tools</title><content type='html'>&lt;a href="http://www.hanselman.com/blog/content/radiostories/2003/09/09/scottHanselmansUltimateDeveloperAndPowerUsersToolsList.html"&gt;http://www.hanselman.com/blog/content/radiostories/2003/09/09/scottHanselmansUltimateDeveloperAndPowerUsersToolsList.html&lt;/a&gt;&lt;br /&gt;&lt;a href="http://blog.daemon.com.au/archives/000303.html"&gt;http://blog.daemon.com.au/archives/000303.html&lt;/a&gt;&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/office/default.aspx?pull=/library/en-us/odc_XL2003_ta/html/Office_Excel_Automating_XML_Data_Mapping.asp"&gt;http://msdn.microsoft.com/office/default.aspx?pull=/library/en-us/odc_XL2003_ta/html/Office_Excel_Automating_XML_Data_Mapping.asp&lt;/a&gt;&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/office/default.aspx?pull=/library/en-us/odc_xl2003_ta/html/odc_XMLLists.asp"&gt;http://msdn.microsoft.com/office/default.aspx?pull=/library/en-us/odc_xl2003_ta/html/odc_XMLLists.asp&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.theserverside.net/news/thread.tss?thread_id=32106"&gt;http://www.theserverside.net/news/thread.tss?thread_id=32106&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.mxdu.com/"&gt;http://www.mxdu.com/&lt;/a&gt;&lt;br /&gt;&lt;a href="http://blog.daemon.com.au/archives/000302.html"&gt;http://blog.daemon.com.au/archives/000302.html&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.saurik.com/net/exemplar/"&gt;http://www.saurik.com/net/exemplar/&lt;/a&gt;&lt;br /&gt;&lt;a href="http://vex.sourceforge.net/"&gt;http://vex.sourceforge.net/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6903337-111108546805347979?l=dotnetfaqs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetfaqs.blogspot.com/feeds/111108546805347979/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6903337&amp;postID=111108546805347979' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6903337/posts/default/111108546805347979'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6903337/posts/default/111108546805347979'/><link rel='alternate' type='text/html' href='http://dotnetfaqs.blogspot.com/2005/03/developers-must-have-tools.html' title='Developers Must Have Tools'/><author><name>Ashith Raj</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6903337.post-111106488427953225</id><published>2005-03-17T05:08:00.000-08:00</published><updated>2005-03-17T05:08:04.280-08:00</updated><title type='text'>Developer Professionalism</title><content type='html'>&lt;font size=3&gt;Developer Professionalism&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;&lt;div align="center"&gt;&lt;font color="#FF0000" size=3&gt;To be paid, is not enough to make one a professional&lt;/font&gt;&lt;/div&gt;&lt;br /&gt;&lt;strong&gt;&lt;font size=3&gt;What is a developers job?&lt;/font&gt;&lt;/strong&gt;&lt;br /&gt;&lt;li&gt;&lt;font size=3&gt;To THINK. Coding is a puzzle, puzzles are worked out best by thinking &lt;/font&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;font size=3&gt;To deliver. On time, on function and on quality &lt;/font&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;font size=3&gt;To be responsible. Taking personal responsibility &lt;/font&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;font size=3&gt;To never stop learning. Constant and Never-ending Improvement (CANI) &lt;/font&gt;&lt;/li&gt;&lt;br /&gt;&lt;strong&gt;&lt;font size=3&gt;A developer is&lt;/font&gt;&lt;/strong&gt;&lt;br /&gt;&lt;li&gt;&lt;font size=3&gt;Punctual. To be on time is to show respect &lt;/font&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;font size=3&gt;Prepared. To add value to a meeting is to be ready &lt;/font&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;font size=3&gt;Proactive. Having in mind the consequence and advising on the risk are part of the job, you must drive asking about the requirements, drilling down to the details, raising the risks, getting help! &lt;/font&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;font size=3&gt;Persistent. No problem is insoluble, balance asking for help with research &lt;/font&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;font size=3&gt;Precise. In speech and in code exactitude is a hallmark &lt;/font&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;font size=3&gt;Positive. Decide to be positive but act with caution &lt;/font&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;font size=3&gt;Prevention Minded. What could happen if this is wrong? &lt;/font&gt;&lt;/li&gt;&lt;br /&gt;&lt;strong&gt;&lt;font size=3&gt;A developer is not&lt;/font&gt;&lt;/strong&gt;&lt;br /&gt;&lt;li&gt;&lt;font size=3&gt;Overconfident, humility with confidence is the balance &lt;/font&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;font size=3&gt;Arrogant, confidence is not arrogance &lt;/font&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;font size=3&gt;Sloppy, neatness is important, clean code is maintainable, safe and correct &lt;/font&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;font size=3&gt;Hurried, acting with tempo is not hurry, the more important the task the more you should think about the consequences (be like an air traffic controller, become more calm the more the crisis escalates). &lt;/font&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;font size=3&gt;Late, on-time delivery, on quality, on spec build confidence &lt;/font&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;font size=3&gt;A cowboy. Process exists to protect the developer and the customer. &lt;/font&gt;&lt;/li&gt;&lt;br /&gt;&lt;strong&gt;&lt;font size=3&gt;7 habits of successful developers&lt;/font&gt;&lt;/strong&gt;&lt;br /&gt;&lt;li&gt;&lt;font size=3&gt;Understand that understanding is incremental, requirements are nearly impossible to articulate, so doing a little then showing it to the customer insures that what is delivered is what is needed. &lt;/font&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;font size=3&gt;Develop incrementally &lt;/font&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;font size=3&gt;Test continuously with well thought out unit tests peer reviewed by others &lt;/font&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;font size=3&gt;Have your peers validate your code and design &lt;/font&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;font size=3&gt;Care about doing the same for others &lt;/font&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;font size=3&gt;Obey and evangelize standards &lt;/font&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;font size=3&gt;Leverage tools and go with the tool not against them &lt;/font&gt;&lt;/li&gt;&lt;br /&gt;&lt;strong&gt;&lt;font size=3&gt;7 deadly sins&lt;/font&gt;&lt;/strong&gt;&lt;br /&gt;&lt;li&gt;&lt;font size=3&gt;Coding too quickly, time spend in design equals quality in code &lt;/font&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;font size=3&gt;No or bad unit tests &lt;/font&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;font size=3&gt;Failing to keep source control in sync &lt;/font&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;font size=3&gt;Pushing code to production, no developer should ever do this &lt;/font&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;font size=3&gt;Deployment w/o a rollback &lt;/font&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;font size=3&gt;Skipping standards you dont like &lt;/font&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;font size=3&gt;Not honoring peer review e.g. skipping it or ignoring the results &lt;/font&gt;&lt;/li&gt;&lt;br /&gt;&lt;strong&gt;&lt;font size=3&gt;The XP Process in a nutshell&lt;/strong&gt;&lt;br /&gt;&lt;li&gt;Get a problem to solve, make it small enough to solve in a day or so &lt;/li&gt;&lt;br /&gt;&lt;li&gt;Think about what should be tested to determine what done means in terms of functionality and block out the required tests &lt;/li&gt;&lt;br /&gt;&lt;li&gt;Write a little code and test it, refractor &lt;/li&gt;&lt;br /&gt;&lt;li&gt;As you develop comment and check for standards &lt;/li&gt;&lt;br /&gt;&lt;li&gt;When all the tests pass, do a final standards check and then initiate peer review &lt;/li&gt;&lt;br /&gt;&lt;li&gt;Work with the PM to show and tell it to the customer if not done already &lt;/li&gt;&lt;br /&gt;&lt;li&gt;When the issues relating to peer review have been dealt with (either fixed or queued up for next time) check in and inform the build team the code is ready for build and QA &lt;/li&gt;&lt;br /&gt;&lt;li&gt;Repeat until there are no more tasks for the release &lt;/li&gt;&lt;br /&gt;&lt;li&gt;Start on the next release &lt;/li&gt;&lt;br /&gt;&lt;/ol&gt;&lt;/font&gt;&lt;br /&gt;&lt;strong&gt;&lt;font size=3&gt;In XP what does QA do?&lt;/font&gt;&lt;/strong&gt;&lt;br /&gt;&lt;li&gt;&lt;font size=3&gt;QA does not exist to test developers code or to find functionality bugs &lt;/font&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;font size=3&gt;QA role is to assure that the integrated products perform as specified &lt;/font&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;font size=3&gt;QA Advises on what the required unit tests should be &lt;/font&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;font size=3&gt;QA judges if the deployment instructions/process is sufficient &lt;/font&gt;&lt;/li&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6903337-111106488427953225?l=dotnetfaqs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetfaqs.blogspot.com/feeds/111106488427953225/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6903337&amp;postID=111106488427953225' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6903337/posts/default/111106488427953225'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6903337/posts/default/111106488427953225'/><link rel='alternate' type='text/html' href='http://dotnetfaqs.blogspot.com/2005/03/developer-professionalism.html' title='Developer Professionalism'/><author><name>Ashith Raj</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6903337.post-111106383516052467</id><published>2005-03-17T04:50:00.000-08:00</published><updated>2005-03-17T04:50:35.160-08:00</updated><title type='text'></title><content type='html'>&lt;font size=3&gt;What are the needed skills to succeed in software project management?.&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;Lately, I have been asked to reflect on the last 2 years and come up with a list of skills and resources that have been the most useful in project manangement. Here is my list (so far) annotated with references. The list is quite different the then same list even 1 years ago. truely, the only constant is change. The list reflects the tools that have helped me personally, and may not be a good fit for everyone, these are skills and techniques I have actually used with some success, so if your favorite is missing... Order is not meaningful.&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Patience, flexibility, detachment, and a sense of humor. (#1 thing). &lt;/li&gt;&lt;br /&gt;&lt;li&gt;Software cost estimation (see my blog entry on COCOMO) &lt;/li&gt;&lt;br /&gt;&lt;li&gt;Project mangement tools: red line reviews, MS Project, ... &lt;/li&gt;&lt;br /&gt;&lt;li&gt;Software testing using any tool you like + a software test plan against an up to date specification. &lt;/li&gt;&lt;br /&gt;&lt;li&gt;Correct staffing. IMHO the ratio of Dev/QA = 1:1 PLUS 1 PM per every 4 devs. Really. The projects that came together the best had these ratios. &lt;/li&gt;&lt;br /&gt;&lt;li&gt;Visio. ERD, DFD, System diagrams. Reverse engineering. It rocks. &lt;/li&gt;&lt;br /&gt;&lt;li&gt;Powerpoint. Forces crisp clear communications. [See my BLOG] &lt;/li&gt;&lt;br /&gt;&lt;li&gt;Visual Studio + SQL Server [duh] I wouldn't build solutions in anything else. &lt;/li&gt;&lt;br /&gt;&lt;li&gt;HTML/CSS (really, if you can't code them in a text editor, you do not know them really) &lt;/li&gt;&lt;br /&gt;&lt;li&gt;eXtreme programming. It does really make better code. Maybe not for everything, but for critical things. &lt;/li&gt;&lt;br /&gt;&lt;li&gt;MS Word with outlining turned on. If you do not use the outliner, learn it, it's worth the effort to learn it. Advice: Outline, content, clean up, format, publish is the correct sequence. [In general, let office be office, don't fight the default formatting , learn to love it. Come be assimilated, resistance is futile.] &lt;/li&gt;&lt;br /&gt;&lt;li&gt;A set of requirements or specification that actually captures the business rules kept up to date by devs/PM. Do just enough documentation to get by; as long as spec matches what got built = captured business rules + requirements + deployment/configutration instructions [do not forget these, they are only right if you can demo them, just like a backup only exists once it's been restored successfully]. &lt;/li&gt;&lt;br /&gt;&lt;li&gt;Tools/toys and gizmos (oh, how did I live without them?): textpad, beyond compare, iconico tools, regulator, WinZip, Snippet compiler, Roxio. &lt;/li&gt;&lt;br /&gt;&lt;li&gt;Tunes. Music hath charms to relax the brain. They will pry my music match and dell jukebox out of my numb fingers. &lt;/li&gt;&lt;br /&gt;&lt;li&gt;My laptop + wireless connection. I have written great stuff in lots of weird places.&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6903337-111106383516052467?l=dotnetfaqs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetfaqs.blogspot.com/feeds/111106383516052467/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6903337&amp;postID=111106383516052467' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6903337/posts/default/111106383516052467'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6903337/posts/default/111106383516052467'/><link rel='alternate' type='text/html' href='http://dotnetfaqs.blogspot.com/2005/03/what-are-needed-skills-to-succeed-in.html' title=''/><author><name>Ashith Raj</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6903337.post-111047819534645541</id><published>2005-03-10T09:10:00.000-08:00</published><updated>2005-03-10T10:09:55.360-08:00</updated><title type='text'>For .NET Interview Questions</title><content type='html'>&lt;a href="http://www.techinterviews.com/index.php?cat=9"&gt;http://www.techinterviews.com/index.php?cat=9&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.techinterviews.com/index.php?cat=9&amp;paged=2"&gt;http://www.techinterviews.com/index.php?cat=9&amp;amp;paged=2&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.techinterviews.com/index.php?p=54"&gt;http://www.techinterviews.com/index.php?p=54&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.techinterviews.com/index.php?p=57"&gt;http://www.techinterviews.com/index.php?p=57&lt;/a&gt;&lt;br /&gt;&lt;a href="http://techinterviews.com/index.php?p=66&amp;more=1&amp;amp;c=1"&gt;http://techinterviews.com/index.php?p=66&amp;more=1&amp;amp;c=1&lt;/a&gt;&lt;br /&gt;&lt;a href="http://blogs.crsw.com/mark/articles/254.aspx"&gt;http://blogs.crsw.com/mark/articles/254.aspx&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.geocities.com/santhosh0123/favorites.html"&gt;http://www.geocities.com/santhosh0123/favorites.html&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.csharphelp.com/archives/archive171.html"&gt;http://www.csharphelp.com/archives/archive171.html&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.experts-exchange.com/Programming/Programming_Languages/Dot_Net/Q_20846943.html"&gt;http://www.experts-exchange.com/Programming/Programming_Languages/Dot_Net/Q_20846943.html&lt;/a&gt;&lt;br /&gt;&lt;a href="http://msmvps.com/williamryan/archive/2004/10/12/15671.aspx"&gt;http://msmvps.com/williamryan/archive/2004/10/12/15671.aspx&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.dnzone.com/ShowDetail.asp?NewsId=484"&gt;http://www.dnzone.com/ShowDetail.asp?NewsId=484&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6903337-111047819534645541?l=dotnetfaqs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetfaqs.blogspot.com/feeds/111047819534645541/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6903337&amp;postID=111047819534645541' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6903337/posts/default/111047819534645541'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6903337/posts/default/111047819534645541'/><link rel='alternate' type='text/html' href='http://dotnetfaqs.blogspot.com/2005/03/for-net-interview-questions.html' title='For .NET Interview Questions'/><author><name>Ashith Raj</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6903337.post-111035215677926526</id><published>2005-03-08T23:09:00.000-08:00</published><updated>2005-03-08T23:09:16.780-08:00</updated><title type='text'>.NET Web Services using WSE</title><content type='html'>&lt;font size=3&gt;.NET Web Services using WSE &lt;br /&gt;.NET makes creating or using a web service easy, but it's not always exactly as described in the documentation. &lt;br /&gt;&lt;br /&gt;This article covers using the Microsoft Web Services Enhancements (WSE) in Visual C# .NET. I'm assuming you're relatively "au fait" with C# and the .NET framework, and are interested in writing web services. &lt;br /&gt;There are several ways of writing web services available to programmers using Microsoft's Visual Studio .NET environment, and several programming languages to choose from. Whilst variety may be the spice of life, it does also make it a little difficult to know where best to begin. To compound such problems, the web services scene is changing fast. No sooner have you got your head around using the .NET framework and the web service support available, than yet another set of libraries comes out which purports to "make life easier" in one way or another. I am, of course, referring to the latest &lt;/font&gt;&lt;font color="#0000FF" size=3&gt;&lt;u&gt;Web Services Enhancements library&lt;/u&gt;&lt;/font&gt;&lt;font size=3&gt; shipped by Microsoft. &lt;br /&gt;Whenever a new class library comes out, I always ask myself whether it's really worth the effort of learning it, or will the library either (a) just add a layer of unnecessary complication to the current development project, or (b) be superseded by another "later and greater" class library in the not too distant future. In order to answer such questions you are immediately landed in a Catch-22 situation, since you have to learn something about the class library before you can decide whether to "go the whole hog" and learn it fully. The purpose of this article is to make you familiar enough with the WSE library that you can answer such questions for yourself. &lt;/font&gt;&lt;br /&gt;&lt;font size=4&gt;Looking at requirements&lt;/font&gt;&lt;br /&gt;&lt;font size=3&gt;One of my current architectural tasks is to look at turning a classic n-tier web-based application that is driven by a browser GUI front-end into a programmatically distributed system. That is, one instance of a server (I like to think of it as a "server atom") can programmatically talk to another server atom somewhere on the Internet (that's correct: not intranet but Internet). I could design our own, private and proprietary data exchange mechanism, operating (probably, but not necessarily) over HTTP. I'm inherently suspicious of anything that's private and proprietary, on the basis that it's almost guaranteed that someone, somewhere will have been confronted with the same task. In any case, it looks like distributed web services are a good bet for a first look at meeting the requirements, but how to communicate between the distributed web services? I could use a fully proprietary design but I dismissed that idea straight away. How about XML RPC  after all, I'm looking primarily at an RPC-type environment? Seems fine for connectivity but... the XML documents that I send and receive are once again a proprietary format for XML RPC. The Simple Object Access Protocol (SOAP) addresses this proprietary XML RPC format quite nicely by providing a standard XML format for the messages. So it looks like SOAP is the way to go, at least for the moment. Let's explore this path a little further. &lt;br /&gt;The kinds of operations I need to support are synchronous and asynchronous calls of remote services, with either type of call possibly returning data either immediately as a result of the call or at some future point. &lt;br /&gt;I conclude that I need to use SOAP for exposing web services. As the data I return potentially contains sensitive information, I need to look at security of the data transfer. I need to look at the possibility of sending binary data back (e.g. a bcp bulk copy utility query result from a database in native database format). &lt;br /&gt;This brings me to the heart of this article: Microsoft recently released the WSE library to extend the web service support already provided in .NET. WSE provides me with an implementation of three recently released web service specifications: WS-Security, WS-Attachments and WS-Routing. The question facing me now was whether using WSE would help me in reaching my goal. &lt;/font&gt;&lt;br /&gt;&lt;font size=4&gt;What WSE provides&lt;/font&gt;&lt;br /&gt;&lt;font size=3&gt;Web Services Enhancements, as the "Enhancements" part of the name implies, are extensions to the SOAP specification. That always makes me nervous. The word "extension" implies "non-standard", and non-standard is something I definitely want to avoid. However, the facilities provided by WSE use the SOAP extension model and are also based in some cases on existing Internet draft documents (e.g. WS-Attachments is based on work on the DIME Internet draft). There are other standards out there too. For example, the XACML security specification drafted under the good auspices of &lt;/font&gt;&lt;font color="#0000FF" size=3&gt;&lt;u&gt;OASIS&lt;/u&gt;&lt;/font&gt;&lt;font size=3&gt; provides a standard for applying a security policy in a web services environment. The parallel to XACML in the Microsoft world is the WS-Policy specification. &lt;br /&gt;The three WS facilities provided by WSE come under the general auspices of Microsoft's Global XML Web Services Architecture, commonly abbreviated to GXA. It is intended that GXA is an umbrella concept that will use one or more of the WS facilities plugged together by an architect to achieve a final design goal. For example, WS-Routing provides the fundamental services that WS-Security can use to ensure privacy of information. Both WS-Routing and WS-Security are component services of the GXA. WSE is an implementation of the WS-Security, WS-Routing and WS-Attachments specifications. I won't look at how WSE achieves what it does, but will simply focus on how you can use WSE. &lt;br /&gt;The outline development plan for this article is as follows: &lt;br /&gt;Write a web service using WSE to expose, say, a factorial calculation &lt;br /&gt;Write a client to consume that web service &lt;br /&gt;Re-work (1) and (2) to use security &lt;br /&gt;Re-work (1) and (2) to send an arbitrary binary attachment, both to and from the web service &lt;br /&gt;Re-work (1) and (2) to send a binary attachment that is encrypted. &lt;/font&gt;&lt;br /&gt;&lt;font size=4&gt;Getting started&lt;/font&gt;&lt;br /&gt;&lt;font size=3&gt;This section will look at providing a simple web service to expose a factorial calculation and how to configure the server-side web service to use WSE. Once that is done, I will generate a client program to call the web service. The client program will be generated in part by using a proxy-generating tool in Visual Studio .NET. The generated code will need slight modification to use WSE and I'll detail what needs to be done there for the client to use WSE. By the end of this section you should be up and running with a web service and client that use WSE but don't do much with WSE at all. After all that, you'll see in the next section how to start getting WSE involved in helping meet the requirements of a secure web service that can transmit and receive arbitrary length binary data. &lt;br /&gt;First of all, you'll need to ensure you have IIS up and running. Secondly, you'll need to &lt;/font&gt;&lt;font color="#0000FF" size=3&gt;&lt;u&gt;install WSE&lt;/u&gt;&lt;/font&gt;&lt;font size=3&gt;. &lt;br /&gt;The particular version of WSE I'm using is WSE 1.0 SP1. While you're at it, you may as well get hold of the &lt;/font&gt;&lt;font color="#0000FF" size=3&gt;&lt;u&gt;WSE Settings Tool for Visual Studio .NET&lt;/u&gt;&lt;/font&gt;&lt;font size=3&gt;. &lt;br /&gt;Start Visual Studio .NET and create a new Visual C# ASP.NET Web Service project. The name I've given the web service in this article is &lt;/font&gt;&lt;br /&gt;&lt;font face="Courier New" size=2&gt;http://localhost/FactorialService&lt;/font&gt;&lt;br /&gt;&lt;font size=3&gt;A short pause ensues while Visual Studio .NET creates a virtual directory called FactorialService on IIS and marks it as an application. The source files are then placed within this virtual directory. Whilst this is fine for development, you may wish to exclude the source files when deploying the web service to your production web server! &lt;br /&gt;From Solution Explorer, select the Service1.asmx file and rename it to something a little more meaningful. I chose to rename this service to FactorialService by right clicking on the Service1.asmx file and choosing "Properties". In the property inspector, I changed the file name from "Service1.asmx" to "FactorialService.asmx". Now switch to the Class View window in Visual Studio and expand the tree until you can see Service1. Right-click on this and rename it to Factorial. &lt;/font&gt;&lt;br /&gt;&lt;font size=4&gt;Server-Side&lt;/font&gt;&lt;br /&gt;&lt;font size=3&gt;Browsing the C# source, you should find that a commented-out "HelloWorld" method has been provided, prefixed with the [WebMethod] attribute. To modify the web service to provide a factorial function: &lt;br /&gt;Add two constants for max and min factorial range somewhere in the class &lt;/font&gt;&lt;br /&gt;&lt;font face="Courier New" size=2&gt;private const int minFact = 0;&lt;br /&gt;private const int maxFact = 12;&lt;/font&gt;&lt;br /&gt;&lt;font size=3&gt;Replace the HelloWorld commented-out method with the following method (leaving the [WebMethod] attribute in place) &lt;/font&gt;&lt;br /&gt;&lt;font face="Courier New" size=2&gt;public int Calc(int n)&lt;br /&gt;{&lt;br /&gt;	int factVal = -1;	&lt;br /&gt;	// use -1 as out-of-range indicator&lt;br /&gt;	if(n &gt;= minFact &amp;&amp; n &lt;= maxFact)&lt;br /&gt;	{&lt;br /&gt;		// factorial by iteration&lt;br /&gt;		factVal = 1;&lt;br /&gt;		// 0! and 1! are both 1 by&lt;br /&gt;		// definition&lt;br /&gt;		for(int factCnt = 2; factCnt&lt;br /&gt;		&lt;= n; ++factCnt)&lt;br /&gt;		{&lt;br /&gt;			factVal *= factCnt;&lt;br /&gt;		}&lt;br /&gt;	}&lt;br /&gt;	return factVal;&lt;br /&gt;}&lt;/font&gt;&lt;br /&gt;&lt;font size=3&gt;As far as programming goes, that's it! You now have a web service. To hook into WSE, however, you will need to change the application's Web.config file. &lt;br /&gt;In order for your web service to hook into WSE, you need to add some XML to the Web.config file to tell IIS how to invoke WSE. Select the Web.config file in Solution Explorer and add the required XML entries. This is shown in Figure 1. &lt;br /&gt;Figure 1 &lt;br /&gt;The &lt;add&gt; element is used with the "type" attribute, which is set to point to WSE by its assembly name. For display purposes, I have had to wrap the "type" attribute so you can see what the value should be. In the actual Web.config file, of course, the type attribute should be one line with no newlines in it. I have omitted the rest of the Web.config file in Figure 1 as it remains as-is. &lt;br /&gt;You should be able to build the web service now. &lt;/font&gt;&lt;br /&gt;&lt;font size=4&gt;The client&lt;/font&gt;&lt;br /&gt;&lt;font size=3&gt;I'll create a real basic console application in C# to talk to the web service in order to demonstrate that you don't need any heavyweight client code to use a web service. First of all I'll generate a basic client and use Visual Studio .NET tools to generate the required proxy class to talk to the web service. I'll then show how you need to modify the generated proxy file to use WSE. That will complete the basic web service and client configuration. &lt;br /&gt;In Visual Studio .NET generate a new Visual C# Console Application. I called mine FacClient. You can place the client in the same solution as the web service if you wish, but I chose to keep my client completely separate from the web service project in its own "solution" space. Skeleton code will be generated for you. The first thing you'll need to do is a reference to WSE for your client program. You do this by going to the Solution Explorer and right-clicking over References. From the context menu that opens, select "Add Reference". The resulting dialog is shown in Figure 2, which also shows Microsoft.Web.Services in the list of .NET assemblies. &lt;br /&gt;Figure 2 &lt;br /&gt;If the assembly does not appear in the list, you will have to use the "Browse" button on the dialog. By default, the DLL is located at: &lt;/font&gt;&lt;br /&gt;&lt;font face="Courier New" size=2&gt;%Program Files%\Microsoft&lt;br /&gt;WSE\v1.0.2312\Microsoft.Web.&lt;br /&gt;Services.dll&lt;/font&gt;&lt;br /&gt;&lt;font size=3&gt;Once you have located the assembly, click on "Select" then on "OK". In order to use the assembly in your client code you will need to either explicitly reference each instance using the full path name or place the following using directive at the top of your client program: using Microsoft.Web.Services;. You can change the class and file name (as detailed in the section "Server-Side Coding") if you wish, but I chose to leave the class name as Class1 (and filename as Class1.cs) for this simple client. &lt;br /&gt;Next we need to generate the proxy class to talk to the web service. You do this by right clicking over References in Solution Explorer again - but this time selecting "Add Web Reference" from the context menu, which results in a dialog being displayed. You need to enter the URL that points to the FactorialService.asmx file. Figure 3 shows the URL typed in at the top and the resultant output. &lt;br /&gt;Figure 3 &lt;br /&gt;Click on the "Add Reference" button at the bottom of the dialog. This adds a proxy class to your project and some more references. Figure 4 shows the "Class View" panel indicating that two proxy classes have been generated in the localhost namespace. &lt;br /&gt;Figure 4 &lt;br /&gt;The proxy class Factorial is the standard SOAP HTTP proxy class. The other proxy class, and the one we're more interested in, is FactorialWse. The Wse is appended to the name to show that it is using WSE. The difference between the two comes down to the fact that the basic SOAP proxy class derives from the SoapHttpClientProtocol class and the WSE proxy derives from WebServicesClientProtocol, which provides the hooks into WSE. &lt;br /&gt;Note: the WSE documentation talks about editing the generated proxy class file and changing the inheritance. This documentation point is out of date and you do not need to do this any more. Simply use the "Wse" version of the proxy class. &lt;br /&gt;In order to use the proxy class add the using directive using FacClient.localhost; somewhere near the top of your client program source and implement Main as follows: &lt;/font&gt;&lt;br /&gt;&lt;font face="Courier New" size=2&gt;static void Main(string[] args)&lt;br /&gt;{&lt;br /&gt;	try&lt;br /&gt;	{&lt;br /&gt;		FactorialWse fs =&lt;br /&gt;			new FactorialWse();&lt;br /&gt;		int val = 6;&lt;br /&gt;		int fac = fs.Calc(val);&lt;br /&gt;		Console.WriteLine(&lt;br /&gt;		"Web service called&lt;br /&gt;			successfully!");&lt;br /&gt;		Console.WriteLine(&lt;br /&gt;		"Factorial of {0} is {1}",&lt;br /&gt;			val, fac);&lt;br /&gt;	}&lt;br /&gt;	catch(Exception e)&lt;br /&gt;	{&lt;br /&gt;		Console.WriteLine(&lt;br /&gt;		"Error with web service: "&lt;br /&gt;			+ e.Message);&lt;br /&gt;	}&lt;br /&gt;}&lt;/font&gt;&lt;br /&gt;&lt;font size=3&gt;You should be able to build and run the client and, all being well, you should find out that the factorial of 6 is 720. Nothing too earth-shattering about that, I agree  but what you have done is successfully implemented a web service and client that use WSE  albeit at a very basic level. On this foundation, I'm now going to look at using the facilities provided by WSE to see if it can meet my original requirements, which, after all, is the point of the exercise. &lt;/font&gt;&lt;br /&gt;&lt;font size=4&gt;Web services enhancements and WS-specifications&lt;/font&gt;&lt;br /&gt;&lt;font size=3&gt;The WSE .NET library provides an implementation of the WS-Security, WS-Attachments. I'm going to look at WS-Security and WS-Attachments. &lt;br /&gt;There is no point pursuing the use of WSE if a reasonable degree of data privacy is not achievable using WS-Security. The security mechanism that WS-Security can use is not fixed. For demonstration purposes I will use a simple "shared secret" symmetric encryption process. The major advantage of WS-Security over other security implementations is that WS-Security is implemented on the SOAP packet, whereas other security mechanisms take place at the transport layer (e.g. HTTPS, SSH) and provide a point-to-point encoding. With a distributed web service you don't necessarily know the route a SOAP packet will take, so WS-Security applies security measures at the SOAP packet level rather than the transport level. The WSE documentation contains instructions for building a WSE WS-Security web service that can decrypt a SOAP message and a WSE WS-Security client that can encrypt a SOAP message. I'm going to use the instructions provided in the WSE documentation as a starting point  in part because it fulfils one-half of my encryption requirement and in part because the documentation is incorrect in several places and I will show you the correct version in this article. Let's go for building the web service first, then writing the client and generating the proxy class using Visual Studio.NET. &lt;br /&gt;I'm going to modify the FactorialService and client so that the client can send an encrypted request to the web service to generate the factorial of the encrypted value. Add a reference to Microsoft.Web.Services and System.Security by choosing Add Reference from the context menu on the References node in the Solution Explorer window. You can add both references in one hit in the Add Reference dialog by first choosing "Microsoft.Web.Services" and clicking "Select", followed by choosing "System.Security" and clicking "Select" again. Click on "OK" to complete adding the references. Add the following using directives somewhere near the top of your C# source file: &lt;/font&gt;&lt;br /&gt;&lt;font face="Courier New" size=2&gt;using Microsoft.Web.Services;&lt;br /&gt;using Microsoft.Web.Services.Security;&lt;br /&gt;using System.Security.Cryptography;&lt;br /&gt;using System.Security.&lt;br /&gt;	Cryptography.Xml;&lt;br /&gt;using System.Security.Permissions;&lt;/font&gt;&lt;br /&gt;&lt;font size=3&gt;Notice that the WSE documentation in Point 9.b is missing the using System.Security.Permissions; directive. &lt;br /&gt;In order to decrypt the incoming message, you need to provide a DecryptionKeyProvider in the form of a class. WSE will use your class to decrypt the SOAP message at the point of reception and then pass the decrypted message to your web service. As far as your main web service is concerned, it knows nothing about the encryption of the call  it is all handled by WSE and your own custom class. Point 10 in the WSE documentation describes the method of adding a class to be used for DecryptionKeyProvider, but it's unfortunately out-of-date in stating that your class needs to implement the IDecryptionKeyProvider interface. This is no longer true  your class should inherit from a WSE base class called DecryptionKeyProvider. Given that the example in the WSE documentation calls its own class DecryptionKeyProvider, if you also inherit from a class called DecryptionKeyProvider then you have a circular inheritance loop and the code will no longer compile. In summary, you need to change the inheritance and also call the class something different to the one in the WSE documentation. I called my class DecKeyProv and declared it as: &lt;/font&gt;&lt;br /&gt;&lt;font face="Courier New" size=2&gt;public class DecKeyProv :&lt;br /&gt;DecryptionKeyProvider&lt;/font&gt;&lt;br /&gt;&lt;font size=3&gt;The security attributes for this class are the same as in the WSE documentation, although the WSE documentation version will not compile due, firstly, to the missing using directive (dealt with above), and secondly in part due to the fact that the method as given does not compile! &lt;br /&gt;If you do try to compile the method GetDecryptionKey as given in the WSE documentation you will get an error to the effect of "not all control paths return a value". The easiest way of fixing this is to add return null; just after the close of the foreach loop as the last statement in the method that will fix the error. Now on to the warning: a warning is issued about your GetDecryptionKey method hiding the base class GetDecryptionKey method. What you need is to override the base class implementation so the declaration for your GetDecryptionKey method becomes: &lt;/font&gt;&lt;br /&gt;&lt;font face="Courier New" size=2&gt;public override DecryptionKey&lt;br /&gt;GetDecryptionKey(...).&lt;/font&gt;&lt;br /&gt;&lt;font size=3&gt;This is what an outline of the class and method should look like: &lt;/font&gt;&lt;br /&gt;&lt;font face="Courier New" size=2&gt;public class DecKeyProv :&lt;br /&gt;DecryptionKeyProvider&lt;br /&gt;{&lt;br /&gt;	public override&lt;br /&gt;	DecryptionKey&lt;br /&gt;	GetDecryptionKey(&lt;br /&gt;		string algorithmUri,&lt;br /&gt;		KeyInfo keyInfo)&lt;br /&gt;	{&lt;br /&gt;		// body as per WSE document&lt;br /&gt;		// (plus corrections)&lt;br /&gt;		// or exactly as in the code&lt;br /&gt;		// sample for this article&lt;br /&gt;		}&lt;br /&gt;	}&lt;/font&gt;&lt;br /&gt;&lt;font size=3&gt;The DecKeyProv class can be added to the FactorialService namespace. For ease of writing, I placed the class in the same source file as the main web service, although you could place it in a separate file if you wish. &lt;br /&gt;XML web service life just wouldn't be the same without editing an XML file somewhere or other, so I'll look next at what you need to do to the Web.Config file to get the WS-Security functionality up and running. &lt;br /&gt;The first thing you need to configure is the server-side to use the WS-Security implementation in WSE, so it's back to the Web.config file. I'm working on the basis that you've already added the standard WSE blurb as detailed in "Server-Side Configuration" above. A couple of things need to be in place in the Web.config file to cater for security. The first is to add a &lt;configsection&gt; that gives a name to the WSE library (we'll call it microsoft.web.services as per the WSE documentation). The second step involves using the microsoft.web.services section you've just defined to pull in your security class for decryption. You can add this directly beneath (not inside!) the &lt;configSections&gt; element. Both these steps are shown in Figure 5. &lt;br /&gt;Figure 5 &lt;br /&gt;The "type" attribute of the section tag (in &lt;configSections&gt;) is exactly the same as the "type" attribute as shown in Figure 1. I didn't re-format it here for display purposes to emphasise the fact that the type attribute should be on one line in the Web.config file. &lt;br /&gt;All the pieces are now in place and you should be able to build the web service successfully. &lt;/font&gt;&lt;br /&gt;&lt;font size=4&gt;Client Security&lt;/font&gt;&lt;br /&gt;&lt;font size=3&gt;Using the earlier client, add a reference to System.Security via Solution Explorer. Add the following using directives to the top of the source file: &lt;/font&gt;&lt;br /&gt;&lt;font face="Courier New" size=2&gt;using Microsoft.Web.Services.Security;&lt;br /&gt;using System.Web.Services.Protocols;&lt;br /&gt;using System.Security.Cryptography;&lt;br /&gt;using System.Security.&lt;br /&gt;	Cryptography.Xml;&lt;/font&gt;&lt;br /&gt;&lt;font size=3&gt;The procedure for encrypting your request follows a simple pattern: &lt;br /&gt;Generate an EncryptionKey object &lt;br /&gt;Modify the SOAP proxy class's requestContext to use the EncryptionKey &lt;br /&gt;Call the service &lt;br /&gt;The WSE documentation for "Encrypting a SOAP message Using a Shared Secret" gives an implementation of a method called GetEncryptionKey, which uses TripleDES as the encryption algorithm. We'll run with this version, so all you need do is add the GetEncryptionKey method to your client code. I made a slight modification to the visibility of the GetEncryptionKey that is made private in the WSE documentation. I turned it into a public static method to facilitate ease of use from my console application's Main method. &lt;br /&gt;The complete procedure for the client console app is reproduced here to show how the above three steps are executed. The code forms the body of Main. &lt;/font&gt;&lt;br /&gt;&lt;font face="Courier New" size=2&gt;// proxy class&lt;br /&gt;FactorialWse fs = new FactorialWse();&lt;br /&gt;&lt;br /&gt;// encryption key&lt;br /&gt;EncryptionKey key =&lt;br /&gt;	Class1.GetEncryptionKey();&lt;br /&gt;&lt;br /&gt;// modifying requestContext to encrypt&lt;br /&gt;SoapContext requestContext =&lt;br /&gt;	fs.RequestSoapContext;&lt;br /&gt;EncryptedData enc =&lt;br /&gt;	new EncryptedData(key);&lt;br /&gt;requestContext.Security.Elements.Add(&lt;br /&gt;	enc);&lt;br /&gt;requestContext.Timestamp.Ttl = 30000;&lt;br /&gt;	//30 secs, avoid replay hacks&lt;br /&gt;&lt;br /&gt;// actually calling the web service&lt;br /&gt;int val = 6;&lt;br /&gt;int fac = fs.Calc(val);&lt;br /&gt;Console.WriteLine("Factorial of {0}&lt;br /&gt;	is {1}", val, fac);&lt;/font&gt;&lt;br /&gt;&lt;font size=4&gt;WS-Attachments&lt;/font&gt;&lt;br /&gt;&lt;font size=3&gt;I need to send arbitrary binary data, and I may need to send it encrypted too, as it may contain personal or commercially sensitive information. WSE supports arbitrary transfer of binary attachments using DIME. &lt;br /&gt;To enable the web service to send an attachment using DIME, add the following using directive to FactorialService.asmx: using Microsoft.Web.Services.Dime; &lt;br /&gt;To actually send a binary attachment all you need do is add a DimeAttachment object to the Attachments collection of the SOAP response context. The DimeAttachment object wraps the binary data you wish to send. A code sample illustrates sending a GIF image file (roughly taken from the WSE documentation): &lt;/font&gt;&lt;br /&gt;&lt;font face="Courier New" size=2&gt;// 1. Get response context&lt;br /&gt;SoapContext ctx =&lt;br /&gt;	HttpSoapContext.ResponseContext;&lt;br /&gt;&lt;br /&gt;// 2. Create the dime attachment&lt;br /&gt;// object, wrapping the image file&lt;br /&gt;DimeAttachment att =&lt;br /&gt;	new DimeAttachment(&lt;br /&gt;	"image/gif", // MIME type&lt;br /&gt;	TypeFormatEnum.MediaType,&lt;br /&gt;					// media type enum&lt;br /&gt;	@"c:\myimage.gif");&lt;br /&gt;					// filename of image&lt;br /&gt;&lt;br /&gt;// 3. Add the DimeAttachment object&lt;br /&gt;// to the response&lt;br /&gt;ctx.Attachments.Add(att);&lt;/font&gt;&lt;br /&gt;&lt;font size=3&gt;That's it. In terms of our factorial web service, you can add a method that will return some binary data, call it, say, GetBinData. For the sake of consistency with the WSE documentation, let's stick to sending a binary image file for now. Add a public web services method to the factorial service like so: &lt;/font&gt;&lt;br /&gt;&lt;font face="Courier New" size=2&gt;[WebMethod]&lt;br /&gt;public void GetBinData()&lt;br /&gt;{&lt;br /&gt;	// body as above for sending GIF&lt;br /&gt;	// image via DIME&lt;br /&gt;}&lt;/font&gt;&lt;br /&gt;&lt;font size=3&gt;To obtain some test data, just copy any GIF image you have locally to the root directory of the C drive and rename it to myimage.gif so that the web service can locate it. The client needs to be able to get the binary attachment from the SOAP message, a process that turns out to be relatively simple. The client looks at the Attachments collection of the ResponseSoapContext object exposed from the client's WSE proxy class. The WSE documentation shows a simple C# client application displaying the image in a picture window. The WSE sample application meets all the requirements of proving that WSE's WS-Attachments is working fine, so I won't produce a separate client for this article. &lt;/font&gt;&lt;br /&gt;&lt;font size=4&gt;Summary&lt;/font&gt;&lt;br /&gt;&lt;font size=3&gt;This article has looked at a readily available implementation of the two web services standards (WS-Security and WS-Attachments), and has hopefully given you a starting point from which you can expand your web service implementations on the .NET platform using WSE. &lt;/font&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6903337-111035215677926526?l=dotnetfaqs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetfaqs.blogspot.com/feeds/111035215677926526/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6903337&amp;postID=111035215677926526' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6903337/posts/default/111035215677926526'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6903337/posts/default/111035215677926526'/><link rel='alternate' type='text/html' href='http://dotnetfaqs.blogspot.com/2005/03/net-web-services-using-wse.html' title='.NET Web Services using WSE'/><author><name>Ashith Raj</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6903337.post-111034902873018203</id><published>2005-03-08T22:16:00.000-08:00</published><updated>2005-03-08T22:17:08.733-08:00</updated><title type='text'>Passing Methods As Parameters in .NET/C#</title><content type='html'>Passing Methods As Parameters: Delegates to the Answer&lt;br /&gt;On the &lt;a href="http://aspadvice.com/"&gt;ASPAdvice&lt;/a&gt; &lt;a href="http://www.aspadvice.com/SignUp/list.aspx?l=13&amp;c=23"&gt;C# list&lt;/a&gt; someone had asked, "Is it was possible to pass a method as a parameter."&lt;br /&gt;The answer of course is yes, by using delegates. The follow is a rather simple example.//First, define a delegate with the signature you wish&lt;br /&gt;//to pass as a parameter&lt;br /&gt;public delegate int ComputeTwoNumbers(int x, int y);&lt;br /&gt;//Simple class with 4 methods which match our delegate signature&lt;br /&gt;public class ComplexMathmatics&lt;br /&gt;{&lt;br /&gt;public int Multiply(int x, int y)&lt;br /&gt;{&lt;br /&gt;return x * y;&lt;br /&gt;}&lt;br /&gt;public int Divide(int x, int y)&lt;br /&gt;{&lt;br /&gt;return x/y;&lt;br /&gt;}&lt;br /&gt;public int Subtract(int x, int y)&lt;br /&gt;{&lt;br /&gt;return x - y;&lt;br /&gt;}&lt;br /&gt;public int Add(int x, int y)&lt;br /&gt;{&lt;br /&gt;return x + y;&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;//Our example class which takes a method (via our delegate) as a parameter.&lt;br /&gt;public class Calculator&lt;br /&gt;{&lt;br /&gt;public int Compute(int x, int y, ComputeTwoNumbers c2n)&lt;br /&gt;{&lt;br /&gt;return c2n(x,y);&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;//Our example in action&lt;br /&gt;//Delcare a new instance of our super complex math class :)&lt;br /&gt;public ComplexMathmatics math = new ComplexMathmatics();&lt;br /&gt;//create our "method" parameters&lt;br /&gt;ComputeTwoNumbers multiply = new ComputeTwoNumbers (math.Multiply);&lt;br /&gt;ComputeTwoNumbers divide = new ComputeTwoNumbers (math.Divide);&lt;br /&gt;ComputeTwoNumbers subtract = new ComputeTwoNumbers (math.Subtract);&lt;br /&gt;ComputeTwoNumbers add = new ComputeTwoNumbers (math.Add);&lt;br /&gt;//lets get ready to work it :)&lt;br /&gt;Calculator calc = new Calculator ();&lt;br /&gt;int x = 4;&lt;br /&gt;int y = 10;&lt;br /&gt;int m = calc.Compute(x,y,multiply);&lt;br /&gt;int d = calc.Compute(x,y,divide);&lt;br /&gt;int s = calc.Compute(x,y,subtract);&lt;br /&gt;int a = calc.Compute(x,y,add);&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6903337-111034902873018203?l=dotnetfaqs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetfaqs.blogspot.com/feeds/111034902873018203/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6903337&amp;postID=111034902873018203' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6903337/posts/default/111034902873018203'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6903337/posts/default/111034902873018203'/><link rel='alternate' type='text/html' href='http://dotnetfaqs.blogspot.com/2005/03/passing-methods-as-parameters-in-netc.html' title='Passing Methods As Parameters in .NET/C#'/><author><name>Ashith Raj</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6903337.post-110993055393588258</id><published>2005-03-04T02:00:00.000-08:00</published><updated>2005-03-04T02:05:44.986-08:00</updated><title type='text'>Debugging JavaScript in VS.NET for ASP.NET application</title><content type='html'>The following tip will explain how you can setup your JavaScript code to be debugged in VS.NET.&lt;br /&gt;1. Create a file named something.js and then add all your JavaScript functions to this file.&lt;br /&gt;2. Add the js file to your ASP.NET project.&lt;br /&gt;3. Then in every ASP.NET page that will call one of those functions add the following line to the HEAD section of the page.  script lanaguage=“javascript“ src=“something.js“ &lt;br /&gt;4. Before running the solution in debug mode set a break point in the .js file where you would like it to stop.&lt;br /&gt;&lt;br /&gt;Now run the solution in debug mode and VS.NET will break at that point every time the application executes that code.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6903337-110993055393588258?l=dotnetfaqs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetfaqs.blogspot.com/feeds/110993055393588258/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6903337&amp;postID=110993055393588258' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6903337/posts/default/110993055393588258'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6903337/posts/default/110993055393588258'/><link rel='alternate' type='text/html' href='http://dotnetfaqs.blogspot.com/2005/03/debugging-javascript-in-vsnet-for.html' title='Debugging JavaScript in VS.NET for ASP.NET application'/><author><name>Ashith Raj</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6903337.post-110992111384711674</id><published>2005-03-03T23:21:00.000-08:00</published><updated>2005-03-03T23:25:13.850-08:00</updated><title type='text'>.NET/C#/ASP.NET Interview Questions</title><content type='html'>Here's a list of some questions I use when interviewing .Net developers.&lt;br /&gt;&lt;br /&gt;Here's a list of some questions I use when interviewing .Net developers. It is not exhaustive, but should give the interviewer an idea of the basic level of expertise an individual has. If the interview is for a senior developer, these questions should be followed by more in-depth questions that relate to the specific projects (Web Services, SOA, XML, etc).&lt;br /&gt;ASP.Net&lt;br /&gt;&lt;br /&gt;Q. Explain the differences between Server-side and Client-side code? A. Server-side code executes on the server. Client-side code executes in the context of the clients' browser.&lt;br /&gt;Q. What are some ways to manage state in an ASP.Net application? A. Session objects, Application objects, ViewState, cookies, hidden form fields.&lt;br /&gt;Q. What does the "EnableViewState" property do? Why would I want it on or off? A. It allows page objects to save their state in a Base64 encoded string in the page HTML. One should only have it enabled when needed because it adds to the page size and can get fairly large for complex pages with many controls. (It takes longer to download the page).&lt;br /&gt;Q. What is the difference between Server.Transfer and Response.Redirect? Why would I choose one over the other? A. Server.Transfer transfers excution directly to another page. Response.Redirect sends a response to the client and directs the client (the browser) to load the new page (it causes a roundtrip). If you don't need to execute code on the client, Transfer is more efficient.&lt;br /&gt;Q. How can I maintain Session state in a Web Farm or Web Garden? A. Use a State Server or SQL Server to store the session state.&lt;br /&gt;Q. What base class do all Web Forms inherit from? A. The Page class.&lt;br /&gt;Q. What does WSDL stand for? What does it do? A.(Web Services Description Language). It describes the interfaces and other information of a web service.&lt;br /&gt;Q. Which  WebForm Validator control would you use if you needed to make sure the values in two different WebForm controls matched? A. CompareValidator Control&lt;br /&gt;Q. What property must you set, and what method must you call in your code, in order to bind the data from some data source to the Repeater control? A. You must set the DataSource property and call the DataBind method.&lt;br /&gt;C# Questions&lt;br /&gt;Q. Can you explain what inheritance is and an example of when you might use it? A. Inheritance allows us to extend the functionality of a base class. It is an "Is a" type of relationship rather than a "Uses" type of relationship (a dalmation IS A dog which IS A canine which IS A mammal - dalmations inherist from dog which inherits from canine which inherits from mammal). All child classes retain the properties and methods of their parent classes but may override them. When you want to inherit (use the functionality of) another class. Base Class Employee. A Manager class could be derived from the Employee base class.&lt;br /&gt;Q. Does C# support multiple-inheritance? A. No, use interfaces instead.&lt;br /&gt;Q. Can you prevent your class from being inherited by another class? A. Yes.  The keyword “sealed” will prevent the class from being inherited.&lt;br /&gt;Q. What does the keyword “virtual” declare for a method or property? A. The method or property can be overridden.&lt;br /&gt;Q. What's the top .NET class that everything is derived from? A. System.Object.&lt;br /&gt;Q. What does it mean that a String is immutable? A. Strings cannot be altered. When you alter a string (by adding to it for example), you are actually creating a new string.&lt;br /&gt;Q. If I have to alter a string many times, such as mutliple concatenations, what class should I use? A. StringBuilder. It is not immutable and is very efficient.&lt;br /&gt;Q. In a Try - Catch - Finally block, will the finally block execute if an exception has not occurred? If an Exception has occurred? A. Yes and yes.&lt;br /&gt;Q. Whats MSIL, and why should developers need an appreciation of it, if at all? A. MSIL is the Microsoft Intermediate Language. All .NET compatible languages will get converted to MSIL.&lt;br /&gt;Q. Explain the three tier or n-Tier model. A. Presentation (UI), business (logic and underlying code) and data (from storage or other sources).&lt;br /&gt;Q. What is SOA? A. Service Oriented Architecture. In SOA you create an abstract layer that your applications use to access various "services" and can aggregate the services. These services could be databases, web services, message queues or other sources. The Service Layer provides a way to access these services that the applications do not need to know how the access is done. For example, to get a full customer record, I might need to get data from a SGL Server database, a web service and a message queue. The Service layer hides this from the calling application. All the application knows is that it asked for a full customer record. It doesn't know what system or systems it came from or how it was retrieved.&lt;br /&gt;Q. What is the role of the DataReader class in ADO.NET connections? A. It returns a forward-only, read-only view of data from the data source when the command is executed.&lt;br /&gt;Q. Is XML case-sensitive? A. Yes.&lt;br /&gt;Q. What is the CLR? A. Common Language Runtime&lt;br /&gt;Q. Can you explain some differences between an ADO.NET Dataset and an ADO Recordset? (Or describe some features of a Dataset).A. A DataSet can represent an entire relational database in memory, complete with tables, relations, and views.  A DataSet is designed to work without any continuing connection to the original data source.  Data in a DataSet is bulk-loaded, rather than being loaded on demand.  There's no concept of cursor types in a DataSet.  DataSets have no current record pointer You can use For Each loops to move through the data.  You can store many edits in a DataSet, and write them to the original data source in a single operation. Though the DataSet is universal, other objects in ADO.NET come in different versions for different data sources&lt;br /&gt;Q. Name some of the Microsoft Application Blocks. Have you used any? Which ones? A. Examples:Exception Management Logging Data Access User Interface Caching Application Block for .NET Asynchronous Invocation Application Block for .NET Configuration Management Application Block for .NET (there are others) We use Exception and Data Access&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6903337-110992111384711674?l=dotnetfaqs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetfaqs.blogspot.com/feeds/110992111384711674/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6903337&amp;postID=110992111384711674' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6903337/posts/default/110992111384711674'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6903337/posts/default/110992111384711674'/><link rel='alternate' type='text/html' href='http://dotnetfaqs.blogspot.com/2005/03/netcaspnet-interview-questions.html' title='.NET/C#/ASP.NET Interview Questions'/><author><name>Ashith Raj</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6903337.post-110985473987687589</id><published>2005-03-03T04:38:00.000-08:00</published><updated>2005-03-03T04:58:59.886-08:00</updated><title type='text'>Biztalk Webcasts</title><content type='html'>Support Web Casts&lt;br /&gt;The following is a list of previously recorded Support Web Casts for BizTalk Server 2004. Upcoming web casts can be &lt;a href="http://support.microsoft.com/default.aspx?scid=fh;RID;webcst&amp;style=type2&amp;amp;sd=gn"&gt;found here&lt;/a&gt;.&lt;br /&gt;BizTalk 2004 Overview &amp; VS.NET Integration&lt;a href="http://www.placeware.com/cc/microsoft/view?id=JUPBAG&amp;amp;pw=35DKTQ"&gt;http://www.placeware.com/cc/microsoft/view?id=JUPBAG&amp;pw=35DKTQ&lt;/a&gt;&lt;br /&gt;Setup &amp;amp; Installation&lt;a href="http://www.placeware.com/cc/microsoft/view?id=JUPBAG-1&amp;pw=35DKTQ"&gt;http://www.placeware.com/cc/microsoft/view?id=JUPBAG-1&amp;amp;pw=35DKTQ&lt;/a&gt;&lt;br /&gt;Comparison &amp; Migration&lt;a href="http://www.placeware.com/cc/microsoft/view?id=JUPBAG-2&amp;amp;pw=35DKTQ"&gt;http://www.placeware.com/cc/microsoft/view?id=JUPBAG-2&amp;pw=35DKTQ&lt;/a&gt;&lt;br /&gt;XML Editor&lt;a href="http://www.placeware.com/cc/microsoft/view?id=JUPBAG-3&amp;amp;pw=35DKTQ"&gt;http://www.placeware.com/cc/microsoft/view?id=JUPBAG-3&amp;pw=35DKTQ&lt;/a&gt;&lt;br /&gt;XML Mapper&lt;a href="http://www.placeware.com/cc/microsoft/view?id=JUPBAG-4&amp;amp;pw=35DKTQ"&gt;http://www.placeware.com/cc/microsoft/view?id=JUPBAG-4&amp;pw=35DKTQ&lt;/a&gt;&lt;br /&gt;Orchestration&lt;a href="http://www.placeware.com/cc/microsoft/view?id=JUPBAG-5&amp;amp;pw=35DKTQ"&gt;http://www.placeware.com/cc/microsoft/view?id=JUPBAG-5&amp;pw=35DKTQ&lt;/a&gt;&lt;br /&gt;Deployment&lt;a href="http://www.placeware.com/cc/microsoft/view?id=JUPBAG-6&amp;amp;pw=35DKTQ"&gt;http://www.placeware.com/cc/microsoft/view?id=JUPBAG-6&amp;pw=35DKTQ&lt;/a&gt;&lt;br /&gt;Content Based Routing&lt;a href="http://www.placeware.com/cc/microsoft/view?id=JUPBAG-7&amp;amp;pw=35DKTQ"&gt;http://www.placeware.com/cc/microsoft/view?id=JUPBAG-7&amp;pw=35DKTQ&lt;/a&gt;&lt;br /&gt;Pipeline &amp;amp; Custom Components&lt;a href="http://www.placeware.com/cc/microsoft/view?id=JUPBAG-8&amp;pw=35DKTQ"&gt;http://www.placeware.com/cc/microsoft/view?id=JUPBAG-8&amp;amp;pw=35DKTQ&lt;/a&gt;&lt;br /&gt;BizTalk Message Queuing (MSMQ/T)&lt;a href="http://www.placeware.com/cc/microsoft/view?id=6DWNGR-16&amp;pw=494ZRK"&gt;http://www.placeware.com/cc/microsoft/view?id=6DWNGR-16&amp;amp;pw=494ZRK&lt;/a&gt;&lt;br /&gt;Web Services and Orchestration&lt;a href="http://www.placeware.com/cc/microsoft/view?id=JUPBAG-10&amp;pw=35DKTQ"&gt;http://www.placeware.com/cc/microsoft/view?id=JUPBAG-10&amp;amp;pw=35DKTQ&lt;/a&gt;&lt;br /&gt;Rules Composer&lt;a href="http://www.placeware.com/cc/microsoft/view?id=JUPBAG-11&amp;pw=35DKTQ"&gt;http://www.placeware.com/cc/microsoft/view?id=JUPBAG-11&amp;amp;pw=35DKTQ&lt;/a&gt;&lt;br /&gt;Advanced Orchestration, Part 1&lt;a href="http://www.placeware.com/cc/microsoft/view?id=JUPBAG-12&amp;pw=35DKTQ"&gt;http://www.placeware.com/cc/microsoft/view?id=JUPBAG-12&amp;amp;pw=35DKTQ&lt;/a&gt;&lt;br /&gt;Health and Activity Tracking (HAT) &amp; Debugging&lt;a href="http://www.placeware.com/cc/microsoft/view?id=JUPBAG-13&amp;amp;pw=35DKTQ"&gt;http://www.placeware.com/cc/microsoft/view?id=JUPBAG-13&amp;pw=35DKTQ&lt;/a&gt;&lt;br /&gt;Business Activity Services (BAS)&lt;a href="http://www.placeware.com/cc/microsoft/view?id=JUPBAG-14&amp;amp;pw=35DKTQ"&gt;http://www.placeware.com/cc/microsoft/view?id=JUPBAG-14&amp;pw=35DKTQ&lt;/a&gt;&lt;br /&gt;Advanced Orchestration, Part 2&lt;a href="http://www.placeware.com/cc/microsoft/view?id=JUPBAG-15&amp;amp;pw=35DKTQ"&gt;http://www.placeware.com/cc/microsoft/view?id=JUPBAG-15&amp;pw=35DKTQ&lt;/a&gt;&lt;br /&gt;Human Workflow Services (HWS)&lt;a href="http://www.placeware.com/cc/microsoft/view?id=JUPBAG-16&amp;amp;pw=35DKTQ"&gt;http://www.placeware.com/cc/microsoft/view?id=JUPBAG-16&amp;pw=35DKTQ&lt;/a&gt;&lt;br /&gt;InfoPath/BizTalk 2004 Integration&lt;a href="http://www.placeware.com/cc/microsoft/view?id=JUPBAG-17&amp;amp;pw=35DKTQ"&gt;http://www.placeware.com/cc/microsoft/view?id=JUPBAG-17&amp;pw=35DKTQ&lt;/a&gt;&lt;br /&gt;BizTalk Adapter Framework&lt;a href="http://www.placeware.com/cc/microsoft/view?id=JUPBAG-18&amp;amp;pw=35DKTQ"&gt;http://www.placeware.com/cc/microsoft/view?id=JUPBAG-18&amp;pw=35DKTQ&lt;/a&gt;&lt;br /&gt;Business Activity Monitoring (BAM)&lt;a href="http://www.placeware.com/cc/microsoft/view?id=JUPBAG-19&amp;amp;pw=35DKTQ"&gt;http://www.placeware.com/cc/microsoft/view?id=JUPBAG-19&amp;pw=35DKTQ&lt;/a&gt;&lt;br /&gt;BizTalk Explorer &amp;amp; Administration&lt;a href="http://www.placeware.com/cc/microsoft/view?id=JUPBAG-20&amp;pw=35DKTQ"&gt;http://www.placeware.com/cc/microsoft/view?id=JUPBAG-20&amp;amp;pw=35DKTQ&lt;/a&gt;&lt;br /&gt;Enterprise Single Sign-On (SSO)&lt;a href="http://www.placeware.com/cc/microsoft/view?id=JUPBAG-21&amp;pw=35DKTQ"&gt;http://www.placeware.com/cc/microsoft/view?id=JUPBAG-21&amp;amp;pw=35DKTQ&lt;/a&gt;&lt;br /&gt;EDI Covast Adapter&lt;a href="http://www.placeware.com/cc/microsoft/view?id=JUPBAG-22&amp;pw=35DKTQ"&gt;http://www.placeware.com/cc/microsoft/view?id=JUPBAG-22&amp;amp;pw=35DKTQ&lt;/a&gt;&lt;br /&gt;SQL Adapter&lt;a href="http://www.placeware.com/cc/microsoft/view?id=JUPBAG-23&amp;pw=35DKTQ"&gt;http://www.placeware.com/cc/microsoft/view?id=JUPBAG-23&amp;amp;pw=35DKTQ&lt;/a&gt;&lt;br /&gt;Performance, Stress &amp; Scalability&lt;a href="http://www.placeware.com/cc/microsoft/view?id=JUPBAG-24&amp;amp;pw=35DKTQ"&gt;http://www.placeware.com/cc/microsoft/view?id=JUPBAG-24&amp;pw=35DKTQ&lt;/a&gt;&lt;br /&gt;SAP Adapter - Bryan McCutchan&lt;a href="http://www.placeware.com/cc/microsoft/view?id=JUPBAG-25&amp;amp;pw=35DKTQ"&gt;http://www.placeware.com/cc/microsoft/view?id=JUPBAG-25&amp;pw=35DKTQ&lt;/a&gt;&lt;br /&gt;Migrating from BizTalk 2002 to 2004&lt;a href="http://www.placeware.com/cc/microsoft/view?id=JUPBAG-26&amp;amp;pw=35DKTQ"&gt;http://www.placeware.com/cc/microsoft/view?id=JUPBAG-26&amp;pw=35DKTQ&lt;/a&gt;&lt;br /&gt;MQSeries Adapter&lt;a href="http://www.placeware.com/cc/microsoft/view?id=JUPBAG-27&amp;amp;pw=35DKTQ"&gt;http://www.placeware.com/cc/microsoft/view?id=JUPBAG-27&amp;pw=35DKTQ&lt;/a&gt;&lt;br /&gt;SharePoint Adapter&lt;a href="http://www.placeware.com/cc/microsoft/view?id=JUPBAG-28&amp;amp;pw=35DKTQ"&gt;http://www.placeware.com/cc/microsoft/view?id=JUPBAG-28&amp;pw=35DKTQ&lt;/a&gt;&lt;br /&gt;Advanced Orchestration&lt;a href="http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032253626"&gt;http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032253626&lt;/a&gt;&lt;br /&gt;HIPAA 3.0 Accelerator&lt;a href="http://www.placeware.com/cc/microsoft/view?id=JUPBAG-29&amp;amp;pw=35DKTQ"&gt;http://www.placeware.com/cc/microsoft/view?id=JUPBAG-29&amp;pw=35DKTQ&lt;/a&gt;&lt;br /&gt;Advanced Dev - Crypto Pipeline, Submit Direct, Orchestration&lt;a href="http://www.placeware.com/cc/microsoft/view?id=JUPBAG-31&amp;amp;pw=35DKTQ"&gt;http://www.placeware.com/cc/microsoft/view?id=JUPBAG-31&amp;pw=35DKTQ&lt;/a&gt;&lt;br /&gt;Trading Partner Management &amp;amp; FTP Adapter&lt;a href="http://www.placeware.com/cc/microsoft/view?id=JUPBAG-30&amp;pw=35DKTQ"&gt;http://www.placeware.com/cc/microsoft/view?id=JUPBAG-30&amp;amp;pw=35DKTQ&lt;/a&gt;&lt;br /&gt;SWIFT Accelerator&lt;a href="http://www.placeware.com/cc/microsoft/view?id=JUPBAG-32&amp;pw=35DKTQ"&gt;http://www.placeware.com/cc/microsoft/view?id=JUPBAG-32&amp;amp;pw=35DKTQ&lt;/a&gt;&lt;br /&gt;RosettaNet Accelerator&lt;a href="http://www.placeware.com/cc/microsoft/view?id=JUPBAG-33&amp;pw=35DKTQ"&gt;http://www.placeware.com/cc/microsoft/view?id=JUPBAG-33&amp;amp;pw=35DKTQ&lt;/a&gt;&lt;br /&gt;HL7 Accelerator&lt;a href="http://www.placeware.com/cc/microsoft/view?id=JUPBAG-34&amp;pw=35DKTQ"&gt;http://www.placeware.com/cc/microsoft/view?id=JUPBAG-34&amp;amp;pw=35DKTQ&lt;/a&gt;&lt;br /&gt;BizTalk Configuration and Administration&lt;a href="http://www.placeware.com/cc/microsoft/view?id=JUPBAG-35&amp;pw=35DKTQ"&gt;http://www.placeware.com/cc/microsoft/view?id=JUPBAG-35&amp;amp;pw=35DKTQ&lt;/a&gt;&lt;br /&gt;Orchestration Drilldown: Transactions, Exceptions and Compensation&lt;a href="http://www.placeware.com/cc/microsoft/view?id=JUPBAG-36&amp;pw=35DKTQ"&gt;http://www.placeware.com/cc/microsoft/view?id=JUPBAG-36&amp;amp;pw=35DKTQ&lt;/a&gt;&lt;br /&gt;BizTalk Adapter Wizard&lt;a href="http://www.placeware.com/cc/microsoft/view?id=JUPBAG-37&amp;pw=35DKTQ"&gt;http://www.placeware.com/cc/microsoft/view?id=JUPBAG-37&amp;amp;pw=35DKTQ&lt;/a&gt;&lt;br /&gt;HIS Integration with BizTalk&lt;a href="http://www.placeware.com/cc/microsoft/view?id=JUPBAG-38&amp;pw=35DKTQ"&gt;http://www.placeware.com/cc/microsoft/view?id=JUPBAG-38&amp;amp;pw=35DKTQ&lt;/a&gt;&lt;br /&gt;Advanced Mapping&lt;a href="http://www.placeware.com/cc/microsoft/view?id=JUPBAG-39&amp;pw=35DKTQ"&gt;http://www.placeware.com/cc/microsoft/view?id=JUPBAG-39&amp;amp;pw=35DKTQ&lt;/a&gt;&lt;br /&gt;BizTalk PowerToys&lt;a href="http://www.placeware.com/cc/microsoft/view?id=JUPBAG-40&amp;pw=35DKTQ"&gt;http://www.placeware.com/cc/microsoft/view?id=JUPBAG-40&amp;amp;pw=35DKTQ&lt;/a&gt;&lt;br /&gt;BizTalk 2004 Administration Management Tool&lt;a href="http://www.placeware.com/cc/microsoft/view?id=JUPBAG-41&amp;pw=35DKTQ"&gt;http://www.placeware.com/cc/microsoft/view?id=JUPBAG-41&amp;amp;pw=35DKTQ&lt;/a&gt;&lt;br /&gt;Microsoft BizTalk Adapter for WSE 2.0 Technical Overview&lt;a href="http://www.placeware.com/cc/microsoft/view?id=WSE2.0&amp;pw=WSE2.0"&gt;http://www.placeware.com/cc/microsoft/view?id=WSE2.0&amp;amp;pw=WSE2.0&lt;/a&gt;&lt;br /&gt;UK SDC BizTalk 2004 Documenter v.2.0&lt;a href="http://www.placeware.com/cc/microsoft/view?id=JUPBAG-42&amp;pw=35DKTQ"&gt;http://www.placeware.com/cc/microsoft/view?id=JUPBAG-42&amp;amp;pw=35DKTQ&lt;/a&gt;&lt;br /&gt;BAM Drilldown&lt;a href="http://www.placeware.com/cc/microsoft/view?id=JUPBAG-43&amp;pw=35DKTQ"&gt;http://www.placeware.com/cc/microsoft/view?id=JUPBAG-43&amp;amp;pw=35DKTQ&lt;/a&gt;&lt;br /&gt;Building Adapters From Scratch Using VB.NET&lt;a href="http://www.placeware.com/cc/microsoft/view?id=JUPBAG-44&amp;pw=35DKTQ"&gt;http://www.placeware.com/cc/microsoft/view?id=JUPBAG-44&amp;amp;pw=35DKTQ&lt;/a&gt;&lt;br /&gt;BizTalk 2004 Adapter for MSMQ (NAIAD)&lt;a href="http://www.placeware.com/cc/microsoft/view?id=JUPBAG-45&amp;pw=35DKTQ"&gt;http://www.placeware.com/cc/microsoft/view?id=JUPBAG-45&amp;amp;pw=35DKTQ&lt;/a&gt;&lt;br /&gt;BizTalk Native Adapter &amp; Orchestration Tips &amp;amp; Tricks&lt;a href="http://www.placeware.com/cc/microsoft/view?id=JUPBAG-46&amp;pw=35DKTQ"&gt;http://www.placeware.com/cc/microsoft/view?id=JUPBAG-46&amp;amp;pw=35DKTQ&lt;/a&gt;&lt;br /&gt;Trading Partner Management (TPM) &amp; Business Activity Services (BAS)&lt;a href="http://www.placeware.com/cc/microsoft/view?id=JUPBAG-47&amp;amp;pw=35DKTQ"&gt;http://www.placeware.com/cc/microsoft/view?id=JUPBAG-47&amp;pw=35DKTQ&lt;/a&gt;&lt;br /&gt;WRQ Verastream BizTalk 2004 Screen Scraping Adapter for Legacy Integration&lt;a href="http://www.placeware.com/cc/microsoft/view?id=JUPBAG-48&amp;amp;pw=35DKTQ"&gt;http://www.placeware.com/cc/microsoft/view?id=JUPBAG-48&amp;pw=35DKTQ&lt;/a&gt;&lt;br /&gt;Clearway Workflow Suite and Microsoft BizTalk&lt;a href="http://www.placeware.com/cc/microsoft/view?id=JUPBAG-49&amp;amp;pw=35DKTQ"&gt;http://www.placeware.com/cc/microsoft/view?id=JUPBAG-49&amp;pw=35DKTQ&lt;/a&gt;&lt;br /&gt;ODBC Adapter for BizTalk Server 2004&lt;a href="http://www.placeware.com/cc/microsoft/view?id=BTSBAG-54&amp;amp;pw=35DKTQ"&gt;http://www.placeware.com/cc/microsoft/view?id=BTSBAG-54&amp;amp;pw=35DKTQ&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6903337-110985473987687589?l=dotnetfaqs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetfaqs.blogspot.com/feeds/110985473987687589/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6903337&amp;postID=110985473987687589' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6903337/posts/default/110985473987687589'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6903337/posts/default/110985473987687589'/><link rel='alternate' type='text/html' href='http://dotnetfaqs.blogspot.com/2005/03/biztalk-webcasts.html' title='Biztalk Webcasts'/><author><name>Ashith Raj</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6903337.post-110604363670689475</id><published>2005-01-18T02:16:00.000-08:00</published><updated>2005-01-18T02:20:36.706-08:00</updated><title type='text'>To Install Avalon and WinFX on Windows server 2003</title><content type='html'>Free pre-release download of Avalon and Visual Studio&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;SUMMARY:&lt;/strong&gt;Microsoft has released a free pre-alpha copy of Avalon and Visual Studio Express for public download.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;DEFINITIONS FOR NEWBIES LIKE ME:&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;Pre-Alpha&lt;/strong&gt; - A version of software still under development, which means this version's API isn't 100% permanent.&lt;br /&gt;&lt;strong&gt;Visual Studio Express&lt;/strong&gt; - A lightweight version of Visual Studio for C# or Visual Basic.&lt;br /&gt;&lt;strong&gt;Avalon &lt;/strong&gt;- Microsoft's next-generation UI platform that runs on WinXP, Win2003, and Longhorn.WinFX -&lt;br /&gt;&lt;br /&gt; I couldn't find a one-sentence definition on the web, so here's mine...&lt;br /&gt;&lt;strong&gt;WinFX&lt;/strong&gt; is Microsoft's next-generation API for building Windows applications, all based on the .Net 2.0 managed code framework. WinFX consists of several parts, and Avalon is a part of WinFX. Visual Studio is the best tool for writing WinFX applications in C# or Visual Basic.&lt;br /&gt;&lt;strong&gt;SDK&lt;/strong&gt; - Acronym for software development kit, which usually contains code samples, tools, and documentation for writing software. The WinFX SDK contains all those things for writing software based on WinFX technology.&lt;br /&gt;&lt;strong&gt;Avalon CTP&lt;/strong&gt; - Acronym for "Avalon Community Technology Preview". It includes WinFX SDK, .Net 2.0 Framework, and Avalon. It doesn't include Visual Studio, which you have to install separately.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;DOWNLOADS:&lt;/strong&gt;&lt;br /&gt;Avalon with WinFX - &lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=C8F904E1-B4CA-402B-ACCF-AAA2BD60DA74&amp;displaylang=en"&gt;http://www.microsoft.com/downloads/details.aspx?familyid=C8F904E1-B4CA-402B-ACCF-AAA2BD60DA74&amp;amp;displaylang=en&lt;/a&gt;&lt;br /&gt;Visual Studio C# Express - &lt;a href="http://lab.msdn.microsoft.com/express/vcsharp/"&gt;http://lab.msdn.microsoft.com/express/vcsharp/&lt;/a&gt;&lt;br /&gt;Visual Studio C# Express - &lt;a href="http://lab.msdn.microsoft.com/express/vbasic/"&gt;http://lab.msdn.microsoft.com/express/vbasic/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;INSTALLATION SEQUENCE:&lt;/strong&gt;&lt;br /&gt;I messed up on the sequence of installation steps, so I wrote down a clearer set of steps for myself:0. Make sure you've uninstalled the ".Net 2.0 Beta 1 Framework" if you had previously installed an earlier version of WinFX. Skip this step if this is your first time installing the WinFX SDK on this machine.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;1.&lt;/strong&gt; Download and install Visual Studio C# Express. Make sure you install it in the default directory.&lt;br /&gt;&lt;strong&gt;2.&lt;/strong&gt; Download the "Avalon CTP" installer and run it.&lt;br /&gt;&lt;strong&gt;3.&lt;/strong&gt; Burn a CD with the "en_winfx_sdk_ctp.iso" file after you've run the avalon ctp installer. (To avoid burning a CD-ROM, you can use the "Daemon Tools CD emulator" to access the iso file as a virtual CD drive if you know how from http://www.daemon-tools.cc, but run third-party software at your own risk).&lt;br /&gt;&lt;strong&gt;4.&lt;/strong&gt; After accessing the CD-ROM, a startup HTML page will appear. Click on the "Installation" link.&lt;br /&gt;&lt;strong&gt;5.&lt;/strong&gt; Skip the step for installing .Net 2.0 because it was automatically installed with Visual Studio C# Express from step 1.&lt;br /&gt;&lt;strong&gt;6.&lt;/strong&gt; Install Avalon.&lt;br /&gt;&lt;strong&gt;7.&lt;/strong&gt; Install the WinFX SDK.&lt;br /&gt;&lt;strong&gt;8.&lt;/strong&gt; Run the batch file named "ConfigureAvalonForExpressSKUs.cmd" from your Avalon CTP folder to get Avalon project templates in Visual Studio.&lt;br /&gt;&lt;strong&gt;9.&lt;/strong&gt; From Start menu, access Programs/Microsoft WinFX SDK/WinFX SDK Documentation.10. Start reading from the top, and follow the samples :-)&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Whew, that's a lot of steps.&lt;/em&gt; Last year, it was more complicated, so this is an improvement, but I hope they simplify it even more in the future!&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6903337-110604363670689475?l=dotnetfaqs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetfaqs.blogspot.com/feeds/110604363670689475/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6903337&amp;postID=110604363670689475' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6903337/posts/default/110604363670689475'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6903337/posts/default/110604363670689475'/><link rel='alternate' type='text/html' href='http://dotnetfaqs.blogspot.com/2005/01/to-install-avalon-and-winfx-on-windows.html' title='To Install Avalon and WinFX on Windows server 2003'/><author><name>Ashith Raj</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6903337.post-110559614302555494</id><published>2005-01-12T21:58:00.000-08:00</published><updated>2005-01-12T22:13:01.466-08:00</updated><title type='text'>The SQL Server System Configuration Checker cannot be executed due to WMI configuration on the machine Error:2147749907 (0x80041013).</title><content type='html'>I was excited to install SQL Server 2005 Beta 2 on my Win2k3 Server.&lt;br /&gt;&lt;br /&gt;The 2.0 Framework, SNAC, and Support files appear to go on fine. Our install failed at the point where the Setup Consistency Checker (SSC) was supposed to run.&lt;br /&gt;&lt;br /&gt;Microsoft SQL Server 2005 Beta 2 Setup&lt;br /&gt;---------------------------&lt;br /&gt;The SQL Server System Configuration Checker cannot be executed due to WMI configuration on the machine &lt;machinename&gt;Error:2147749907 (0x80041013).&lt;br /&gt;&lt;br /&gt;I also saw this in a log file;&lt;br /&gt;&lt;br /&gt;Windows Management Instrumentation (WMI) is not functioning properly. Further checks cannot be performed. Action: Please make sure Windows Management Instrumentation (WMI) is functioning properly. The SQL Server System Configuration Checker cannot be executed due to WMI configuration on the machine &lt;yourmachinename&gt;Error:2147749890 (0x80041002).&lt;br /&gt;&lt;br /&gt;First, to get out on the table the environement:&lt;br /&gt;&lt;br /&gt;Server: Win2003 server Enterprise&lt;br /&gt;Yukon: SQL Server 2005 Beta 2&lt;br /&gt;Other installed programs: Only SQL 2000 at the SP3a level&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;To fix this ‘kind’ of error, there are some classic files to look for, and rename them. Of course these only exist if a Yukon install had been performed or even tried. And in my case Yukon had never been attempted, but nevertheless I checked to make sure these files were not present, and they were not.&lt;br /&gt;&lt;br /&gt;mmc.exe.manifest&lt;br /&gt;w3wp.exe.manifest&lt;br /&gt;inetinfo.exe.manifest&lt;br /&gt;dllhost.exe.manifest&lt;br /&gt;wmiprvse.exe.manifest&lt;br /&gt;&lt;br /&gt;Next, there are a bunch of things that can get messed up on a server’s OS that could later cause WMI problems, here are some of the usual suspects that you can run to fix this type of problem, but in my case they did not help.&lt;br /&gt;&lt;br /&gt;StartRunCommand&lt;br /&gt;&lt;br /&gt;secedit /configure /cfg %windir%\repair\secsetup.inf /db secsetup.sdb /verbose&lt;br /&gt;Mofcomp.exe %windir%\system32\wbem\cimwin32.mof&lt;br /&gt;Regsvr32 wbemupgd.dll&lt;br /&gt;regsvr32 wbemsvc.dll&lt;br /&gt;&lt;br /&gt;At this point I was desperate, so I actually uninstalled and reinstalled the Windows Server 2003 SP1 and reinstalled it, but alas, to no avail. Remember, for Itanium boxes, you must have SP1 on if you want to install SQL 2005. But the reinstall did not help. Bummer.&lt;br /&gt;&lt;br /&gt;But then Niko from the SQL Server Setup Team came to the rescue and suggested I try this:&lt;br /&gt;&lt;br /&gt;wmiprvse /regserver&lt;br /&gt;&lt;br /&gt;or&lt;br /&gt;try this&lt;br /&gt;&lt;br /&gt;The cause of this error is a corrupt install of WMI, caused by upgrading Windows Server 2003 to SP1 build 1277. To fix this issue, copy the following into notepad and save it with either a .cmd or .bat extension. Then run the script to re-install WMI:&lt;br /&gt;&lt;br /&gt;%SYSTEMDRIVE%&lt;br /&gt;CD %windir%\system32\wbem&lt;br /&gt;Mofcomp.exe cimwin32.mof&lt;br /&gt;Regsvr32 /s wbemupgd.dll&lt;br /&gt;Regsvr32 /s wbemsvc.dll&lt;br /&gt;wmiprvse /regserver&lt;br /&gt;&lt;br /&gt;And lo and behold, my Yukon (SQL Server 2005) went on smooth as glass. Turns out some WMI folks over in Microsoft passed that little tid-bit onto him.&lt;br /&gt;&lt;br /&gt;I found out that this is an active bug in Windows Server 2003 for RTM to SP1 upgrades where it screws up WMI, so as a public service, I want to pass this on.&lt;br /&gt;&lt;br /&gt;I’m sure MS will get this straightened out before they go golden with SP1.&lt;br /&gt;&lt;br /&gt;Thankx to &lt;a href="http://www.MSNSearch.com"&gt;www.MSNSearch.com&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6903337-110559614302555494?l=dotnetfaqs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetfaqs.blogspot.com/feeds/110559614302555494/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6903337&amp;postID=110559614302555494' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6903337/posts/default/110559614302555494'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6903337/posts/default/110559614302555494'/><link rel='alternate' type='text/html' href='http://dotnetfaqs.blogspot.com/2005/01/sql-server-system-configuration.html' title='The SQL Server System Configuration Checker cannot be executed due to WMI configuration on the machine Error:2147749907 (0x80041013).'/><author><name>Ashith Raj</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6903337.post-110495359774425093</id><published>2005-01-05T10:38:00.000-08:00</published><updated>2005-01-05T11:33:17.743-08:00</updated><title type='text'>check these links abt Sharepoint server</title><content type='html'>&lt;a href="http://msdn.microsoft.com/vstudio/productinfo/roadmap.aspx"&gt;http://msdn.microsoft.com/vstudio/productinfo/roadmap.aspx&lt;/a&gt;&lt;br /&gt;&lt;a href="http://home.salloway.org.uk/mceblog/"&gt;http://home.salloway.org.uk/mceblog/&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.sharepointexperts.com/"&gt;http://www.sharepointexperts.com/&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.gotsharepoint.com/resources/resourcekit.asp"&gt;http://www.gotsharepoint.com/resources/resourcekit.asp&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.msd2d.com/"&gt;http://www.msd2d.com/&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.sharepointcustomization.com/default.aspx"&gt;http://www.sharepointcustomization.com/default.aspx&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.sharepointcustomization.com/demos/webcasts/SharePoint%20Portal%20Server%202003%20Object%20Model%20and%20Web%20Services/default.htm"&gt;http://www.sharepointcustomization.com/demos/webcasts/SharePoint%20Portal%20Server%202003%20Object%20Model%20and%20Web%20Services/default.htm&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.axosoft.com/products/ontime_whatsnew.aspx"&gt;http://www.axosoft.com/products/ontime_whatsnew.aspx&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.axosoft.com/products/downloads.aspx"&gt;http://www.axosoft.com/products/downloads.aspx&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.iwug.net/"&gt;http://www.iwug.net/&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.sharepointcustomization.com/sps/default.htm"&gt;http://www.sharepointcustomization.com/sps/default.htm&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.flickr.com"&gt;http://www.flickr.com&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.remotesoft.com/"&gt;http://www.remotesoft.com/&lt;/a&gt;&lt;br /&gt;&lt;a href="http://microsoft-exchange.com/"&gt;http://microsoft-exchange.com/&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.microsoft.com/sharepoint/downloads/components/results.asp?s=5"&gt;http://www.microsoft.com/sharepoint/downloads/components/results.asp?s=5&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6903337-110495359774425093?l=dotnetfaqs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetfaqs.blogspot.com/feeds/110495359774425093/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6903337&amp;postID=110495359774425093' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6903337/posts/default/110495359774425093'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6903337/posts/default/110495359774425093'/><link rel='alternate' type='text/html' href='http://dotnetfaqs.blogspot.com/2005/01/check-these-links-abt-sharepoint.html' title='check these links abt Sharepoint server'/><author><name>Ashith Raj</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6903337.post-110429033440983430</id><published>2004-12-28T19:12:00.000-08:00</published><updated>2004-12-28T19:18:54.410-08:00</updated><title type='text'>check these links</title><content type='html'>&lt;a href="http://www.awprofessional.com/articles/article.asp?p=170917"&gt;http://www.awprofessional.com/articles/article.asp?p=170917&lt;/a&gt;&lt;br /&gt;&lt;a href="http://aspnet.4guysfromrolla.com/articles/121504-1.aspx"&gt;http://aspnet.4guysfromrolla.com/articles/121504-1.aspx&lt;/a&gt;&lt;br /&gt;&lt;a href="http://aspnet.4guysfromrolla.com/articles/121504-1.2.aspx"&gt;http://aspnet.4guysfromrolla.com/articles/121504-1.2.aspx&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.dotnetjohn.com/webcontrols.aspx"&gt;http://www.dotnetjohn.com/webcontrols.aspx&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.asp101.com/articles/stuart/dataview/default.asp"&gt;http://www.asp101.com/articles/stuart/dataview/default.asp&lt;/a&gt;&lt;br /&gt;&lt;a href="http://samples.gotdotnet.com/quickstart/howto/doc/adoplus/FilterData.aspx"&gt;http://samples.gotdotnet.com/quickstart/howto/doc/adoplus/FilterData.aspx&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.error-bank.com/microsoft.public.dotnet.framework.adonet/79191_Thread.aspx"&gt;http://www.error-bank.com/microsoft.public.dotnet.framework.adonet/79191_Thread.aspx&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.c-sharpcorner.com/Code/2003/July/DynamicallyCreateASPNETControls.asp"&gt;http://www.c-sharpcorner.com/Code/2003/July/DynamicallyCreateASPNETControls.asp&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.dotnetjohn.com/dotnet20.aspx"&gt;http://www.dotnetjohn.com/dotnet20.aspx&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.xmlforasp.net/codeSection.aspx?csID=51"&gt;http://www.xmlforasp.net/codeSection.aspx?csID=51&lt;/a&gt;&lt;br /&gt;&lt;a href="http://authors.aspalliance.com/wisemonk/view.aspx?id=AD032102"&gt;http://authors.aspalliance.com/wisemonk/view.aspx?id=AD032102&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.dotnetjohn.com/articles.aspx?articleid=56"&gt;http://www.dotnetjohn.com/articles.aspx?articleid=56&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.dotnetjohn.com/articles.aspx?articleid=31"&gt;http://www.dotnetjohn.com/articles.aspx?articleid=31&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.google.co.in/search?q=bind+listbox+to+a+dataview&amp;hl=en"&gt;http://www.google.co.in/search?q=bind+listbox+to+a+dataview&amp;amp;hl=en&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6903337-110429033440983430?l=dotnetfaqs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetfaqs.blogspot.com/feeds/110429033440983430/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6903337&amp;postID=110429033440983430' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6903337/posts/default/110429033440983430'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6903337/posts/default/110429033440983430'/><link rel='alternate' type='text/html' href='http://dotnetfaqs.blogspot.com/2004/12/check-these-links.html' title='check these links'/><author><name>Ashith Raj</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6903337.post-110423520066294314</id><published>2004-12-28T03:34:00.000-08:00</published><updated>2004-12-28T04:00:00.663-08:00</updated><title type='text'>Interface or  Abstract Classes</title><content type='html'>An&lt;strong&gt; abstract class&lt;/strong&gt; is a class that cannot be instantiated, but must be inherited from. An abstract class may be fully implemented, but is more usually &lt;strong&gt;&lt;em&gt;partially implemented or not implemented at all,&lt;/em&gt;&lt;/strong&gt; thereby encapsulating common functionality for inherited classes.&lt;br /&gt;&lt;br /&gt;An &lt;strong&gt;interface,&lt;/strong&gt; by contrast, is a &lt;em&gt;totally abstract set of members&lt;/em&gt; that can be thought of as defining a contract for conduct. The implementation of an interface is left completely to the developer.&lt;br /&gt;&lt;br /&gt;Both interfaces and abstract classes are useful for component interaction.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Here are &lt;strong&gt;some recommendations&lt;/strong&gt; to help you to decide &lt;strong&gt;whether to use an interface or an abstract class &lt;/strong&gt;to provide polymorphism for your components : &lt;br /&gt;&lt;ul&gt;&lt;li&gt;If you anticipate creating multiple versions of your component, create an abstract class. Abstract classes provide a simple and easy way to version your components. By updating the base class, all inheriting classes are automatically updated with the change. Interfaces, on the other hand, cannot be changed once created. If a new version of an interface is required, you must create a whole new interface. &lt;/li&gt;&lt;li&gt;If the functionality you are creating will be useful across a wide range of disparate objects, use an interface. Abstract classes should be used primarily for objects that are closely related, whereas interfaces are best suited for providing common functionality to unrelated classes. &lt;/li&gt;&lt;li&gt;If you are designing small, concise bits of functionality, use interfaces. If you are designing large functional units, use an abstract class. &lt;/li&gt;&lt;li&gt;If you want to provide common, implemented functionality among all implementations of your component, use an abstract class. Abstract classes allow you to partially implement your class, whereas interfaces contain no implementation for any members. &lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6903337-110423520066294314?l=dotnetfaqs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vbcon/html/vbconabstractclassesversusinterfaces.asp' title='Interface or  Abstract Classes'/><link rel='replies' type='application/atom+xml' href='http://dotnetfaqs.blogspot.com/feeds/110423520066294314/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6903337&amp;postID=110423520066294314' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6903337/posts/default/110423520066294314'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6903337/posts/default/110423520066294314'/><link rel='alternate' type='text/html' href='http://dotnetfaqs.blogspot.com/2004/12/interface-or-abstract-classes.html' title='Interface or  Abstract Classes'/><author><name>Ashith Raj</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6903337.post-110388236083018844</id><published>2004-12-24T01:54:00.000-08:00</published><updated>2004-12-24T01:59:20.830-08:00</updated><title type='text'>alternative editors or IDEs for C#</title><content type='html'>To find alternative editors, you can check computer stores or computer mail-order catalogs. Another place to look is in the ads in computer programming magazines. The following are a few editors that were available at the time this book was written:&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;CodeWright&lt;/strong&gt;. CodeWright is an editor that provides special support for ASP, XML, HTML, C#, Perl, Python, and more. It is located at &lt;a href="http://www.premia.com/"&gt;www.premia.com&lt;/a&gt;.&lt;br /&gt;&lt;strong&gt;EditPlus.&lt;/strong&gt; EditPlus is an Internet-ready text editor, HTML editor, and programmer's editor for Windows. Although it can serve as a good replacement for Notepad, it also offers many powerful features for Web page authors and programmers, including the color- coding of code. It is located at &lt;a href="http://www.editplus.com/"&gt;www.editplus.com&lt;/a&gt;.&lt;br /&gt;&lt;strong&gt;JEdit.&lt;/strong&gt; JEdit is an Open-Source editor for Java; however, it can be used for C#. It includes the capability of color-coding the code. It is located at &lt;a href="http://jedit.sourceforge.net/"&gt;http://jedit.sourceforge.net&lt;/a&gt;.&lt;br /&gt;Poorman IDE by Duncan Chen. Poorman provides a syntax- highlighted editor for both C# and Visual Basic .NET. It also enables you to run the compiler and capture the console output so you don't need to leave the Poorman IDE. Poorman is located at &lt;a href="http://www.geocities.com/duncanchen/poormanide.htm"&gt;www.geocities.com/duncanchen/poormanide.htm&lt;/a&gt;.&lt;br /&gt;&lt;strong&gt;SharpDevelop.&lt;/strong&gt; SharpDevelop is a free editor for C# projects on Microsoft's NET platform. It is an Open-Source Editor (GPL), so you can download both source code and executables from &lt;a href="http://www.icsharpcode.net"&gt;www.icsharpcode.net&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6903337-110388236083018844?l=dotnetfaqs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetfaqs.blogspot.com/feeds/110388236083018844/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6903337&amp;postID=110388236083018844' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6903337/posts/default/110388236083018844'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6903337/posts/default/110388236083018844'/><link rel='alternate' type='text/html' href='http://dotnetfaqs.blogspot.com/2004/12/alternative-editors-or-ides-for-c.html' title='alternative editors or IDEs for C#'/><author><name>Ashith Raj</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6903337.post-110371134325482997</id><published>2004-12-22T01:55:00.000-08:00</published><updated>2004-12-22T02:29:03.253-08:00</updated><title type='text'>New C# 2005 Overview Released</title><content type='html'>&lt;span style="color:#ff6600;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Microsoft has released a new functional overview of the new features available in C# 2005 (Whidbey). Improvements include&lt;strong&gt;&lt;em&gt; language enhancements, productivity enhancements, debugger features, and new platform features.&lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;C# 2.0 introduces several language extensions, including &lt;strong&gt;Generics, Anonymous Methods, Iterators, Partial Types, and Nullable Types.&lt;br /&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;Generics&lt;/strong&gt; permit classes, structs, interfaces, delegates, and methods to be parameterized by the types of data they store and manipulate. Generics are useful because they provide stronger compile-time type checking, require fewer explicit conversions between data types, and reduce the need for boxing operations and run-time type checks.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Anonymous methods&lt;/strong&gt; allow code blocks to be written “in-line” where delegate values are expected. Anonymous methods are similar to lambda functions in the Lisp programming language. C# 2.0 supports the creation of “closures” where anonymous methods access surrounding local variables and parameters.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Iterators&lt;/strong&gt; are methods that incrementally compute and yield a sequence of values. Iterators make it easy for a type to specify how the foreach statement will iterate over its elements.&lt;br /&gt;Partial types allow classes, structs, and interfaces to be broken into multiple pieces stored in different source files for easier development and maintenance. Additionally, partial types allow separation of machine-generated and user-written parts of types so that it is easier to augment code generated by a tool.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Nullable&lt;/strong&gt; types represent values that possibly are unknown. A nullable type supports all values of its underlying type plus an additional null state. Any value type can be the underlying type of a nullable type. A nullable type supports the same conversions and operators as its underlying type, but additionally provides null value propagation similar to SQL.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Productivity Enhancements:&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt; &lt;span style="color:#ff6600;"&gt;Check out the link &lt;a href="http://msdn.microsoft.com/vcsharp/2005/overview/productivity/"&gt;http://msdn.microsoft.com/vcsharp/2005/overview/productivity/&lt;/a&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color:#ff6600;"&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color:#ff6600;"&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;a name="Intro"&gt;&lt;strong&gt;Debugger Enhancements&lt;/strong&gt;&lt;/a&gt;:&lt;br /&gt;&lt;span style="color:#ff6600;"&gt; &lt;strong&gt;Check out the link&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/vcsharp/2005/overview/debugger/"&gt;http://msdn.microsoft.com/vcsharp/2005/overview/debugger/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a name="Intro"&gt;&lt;strong&gt;Platform Enhancements&lt;/strong&gt;&lt;/a&gt;:&lt;br /&gt;&lt;strong&gt;&lt;em&gt;&lt;span style="color:#ff6600;"&gt; Check out the link&lt;/span&gt;&lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/vcsharp/2005/overview/platform/"&gt;http://msdn.microsoft.com/vcsharp/2005/overview/platform/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6903337-110371134325482997?l=dotnetfaqs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetfaqs.blogspot.com/feeds/110371134325482997/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6903337&amp;postID=110371134325482997' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6903337/posts/default/110371134325482997'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6903337/posts/default/110371134325482997'/><link rel='alternate' type='text/html' href='http://dotnetfaqs.blogspot.com/2004/12/new-c-2005-overview-released.html' title='New C# 2005 Overview Released'/><author><name>Ashith Raj</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6903337.post-110310799502039571</id><published>2004-12-15T02:51:00.000-08:00</published><updated>2004-12-15T02:53:15.020-08:00</updated><title type='text'>Microsoft products using the .NET Framework </title><content type='html'>In the comments of Scott Hanselman's blog posts on why &lt;a href="http://www.hanselman.com/blog/CommentView.aspx?guid=73e8f82b-d58c-49e6-b2dd-d1f10f6a3179"&gt;VB developers don't switch/migrate/convert to VB.NET&lt;/a&gt;, someone replied with the following:&lt;br /&gt;So what application has Microsoft written totally in .NET that is worth a [expletive]? Visual Studio - NO, Office - NO, Notepad - NO, Calc - NO. Why haven't they? .....&lt;br /&gt;Here's my response. While the .NET Framework hasn't been around for a long period of time (shiping in February 2002), there is quite a lot of work being done by different teams to use the .NET Framework across Microsoft's product line. Below is a quick list of just some of the ways we're using managed code in products that ship today and how we plan to use managed code in the future.&lt;br /&gt;Windows Client&lt;br /&gt;Windows XP Pro/Home was released before the .NET Framework which is why it was not included in the box. That being said, Soma points out the &lt;a href="http://blogs.msdn.com/somasegar/archive/2004/06/03/148131.aspx"&gt;70+ million &lt;/a&gt;who have downloaded the .NET Framework using Windows Update (note that the 70M number includes all versions of Windows). In fact, there is a lot of debate about why we didn't include Windows XP Service Pack 2 (XP SP2) with the .NET Framework, although most feedback agrees that we should not require installing new features in a service pack that don't relate to security/bug fixes.&lt;br /&gt;Windows XP Pro Tablet PC Edition includes the .NET Framework and the Tablet API is written using the .NET Framework.&lt;br /&gt;Windows XP Media Center Edition includes the .NET Framework and includes MCE-specific applications written using the .NET Framework.&lt;br /&gt;Windows "Longhorn" dramatically increases the amount of managed Windows code including components like WinFx, an all managed API,  "Avalon", a managed presentation layer, and "Indigo" a messaging stack, all using managed code.&lt;br /&gt;Windows Server&lt;br /&gt;Windows Server 2003 shipped with the .NET Framework 1.1. New features like Sharepoint Team Services and UDDI Services are written in managed code and require the .NET Framework. &lt;br /&gt;Small Business Server 2003 shipped with the .NET Framework 1.1 and includes some SBS-specific applications like Remote Web Workplace and the Backup Snap-in written in managed code.&lt;br /&gt;OfficeWhile Office is a little behind in adopting the .NET Framework, you'll still find the .NET Framework in use, athough probably not as much as you would probably want. Then again, Office is also expanding itself from being stand alone applications to a fully integrated set of tools for collaboration as witnessed with the &lt;a href="http://www.microsoft.com/office/prodinfo.mspx"&gt;Microsoft Office System&lt;/a&gt;, and our server products with Web front ends pretty much all use ASP.NET.&lt;br /&gt;Office 2003 Professional Edition includes the .NET Framework, but I believe this is an optional install and is primarily geared for using FrontPage 11 with ASP.NET. Outlook's new Business Contact Manager is primarily written using managed code and requires the .NET Framework.&lt;br /&gt;SharePoint Portal Server 2003 is written using ASP.NET.&lt;br /&gt;Windows Server System&lt;br /&gt;SQL Server 2000 was released before the .NET Framework. Even so, managed providers for SQL Server 7/2000 were included in the .NET Framework 1.0/1.1.&lt;br /&gt;SQL Server Reporting Services shipped after SQL Server 2000, and is primarily written in managed code.&lt;br /&gt;SQL Server 2005 (“Yukon”) will natively host the .NET Framework 2.0, meaning you can write managed database objects like user defined types, stored procedures, triggers, and more in managed code.&lt;br /&gt;Exchange 2003 included managed code for it's mobile UI.  Outlook Mobile Access is written in managed code using ASP.NET mobile controls.&lt;br /&gt;BizTalk 2004 has parts written in managed code.&lt;br /&gt;Commerce Server 2002 has parts are written in managed code.&lt;br /&gt;Content Management Server 2002 has parts are written in managed code.&lt;br /&gt;MSN Messenger Server includes a presence server and admin/config tools written in managed code.&lt;br /&gt;Microsoft Business Network has parts written in managed code and requires .NET Framework 1.1.&lt;br /&gt;MS-CRM has parts written in managed code.&lt;br /&gt;Speech Server 2004 has parts written in managed code.&lt;br /&gt;Developer Tools&lt;br /&gt;.NET Framework 1.0/1.1 has parts written in managed code.&lt;br /&gt;.NET Framework 2.0 has parts written in managed code&lt;br /&gt;Visual Studio .NET 2002/2003 has parts written in managed code.&lt;br /&gt;Visual Studio 2005 has parts written in managed code.&lt;br /&gt;ASP.NET Web Matrix is fully written in managed code.&lt;br /&gt;Microsoft Web Properties using the .NET Framework&lt;br /&gt;&lt;a href="http://www.msn.com/"&gt;www.msn.com&lt;/a&gt; &lt;br /&gt;&lt;a href="http://www.microsoft.com/"&gt;www.microsoft.com&lt;/a&gt; &lt;br /&gt;&lt;a href="http://msdn.microsoft.com/"&gt;msdn.microsoft.com&lt;/a&gt; &lt;br /&gt;&lt;a href="http://www.gotdotnet.com/"&gt;www.gotdotnet.com&lt;/a&gt; &lt;br /&gt;&lt;a href="http://www.uddi.microsoft.com/"&gt;uddi.microsoft.com&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.xbox.com/"&gt;www.xbox.com&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.microsoft.com/mappoint/webservice/default.mspx"&gt;MapPoint XML Web Service&lt;/a&gt;&lt;br /&gt;Microsoft Internal applications using the .NET Framework&lt;br /&gt;Account Explorer &lt;br /&gt;HeadTrax&lt;br /&gt;Consensus&lt;br /&gt;MS Contract&lt;br /&gt;eSupport&lt;br /&gt;Enterprise Product Roadmap (EPR) Explorer&lt;br /&gt;TSP Academy Virtual Instructor&lt;br /&gt;Country Manager Content&lt;br /&gt;TANLink Contributor and TanLink Explorer&lt;br /&gt;Contoso Enterprise Demo v2 – Hotel Desk&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6903337-110310799502039571?l=dotnetfaqs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetfaqs.blogspot.com/feeds/110310799502039571/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6903337&amp;postID=110310799502039571' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6903337/posts/default/110310799502039571'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6903337/posts/default/110310799502039571'/><link rel='alternate' type='text/html' href='http://dotnetfaqs.blogspot.com/2004/12/microsoft-products-using-net-framework.html' title='Microsoft products using the .NET Framework '/><author><name>Ashith Raj</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6903337.post-110302268200628813</id><published>2004-12-14T03:04:00.000-08:00</published><updated>2004-12-14T03:11:22.006-08:00</updated><title type='text'>What is Application Pools in Windows 2003 </title><content type='html'>&lt;blockquote&gt;An&lt;strong&gt; application pool&lt;/strong&gt; is a configuration that links one or more&lt;br /&gt;applications to a set of one or more worker processes. Because applications in&lt;br /&gt;an application pool are separated from other applications by worker process&lt;br /&gt;boundaries, an application in one application pool is not affected by problems&lt;br /&gt;caused by applications in other application pools.&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;By creating &lt;em&gt;&lt;strong&gt;new application pools&lt;/strong&gt;&lt;/em&gt; and assigning Web sites and applications to them, you can make your server more efficient and reliable, as well as making your other applications always available, even when the worker process serving the new application pool has problems.&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6903337-110302268200628813?l=dotnetfaqs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetfaqs.blogspot.com/feeds/110302268200628813/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6903337&amp;postID=110302268200628813' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6903337/posts/default/110302268200628813'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6903337/posts/default/110302268200628813'/><link rel='alternate' type='text/html' href='http://dotnetfaqs.blogspot.com/2004/12/what-is-application-pools-in-windows.html' title='What is Application Pools in Windows 2003 '/><author><name>Ashith Raj</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6903337.post-110248785502014025</id><published>2004-12-07T22:35:00.000-08:00</published><updated>2004-12-07T22:37:35.020-08:00</updated><title type='text'>What is a Release Candidate of Software Products?</title><content type='html'>A step in the development process. After the software is feature-set complete and tested. A &lt;strong&gt;Release Candidate&lt;/strong&gt; is created and tested. If testing of the Release Candidate reveals no new bugs, the software is released for sale.&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6903337-110248785502014025?l=dotnetfaqs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://spaces.msn.com/members/dotnetgeek/' title='What is a Release Candidate of Software Products?'/><link rel='replies' type='application/atom+xml' href='http://dotnetfaqs.blogspot.com/feeds/110248785502014025/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6903337&amp;postID=110248785502014025' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6903337/posts/default/110248785502014025'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6903337/posts/default/110248785502014025'/><link rel='alternate' type='text/html' href='http://dotnetfaqs.blogspot.com/2004/12/what-is-release-candidate-of-software_07.html' title='What is a Release Candidate of Software Products?'/><author><name>Ashith Raj</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6903337.post-110248699858513909</id><published>2004-12-07T22:22:00.000-08:00</published><updated>2004-12-07T22:23:18.586-08:00</updated><title type='text'></title><content type='html'>What is a Release Candidate of Software Products?&lt;br /&gt;&lt;br /&gt;A step in the development process. After the software is feature-set complete and tested. A &lt;em&gt;&lt;strong&gt;Release Candidate &lt;/strong&gt;&lt;/em&gt;is created and tested. If testing of the &lt;em&gt;&lt;strong&gt;Release Candidate&lt;/strong&gt;&lt;/em&gt; reveals no new bugs, the software is released for sale.&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6903337-110248699858513909?l=dotnetfaqs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetfaqs.blogspot.com/feeds/110248699858513909/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6903337&amp;postID=110248699858513909' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6903337/posts/default/110248699858513909'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6903337/posts/default/110248699858513909'/><link rel='alternate' type='text/html' href='http://dotnetfaqs.blogspot.com/2004/12/what-is-release-candidate-of-software.html' title=''/><author><name>Ashith Raj</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6903337.post-110241043863476274</id><published>2004-12-07T01:06:00.000-08:00</published><updated>2004-12-07T01:07:18.636-08:00</updated><title type='text'></title><content type='html'>Go to the Below Link to See the Creator of Programing Languages :&lt;br /&gt; &lt;br /&gt;http://khason.biz/blog/2004/12/why-microsoft-can-blow-off-with-c.html&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6903337-110241043863476274?l=dotnetfaqs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetfaqs.blogspot.com/feeds/110241043863476274/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6903337&amp;postID=110241043863476274' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6903337/posts/default/110241043863476274'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6903337/posts/default/110241043863476274'/><link rel='alternate' type='text/html' href='http://dotnetfaqs.blogspot.com/2004/12/go-to-below-link-to-see-creator-of.html' title=''/><author><name>Ashith Raj</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6903337.post-110086698338455156</id><published>2004-11-19T04:22:00.000-08:00</published><updated>2004-11-19T04:23:03.383-08:00</updated><title type='text'></title><content type='html'>&lt;strong&gt;"Why OOP Reminds Me of Communism" - OOP criticism and OOP problems &lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Interesting reading for computer science students...and anyone else for that matter...&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;OOP Myths Debunked:&lt;/strong&gt;&lt;br /&gt;Myth: OOP is a proven general-purpose technique&lt;br /&gt;Myth: OOP models the real world better&lt;br /&gt;Myth: OOP makes programming more visual&lt;br /&gt;Myth: OOP makes programming easier and faster&lt;br /&gt;Myth: OOP eliminates the "complexity" of "case" or "switch" statements&lt;br /&gt;Myth: OOP reduces the number of places that require changing&lt;br /&gt;Myth: OOP increases reuse (recycling of code)&lt;br /&gt;Myth: Most things fit nicely into hierarchical taxonomies&lt;br /&gt;Myth: Sub-typing is a stable way to model differences&lt;br /&gt;Myth: Self-handling nouns are more useful than self-handling verbs&lt;br /&gt;Myth: Most operations have one natural "primary noun"&lt;br /&gt;Myth: OOP does automatic garbage-collection better&lt;br /&gt;Myth: Procedural cannot do components well&lt;br /&gt;Myth: OO databases can better store large, multimedia data&lt;br /&gt;Myth: OODBMS are overall faster than RDBMS&lt;br /&gt;Myth: OOP better hides persistence mechanisms&lt;br /&gt;Myth: C and Pascal are the best procedural can get&lt;br /&gt;Myth: SQL is the best relational language&lt;br /&gt;Myth: OOP would have prevented more Y2K problems&lt;br /&gt;Myth: OOP "does patterns" better&lt;br /&gt;Myth: Only OOP can "protect data"&lt;br /&gt;Myth: Implementation changes significantly more often than interfaces&lt;br /&gt;Myth: Procedural/Relational ties field types and sizes to the code more&lt;br /&gt;Myth: Procedural cannot extend compiled portions very well&lt;br /&gt;Myth: No procedural language can re-compile at the routine level&lt;br /&gt;Myth: Procedural/Relational programs cannot "factor" as well&lt;br /&gt;Myth: OOP models human thought better (Which human?)&lt;br /&gt;Myth: OOP is more "modular"&lt;br /&gt;Myth: OOP divides up work better&lt;br /&gt;Myth: OOP "hides complexity" better&lt;br /&gt;Myth: OOP better models spoken language&lt;br /&gt;Myth: OOP is "better abstraction"&lt;br /&gt;Myth: OOP reduces "coupling"&lt;br /&gt;Myth: OOP does multi-tasking better&lt;br /&gt;Myth: OOP scales better&lt;br /&gt;Myth: OOP is more "event driven"&lt;br /&gt;Myth: Most programmers prefer OOP&lt;br /&gt;Myth: OOP manages behavior better &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Fact: OO fans have repeatedly failed to demonstrate OO superiority. They can talk up a good storm, but cannot walk their talk. &lt;br /&gt;&lt;br /&gt;http://www.geocities.com/tablizer/oopbad.htm&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6903337-110086698338455156?l=dotnetfaqs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetfaqs.blogspot.com/feeds/110086698338455156/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6903337&amp;postID=110086698338455156' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6903337/posts/default/110086698338455156'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6903337/posts/default/110086698338455156'/><link rel='alternate' type='text/html' href='http://dotnetfaqs.blogspot.com/2004/11/why-oop-reminds-me-of-communism-oop.html' title=''/><author><name>Ashith Raj</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6903337.post-109142665183165124</id><published>2004-08-01T23:02:00.000-07:00</published><updated>2004-08-01T23:04:11.830-07:00</updated><title type='text'></title><content type='html'>&lt;strong&gt;&lt;span style="font-size:130%;color:#000066;"&gt;Difference between Build Solution and Rebuild Solution option in VS.Net&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;VisualStudio.Net provides us with two options for compiling and creating builds for our application. They are Build Solution and Rebuild Solution options which can be accessed from the Build menu.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;The differences between these two options are&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;1. &lt;strong&gt;The Build Solution option&lt;/strong&gt; compiles only those project files and components that have changed since the last build. For example consider that you have two projects Proj1 and Proj2 in your solution MySolution. When you compile the solution using Build Solution option after making some changes to Proj1 only Proj1 will be compiled and built but Proj2 will not be compiled since there are no changes to it.&lt;br /&gt;&lt;br /&gt;2. &lt;strong&gt;On the other hand the Rebuild Solution option&lt;/strong&gt; builds all project files and components irrespective of the changes made to them.  For example consider that you have two projects Proj1 and Proj2 in your solution MySolution. When you compile the solution using Rebuild Solution option after making some changes to Proj1, both Proj1 and Proj2 will be compiled and built even though there are no changes made to Proj2.&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6903337-109142665183165124?l=dotnetfaqs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetfaqs.blogspot.com/feeds/109142665183165124/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6903337&amp;postID=109142665183165124' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6903337/posts/default/109142665183165124'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6903337/posts/default/109142665183165124'/><link rel='alternate' type='text/html' href='http://dotnetfaqs.blogspot.com/2004/08/difference-between-build-solution-and.html' title=''/><author><name>Ashith Raj</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6903337.post-108970240591702862</id><published>2004-07-13T00:04:00.000-07:00</published><updated>2004-07-13T00:06:45.916-07:00</updated><title type='text'></title><content type='html'>This is not only ground breaking news; it's space-breaking news indeed. &lt;br /&gt;Fwd it to as many Indians as possible. &lt;br /&gt;&lt;br /&gt;Ramlal Bhagat, a XII std. student from Haryana, has developed a &lt;br /&gt;32-bit operating system demonstrated to be far superior to any of the desktop operating systems in the market today. The program has been named "O-Yes".  &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;O-Yes provides operating system services on any Pentium-based personal computer (PC) &lt;br /&gt;and does not require MS-DOS as a base operating system. The operating system's capabilities were &lt;br /&gt;demonstrated in a student convention at the Indian Institute of Technology (IIT), New Delhi. &lt;br /&gt;HCL Ltd. conducted benchmarks on the system and published results, which are partly reported &lt;br /&gt;here: O-Yes is 34% faster than Microsoft's Windows 95 on similar hardware.&lt;br /&gt;It is 29% faster than IBM's OS/2. O-Yes loads 54% quicker than Windows 95 or OS/2.  &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;O-Yes has a customizable, user-friendly graphi! cal User Interface (GUI), in which every program can be &lt;br /&gt;accessed with a maximum of two button clicks. The operating system provides plug n play capability with &lt;br /&gt;numerous hardware devices.  &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;It has a superior memory management function. The operating system is compatible with  Windows 95&amp;WindowsNT 4.0. HCL, Ltd. has offered an unknown amount to Ramlal&lt;br /&gt;Bhagat for purchasing the rights to the software. Ramlal Bhagat, described as "quiet and philosophical" by his peers, was &lt;br /&gt;not available for comment. Suresh Reddy, spokesman for HCL Ltd.,said, "this is the operating system &lt;br /&gt;that the world has been waiting for". On HCL's move to purchase the rights to the software, he said, &lt;br /&gt;"We are here to ensure that Mr. Ramlal gets fair recognition and&lt;br /&gt;compensation for his innovation. &lt;br /&gt;HCL Ltd. can provide him a firm launch-pad to market software globally". Is this the beginning of the &lt;br /&gt;end of the Bill Gates' monopoly? Let's see...  &lt;br /&gt;&lt;br /&gt;Send this to as many of your friends and relatives as possible so that when the product hits the market &lt;br /&gt;every one will appreciate it. Give a big hand to the &lt;strong&gt;great Indian &lt;/strong&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6903337-108970240591702862?l=dotnetfaqs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetfaqs.blogspot.com/feeds/108970240591702862/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6903337&amp;postID=108970240591702862' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6903337/posts/default/108970240591702862'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6903337/posts/default/108970240591702862'/><link rel='alternate' type='text/html' href='http://dotnetfaqs.blogspot.com/2004/07/this-is-not-only-ground-breaking-news.html' title=''/><author><name>Ashith Raj</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6903337.post-108600054955293123</id><published>2004-05-31T03:38:00.000-07:00</published><updated>2004-05-31T03:49:09.553-07:00</updated><title type='text'></title><content type='html'>On 28th May, I've successfully cleared the XML Web Services and Enterprise Services. &lt;br /&gt;I thank the BDOTNET community to help get the Exam's Materials to study.&lt;br /&gt;&lt;br /&gt;I've Now Very Little Time to Prepare for the next Exam (70-229).&lt;br /&gt;Not Feeling in good Health.. But I'm Determined to Write it on 6th June.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6903337-108600054955293123?l=dotnetfaqs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetfaqs.blogspot.com/feeds/108600054955293123/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6903337&amp;postID=108600054955293123' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6903337/posts/default/108600054955293123'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6903337/posts/default/108600054955293123'/><link rel='alternate' type='text/html' href='http://dotnetfaqs.blogspot.com/2004/05/on-28th-may-ive-successfully-cleared.html' title=''/><author><name>Ashith Raj</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6903337.post-108495076568204963</id><published>2004-05-19T00:10:00.000-07:00</published><updated>2004-05-19T00:12:45.683-07:00</updated><title type='text'></title><content type='html'>Tomorrow, I'm Giving my second MCSD.NET Exam(70-315).&lt;br /&gt;I've gone thru the Microsoft Training Materials. Need to take Mock Test Before.&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6903337-108495076568204963?l=dotnetfaqs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetfaqs.blogspot.com/feeds/108495076568204963/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6903337&amp;postID=108495076568204963' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6903337/posts/default/108495076568204963'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6903337/posts/default/108495076568204963'/><link rel='alternate' type='text/html' href='http://dotnetfaqs.blogspot.com/2004/05/tomorrow-im-giving-my-second-mcsd.html' title=''/><author><name>Ashith Raj</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6903337.post-108426156508364387</id><published>2004-05-11T00:45:00.000-07:00</published><updated>2004-05-11T00:46:05.083-07:00</updated><title type='text'></title><content type='html'>Yesterday, I've Cleared the First Exam of the MCP for .NET .&lt;br /&gt;I thank all the .NET Community People and especially the BDOTNET group on MSN.com&lt;br /&gt;&lt;br /&gt;The Exam was 70-316 - Developing and Implementing Windows-based application using VC#.Net and VS.NET 2003&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6903337-108426156508364387?l=dotnetfaqs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetfaqs.blogspot.com/feeds/108426156508364387/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6903337&amp;postID=108426156508364387' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6903337/posts/default/108426156508364387'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6903337/posts/default/108426156508364387'/><link rel='alternate' type='text/html' href='http://dotnetfaqs.blogspot.com/2004/05/yesterday-ive-cleared-first-exam-of.html' title=''/><author><name>Ashith Raj</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6903337.post-108383836605611506</id><published>2004-05-06T03:12:00.000-07:00</published><updated>2004-05-21T05:15:40.453-07:00</updated><title type='text'></title><content type='html'>I've Cleared the developing web applications with visual c#.net and visual studio.net exam 70-320..&lt;br /&gt;The exam was tough and Lenghty...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6903337-108383836605611506?l=dotnetfaqs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6903337/posts/default/108383836605611506'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6903337/posts/default/108383836605611506'/><link rel='alternate' type='text/html' href='http://dotnetfaqs.blogspot.com/2004/05/ive-cleared-developing-web.html' title=''/><author><name>Ashith Raj</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry></feed>
