<?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:blogger='http://schemas.google.com/blogger/2008' 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-1725135844323517190</id><updated>2024-09-06T16:28:47.292-07:00</updated><category term=".Net"/><category term="C#"/><category term="ASp.Net"/><category term="SQL"/><category term="Expressions"/><category term="MSSQL"/><category term="sqlclr"/><category term="ADO.net"/><category term="Assembly"/><category term="AutoPostBack"/><category term="CASE"/><category term="CSV"/><category term="Comma separated values"/><category term="CommandArgument"/><category term="Conditionl WHERE"/><category term="Control Events"/><category term="Controls"/><category term="GridView"/><category term="GridViewRowCommand"/><category term="JOINS"/><category term="Jmeter"/><category term="Jmeter Usage"/><category term="Load Testing"/><category term="PHP"/><category term="PHPEXCEL"/><category term="Rules Engine"/><category term="Stored Procedure"/><category term="Stress Testing Tool"/><category term="Validation Engine"/><category term="ViewState"/><category term="WHERE"/><category term="XML"/><category term="datatypes"/><category term="nodes"/><category term="sqlclr data types"/><title type='text'>DotNet Explorer</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://sandeepbs404.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1725135844323517190/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://sandeepbs404.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>sanju</name><uri>http://www.blogger.com/profile/05489844376913890016</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>15</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-1725135844323517190.post-3544280388873098735</id><published>2016-04-04T23:56:00.000-07:00</published><updated>2016-04-04T23:56:35.007-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Comma separated values"/><category scheme="http://www.blogger.com/atom/ns#" term="CSV"/><category scheme="http://www.blogger.com/atom/ns#" term="MSSQL"/><category scheme="http://www.blogger.com/atom/ns#" term="nodes"/><category scheme="http://www.blogger.com/atom/ns#" term="SQL"/><category scheme="http://www.blogger.com/atom/ns#" term="XML"/><title type='text'>Comma separated values to table as a column</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;div class=&quot;tr_bq&quot;&gt;
To display a comma separated varchar into table with columns,&lt;/div&gt;
Ex:&lt;b&gt; input:&lt;/b&gt;&lt;br /&gt;
@csvstring varchar(100) = &amp;nbsp;&#39;prod1,prod2,prod3,prod4&#39;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;output:&lt;/b&gt;&lt;br /&gt;
&lt;u&gt;&lt;b&gt;products&lt;/b&gt;&lt;/u&gt;&lt;br /&gt;
prod1&lt;br /&gt;
prod2&lt;br /&gt;
prod3&lt;br /&gt;
prod4&lt;br /&gt;
&lt;br /&gt;
Script to acheive this in sql:&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote&gt;
DECLARE @param NVARCHAR(MAX)&lt;br /&gt;SET @param = &#39;prod1,prod2,prod3,prod4&#39;&lt;br /&gt;DECLARE @paramToCSV XML&lt;br /&gt;SET @paramToCSV = CAST (&#39;&amp;lt;M&amp;gt;&#39; + REPLACE(@param, &#39;,&#39;, &#39;&amp;lt;/M&amp;gt;&amp;lt;M&amp;gt;&#39;) + &#39;&amp;lt;/M&amp;gt;&#39; AS XML)&lt;br /&gt;SELECT prod.query(&#39;./text()&#39;) AS products&lt;br /&gt;FROM &amp;nbsp;@paramToCSV.nodes(&#39;/M&#39;) &amp;nbsp;AS Bike(prod);&lt;/blockquote&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://sandeepbs404.blogspot.com/feeds/3544280388873098735/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sandeepbs404.blogspot.com/2016/04/comma-separated-values-to-table-as.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1725135844323517190/posts/default/3544280388873098735'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1725135844323517190/posts/default/3544280388873098735'/><link rel='alternate' type='text/html' href='http://sandeepbs404.blogspot.com/2016/04/comma-separated-values-to-table-as.html' title='Comma separated values to table as a column'/><author><name>sanju</name><uri>http://www.blogger.com/profile/05489844376913890016</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1725135844323517190.post-7559502356931156499</id><published>2015-08-18T02:55:00.000-07:00</published><updated>2015-08-18T02:59:13.313-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="CASE"/><category scheme="http://www.blogger.com/atom/ns#" term="Conditionl WHERE"/><category scheme="http://www.blogger.com/atom/ns#" term="MSSQL"/><category scheme="http://www.blogger.com/atom/ns#" term="SQL"/><category scheme="http://www.blogger.com/atom/ns#" term="Stored Procedure"/><category scheme="http://www.blogger.com/atom/ns#" term="WHERE"/><title type='text'>Using CASE THEN in WHERE clause in SQL query</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
Recently I have come up with a problem where I have to write a query against a CTE result.&amp;nbsp;The problem statement looks simple, came to know the complexity only after when I tried it out.&lt;/blockquote&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;b&gt;Here is the problem Statement:&amp;nbsp;&lt;/b&gt;&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
There are result set which will come from CTE having two columns named &quot;&lt;b&gt;Col1&lt;/b&gt;&quot; and &quot;&lt;b&gt;Col2&lt;/b&gt;&quot; which are of type &quot;&lt;b&gt;BIT&lt;/b&gt;&quot;. At any point of time both &quot;&lt;b&gt;Col1&lt;/b&gt;&quot; and &quot;&lt;b&gt;Col2&lt;/b&gt;&quot; will not have &quot;&lt;b&gt;1&lt;/b&gt;&quot; in any case.&amp;nbsp;Rest all possible combinations can exist.&lt;/blockquote&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;b&gt;Problem&lt;/b&gt;: The User should have option to see&amp;nbsp;&amp;nbsp;&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Option 1(&lt;b&gt;@None&lt;/b&gt;) : all the records with &lt;b&gt;Col1=0 AND Col2=0&lt;/b&gt;&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Option 2(&lt;b&gt;@Col1&lt;/b&gt;). records with &lt;b&gt;Col1=1. &lt;/b&gt;Ex&lt;b&gt; : Col1=1 and Col2 != 1&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;Option 3(&lt;b&gt;@Col2&lt;/b&gt;). Records with &lt;b&gt;Col2=1. &lt;/b&gt;Ex &lt;b&gt;: Col1 != 1 and Col2 = 1&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
Here User even can see records with multiple combinations.&amp;nbsp;&amp;nbsp;&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
ex: Option 1 and 2&lt;/blockquote&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
Can See all records having&amp;nbsp;&lt;/blockquote&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&amp;nbsp;Col1=0 AND Col2=0&lt;/li&gt;
&lt;li&gt;&amp;nbsp;Col1=1 AND Col2=0&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;b&gt;Approach&lt;/b&gt;:&lt;/blockquote&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
To achieve this I have tried with various conditions which ended up with the large set of AND, OR opertaions, which looks very difficult to understand and maintain later on time for anyone.&lt;/blockquote&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
After trying and doing &amp;nbsp;lot of possible ways ended up using &quot;CASE WHEN THEN&quot; in WHERE.&amp;nbsp;&lt;/blockquote&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;br /&gt;&lt;/blockquote&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;b&gt;Solution&lt;/b&gt;:&lt;/blockquote&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
Here is how I have achieved :&lt;/blockquote&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
select * from CndTrk&lt;/blockquote&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;WHERE&lt;/blockquote&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt; (CASE&amp;nbsp;&lt;/blockquote&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;   &lt;/span&gt;when (@Col1=1 AND @Col2=1 AND @None = 1)&lt;/blockquote&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;    &lt;/span&gt;THEN 1&lt;/blockquote&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;   &lt;/span&gt;WHEN @None =1&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;   &lt;/span&gt;&lt;/blockquote&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;    &lt;/span&gt;THEN &lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;    &lt;/span&gt;&amp;nbsp;&lt;/blockquote&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;     &lt;/span&gt;CASE&amp;nbsp;&lt;/blockquote&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;      &lt;/span&gt;WHEN @Col2=1 AND CndTrk.Col1 &amp;lt;&amp;gt;1&lt;/blockquote&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;       &lt;/span&gt;THEN 1&lt;/blockquote&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;      &lt;/span&gt;WHEN @Col1=1 AND CndTrk.Col2 &amp;lt;&amp;gt;1&lt;/blockquote&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;       &lt;/span&gt;THEN 1&lt;/blockquote&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;      &lt;/span&gt;WHEN CndTrk.Col2 &amp;lt;&amp;gt;1 AND CndTrk.Col1 &amp;lt;&amp;gt;1&lt;/blockquote&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;       &lt;/span&gt;THEN 1&lt;/blockquote&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;      &lt;/span&gt;END&lt;/blockquote&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;   &lt;/span&gt;ELSE&lt;/blockquote&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;    &lt;/span&gt;CASE&amp;nbsp;&lt;/blockquote&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;     &lt;/span&gt;WHEN @Col2=1 AND CndTrk.Col2 = 1&amp;nbsp;&lt;/blockquote&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;      &lt;/span&gt;THEN 1&lt;/blockquote&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;     &lt;/span&gt;WHEN @Col1=1 AND CndTrk.Col1 = 1&amp;nbsp;&lt;/blockquote&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;      &lt;/span&gt;THEN 1&lt;/blockquote&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;    &lt;/span&gt;END&lt;/blockquote&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;   &lt;/span&gt;END&lt;/blockquote&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;   &lt;/span&gt;) = 1&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;br /&gt;&lt;/blockquote&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;br /&gt;&lt;/blockquote&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;br /&gt;&lt;/blockquote&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;br /&gt;&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://sandeepbs404.blogspot.com/feeds/7559502356931156499/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sandeepbs404.blogspot.com/2015/08/using-case-then-in-where-clause-in-sql.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1725135844323517190/posts/default/7559502356931156499'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1725135844323517190/posts/default/7559502356931156499'/><link rel='alternate' type='text/html' href='http://sandeepbs404.blogspot.com/2015/08/using-case-then-in-where-clause-in-sql.html' title='Using CASE THEN in WHERE clause in SQL query'/><author><name>sanju</name><uri>http://www.blogger.com/profile/05489844376913890016</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1725135844323517190.post-5252794391371884243</id><published>2013-06-13T00:44:00.001-07:00</published><updated>2013-06-13T00:44:52.288-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term=".Net"/><category scheme="http://www.blogger.com/atom/ns#" term="ADO.net"/><category scheme="http://www.blogger.com/atom/ns#" term="ASp.Net"/><category scheme="http://www.blogger.com/atom/ns#" term="C#"/><title type='text'>Quick Reference to ADO.Net </title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;table border=&quot;0&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;MsoNormalTable&quot; style=&quot;border-collapse: collapse; margin-left: 4.65pt; mso-padding-alt: 0in 5.4pt 0in 5.4pt; mso-yfti-tbllook: 1184; width: 573px;&quot;&gt;
 &lt;tbody&gt;
&lt;tr style=&quot;height: 15.0pt; mso-yfti-firstrow: yes; mso-yfti-irow: 0;&quot;&gt;
  &lt;td nowrap=&quot;&quot; style=&quot;height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 48.0pt;&quot; valign=&quot;bottom&quot; width=&quot;64&quot;&gt;&lt;/td&gt;
  &lt;td nowrap=&quot;&quot; style=&quot;background: #B8CCE4; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 92.0pt;&quot; valign=&quot;bottom&quot; width=&quot;123&quot;&gt;
  &lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
Command Objects&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td nowrap=&quot;&quot; style=&quot;background: #B8CCE4; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 104.0pt;&quot; valign=&quot;bottom&quot; width=&quot;139&quot;&gt;
  &lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
Returns&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td nowrap=&quot;&quot; style=&quot;background: #B8CCE4; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 71.0pt;&quot; valign=&quot;bottom&quot; width=&quot;95&quot;&gt;
  &lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
O/p Type&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td nowrap=&quot;&quot; style=&quot;background: #B8CCE4; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 67.0pt;&quot; valign=&quot;bottom&quot; width=&quot;89&quot;&gt;
  &lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
Used &lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td nowrap=&quot;&quot; style=&quot;height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 48.0pt;&quot; valign=&quot;bottom&quot; width=&quot;64&quot;&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr style=&quot;height: 18.75pt; mso-yfti-irow: 1;&quot;&gt;
  &lt;td nowrap=&quot;&quot; style=&quot;height: 18.75pt; padding: 0in 5.4pt 0in 5.4pt; width: 48.0pt;&quot; valign=&quot;bottom&quot; width=&quot;64&quot;&gt;
  &lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt; text-align: right;&quot;&gt;
1&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;height: 18.75pt; padding: 0in 5.4pt 0in 5.4pt; width: 92.0pt;&quot; width=&quot;123&quot;&gt;
  &lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif; font-size: 8pt;&quot;&gt;Execute Non Query&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td nowrap=&quot;&quot; style=&quot;height: 18.75pt; padding: 0in 5.4pt 0in 5.4pt; width: 104.0pt;&quot; valign=&quot;bottom&quot; width=&quot;139&quot;&gt;
  &lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif; font-size: 8pt;&quot;&gt;No Of Rows Effected&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td nowrap=&quot;&quot; style=&quot;height: 18.75pt; padding: 0in 5.4pt 0in 5.4pt; width: 71.0pt;&quot; valign=&quot;bottom&quot; width=&quot;95&quot;&gt;
  &lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif; font-size: 8pt;&quot;&gt;int&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td nowrap=&quot;&quot; style=&quot;height: 18.75pt; padding: 0in 5.4pt 0in 5.4pt; width: 67.0pt;&quot; valign=&quot;bottom&quot; width=&quot;89&quot;&gt;
  &lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif; font-size: 8pt;&quot;&gt;Insert, Update&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td nowrap=&quot;&quot; style=&quot;height: 18.75pt; padding: 0in 5.4pt 0in 5.4pt; width: 48.0pt;&quot; valign=&quot;bottom&quot; width=&quot;64&quot;&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr style=&quot;height: 15.0pt; mso-yfti-irow: 2;&quot;&gt;
  &lt;td nowrap=&quot;&quot; style=&quot;height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 48.0pt;&quot; valign=&quot;bottom&quot; width=&quot;64&quot;&gt;
  &lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt; text-align: right;&quot;&gt;
2&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 92.0pt;&quot; width=&quot;123&quot;&gt;
  &lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif; font-size: 8pt;&quot;&gt;ExecuteReader&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td nowrap=&quot;&quot; style=&quot;height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 104.0pt;&quot; valign=&quot;bottom&quot; width=&quot;139&quot;&gt;
  &lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif; font-size: 8pt;&quot;&gt;SqlDataReader &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td nowrap=&quot;&quot; style=&quot;height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 71.0pt;&quot; valign=&quot;bottom&quot; width=&quot;95&quot;&gt;
  &lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif; font-size: 8pt;&quot;&gt;SqlDataReader&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td nowrap=&quot;&quot; style=&quot;height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 67.0pt;&quot; valign=&quot;bottom&quot; width=&quot;89&quot;&gt;
  &lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif; font-size: 8pt;&quot;&gt;Fetch Data&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td nowrap=&quot;&quot; style=&quot;height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 48.0pt;&quot; valign=&quot;bottom&quot; width=&quot;64&quot;&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr style=&quot;height: 15.0pt; mso-yfti-irow: 3;&quot;&gt;
  &lt;td nowrap=&quot;&quot; style=&quot;height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 48.0pt;&quot; valign=&quot;bottom&quot; width=&quot;64&quot;&gt;
  &lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt; text-align: right;&quot;&gt;
3&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 92.0pt;&quot; width=&quot;123&quot;&gt;
  &lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif; font-size: 8pt;&quot;&gt;ExecuteScalar&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td nowrap=&quot;&quot; style=&quot;height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 104.0pt;&quot; valign=&quot;bottom&quot; width=&quot;139&quot;&gt;
  &lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif; font-size: 8pt;&quot;&gt;First Col of&amp;nbsp; First Row&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td nowrap=&quot;&quot; style=&quot;height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 71.0pt;&quot; valign=&quot;bottom&quot; width=&quot;95&quot;&gt;
  &lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif; font-size: 8pt;&quot;&gt;int, string&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td nowrap=&quot;&quot; style=&quot;height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 67.0pt;&quot; valign=&quot;bottom&quot; width=&quot;89&quot;&gt;
  &lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif; font-size: 8pt;&quot;&gt;Count(*)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td nowrap=&quot;&quot; style=&quot;height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 48.0pt;&quot; valign=&quot;bottom&quot; width=&quot;64&quot;&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr style=&quot;height: 15.0pt; mso-yfti-irow: 4;&quot;&gt;
  &lt;td nowrap=&quot;&quot; style=&quot;height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 48.0pt;&quot; valign=&quot;bottom&quot; width=&quot;64&quot;&gt;&lt;/td&gt;
  &lt;td nowrap=&quot;&quot; style=&quot;height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 92.0pt;&quot; valign=&quot;bottom&quot; width=&quot;123&quot;&gt;&lt;/td&gt;
  &lt;td nowrap=&quot;&quot; style=&quot;height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 104.0pt;&quot; valign=&quot;bottom&quot; width=&quot;139&quot;&gt;&lt;/td&gt;
  &lt;td nowrap=&quot;&quot; style=&quot;height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 71.0pt;&quot; valign=&quot;bottom&quot; width=&quot;95&quot;&gt;&lt;/td&gt;
  &lt;td nowrap=&quot;&quot; style=&quot;height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 67.0pt;&quot; valign=&quot;bottom&quot; width=&quot;89&quot;&gt;&lt;/td&gt;
  &lt;td nowrap=&quot;&quot; style=&quot;height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 48.0pt;&quot; valign=&quot;bottom&quot; width=&quot;64&quot;&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr style=&quot;height: 15.0pt; mso-yfti-irow: 5;&quot;&gt;
  &lt;td nowrap=&quot;&quot; style=&quot;height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 48.0pt;&quot; valign=&quot;bottom&quot; width=&quot;64&quot;&gt;&lt;/td&gt;
  &lt;td nowrap=&quot;&quot; style=&quot;height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 92.0pt;&quot; valign=&quot;bottom&quot; width=&quot;123&quot;&gt;&lt;/td&gt;
  &lt;td nowrap=&quot;&quot; style=&quot;height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 104.0pt;&quot; valign=&quot;bottom&quot; width=&quot;139&quot;&gt;&lt;/td&gt;
  &lt;td nowrap=&quot;&quot; style=&quot;height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 71.0pt;&quot; valign=&quot;bottom&quot; width=&quot;95&quot;&gt;&lt;/td&gt;
  &lt;td nowrap=&quot;&quot; style=&quot;height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 67.0pt;&quot; valign=&quot;bottom&quot; width=&quot;89&quot;&gt;&lt;/td&gt;
  &lt;td nowrap=&quot;&quot; style=&quot;height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 48.0pt;&quot; valign=&quot;bottom&quot; width=&quot;64&quot;&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr style=&quot;height: 15.0pt; mso-yfti-irow: 6;&quot;&gt;
  &lt;td nowrap=&quot;&quot; style=&quot;height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 48.0pt;&quot; valign=&quot;bottom&quot; width=&quot;64&quot;&gt;
  &lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt; text-align: right;&quot;&gt;
4&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td nowrap=&quot;&quot; style=&quot;height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 92.0pt;&quot; valign=&quot;bottom&quot; width=&quot;123&quot;&gt;
  &lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;font-family: Verdana, sans-serif; font-size: 8pt;&quot;&gt;SqlDataReader &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td nowrap=&quot;&quot; style=&quot;height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 104.0pt;&quot; valign=&quot;bottom&quot; width=&quot;139&quot;&gt;&lt;/td&gt;
  &lt;td nowrap=&quot;&quot; style=&quot;height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 71.0pt;&quot; valign=&quot;bottom&quot; width=&quot;95&quot;&gt;&lt;/td&gt;
  &lt;td nowrap=&quot;&quot; style=&quot;height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 67.0pt;&quot; valign=&quot;bottom&quot; width=&quot;89&quot;&gt;&lt;/td&gt;
  &lt;td nowrap=&quot;&quot; style=&quot;height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 48.0pt;&quot; valign=&quot;bottom&quot; width=&quot;64&quot;&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr style=&quot;height: 15.0pt; mso-yfti-irow: 7;&quot;&gt;
  &lt;td nowrap=&quot;&quot; style=&quot;height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 48.0pt;&quot; valign=&quot;bottom&quot; width=&quot;64&quot;&gt;&lt;/td&gt;
  &lt;td nowrap=&quot;&quot; style=&quot;background: #DCE6F1; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 92.0pt;&quot; valign=&quot;bottom&quot; width=&quot;123&quot;&gt;
  &lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
Features&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td nowrap=&quot;&quot; style=&quot;height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 104.0pt;&quot; valign=&quot;bottom&quot; width=&quot;139&quot;&gt;&lt;/td&gt;
  &lt;td nowrap=&quot;&quot; style=&quot;height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 71.0pt;&quot; valign=&quot;bottom&quot; width=&quot;95&quot;&gt;&lt;/td&gt;
  &lt;td nowrap=&quot;&quot; style=&quot;height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 67.0pt;&quot; valign=&quot;bottom&quot; width=&quot;89&quot;&gt;&lt;/td&gt;
  &lt;td nowrap=&quot;&quot; style=&quot;height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 48.0pt;&quot; valign=&quot;bottom&quot; width=&quot;64&quot;&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr style=&quot;height: 15.0pt; mso-yfti-irow: 8;&quot;&gt;
  &lt;td nowrap=&quot;&quot; style=&quot;height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 48.0pt;&quot; valign=&quot;bottom&quot; width=&quot;64&quot;&gt;&lt;/td&gt;
  &lt;td nowrap=&quot;&quot; style=&quot;height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 92.0pt;&quot; valign=&quot;bottom&quot; width=&quot;123&quot;&gt;
  &lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif; font-size: 8pt;&quot;&gt;Forward Read-only&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td nowrap=&quot;&quot; style=&quot;height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 104.0pt;&quot; valign=&quot;bottom&quot; width=&quot;139&quot;&gt;&lt;/td&gt;
  &lt;td nowrap=&quot;&quot; style=&quot;height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 71.0pt;&quot; valign=&quot;bottom&quot; width=&quot;95&quot;&gt;&lt;/td&gt;
  &lt;td nowrap=&quot;&quot; style=&quot;height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 67.0pt;&quot; valign=&quot;bottom&quot; width=&quot;89&quot;&gt;&lt;/td&gt;
  &lt;td nowrap=&quot;&quot; style=&quot;height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 48.0pt;&quot; valign=&quot;bottom&quot; width=&quot;64&quot;&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr style=&quot;height: 15.0pt; mso-yfti-irow: 9;&quot;&gt;
  &lt;td nowrap=&quot;&quot; style=&quot;height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 48.0pt;&quot; valign=&quot;bottom&quot; width=&quot;64&quot;&gt;&lt;/td&gt;
  &lt;td colspan=&quot;2&quot; nowrap=&quot;&quot; style=&quot;height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 196.0pt;&quot; valign=&quot;bottom&quot; width=&quot;261&quot;&gt;
  &lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif; font-size: 8pt;&quot;&gt;Initiate only using ExecuteReader()&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td nowrap=&quot;&quot; style=&quot;height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 71.0pt;&quot; valign=&quot;bottom&quot; width=&quot;95&quot;&gt;&lt;/td&gt;
  &lt;td nowrap=&quot;&quot; style=&quot;height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 67.0pt;&quot; valign=&quot;bottom&quot; width=&quot;89&quot;&gt;&lt;/td&gt;
  &lt;td nowrap=&quot;&quot; style=&quot;height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 48.0pt;&quot; valign=&quot;bottom&quot; width=&quot;64&quot;&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr style=&quot;height: 15.0pt; mso-yfti-irow: 10;&quot;&gt;
  &lt;td nowrap=&quot;&quot; style=&quot;height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 48.0pt;&quot; valign=&quot;bottom&quot; width=&quot;64&quot;&gt;&lt;/td&gt;
  &lt;td nowrap=&quot;&quot; style=&quot;height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 92.0pt;&quot; valign=&quot;bottom&quot; width=&quot;123&quot;&gt;&lt;/td&gt;
  &lt;td nowrap=&quot;&quot; style=&quot;height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 104.0pt;&quot; valign=&quot;bottom&quot; width=&quot;139&quot;&gt;&lt;/td&gt;
  &lt;td nowrap=&quot;&quot; style=&quot;height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 71.0pt;&quot; valign=&quot;bottom&quot; width=&quot;95&quot;&gt;&lt;/td&gt;
  &lt;td nowrap=&quot;&quot; style=&quot;height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 67.0pt;&quot; valign=&quot;bottom&quot; width=&quot;89&quot;&gt;&lt;/td&gt;
  &lt;td nowrap=&quot;&quot; style=&quot;height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 48.0pt;&quot; valign=&quot;bottom&quot; width=&quot;64&quot;&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr style=&quot;height: 15.0pt; mso-yfti-irow: 11;&quot;&gt;
  &lt;td nowrap=&quot;&quot; style=&quot;height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 48.0pt;&quot; valign=&quot;bottom&quot; width=&quot;64&quot;&gt;
  &lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt; text-align: right;&quot;&gt;
5&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td nowrap=&quot;&quot; style=&quot;height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 92.0pt;&quot; valign=&quot;bottom&quot; width=&quot;123&quot;&gt;
  &lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
Dataset&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td nowrap=&quot;&quot; style=&quot;height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 104.0pt;&quot; valign=&quot;bottom&quot; width=&quot;139&quot;&gt;&lt;/td&gt;
  &lt;td nowrap=&quot;&quot; style=&quot;height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 71.0pt;&quot; valign=&quot;bottom&quot; width=&quot;95&quot;&gt;&lt;/td&gt;
  &lt;td nowrap=&quot;&quot; style=&quot;height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 67.0pt;&quot; valign=&quot;bottom&quot; width=&quot;89&quot;&gt;&lt;/td&gt;
  &lt;td nowrap=&quot;&quot; style=&quot;height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 48.0pt;&quot; valign=&quot;bottom&quot; width=&quot;64&quot;&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr style=&quot;height: 15.0pt; mso-yfti-irow: 12;&quot;&gt;
  &lt;td nowrap=&quot;&quot; style=&quot;height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 48.0pt;&quot; valign=&quot;bottom&quot; width=&quot;64&quot;&gt;&lt;/td&gt;
  &lt;td colspan=&quot;5&quot; nowrap=&quot;&quot; style=&quot;height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 382.0pt;&quot; valign=&quot;bottom&quot; width=&quot;509&quot;&gt;
  &lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;color: #2a2a2a; font-family: &amp;quot;Segoe UI&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 10.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;The&amp;nbsp;&lt;b&gt;DataSet&lt;/b&gt;&amp;nbsp;represents
  a complete set of data independent of actual DataSource&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr style=&quot;height: 15.0pt; mso-yfti-irow: 13; mso-yfti-lastrow: yes;&quot;&gt;
  &lt;td nowrap=&quot;&quot; style=&quot;height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 48.0pt;&quot; valign=&quot;bottom&quot; width=&quot;64&quot;&gt;&lt;/td&gt;
  &lt;td colspan=&quot;5&quot; nowrap=&quot;&quot; style=&quot;height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 382.0pt;&quot; valign=&quot;bottom&quot; width=&quot;509&quot;&gt;
  &lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;color: #2a2a2a; font-family: &amp;quot;Segoe UI&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 10.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Interaction with
  existing data sources is controlled through the&amp;nbsp;&lt;b&gt;DataAdapter&lt;/b&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;!--[if gte vml 1]&gt;&lt;v:shapetype
 id=&quot;_x0000_t75&quot; coordsize=&quot;21600,21600&quot; o:spt=&quot;75&quot; o:preferrelative=&quot;t&quot;
 path=&quot;m@4@5l@4@11@9@11@9@5xe&quot; filled=&quot;f&quot; stroked=&quot;f&quot;&gt;
 &lt;v:stroke joinstyle=&quot;miter&quot;/&gt;
 &lt;v:formulas&gt;
  &lt;v:f eqn=&quot;if lineDrawn pixelLineWidth 0&quot;/&gt;
  &lt;v:f eqn=&quot;sum @0 1 0&quot;/&gt;
  &lt;v:f eqn=&quot;sum 0 0 @1&quot;/&gt;
  &lt;v:f eqn=&quot;prod @2 1 2&quot;/&gt;
  &lt;v:f eqn=&quot;prod @3 21600 pixelWidth&quot;/&gt;
  &lt;v:f eqn=&quot;prod @3 21600 pixelHeight&quot;/&gt;
  &lt;v:f eqn=&quot;sum @0 0 1&quot;/&gt;
  &lt;v:f eqn=&quot;prod @6 1 2&quot;/&gt;
  &lt;v:f eqn=&quot;prod @7 21600 pixelWidth&quot;/&gt;
  &lt;v:f eqn=&quot;sum @8 21600 0&quot;/&gt;
  &lt;v:f eqn=&quot;prod @7 21600 pixelHeight&quot;/&gt;
  &lt;v:f eqn=&quot;sum @10 21600 0&quot;/&gt;
 &lt;/v:formulas&gt;
 &lt;v:path o:extrusionok=&quot;f&quot; gradientshapeok=&quot;t&quot; o:connecttype=&quot;rect&quot;/&gt;
 &lt;o:lock v:ext=&quot;edit&quot; aspectratio=&quot;t&quot;/&gt;
&lt;/v:shapetype&gt;&lt;v:shape id=&quot;Diagram_x0020_1&quot; o:spid=&quot;_x0000_i1025&quot; type=&quot;#_x0000_t75&quot;
 style=&#39;width:323.25pt;height:81.75pt;visibility:visible&#39; o:gfxdata=&quot;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
hqmeFG2UqExqERXagVttziWtRZzHkjqsiPMYjqU0lpBEJpaz++sU9hzQbOtfhtewU2Sc1X90HkIG
+OB04k63v7lVZ7MoJGijp6aXnT4YX9but3lYD+CRXFxYb48fg3IueDMhZhvgpVFqFQJVj/wtxSDC
ceoMtWZV7hsNBYHjY7XfQJYoqA5CETwa1JTGamOy3oD/AvjuTwAAAP//AwBQSwMEFAAGAAgAAAAh
AM9Zrz7gAAAAkAEAAB8AAABjbGlwYm9hcmQvZGlhZ3JhbXMvZHJhd2luZzEueG1shJDBbsMgDIbv
k/YOyPeFbIepikp6625VpXUPgIBQpNggjNLt7UebZIf2sJvt//dn+Le7bxzF5DKHSApemxaEIxNt
IK/g67R/2YDgosnqMZJT8OMYdv3z09Zy6mzWl2oUlUHcWY8KzqWkTko2Z4eam5gcVXWIGXWpbfZy
WcJRvrXtu7RB+6wRVginBwgGkyPHoTQmoozDEIxbMVfI5h6iHxD/vwN1IOhv3+J0ys7NNU0fOX2m
Y55bc5iOWQSroAZFGmsiIP+kxVoH8hrP3a6fQau6XrlZl1D6XwAAAP//AwBQSwECLQAUAAYACAAA
ACEAtjCEH1wBAADRBAAAEwAAAAAAAAAAAAAAAAAAAAAAW0NvbnRlbnRfVHlwZXNdLnhtbFBLAQIt
ABQABgAIAAAAIQCtMD/xwQAAADIBAAALAAAAAAAAAAAAAAAAAI0BAABfcmVscy8ucmVsc1BLAQIt
ABQABgAIAAAAIQBsc9Ko+BcAALGJAAAcAAAAAAAAAAAAAAAAAHcCAABjbGlwYm9hcmQvZGlhZ3Jh
bXMvZGF0YTEueG1sUEsBAi0AFAAGAAgAAAAhAMY1eYOPAQAASAQAAB8AAAAAAAAAAAAAAAAAqRoA
AGNsaXBib2FyZC9kcmF3aW5ncy9kcmF3aW5nMS54bWxQSwECLQAUAAYACAAAACEAOT3+zzABAAD8
AwAAKgAAAAAAAAAAAAAAAAB1HAAAY2xpcGJvYXJkL2RyYXdpbmdzL19yZWxzL2RyYXdpbmcxLnht
bC5yZWxzUEsBAi0AFAAGAAgAAAAhAJxOXiHiBgAAOhwAABoAAAAAAAAAAAAAAAAA7R0AAGNsaXBi
b2FyZC90aGVtZS90aGVtZTEueG1sUEsBAi0AFAAGAAgAAAAhAAPAojwRBAAA30EAAB4AAAAAAAAA
AAAAAAAAByUAAGNsaXBib2FyZC9kaWFncmFtcy9jb2xvcnMxLnhtbFBLAQItABQABgAIAAAAIQBZ
y6Sa2wMAAA1RAAAiAAAAAAAAAAAAAAAAAFQpAABjbGlwYm9hcmQvZGlhZ3JhbXMvcXVpY2tTdHls
ZTEueG1sUEsBAi0AFAAGAAgAAAAhAJBYRvbzCwAATlAAAB4AAAAAAAAAAAAAAAAAby0AAGNsaXBi
b2FyZC9kaWFncmFtcy9sYXlvdXQxLnhtbFBLAQItABQABgAIAAAAIQDPWa8+4AAAAJABAAAfAAAA
AAAAAAAAAAAAAJ45AABjbGlwYm9hcmQvZGlhZ3JhbXMvZHJhd2luZzEueG1sUEsFBgAAAAAKAAoA
5gIAALs6AAAAAA==
&quot;&gt;
 &lt;v:imagedata src=&quot;file:///C:\Users\p1di101\AppData\Local\Temp\msohtmlclip1\01\clip_image001.png&quot;
  o:title=&quot;&quot; cropbottom=&quot;-121f&quot; cropleft=&quot;-19532f&quot; cropright=&quot;-19289f&quot;/&gt;
 &lt;o:lock v:ext=&quot;edit&quot; aspectratio=&quot;f&quot;/&gt;
&lt;/v:shape&gt;&lt;![endif]--&gt;&lt;!--[if !vml]--&gt;&lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://sandeepbs404.blogspot.com/feeds/5252794391371884243/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sandeepbs404.blogspot.com/2013/06/quick-reference-to-adonet.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1725135844323517190/posts/default/5252794391371884243'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1725135844323517190/posts/default/5252794391371884243'/><link rel='alternate' type='text/html' href='http://sandeepbs404.blogspot.com/2013/06/quick-reference-to-adonet.html' title='Quick Reference to ADO.Net '/><author><name>sanju</name><uri>http://www.blogger.com/profile/05489844376913890016</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1725135844323517190.post-9193128796887963908</id><published>2013-02-28T01:45:00.000-08:00</published><updated>2013-02-28T01:45:26.721-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term=".Net"/><category scheme="http://www.blogger.com/atom/ns#" term="ASp.Net"/><category scheme="http://www.blogger.com/atom/ns#" term="C#"/><category scheme="http://www.blogger.com/atom/ns#" term="datatypes"/><category scheme="http://www.blogger.com/atom/ns#" term="SQL"/><category scheme="http://www.blogger.com/atom/ns#" term="sqlclr"/><category scheme="http://www.blogger.com/atom/ns#" term="sqlclr data types"/><title type='text'>SQL Server Data Types and Their .NET Framework Equivalents</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;br /&gt;
&lt;pre class=&quot;default prettyprint prettyprinted&quot; style=&quot;background-color: #eeeeee; border: 0px; font-family: Consolas, Menlo, Monaco, &#39;Lucida Console&#39;, &#39;Liberation Mono&#39;, &#39;DejaVu Sans Mono&#39;, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, monospace, serif; font-size: 14px; line-height: 18px; margin-bottom: 10px; max-height: 600px; overflow: auto; padding: 5px; vertical-align: baseline; width: auto;&quot;&gt;&lt;code style=&quot;border: 0px; font-family: Consolas, Menlo, Monaco, &#39;Lucida Console&#39;, &#39;Liberation Mono&#39;, &#39;DejaVu Sans Mono&#39;, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, monospace, serif; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;b&gt;&lt;u&gt;&lt;span style=&quot;color: #274e13;&quot;&gt;&lt;span class=&quot;pln&quot; style=&quot;background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;SQL&lt;/span&gt;&lt;span class=&quot;typ&quot; style=&quot;background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;Server&lt;/span&gt;&lt;/span&gt;&lt;/u&gt;&lt;/b&gt;&lt;span class=&quot;pln&quot; style=&quot;background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;b&gt;&lt;u&gt;&lt;span style=&quot;color: #274e13;&quot;&gt; datatype &lt;/span&gt;&lt;/u&gt;&lt;/b&gt;      &lt;u&gt;&lt;b&gt;&lt;span style=&quot;color: #274e13;&quot;&gt;CLRdatatype&lt;/span&gt;&lt;/b&gt;&lt;/u&gt;&lt;/span&gt;&lt;u&gt;&lt;b&gt;&lt;span style=&quot;color: #274e13;&quot;&gt;&lt;span class=&quot;pun&quot; style=&quot;background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;SQL&lt;/span&gt;&lt;span class=&quot;typ&quot; style=&quot;background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;Server&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/u&gt;&lt;span class=&quot;pln&quot; style=&quot;background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;    &lt;b&gt;&lt;u&gt;&lt;span style=&quot;color: #274e13;&quot;&gt;CLRdatatype&lt;/span&gt;&lt;/u&gt;&lt;/b&gt;&lt;/span&gt;&lt;b&gt;&lt;u&gt;&lt;span style=&quot;color: #274e13;&quot;&gt;&lt;span class=&quot;pun&quot; style=&quot;background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;(.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;NET &lt;/span&gt;&lt;span class=&quot;typ&quot; style=&quot;background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;Framework&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/u&gt;&lt;/b&gt;&lt;span class=&quot;pln&quot; style=&quot;background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;  
varbinary                     &lt;/span&gt;&lt;span class=&quot;typ&quot; style=&quot;background-color: transparent; border: 0px; color: #2b91af; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;SqlBytes&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;typ&quot; style=&quot;background-color: transparent; border: 0px; color: #2b91af; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;SqlBinary&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;           &lt;/span&gt;&lt;span class=&quot;typ&quot; style=&quot;background-color: transparent; border: 0px; color: #2b91af; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;Byte&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;[]&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;  
binary                        &lt;/span&gt;&lt;span class=&quot;typ&quot; style=&quot;background-color: transparent; border: 0px; color: #2b91af; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;SqlBytes&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;typ&quot; style=&quot;background-color: transparent; border: 0px; color: #2b91af; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;SqlBinary&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;           &lt;/span&gt;&lt;span class=&quot;typ&quot; style=&quot;background-color: transparent; border: 0px; color: #2b91af; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;Byte&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;[]&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;  
varbinary&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;background-color: transparent; border: 0px; color: maroon; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;),&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt; binary&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;background-color: transparent; border: 0px; color: maroon; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;       &lt;/span&gt;&lt;span class=&quot;typ&quot; style=&quot;background-color: transparent; border: 0px; color: #2b91af; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;SqlBytes&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;typ&quot; style=&quot;background-color: transparent; border: 0px; color: #2b91af; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;SqlBinary&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;           &lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;background-color: transparent; border: 0px; color: darkblue; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;byte&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;typ&quot; style=&quot;background-color: transparent; border: 0px; color: #2b91af; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;Byte&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;[]&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt; 
image                         &lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;background-color: transparent; border: 0px; color: darkblue; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;None&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;                          &lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;background-color: transparent; border: 0px; color: darkblue; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;None&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;

varchar                       &lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;background-color: transparent; border: 0px; color: darkblue; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;None&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;                          &lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;background-color: transparent; border: 0px; color: darkblue; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;None&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;
&lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;background-color: transparent; border: 0px; color: darkblue; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;char&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;                          &lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;background-color: transparent; border: 0px; color: darkblue; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;None&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;                          &lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;background-color: transparent; border: 0px; color: darkblue; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;None&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;
nvarchar&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;background-color: transparent; border: 0px; color: maroon; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;),&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt; nchar&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;background-color: transparent; border: 0px; color: maroon; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;         &lt;/span&gt;&lt;span class=&quot;typ&quot; style=&quot;background-color: transparent; border: 0px; color: #2b91af; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;SqlChars&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;typ&quot; style=&quot;background-color: transparent; border: 0px; color: #2b91af; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;SqlString&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;           &lt;/span&gt;&lt;span class=&quot;typ&quot; style=&quot;background-color: transparent; border: 0px; color: #2b91af; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;Char&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;typ&quot; style=&quot;background-color: transparent; border: 0px; color: #2b91af; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;String&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;typ&quot; style=&quot;background-color: transparent; border: 0px; color: #2b91af; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;Char&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;[]&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;     
nvarchar                      &lt;/span&gt;&lt;span class=&quot;typ&quot; style=&quot;background-color: transparent; border: 0px; color: #2b91af; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;SqlChars&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;typ&quot; style=&quot;background-color: transparent; border: 0px; color: #2b91af; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;SqlString&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;           &lt;/span&gt;&lt;span class=&quot;typ&quot; style=&quot;background-color: transparent; border: 0px; color: #2b91af; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;String&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;typ&quot; style=&quot;background-color: transparent; border: 0px; color: #2b91af; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;Char&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;[]&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt; 
nchar                         &lt;/span&gt;&lt;span class=&quot;typ&quot; style=&quot;background-color: transparent; border: 0px; color: #2b91af; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;SqlChars&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;typ&quot; style=&quot;background-color: transparent; border: 0px; color: #2b91af; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;SqlString&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;           &lt;/span&gt;&lt;span class=&quot;typ&quot; style=&quot;background-color: transparent; border: 0px; color: #2b91af; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;String&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;typ&quot; style=&quot;background-color: transparent; border: 0px; color: #2b91af; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;Char&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;[]&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt; 
text                          &lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;background-color: transparent; border: 0px; color: darkblue; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;None&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;                          &lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;background-color: transparent; border: 0px; color: darkblue; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;None&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;
ntext                         &lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;background-color: transparent; border: 0px; color: darkblue; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;None&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;                          &lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;background-color: transparent; border: 0px; color: darkblue; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;None&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;

uniqueidentifier              &lt;/span&gt;&lt;span class=&quot;typ&quot; style=&quot;background-color: transparent; border: 0px; color: #2b91af; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;SqlGuid&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;                       &lt;/span&gt;&lt;span class=&quot;typ&quot; style=&quot;background-color: transparent; border: 0px; color: #2b91af; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;Guid&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt; 
rowversion                    &lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;background-color: transparent; border: 0px; color: darkblue; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;None&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;                          &lt;/span&gt;&lt;span class=&quot;typ&quot; style=&quot;background-color: transparent; border: 0px; color: #2b91af; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;Byte&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;[]&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;  
bit                           &lt;/span&gt;&lt;span class=&quot;typ&quot; style=&quot;background-color: transparent; border: 0px; color: #2b91af; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;SqlBoolean&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;                    &lt;/span&gt;&lt;span class=&quot;typ&quot; style=&quot;background-color: transparent; border: 0px; color: #2b91af; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;Boolean&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt; 
tinyint                       &lt;/span&gt;&lt;span class=&quot;typ&quot; style=&quot;background-color: transparent; border: 0px; color: #2b91af; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;SqlByte&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;                       &lt;/span&gt;&lt;span class=&quot;typ&quot; style=&quot;background-color: transparent; border: 0px; color: #2b91af; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;Byte&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt; 
smallint                      &lt;/span&gt;&lt;span class=&quot;typ&quot; style=&quot;background-color: transparent; border: 0px; color: #2b91af; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;SqlInt16&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;                      &lt;/span&gt;&lt;span class=&quot;typ&quot; style=&quot;background-color: transparent; border: 0px; color: #2b91af; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;Int16&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;  
&lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;background-color: transparent; border: 0px; color: darkblue; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;int&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;                           &lt;/span&gt;&lt;span class=&quot;typ&quot; style=&quot;background-color: transparent; border: 0px; color: #2b91af; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;SqlInt32&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;                      &lt;/span&gt;&lt;span class=&quot;typ&quot; style=&quot;background-color: transparent; border: 0px; color: #2b91af; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;Int32&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;  
bigint                        &lt;/span&gt;&lt;span class=&quot;typ&quot; style=&quot;background-color: transparent; border: 0px; color: #2b91af; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;SqlInt64&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;                      &lt;/span&gt;&lt;span class=&quot;typ&quot; style=&quot;background-color: transparent; border: 0px; color: #2b91af; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;Int64&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt; 

smallmoney                    &lt;/span&gt;&lt;span class=&quot;typ&quot; style=&quot;background-color: transparent; border: 0px; color: #2b91af; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;SqlMoney&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;                      &lt;/span&gt;&lt;span class=&quot;typ&quot; style=&quot;background-color: transparent; border: 0px; color: #2b91af; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;Decimal&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;  
money                         &lt;/span&gt;&lt;span class=&quot;typ&quot; style=&quot;background-color: transparent; border: 0px; color: #2b91af; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;SqlMoney&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;                      &lt;/span&gt;&lt;span class=&quot;typ&quot; style=&quot;background-color: transparent; border: 0px; color: #2b91af; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;Decimal&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;  
numeric                       &lt;/span&gt;&lt;span class=&quot;typ&quot; style=&quot;background-color: transparent; border: 0px; color: #2b91af; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;SqlDecimal&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;                    &lt;/span&gt;&lt;span class=&quot;typ&quot; style=&quot;background-color: transparent; border: 0px; color: #2b91af; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;Decimal&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;  
&lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;background-color: transparent; border: 0px; color: darkblue; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;decimal&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;                       &lt;/span&gt;&lt;span class=&quot;typ&quot; style=&quot;background-color: transparent; border: 0px; color: #2b91af; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;SqlDecimal&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;                    &lt;/span&gt;&lt;span class=&quot;typ&quot; style=&quot;background-color: transparent; border: 0px; color: #2b91af; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;Decimal&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;  
real                          &lt;/span&gt;&lt;span class=&quot;typ&quot; style=&quot;background-color: transparent; border: 0px; color: #2b91af; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;SqlSingle&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;                     &lt;/span&gt;&lt;span class=&quot;typ&quot; style=&quot;background-color: transparent; border: 0px; color: #2b91af; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;Single&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;  
&lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;background-color: transparent; border: 0px; color: darkblue; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;float&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;                         &lt;/span&gt;&lt;span class=&quot;typ&quot; style=&quot;background-color: transparent; border: 0px; color: #2b91af; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;SqlDouble&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;                     &lt;/span&gt;&lt;span class=&quot;typ&quot; style=&quot;background-color: transparent; border: 0px; color: #2b91af; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;Double&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;  

smalldatetime                 &lt;/span&gt;&lt;span class=&quot;typ&quot; style=&quot;background-color: transparent; border: 0px; color: #2b91af; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;SqlDateTime&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;                   &lt;/span&gt;&lt;span class=&quot;typ&quot; style=&quot;background-color: transparent; border: 0px; color: #2b91af; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;DateTime&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;  
datetime                      &lt;/span&gt;&lt;span class=&quot;typ&quot; style=&quot;background-color: transparent; border: 0px; color: #2b91af; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;SqlDateTime&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;                   &lt;/span&gt;&lt;span class=&quot;typ&quot; style=&quot;background-color: transparent; border: 0px; color: #2b91af; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;DateTime&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt; 

sql_variant                   &lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;background-color: transparent; border: 0px; color: darkblue; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;None&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;                          &lt;/span&gt;&lt;span class=&quot;typ&quot; style=&quot;background-color: transparent; border: 0px; color: #2b91af; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;Object&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;  
&lt;/span&gt;&lt;span class=&quot;typ&quot; style=&quot;background-color: transparent; border: 0px; color: #2b91af; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;User&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;background-color: transparent; border: 0px; color: darkblue; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;defined&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt; type&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;UDT&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;background-color: transparent; border: 0px; color: darkblue; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;None&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;                          user&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;background-color: transparent; border: 0px; color: darkblue; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;defined&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt; type     
table                         &lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;background-color: transparent; border: 0px; color: darkblue; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;None&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;                          &lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;background-color: transparent; border: 0px; color: darkblue; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;None&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt; 
cursor                        &lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;background-color: transparent; border: 0px; color: darkblue; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;None&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;                          &lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;background-color: transparent; border: 0px; color: darkblue; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;None&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;
timestamp                     &lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;background-color: transparent; border: 0px; color: darkblue; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;None&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;                          &lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;background-color: transparent; border: 0px; color: darkblue; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;None&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt; 
xml                           &lt;/span&gt;&lt;span class=&quot;typ&quot; style=&quot;background-color: transparent; border: 0px; color: #2b91af; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;SqlXml&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;                        &lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;background-color: transparent; border: 0px; color: darkblue; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;None&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://sandeepbs404.blogspot.com/feeds/9193128796887963908/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sandeepbs404.blogspot.com/2013/02/sql-server-data-types-and-their-net.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1725135844323517190/posts/default/9193128796887963908'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1725135844323517190/posts/default/9193128796887963908'/><link rel='alternate' type='text/html' href='http://sandeepbs404.blogspot.com/2013/02/sql-server-data-types-and-their-net.html' title='SQL Server Data Types and Their .NET Framework Equivalents'/><author><name>sanju</name><uri>http://www.blogger.com/profile/05489844376913890016</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1725135844323517190.post-5455506563904253142</id><published>2012-11-19T23:46:00.002-08:00</published><updated>2012-11-19T23:47:30.565-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term=".Net"/><category scheme="http://www.blogger.com/atom/ns#" term="Assembly"/><category scheme="http://www.blogger.com/atom/ns#" term="C#"/><category scheme="http://www.blogger.com/atom/ns#" term="SQL"/><category scheme="http://www.blogger.com/atom/ns#" term="sqlclr"/><title type='text'>Get Assembly location of the DLL added to SQL Server</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;br /&gt;
&lt;i&gt;SELECT&amp;nbsp;&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&amp;nbsp; &amp;nbsp; assembly = a.name,&amp;nbsp;&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&amp;nbsp; &amp;nbsp; path &amp;nbsp; &amp;nbsp; = f.name&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;FROM sys.assemblies AS a&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;INNER JOIN sys.assembly_files AS f&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;ON a.assembly_id = f.assembly_id&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;WHERE a.is_user_defined = 1;&lt;/i&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://sandeepbs404.blogspot.com/feeds/5455506563904253142/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sandeepbs404.blogspot.com/2012/11/get-assembly-location-of-dll-added-to.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1725135844323517190/posts/default/5455506563904253142'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1725135844323517190/posts/default/5455506563904253142'/><link rel='alternate' type='text/html' href='http://sandeepbs404.blogspot.com/2012/11/get-assembly-location-of-dll-added-to.html' title='Get Assembly location of the DLL added to SQL Server'/><author><name>sanju</name><uri>http://www.blogger.com/profile/05489844376913890016</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1725135844323517190.post-7025815927392328624</id><published>2012-11-08T01:13:00.000-08:00</published><updated>2012-11-08T01:13:50.836-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term=".Net"/><category scheme="http://www.blogger.com/atom/ns#" term="ASp.Net"/><category scheme="http://www.blogger.com/atom/ns#" term="C#"/><category scheme="http://www.blogger.com/atom/ns#" term="CommandArgument"/><category scheme="http://www.blogger.com/atom/ns#" term="GridView"/><category scheme="http://www.blogger.com/atom/ns#" term="GridViewRowCommand"/><title type='text'>Get GridView Column Headers and Appropriate Row Values in Asp.Net</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
Get Gridview column header(s) text and Specific Row&#39;s Values on Row Command in asp.net. Below Method takes GridView control, Command Source Within the Row(LinkButton,&amp;nbsp;Button, ImageButton, etc..), no of Columns to skip in from Start Column and from End Column as Parameters and returns List&amp;lt;KeyValuePair&amp;lt;headerText,Values&amp;gt;&amp;gt; as output.&lt;br /&gt;&lt;br /&gt;
&lt;div dir=&quot;ltr&quot; id=&quot;imcontent&quot;&gt;
&lt;div dir=&quot;ltr&quot; id=&quot;imcontent&quot;&gt;
&lt;div dir=&quot;ltr&quot; id=&quot;imcontent&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; id=&quot;imcontent&quot;&gt;
&lt;span style=&quot;color: blue; font-family: Consolas; font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; id=&quot;imcontent&quot;&gt;
&lt;span style=&quot;color: #741b47; font-family: Consolas; font-size: x-small;&quot;&gt;&lt;b&gt;private void SetDeleteDetails(GridView pGV, object pCmdSource, int pStartSkipColCount=0, int pEndSkipColCount=0)&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; id=&quot;imcontent&quot;&gt;
&lt;span style=&quot;color: #741b47; font-family: Consolas; font-size: x-small;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; id=&quot;imcontent&quot;&gt;
&lt;span style=&quot;font-family: Consolas; font-size: x-small;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #741b47;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #c27ba0;&quot;&gt; List&amp;lt;KeyValuePair&amp;lt;string, string&amp;gt;&amp;gt; lkvp = new List&amp;lt;KeyValuePair&amp;lt;string, string&amp;gt;&amp;gt;();&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; id=&quot;imcontent&quot;&gt;
&lt;span style=&quot;color: #c27ba0; font-family: Consolas; font-size: x-small;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; GridViewRow rw = (GridViewRow)((Control)pCmdSource).NamingContainer;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; id=&quot;imcontent&quot;&gt;
&lt;span style=&quot;color: #c27ba0; font-family: Consolas; font-size: x-small;&quot;&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; id=&quot;imcontent&quot;&gt;
&lt;span style=&quot;color: #c27ba0; font-family: Consolas; font-size: x-small;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; for (int i = pStartSkipColCount; i &amp;lt; pGV.Columns.Count - pEndSkipColCount; i++)&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; id=&quot;imcontent&quot;&gt;
&lt;span style=&quot;color: #c27ba0; font-family: Consolas; font-size: x-small;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (!string.IsNullOrEmpty(rw.Cells[i].Text))&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; id=&quot;imcontent&quot;&gt;
&lt;span style=&quot;color: #c27ba0; font-family: Consolas; font-size: x-small;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; lkvp.Add(new KeyValuePair&amp;lt;string, string&amp;gt;(pGV.Columns[i].HeaderText, rw.Cells[i].Text));&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; id=&quot;imcontent&quot;&gt;
&lt;span style=&quot;color: #c27ba0; font-family: Consolas; font-size: x-small;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //Session[&quot;DeleteDetails&quot;] = lkvp;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; id=&quot;imcontent&quot;&gt;
&lt;span style=&quot;color: #741b47; font-family: Consolas; font-size: x-small;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://sandeepbs404.blogspot.com/feeds/7025815927392328624/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sandeepbs404.blogspot.com/2012/11/get-gridview-column-headers-and.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1725135844323517190/posts/default/7025815927392328624'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1725135844323517190/posts/default/7025815927392328624'/><link rel='alternate' type='text/html' href='http://sandeepbs404.blogspot.com/2012/11/get-gridview-column-headers-and.html' title='Get GridView Column Headers and Appropriate Row Values in Asp.Net'/><author><name>sanju</name><uri>http://www.blogger.com/profile/05489844376913890016</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1725135844323517190.post-5083228644776665936</id><published>2012-11-07T06:31:00.000-08:00</published><updated>2012-11-07T06:31:26.454-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term=".Net"/><category scheme="http://www.blogger.com/atom/ns#" term="ASp.Net"/><category scheme="http://www.blogger.com/atom/ns#" term="C#"/><category scheme="http://www.blogger.com/atom/ns#" term="Expressions"/><title type='text'>Get Specific Property Name Using Expression</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;br /&gt;
Hope the program explains all:&lt;br /&gt;
&lt;br /&gt;
class Program&lt;br /&gt;
&amp;nbsp; &amp;nbsp; {&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; static void Main(string[] args)&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; SomeClass sc = new SomeClass();&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Console.WriteLine(sc.p1.GetType());&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //RemoteMgr.ExposeProperty(() =&amp;gt; SomeClass.SomeProperty);&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; MemberInfo member = RemoteMgr.GetMemberInfo((SomeClass p) =&amp;gt; p.SomeProperty);&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Console.WriteLine(member.Name);&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Console.ReadKey();&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;br /&gt;
&amp;nbsp; &amp;nbsp; }&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; public class SomeClass&lt;br /&gt;
&amp;nbsp; &amp;nbsp; {&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; public string SomeProperty&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; get { return &quot;Foo&quot;; }&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;br /&gt;
&amp;nbsp; &amp;nbsp; }&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; public class RemoteMgr&lt;br /&gt;
&amp;nbsp; &amp;nbsp; {&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; public static MemberInfo GetMemberInfo&amp;lt;T, U&amp;gt;(Expression&amp;lt;Func&amp;lt;T,U&amp;gt;&amp;gt; expression)&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; var member = expression.Body as MemberExpression;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (member != null)&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return member.Member;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; throw new ArgumentException(&quot;Expression is not a member access&quot;, &quot;expression&quot;);&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;br /&gt;
&amp;nbsp; &amp;nbsp; }&lt;br /&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://sandeepbs404.blogspot.com/feeds/5083228644776665936/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sandeepbs404.blogspot.com/2012/11/get-specific-property-name-using.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1725135844323517190/posts/default/5083228644776665936'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1725135844323517190/posts/default/5083228644776665936'/><link rel='alternate' type='text/html' href='http://sandeepbs404.blogspot.com/2012/11/get-specific-property-name-using.html' title='Get Specific Property Name Using Expression'/><author><name>sanju</name><uri>http://www.blogger.com/profile/05489844376913890016</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1725135844323517190.post-1985403979311035160</id><published>2012-10-22T06:50:00.003-07:00</published><updated>2012-10-22T06:51:40.490-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term=".Net"/><category scheme="http://www.blogger.com/atom/ns#" term="ASp.Net"/><category scheme="http://www.blogger.com/atom/ns#" term="AutoPostBack"/><category scheme="http://www.blogger.com/atom/ns#" term="C#"/><category scheme="http://www.blogger.com/atom/ns#" term="Control Events"/><category scheme="http://www.blogger.com/atom/ns#" term="Controls"/><title type='text'>Raising a Button Click Event Programmatically</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;br /&gt;
&lt;div style=&quot;background-color: white; font-family: Tahoma, Arial, Helvetica; font-size: 11px; font-weight: bold;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; font-family: Tahoma, Arial, Helvetica; font-size: 11px; font-weight: bold;&quot;&gt;
You can use the following C# code raise the event:&lt;/div&gt;
&lt;span class=&quot;csharpcode&quot; style=&quot;background-color: white; font-family: &#39;Courier New&#39;, Courier, monospace; font-size: 11px; font-weight: bold;&quot;&gt;((IPostBackEventHandler)Button1).RaisePostBackEvent(null);&lt;/span&gt;&lt;span style=&quot;background-color: white; font-family: Tahoma, Arial, Helvetica; font-size: 11px; font-weight: bold;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div style=&quot;background-color: white; font-family: Tahoma, Arial, Helvetica; font-size: 11px; font-weight: bold;&quot;&gt;
This code will raise the button-click event for Button1 just as though the user clicked the button.&amp;nbsp; Since we are passing a null as the EventArgs for the event, the registered methods must not attempt to do anything with it.&amp;nbsp; Or, you could create an EventArgs object and pass it.&lt;/div&gt;
&lt;div style=&quot;background-color: white; font-family: Tahoma, Arial, Helvetica; font-size: 11px; font-weight: bold;&quot;&gt;
There is at least one other approach using reflection, but I think the technique above is the cleaner way to do this.&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;background-color: white; font-family: Tahoma, Arial, Helvetica; font-size: 11px; font-weight: bold;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; font-family: Tahoma, Arial, Helvetica; font-size: 11px; font-weight: bold;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; font-family: Tahoma, Arial, Helvetica; font-size: 11px; font-weight: bold;&quot;&gt;
Ref :&amp;nbsp;&lt;a href=&quot;http://www.netsplore.com/PublicPortal/Blog/tabid/284/EntryID/11/Default.aspx&quot; style=&quot;background-color: transparent;&quot;&gt;http://www.netsplore.com/PublicPortal/Blog/tabid/284/EntryID/11/Default.aspx&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://sandeepbs404.blogspot.com/feeds/1985403979311035160/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sandeepbs404.blogspot.com/2012/10/raising-button-click-event.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1725135844323517190/posts/default/1985403979311035160'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1725135844323517190/posts/default/1985403979311035160'/><link rel='alternate' type='text/html' href='http://sandeepbs404.blogspot.com/2012/10/raising-button-click-event.html' title='Raising a Button Click Event Programmatically'/><author><name>sanju</name><uri>http://www.blogger.com/profile/05489844376913890016</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1725135844323517190.post-8746073498996152121</id><published>2012-10-08T23:02:00.004-07:00</published><updated>2012-11-08T01:14:23.924-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term=".Net"/><category scheme="http://www.blogger.com/atom/ns#" term="ASp.Net"/><category scheme="http://www.blogger.com/atom/ns#" term="C#"/><category scheme="http://www.blogger.com/atom/ns#" term="ViewState"/><title type='text'>Understanding ASP.NET View State</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;br /&gt;
&lt;h2 class=&quot;dtH1&quot; style=&quot;color: #3f529c; font-family: &#39;Segoe UI&#39;, Verdana, Arial; font-size: 1.538em;&quot;&gt;
Introduction&lt;/h2&gt;
&lt;div style=&quot;font-family: &#39;Segoe UI&#39;, Verdana, Arial; font-size: 12.727272033691406px;&quot;&gt;
Microsoft® ASP.NET view state, in a nutshell, is the technique used by an ASP.NET Web page to persist changes to the state of a Web Form across postbacks. In my experiences as a trainer and consultant, view state has caused the most confusion among ASP.NET developers. When creating custom server controls or doing more advanced page techniques, not having a solid grasp of what view state is and how it works can come back to bite you. Web designers who are focused on creating low-bandwidth, streamlined pages oftentimes find themselves frustrated with view state, as well. The view state of a page is, by default, placed in a hidden form field named&amp;nbsp;&lt;code class=&quot;ce&quot;&gt;__VIEWSTATE&lt;/code&gt;. This hidden form field can easily get very large, on the order of tens of kilobytes. Not only does the&amp;nbsp;&lt;code class=&quot;ce&quot;&gt;__VIEWSTATE&lt;/code&gt;&amp;nbsp;form field cause slower downloads, but, whenever the user posts back the Web page, the contents of this hidden form field must be posted back in the HTTP request, thereby lengthening the request time, as well.&lt;/div&gt;
&lt;div style=&quot;font-family: &#39;Segoe UI&#39;, Verdana, Arial; font-size: 12.727272033691406px;&quot;&gt;
This article aims to be an in-depth examination of the ASP.NET view state. We&#39;ll look at exactly what view state is storing, and how the view state is serialized to the hidden form field and deserialized back on postback. We&#39;ll also discuss techniques for reducing the bandwidth required by the view state.&lt;/div&gt;
&lt;blockquote class=&quot;dtBlock&quot; style=&quot;font-family: &#39;Segoe UI&#39;, Verdana, Arial; font-size: 12.727272033691406px;&quot;&gt;
&lt;strong&gt;Note&lt;/strong&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;This article is geared toward the ASP.NET page developer rather than the ASP.NET server control developer. This article therefore does not include a discussion on how a control developer would implement saving state. For an in-depth discussion on that issue, refer to the book&amp;nbsp;&lt;a href=&quot;http://www.microsoft.com/mspress/books/5728.asp&quot; style=&quot;color: #960bb4; text-decoration: none;&quot;&gt;Developing Microsoft ASP.NET Server Controls and Components&lt;/a&gt;.&lt;/blockquote&gt;
&lt;div style=&quot;font-family: &#39;Segoe UI&#39;, Verdana, Arial; font-size: 12.727272033691406px;&quot;&gt;
Before we can dive into our examination of view state, it is important that we first take a quick moment to discuss the ASP.NET page life cycle. That is, what exactly happens when a request comes in from a browser for an ASP.NET Web page? We&#39;ll step through this process in the next section.&lt;/div&gt;
&lt;div style=&quot;font-family: &#39;Segoe UI&#39;, Verdana, Arial; font-size: 12.727272033691406px;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: &#39;Segoe UI&#39;, Verdana, Arial; font-size: 12.727272033691406px;&quot;&gt;
Source :&amp;nbsp;&lt;a href=&quot;http://msdn.microsoft.com/en-us/library/ms972976.aspx&quot;&gt;http://msdn.microsoft.com/en-us/library/ms972976.aspx&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://sandeepbs404.blogspot.com/feeds/8746073498996152121/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sandeepbs404.blogspot.com/2012/10/understanding-aspnet-view-state.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1725135844323517190/posts/default/8746073498996152121'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1725135844323517190/posts/default/8746073498996152121'/><link rel='alternate' type='text/html' href='http://sandeepbs404.blogspot.com/2012/10/understanding-aspnet-view-state.html' title='Understanding ASP.NET View State'/><author><name>sanju</name><uri>http://www.blogger.com/profile/05489844376913890016</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1725135844323517190.post-6262579338724779828</id><published>2012-08-14T04:28:00.000-07:00</published><updated>2012-08-14T04:28:15.438-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term=".Net"/><category scheme="http://www.blogger.com/atom/ns#" term="C#"/><category scheme="http://www.blogger.com/atom/ns#" term="Expressions"/><category scheme="http://www.blogger.com/atom/ns#" term="Rules Engine"/><category scheme="http://www.blogger.com/atom/ns#" term="Validation Engine"/><title type='text'>Simple Business Rules Engine</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;span style=&quot;color: #253340; font-family: &#39;Segoe UI&#39;, Tahoma, Arial, Helvetica, sans-serif; font-size: 13px; line-height: 19.016666412353516px;&quot;&gt;Rules Engine is a . NET C# project that validates business logic by defining a bunch of rules for your data classes. Rules are defined using a fluent-interface (fluent validation) helper class, and&amp;nbsp;&lt;/span&gt;&lt;u style=&quot;border: 0px; color: #253340; font-family: &#39;Segoe UI&#39;, Tahoma, Arial, Helvetica, sans-serif; font-size: 13px; line-height: 19.016666412353516px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;not&amp;nbsp;&lt;/u&gt;&lt;span style=&quot;color: #253340; font-family: &#39;Segoe UI&#39;, Tahoma, Arial, Helvetica, sans-serif; font-size: 13px; line-height: 19.016666412353516px;&quot;&gt;by decorating your existing objects with attributes, therefore de-coupling validation logic from data (or domain) classes.&lt;/span&gt;&lt;br /&gt;
&lt;h2 style=&quot;background-color: #f0f1f4; border: 0px; color: #253340; font-family: &#39;Segoe UI Semibold&#39;, Segoe-Semibold, Tahoma, Arial, Helvetica, sans-serif; font-size: 1.308em; font-weight: normal; height: 40px; letter-spacing: 1px; line-height: 1.923em; margin-bottom: 15px !important; margin-left: 0px; margin-right: 0px; margin-top: 20px !important; outline: 0px; padding: 1px 0px 3px 14px; vertical-align: baseline; width: 636px;&quot;&gt;
Features&lt;/h2&gt;
&lt;ul style=&quot;border: 0px; color: #253340; font-family: &#39;Segoe UI&#39;, Tahoma, Arial, Helvetica, sans-serif; font-size: 13px; line-height: 19.016666412353516px; list-style: none url(http://i2.codeplex.com/Images/v19252/doublearrow.gif); margin: 15px 0px 20px; outline: 0px; padding: 0px 0px 0px 35px; vertical-align: baseline;&quot;&gt;
&lt;li style=&quot;border: 0px; margin: 0.3em 0px 0.3em 40px; outline: 0px; padding: 0px; vertical-align: middle;&quot;&gt;&lt;b style=&quot;border: 0px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;Rules are inheritable.&lt;/b&gt;&amp;nbsp;Defining RuleX for TypeA will also apply to TypeB (given that TypeB inherits from Type A)&amp;nbsp;&lt;/li&gt;
&lt;li style=&quot;border: 0px; margin: 0.3em 0px 0.3em 40px; outline: 0px; padding: 0px; vertical-align: middle;&quot;&gt;&lt;b style=&quot;border: 0px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;Rules are extensible.&lt;/b&gt;&amp;nbsp;Creating custom rules are only a matter of implementing an interface.&amp;nbsp;&lt;/li&gt;
&lt;li style=&quot;border: 0px; margin: 0.3em 0px 0.3em 40px; outline: 0px; padding: 0px; vertical-align: middle;&quot;&gt;&lt;b style=&quot;border: 0px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;Conditional validation.&lt;/b&gt;&amp;nbsp;When defining rules, it is possible to have different rules given different conditions. E.g. Not Null Rule only applies to FieldA when FieldB &amp;gt; 100&lt;/li&gt;
&lt;li style=&quot;border: 0px; margin: 0.3em 0px 0.3em 40px; outline: 0px; padding: 0px; vertical-align: middle;&quot;&gt;&lt;b style=&quot;border: 0px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;Cross-Field validation.&lt;/b&gt;&amp;nbsp;Defining a rule that FieldA must be greater than FieldB comes very naturally with the fluent-interface helper class.&amp;nbsp;&lt;/li&gt;
&lt;li style=&quot;border: 0px; margin: 0.3em 0px 0.3em 40px; outline: 0px; padding: 0px; vertical-align: middle;&quot;&gt;&lt;b style=&quot;border: 0px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;Fluent-Interface.&lt;/b&gt;&amp;nbsp;Adding rules to objects is done by a fluent-interface helper class.&amp;nbsp;&lt;/li&gt;
&lt;li style=&quot;border: 0px; margin: 0.3em 0px 0.3em 40px; outline: 0px; padding: 0px; vertical-align: middle;&quot;&gt;&lt;b style=&quot;border: 0px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;Error Messages.&lt;/b&gt;&amp;nbsp;Defining error messages can be done at the same time as defining your rules (Or separately). They can apply to the Class, A Property of that class, or a Rule for that property.&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;span style=&quot;color: #253340; font-family: Segoe UI, Tahoma, Arial, Helvetica, sans-serif; font-size: x-small;&quot;&gt;&lt;span style=&quot;line-height: 19px;&quot;&gt;Below is the simple example for rules engine:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #253340; font-family: Segoe UI, Tahoma, Arial, Helvetica, sans-serif; font-size: x-small;&quot;&gt;&lt;span style=&quot;line-height: 19px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;pre style=&quot;background-color: rgb(236, 236, 236) !important; border: 0.1em dashed rgb(62, 98, 166) !important; color: #253340; font-family: Consolas, &#39;Courier New&#39;, Courier, monospace !important; font-size: 13px; height: auto; line-height: 19.016666412353516px; margin-bottom: 20px; outline: 0px; overflow: hidden; padding: 0.5em 0.5em 1.5em; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;public class Person
    {
        public string Name { get; set; }
        public string Phone { get; set; }
        public DateTime DateOfBirth { get; set; }
    }

    public class Program
    {
        public static void Main(string[] args)
        {
            Engine engine = new Engine();
            engine.For&amp;lt;Person&amp;gt;()
                    .Setup(p =&amp;gt; p.DateOfBirth)
                        .MustBeLessThan(DateTime.Now)
                    .Setup(p =&amp;gt; p.Name)
                        .MustNotBeNull()
                        .MustMatchRegex(&quot;^[a-zA-z]+$&quot;)
                    .Setup(p =&amp;gt; p.Phone)
                        .MustNotBeNull()
                        .MustMatchRegex(&quot;^[0-9]+$&quot;);

            Person person = new Person();
            person.Name = &quot;Bill&quot;;
            person.Phone = &quot;1234214&quot;;
            person.DateOfBirth = new DateTime(1999, 10, 2);

            bool isValid = engine.Validate(person);
        }
    }&lt;/pre&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #253340; font-family: Segoe UI, Tahoma, Arial, Helvetica, sans-serif; font-size: x-small;&quot;&gt;&lt;span style=&quot;line-height: 19px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #253340; font-family: Segoe UI, Tahoma, Arial, Helvetica, sans-serif; font-size: x-small;&quot;&gt;&lt;span style=&quot;line-height: 19px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #253340; font-family: Segoe UI, Tahoma, Arial, Helvetica, sans-serif; font-size: x-small;&quot;&gt;&lt;span style=&quot;line-height: 19px;&quot;&gt;Please Follow the Following LInk for downloading Rules Engine&amp;nbsp;&lt;a href=&quot;http://rulesengine.codeplex.com/&quot;&gt;http://rulesengine.codeplex.com/&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://sandeepbs404.blogspot.com/feeds/6262579338724779828/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sandeepbs404.blogspot.com/2012/08/simple-business-rules-engine.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1725135844323517190/posts/default/6262579338724779828'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1725135844323517190/posts/default/6262579338724779828'/><link rel='alternate' type='text/html' href='http://sandeepbs404.blogspot.com/2012/08/simple-business-rules-engine.html' title='Simple Business Rules Engine'/><author><name>sanju</name><uri>http://www.blogger.com/profile/05489844376913890016</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1725135844323517190.post-8459542625777106520</id><published>2012-07-03T20:28:00.001-07:00</published><updated>2012-07-03T20:28:37.617-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="JOINS"/><category scheme="http://www.blogger.com/atom/ns#" term="SQL"/><title type='text'>SQL Joins</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
The below fully&amp;nbsp;describes&amp;nbsp;the JOIN concepts in sql.&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgk8xAJhDIQwUfazhomj4RALGj4HdSzGHuzZb45YAaubJ5IcXh0ymWvBcNCFdmmIrLFhRUKvjzm__qAMhkGRhTLeB9Z-VT7awcbKEebAWGwophjV123lvYJ9R5yLyf13KM4zwq6Pwa0UbU/s1600/sqljoins.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgk8xAJhDIQwUfazhomj4RALGj4HdSzGHuzZb45YAaubJ5IcXh0ymWvBcNCFdmmIrLFhRUKvjzm__qAMhkGRhTLeB9Z-VT7awcbKEebAWGwophjV123lvYJ9R5yLyf13KM4zwq6Pwa0UbU/s1600/sqljoins.jpg&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sandeepbs404.blogspot.com/feeds/8459542625777106520/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sandeepbs404.blogspot.com/2012/07/sql-joins.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1725135844323517190/posts/default/8459542625777106520'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1725135844323517190/posts/default/8459542625777106520'/><link rel='alternate' type='text/html' href='http://sandeepbs404.blogspot.com/2012/07/sql-joins.html' title='SQL Joins'/><author><name>sanju</name><uri>http://www.blogger.com/profile/05489844376913890016</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgk8xAJhDIQwUfazhomj4RALGj4HdSzGHuzZb45YAaubJ5IcXh0ymWvBcNCFdmmIrLFhRUKvjzm__qAMhkGRhTLeB9Z-VT7awcbKEebAWGwophjV123lvYJ9R5yLyf13KM4zwq6Pwa0UbU/s72-c/sqljoins.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1725135844323517190.post-3830531209364234765</id><published>2012-07-03T20:25:00.000-07:00</published><updated>2012-07-03T20:25:19.849-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="PHP"/><category scheme="http://www.blogger.com/atom/ns#" term="PHPEXCEL"/><title type='text'>Alternative for PHP_excel</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;br /&gt;
&lt;div style=&quot;border: 0px; clear: both; font-family: Arial, &#39;Liberation Sans&#39;, &#39;DejaVu Sans&#39;, sans-serif; font-size: 14px; line-height: 18px; margin-bottom: 1em; padding: 0px; vertical-align: baseline; word-wrap: break-word;&quot;&gt;
Alternative for PHP_excel which can &quot;Export to XLSX/XLS&quot; file in a customized format
&lt;/div&gt;
&lt;div style=&quot;border: 0px; clear: both; font-family: Arial, &#39;Liberation Sans&#39;, &#39;DejaVu Sans&#39;, sans-serif; font-size: 14px; line-height: 18px; margin-bottom: 1em; padding: 0px; vertical-align: baseline; word-wrap: break-word;&quot;&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;For Writing Excel&lt;/span&gt;&lt;/div&gt;
&lt;ul style=&quot;border: 0px; font-family: Arial, &#39;Liberation Sans&#39;, &#39;DejaVu Sans&#39;, sans-serif; font-size: 14px; line-height: 18px; list-style-image: initial; list-style-position: initial; margin: 0px 0px 1em 30px; padding: 0px; vertical-align: baseline;&quot;&gt;
&lt;li style=&quot;background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline; word-wrap: break-word;&quot;&gt;PEAR&#39;s&amp;nbsp;&lt;a href=&quot;http://pear.php.net/package/Spreadsheet_Excel_Writer&quot; rel=&quot;nofollow&quot; style=&quot;background-color: transparent; border: 0px; color: #4a6b82; cursor: pointer; margin: 0px; padding: 0px; text-decoration: none; vertical-align: baseline;&quot;&gt;PHP_Excel_Writer&lt;/a&gt;&amp;nbsp;(xls only)&lt;/li&gt;
&lt;li style=&quot;background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline; word-wrap: break-word;&quot;&gt;&lt;a href=&quot;http://www.bettina-attack.de/jonny/view.php/projects/php_writeexcel/&quot; rel=&quot;nofollow&quot; style=&quot;background-color: transparent; border: 0px; color: #4a6b82; cursor: pointer; margin: 0px; padding: 0px; text-decoration: none; vertical-align: baseline;&quot;&gt;php_writeexcel&lt;/a&gt;&amp;nbsp;from Bettina Attack (xls only)&lt;/li&gt;
&lt;li style=&quot;background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline; word-wrap: break-word;&quot;&gt;&lt;a href=&quot;http://paggard.com/projects/xls.generator/&quot; rel=&quot;nofollow&quot; style=&quot;background-color: transparent; border: 0px; color: #4a6b82; cursor: pointer; margin: 0px; padding: 0px; text-decoration: none; vertical-align: baseline;&quot;&gt;XLS File Generator&lt;/a&gt;&amp;nbsp;commercial and xls only&lt;/li&gt;
&lt;li style=&quot;background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline; word-wrap: break-word;&quot;&gt;&lt;a href=&quot;http://sourceforge.net/projects/excelwriterxml/&quot; rel=&quot;nofollow&quot; style=&quot;background-color: transparent; border: 0px; color: #4a6b82; cursor: pointer; margin: 0px; padding: 0px; text-decoration: none; vertical-align: baseline;&quot;&gt;Excel Writer for PHP&lt;/a&gt;&amp;nbsp;from Sourceforge (spreadsheetML only)&lt;/li&gt;
&lt;li style=&quot;background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline; word-wrap: break-word;&quot;&gt;Ilia Alshanetsky&#39;s&amp;nbsp;&lt;a href=&quot;http://ilia.ws/archives/222-PHP-Excel-Extension.html&quot; rel=&quot;nofollow&quot; style=&quot;background-color: transparent; border: 0px; color: #4a6b82; cursor: pointer; margin: 0px; padding: 0px; text-decoration: none; vertical-align: baseline;&quot;&gt;Excel extension&lt;/a&gt;&amp;nbsp;(xls only, and requires commercial component)&lt;/li&gt;
&lt;li style=&quot;background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline; word-wrap: break-word;&quot;&gt;PHP&#39;s&amp;nbsp;&lt;a href=&quot;http://uk3.php.net/manual/en/book.com.php&quot; rel=&quot;nofollow&quot; style=&quot;background-color: transparent; border: 0px; color: #4a6b82; cursor: pointer; margin: 0px; padding: 0px; text-decoration: none; vertical-align: baseline;&quot;&gt;COM extension&lt;/a&gt;&amp;nbsp;(requires a COM enabled spreadsheet program such as MS Excel or OpenOffice Calc running on the server)&lt;/li&gt;
&lt;li style=&quot;background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline; word-wrap: break-word;&quot;&gt;The Open Office alternative to COM (&lt;a href=&quot;http://www.wstech2.net/index.php?do=0a,01,05&quot; rel=&quot;nofollow&quot; style=&quot;background-color: transparent; border: 0px; color: #4a6b82; cursor: pointer; margin: 0px; padding: 0px; text-decoration: none; vertical-align: baseline;&quot;&gt;PUNO&lt;/a&gt;) (requires Open Office installed on the server with Java support enabled)&lt;/li&gt;
&lt;li style=&quot;background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline; word-wrap: break-word;&quot;&gt;&lt;a href=&quot;https://github.com/elidickinson/php-export-data/blob/master/php-export-data.class.php&quot; rel=&quot;nofollow&quot; style=&quot;background-color: transparent; border: 0px; color: #4a6b82; cursor: pointer; margin: 0px; padding: 0px; text-decoration: none; vertical-align: baseline;&quot;&gt;PHP-Export-Data&lt;/a&gt;&amp;nbsp;by Eli Dickinson (Writes SpreadsheetML - the Excel 2003 XML format, and CSV)&lt;/li&gt;
&lt;li style=&quot;background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline; word-wrap: break-word;&quot;&gt;Oliver Schwarz&#39;s&amp;nbsp;&lt;a href=&quot;https://github.com/oliverschwarz/php-excel&quot; rel=&quot;nofollow&quot; style=&quot;background-color: transparent; border: 0px; color: #4a6b82; cursor: pointer; margin: 0px; padding: 0px; text-decoration: none; vertical-align: baseline;&quot;&gt;php-excel&lt;/a&gt;&amp;nbsp;(SpreadsheetML)&lt;/li&gt;
&lt;li style=&quot;background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline; word-wrap: break-word;&quot;&gt;Oliver Schwarz&#39;s original version of&amp;nbsp;&lt;a href=&quot;http://code.google.com/p/php-excel/&quot; rel=&quot;nofollow&quot; style=&quot;background-color: transparent; border: 0px; color: #4a6b82; cursor: pointer; margin: 0px; padding: 0px; text-decoration: none; vertical-align: baseline;&quot;&gt;php-excel&lt;/a&gt;&amp;nbsp;(SpreadsheetML)&lt;/li&gt;
&lt;li style=&quot;background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline; word-wrap: break-word;&quot;&gt;&lt;a href=&quot;http://web.burza.hr/blog/php-class-for-exporting-data-in-multiple-worksheets-excel-xml/&quot; rel=&quot;nofollow&quot; style=&quot;background-color: transparent; border: 0px; color: #4a6b82; cursor: pointer; margin: 0px; padding: 0px; text-decoration: none; vertical-align: baseline;&quot;&gt;excel_xml&lt;/a&gt;&amp;nbsp;(SpreadsheetML, despite its name)&lt;/li&gt;
&lt;/ul&gt;
&lt;div style=&quot;border: 0px; clear: both; font-family: Arial, &#39;Liberation Sans&#39;, &#39;DejaVu Sans&#39;, sans-serif; font-size: 14px; line-height: 18px; margin-bottom: 1em; padding: 0px; vertical-align: baseline; word-wrap: break-word;&quot;&gt;
For Reading Excel&lt;/div&gt;
&lt;ul style=&quot;border: 0px; font-family: Arial, &#39;Liberation Sans&#39;, &#39;DejaVu Sans&#39;, sans-serif; font-size: 14px; line-height: 18px; list-style-image: initial; list-style-position: initial; margin: 0px 0px 1em 30px; padding: 0px; vertical-align: baseline;&quot;&gt;
&lt;li style=&quot;background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline; word-wrap: break-word;&quot;&gt;&lt;a href=&quot;http://code.google.com/p/php-spreadsheetreader/&quot; rel=&quot;nofollow&quot; style=&quot;background-color: transparent; border: 0px; color: #4a6b82; cursor: pointer; margin: 0px; padding: 0px; text-decoration: none; vertical-align: baseline;&quot;&gt;php-spreadsheetreader&lt;/a&gt;&amp;nbsp;reads a variety of formats (.xls, .ods AND .csv)&lt;/li&gt;
&lt;li style=&quot;background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline; word-wrap: break-word;&quot;&gt;&lt;a href=&quot;http://phpexcelreader.sourceforge.net/&quot; rel=&quot;nofollow&quot; style=&quot;background-color: transparent; border: 0px; color: #4a6b82; cursor: pointer; margin: 0px; padding: 0px; text-decoration: none; vertical-align: baseline;&quot;&gt;PHP-ExcelReader&lt;/a&gt;&amp;nbsp;(xls only)&lt;/li&gt;
&lt;li style=&quot;background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline; word-wrap: break-word;&quot;&gt;&lt;a href=&quot;http://code.google.com/p/php-excel-reader/&quot; rel=&quot;nofollow&quot; style=&quot;background-color: transparent; border: 0px; color: #4a6b82; cursor: pointer; margin: 0px; padding: 0px; text-decoration: none; vertical-align: baseline;&quot;&gt;PHP_Excel_Reader&lt;/a&gt;&amp;nbsp;(xls only)&lt;/li&gt;
&lt;li style=&quot;background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline; word-wrap: break-word;&quot;&gt;&lt;a href=&quot;http://code.google.com/p/php-excel-reader2/&quot; rel=&quot;nofollow&quot; style=&quot;background-color: transparent; border: 0px; color: #4a6b82; cursor: pointer; margin: 0px; padding: 0px; text-decoration: none; vertical-align: baseline;&quot;&gt;PHP_Excel_Reader2&lt;/a&gt;&amp;nbsp;(xls only)&lt;/li&gt;
&lt;li style=&quot;background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline; word-wrap: break-word;&quot;&gt;&lt;a href=&quot;http://paggard.com/projects/xls.reader/&quot; rel=&quot;nofollow&quot; style=&quot;background-color: transparent; border: 0px; color: #4a6b82; cursor: pointer; margin: 0px; padding: 0px; text-decoration: none; vertical-align: baseline;&quot;&gt;XLS File Reader&lt;/a&gt;&amp;nbsp;Commercial and xls only&lt;/li&gt;
&lt;li style=&quot;background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline; word-wrap: break-word;&quot;&gt;&lt;a href=&quot;http://www.eephp.com/&quot; rel=&quot;nofollow&quot; style=&quot;background-color: transparent; border: 0px; color: #4a6b82; cursor: pointer; margin: 0px; padding: 0px; text-decoration: none; vertical-align: baseline;&quot;&gt;PHP Excel Explorer&lt;/a&gt;&amp;nbsp;Commercial and xls only&lt;/li&gt;
&lt;li style=&quot;background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline; word-wrap: break-word;&quot;&gt;Ilia Alshanetsky&#39;s&amp;nbsp;&lt;a href=&quot;http://ilia.ws/archives/222-PHP-Excel-Extension.html&quot; rel=&quot;nofollow&quot; style=&quot;background-color: transparent; border: 0px; color: #4a6b82; cursor: pointer; margin: 0px; padding: 0px; text-decoration: none; vertical-align: baseline;&quot;&gt;Excel extension&lt;/a&gt;&amp;nbsp;(xls only, and requires commercial component)&lt;/li&gt;
&lt;li style=&quot;background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline; word-wrap: break-word;&quot;&gt;PHP&#39;s&amp;nbsp;&lt;a href=&quot;http://uk3.php.net/manual/en/book.com.php&quot; rel=&quot;nofollow&quot; style=&quot;background-color: transparent; border: 0px; color: #4a6b82; cursor: pointer; margin: 0px; padding: 0px; text-decoration: none; vertical-align: baseline;&quot;&gt;COM extension&lt;/a&gt;&amp;nbsp;(requires a COM enabled spreadsheet program such as MS Excel or OpenOffice Calc running on the server)&lt;/li&gt;
&lt;li style=&quot;background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline; word-wrap: break-word;&quot;&gt;The Open Office alternative to COM (&lt;a href=&quot;http://www.wstech2.net/index.php?do=0a,01,05&quot; rel=&quot;nofollow&quot; style=&quot;background-color: transparent; border: 0px; color: #4a6b82; cursor: pointer; margin: 0px; padding: 0px; text-decoration: none; vertical-align: baseline;&quot;&gt;PUNO&lt;/a&gt;) (requires Open Office installed on the server with Java support enabled)&lt;/li&gt;
&lt;/ul&gt;
&lt;div style=&quot;border: 0px; clear: both; font-family: Arial, &#39;Liberation Sans&#39;, &#39;DejaVu Sans&#39;, sans-serif; font-size: 14px; line-height: 18px; margin-bottom: 1em; padding: 0px; vertical-align: baseline; word-wrap: break-word;&quot;&gt;
All are faster than&amp;nbsp;&lt;a href=&quot;http://www.phpexcel.net/&quot; rel=&quot;nofollow&quot; style=&quot;background-color: transparent; border: 0px; color: #4a6b82; cursor: pointer; margin: 0px; padding: 0px; text-decoration: none; vertical-align: baseline;&quot;&gt;PHPExcel&lt;/a&gt;, but (with the exception of COM and PUNO) they don&#39;t offer both reading and writing, or both xls and xlsx; may no longer be supported; and (while I haven&#39;t tested Ilia&#39;s extension) only COM and PUNO offers the same degree of control over the created workbook.&lt;/div&gt;
&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sandeepbs404.blogspot.com/feeds/3830531209364234765/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sandeepbs404.blogspot.com/2012/07/alternative-for-phpexcel.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1725135844323517190/posts/default/3830531209364234765'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1725135844323517190/posts/default/3830531209364234765'/><link rel='alternate' type='text/html' href='http://sandeepbs404.blogspot.com/2012/07/alternative-for-phpexcel.html' title='Alternative for PHP_excel'/><author><name>sanju</name><uri>http://www.blogger.com/profile/05489844376913890016</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1725135844323517190.post-7078145095966312983</id><published>2012-07-03T02:53:00.003-07:00</published><updated>2012-07-03T02:53:47.859-07:00</updated><title type='text'>Stress Testing</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;br /&gt;
Recently we made a lot of research on Stress Testing tools to test our server/application capability . Finally our team has choose JMeter.&lt;br /&gt;
JMeter is simple and&amp;nbsp;powerful&amp;nbsp;tool for Load Testing. Main advantage is its open source and very simple to learn.&lt;br /&gt;
We used JMeter to test asp.net application.&lt;br /&gt;
&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sandeepbs404.blogspot.com/feeds/7078145095966312983/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sandeepbs404.blogspot.com/2012/07/stress-testing.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1725135844323517190/posts/default/7078145095966312983'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1725135844323517190/posts/default/7078145095966312983'/><link rel='alternate' type='text/html' href='http://sandeepbs404.blogspot.com/2012/07/stress-testing.html' title='Stress Testing'/><author><name>sanju</name><uri>http://www.blogger.com/profile/05489844376913890016</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1725135844323517190.post-3851497818123157909</id><published>2012-06-25T02:11:00.001-07:00</published><updated>2012-07-03T04:56:00.692-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Jmeter"/><category scheme="http://www.blogger.com/atom/ns#" term="Jmeter Usage"/><category scheme="http://www.blogger.com/atom/ns#" term="Load Testing"/><category scheme="http://www.blogger.com/atom/ns#" term="Stress Testing Tool"/><title type='text'>Load/Stress Testing JMeter</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
Recently we made a lot of research on Stress Testing tools to test our server/application capability . Finally our team has choose JMeter.&lt;br /&gt;
&lt;b&gt;JMeter &lt;/b&gt;is simple and&amp;nbsp;powerful&amp;nbsp;tool for Load Testing. Main advantage is its open source and very simple to learn.&lt;br /&gt;
We used &lt;b&gt;JMeter &lt;/b&gt;to test asp.net application.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sandeepbs404.blogspot.com/feeds/3851497818123157909/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sandeepbs404.blogspot.com/2012/06/loadstress-testing-jmeter.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1725135844323517190/posts/default/3851497818123157909'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1725135844323517190/posts/default/3851497818123157909'/><link rel='alternate' type='text/html' href='http://sandeepbs404.blogspot.com/2012/06/loadstress-testing-jmeter.html' title='Load/Stress Testing JMeter'/><author><name>sanju</name><uri>http://www.blogger.com/profile/05489844376913890016</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1725135844323517190.post-8007643149289310776</id><published>2012-06-14T02:43:00.001-07:00</published><updated>2012-06-14T02:43:14.448-07:00</updated><title type='text'>Navigation for ASP.NET Web Forms Framework</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;br /&gt;
&lt;div style=&quot;background-color: white; border: 0px; color: #333333; font-family: &#39;Segoe UI&#39;, &#39;Lucida Grande&#39;, Verdana, Arial, Helvetica, sans-serif; font-size: 13px; line-height: 16px; margin-bottom: 12px; outline: 0px; padding: 0px; text-align: -webkit-auto;&quot;&gt;
The Navigation for ASP.NET Web Forms framework, an open source project hosted at&amp;nbsp;&lt;a href=&quot;http://navigation.codeplex.com/&quot; id=&quot;ctl00_MTContentSelector1_mainContentContainer_ctl03&quot; style=&quot;border: 0px; color: #0066dd; cursor: pointer; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px; text-decoration: none;&quot;&gt;navigation.codeplex.com&lt;/a&gt;, lets you write Web Forms code with unit test coverage and adherence to don’t repeat yourself (DRY) principles that would make an ASP.NET MVC application green with envy.&lt;/div&gt;
&lt;div style=&quot;background-color: white; border: 0px; color: #333333; font-family: &#39;Segoe UI&#39;, &#39;Lucida Grande&#39;, Verdana, Arial, Helvetica, sans-serif; font-size: 13px; line-height: 16px; margin-bottom: 12px; outline: 0px; padding: 0px; text-align: -webkit-auto;&quot;&gt;
Although there has been some abandonment of Web Forms in favor of MVC, with some developers growing tired of large codebehinds unreachable by unit tests, this new framework—in conjunction with data binding—makes a compelling argument for taking a fresh look at Web Forms.&lt;/div&gt;
&lt;div style=&quot;background-color: white; border: 0px; color: #333333; font-family: &#39;Segoe UI&#39;, &#39;Lucida Grande&#39;, Verdana, Arial, Helvetica, sans-serif; font-size: 13px; line-height: 16px; margin-bottom: 12px; outline: 0px; padding: 0px; text-align: -webkit-auto;&quot;&gt;
Data binding with ObjectDataSource controls has been around since Visual Studio 2005, allowing for cleaner codebehinds and data-retrieval code to be unit tested, but there have been some problems inhibiting its uptake—for example, raising an exception was the only way of reporting a business validation failure back to the UI.&lt;/div&gt;
&lt;div style=&quot;background-color: white; border: 0px; color: #333333; font-family: &#39;Segoe UI&#39;, &#39;Lucida Grande&#39;, Verdana, Arial, Helvetica, sans-serif; font-size: 13px; line-height: 16px; margin-bottom: 12px; outline: 0px; padding: 0px; text-align: -webkit-auto;&quot;&gt;
The vast majority of the Web Forms development effort for the upcoming release of Visual Studio has been invested in data binding, bringing across model binding concepts from MVC to resolve these issues—for example, the introduction of model state addresses the business validation failure communication issue. However, two thorns remain in the side of data binding related to navigation and data passing—but they can be painlessly extracted using the Navigation for ASP.NET Web Forms framework (which I’ll call the “Navigation framework” hereafter for brevity).&lt;/div&gt;
&lt;div style=&quot;background-color: white; border: 0px; color: #333333; font-family: &#39;Segoe UI&#39;, &#39;Lucida Grande&#39;, Verdana, Arial, Helvetica, sans-serif; font-size: 13px; line-height: 16px; margin-bottom: 12px; outline: 0px; padding: 0px; text-align: -webkit-auto;&quot;&gt;
The first thorn is that there’s no abstraction for navigation logic, unlike in MVC where it’s encapsulated in the controller method return types. This results in redirect calls inside data-bound methods, preventing them from being unit tested. The second thorn is that the type of a parameter of an ObjectDataSource determines where its value comes from—for example, a QueryStringParameter always gets its data from the query string. This prevents the same data source from being used in different navigational contexts—such as postback and non-postback—without substantial logic in the dreaded codebehind.&lt;/div&gt;
&lt;div style=&quot;background-color: white; border: 0px; color: #333333; font-family: &#39;Segoe UI&#39;, &#39;Lucida Grande&#39;, Verdana, Arial, Helvetica, sans-serif; font-size: 13px; line-height: 16px; margin-bottom: 12px; outline: 0px; padding: 0px; text-align: -webkit-auto;&quot;&gt;
The Navigation framework removes these thorns by taking a holistic approach to navigation and data passing. Regardless of the type of navigation being performed—be it hyperlink, postback, AJAX history or unit test—the data being passed is always held in the same way. In future articles, I’ll show how this leads to empty codebehinds with fully unit-tested data retrieval and navigation logic and also to Search Engine Optimization (SEO)-friendly, progressively enhanced single-page applications with no code duplication for JavaScript-enabled and -disabled scenarios. This article introduces the Navigation framework and demonstrates some of its basic—but key—concepts by building a sample Web application.&lt;/div&gt;
&lt;h2 style=&quot;background-color: white; border: 0px; clear: both; color: #260859; font-family: &#39;Segoe UI Semibold&#39;, &#39;Segoe UI&#39;, &#39;Lucida Grande&#39;, Verdana, Arial, Helvetica, sans-serif; font-size: 16px; line-height: 20px; margin: 3px 0px 4px; outline: 0px; padding: 0px 0px 7px; text-align: -webkit-auto;&quot;&gt;
Sample Application&lt;/h2&gt;
&lt;div style=&quot;background-color: white; border: 0px; color: #333333; font-family: &#39;Segoe UI&#39;, &#39;Lucida Grande&#39;, Verdana, Arial, Helvetica, sans-serif; font-size: 13px; line-height: 16px; margin-bottom: 12px; outline: 0px; padding: 0px; text-align: -webkit-auto;&quot;&gt;
The sample Web application is an online survey. This survey has only two questions and displays a “thank you” message upon completion. Each question is represented by a separate ASPX page called Question1.aspx and Question2.aspx respectively, and the “thank you” message has its own page called Thanks.aspx.&lt;/div&gt;
&lt;div style=&quot;background-color: white; border: 0px; color: #333333; font-family: &#39;Segoe UI&#39;, &#39;Lucida Grande&#39;, Verdana, Arial, Helvetica, sans-serif; font-size: 13px; line-height: 16px; margin-bottom: 12px; outline: 0px; padding: 0px; text-align: -webkit-auto;&quot;&gt;
The first question asked is, “Which ASP.NET technology are you currently using?” to which the possible answers are either “Web Forms” or “MVC.” So to Question1.aspx I’ll add the question and the hardcoded radio button answers:&lt;/div&gt;
&lt;div class=&quot;CodeHighlighter&quot; style=&quot;background-color: white; border: 0px; color: #333333; font-family: &#39;Segoe UI&#39;, &#39;Lucida Grande&#39;, Verdana, Arial, Helvetica, sans-serif; font-size: 13px; line-height: 16px; margin: 0px; outline: 0px; padding: 0px 0px 15px 15px; text-align: -webkit-auto; word-wrap: break-word;&quot;&gt;
&lt;pre style=&quot;border: 0px; font-family: inherit; font-style: inherit; outline: 0px; padding: 0px; white-space: pre-wrap;&quot;&gt;&lt;code class=&quot;html&quot; style=&quot;border: 0px; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;&lt;ol style=&quot;border: 0px; font-family: inherit; font-style: inherit; margin: 12px 0px 12px 18px; outline: 0px; padding: 0px;&quot;&gt;
&lt;li style=&quot;border: 0px; font-family: inherit; font-style: inherit; list-style-image: none; margin: 0px; outline: 0px; padding: 0px 0px 3px;&quot;&gt;&lt;span class=&quot;html__tag_start&quot; style=&quot;border: 0px; color: navy; font-family: inherit; font-style: inherit; font-weight: bold; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;&amp;lt;h1&lt;/span&gt;&lt;span class=&quot;html__tag_start&quot; style=&quot;border: 0px; color: navy; font-family: inherit; font-style: inherit; font-weight: bold; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;&amp;gt;&lt;/span&gt;Question&amp;nbsp;1&lt;span class=&quot;html__tag_end&quot; style=&quot;border: 0px; color: navy; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;&amp;lt;/h1&amp;gt;&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;border: 0px; font-family: inherit; font-style: inherit; list-style-image: none; margin: 0px; outline: 0px; padding: 0px 0px 3px;&quot;&gt;&lt;span class=&quot;html__tag_start&quot; style=&quot;border: 0px; color: navy; font-family: inherit; font-style: inherit; font-weight: bold; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;&amp;lt;h2&lt;/span&gt;&lt;span class=&quot;html__tag_start&quot; style=&quot;border: 0px; color: navy; font-family: inherit; font-style: inherit; font-weight: bold; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;&amp;gt;&lt;/span&gt;Which&amp;nbsp;ASP.NET&amp;nbsp;technology&amp;nbsp;are&amp;nbsp;you&amp;nbsp;currently&amp;nbsp;using?&lt;span class=&quot;html__tag_end&quot; style=&quot;border: 0px; color: navy; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;&amp;lt;/h2&amp;gt;&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;border: 0px; font-family: inherit; font-style: inherit; list-style-image: none; margin: 0px; outline: 0px; padding: 0px 0px 3px;&quot;&gt;&lt;span class=&quot;html__tag_start&quot; style=&quot;border: 0px; color: navy; font-family: inherit; font-style: inherit; font-weight: bold; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;&amp;lt;asp&lt;/span&gt;:RadioButtonList&amp;nbsp;&lt;span class=&quot;html__attr_name&quot; style=&quot;border: 0px; color: green; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;ID&lt;/span&gt;=&lt;span class=&quot;html__attr_value&quot; style=&quot;border: 0px; color: maroon; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;&quot;Answer&quot;&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;html__attr_name&quot; style=&quot;border: 0px; color: green; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;runat&lt;/span&gt;=&lt;span class=&quot;html__attr_value&quot; style=&quot;border: 0px; color: maroon; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;&quot;server&quot;&lt;/span&gt;&lt;span class=&quot;html__tag_start&quot; style=&quot;border: 0px; color: navy; font-family: inherit; font-style: inherit; font-weight: bold; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;border: 0px; font-family: inherit; font-style: inherit; list-style-image: none; margin: 0px; outline: 0px; padding: 0px 0px 3px;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;html__tag_start&quot; style=&quot;border: 0px; color: navy; font-family: inherit; font-style: inherit; font-weight: bold; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;&amp;lt;asp&lt;/span&gt;:ListItem&amp;nbsp;&lt;span class=&quot;html__attr_name&quot; style=&quot;border: 0px; color: green; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;Text&lt;/span&gt;=&lt;span class=&quot;html__attr_value&quot; style=&quot;border: 0px; color: maroon; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;&quot;Web&amp;nbsp;Forms&quot;&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;html__attr_name&quot; style=&quot;border: 0px; color: green; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;Selected&lt;/span&gt;=&lt;span class=&quot;html__attr_value&quot; style=&quot;border: 0px; color: maroon; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;&quot;True&quot;&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;html__tag_start&quot; style=&quot;border: 0px; color: navy; font-family: inherit; font-style: inherit; font-weight: bold; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;border: 0px; font-family: inherit; font-style: inherit; list-style-image: none; margin: 0px; outline: 0px; padding: 0px 0px 3px;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;html__tag_start&quot; style=&quot;border: 0px; color: navy; font-family: inherit; font-style: inherit; font-weight: bold; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;&amp;lt;asp&lt;/span&gt;:ListItem&amp;nbsp;&lt;span class=&quot;html__attr_name&quot; style=&quot;border: 0px; color: green; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;Text&lt;/span&gt;=&lt;span class=&quot;html__attr_value&quot; style=&quot;border: 0px; color: maroon; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;&quot;MVC&quot;&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;html__tag_start&quot; style=&quot;border: 0px; color: navy; font-family: inherit; font-style: inherit; font-weight: bold; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;border: 0px; font-family: inherit; font-style: inherit; list-style-image: none; margin: 0px; outline: 0px; padding: 0px 0px 3px;&quot;&gt;&amp;lt;/asp:RadioButtonList&amp;gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div style=&quot;background-color: white; border: 0px; color: #333333; font-family: &#39;Segoe UI&#39;, &#39;Lucida Grande&#39;, Verdana, Arial, Helvetica, sans-serif; font-size: 13px; line-height: 16px; margin-bottom: 12px; outline: 0px; padding: 0px; text-align: -webkit-auto;&quot;&gt;
The second question, “Are you using the Navigation for ASP.NET Web Forms framework?” has answers of “Yes” or “No” and is marked up in a similar fashion.&lt;/div&gt;
&lt;h2 style=&quot;background-color: white; border: 0px; clear: both; color: #260859; font-family: &#39;Segoe UI Semibold&#39;, &#39;Segoe UI&#39;, &#39;Lucida Grande&#39;, Verdana, Arial, Helvetica, sans-serif; font-size: 16px; line-height: 20px; margin: 3px 0px 4px; outline: 0px; padding: 0px 0px 7px; text-align: -webkit-auto;&quot;&gt;
Getting Started&lt;/h2&gt;
&lt;div style=&quot;background-color: white; border: 0px; color: #333333; font-family: &#39;Segoe UI&#39;, &#39;Lucida Grande&#39;, Verdana, Arial, Helvetica, sans-serif; font-size: 13px; line-height: 16px; margin-bottom: 12px; outline: 0px; padding: 0px; text-align: -webkit-auto;&quot;&gt;
The most straightforward way to set up the survey Web project to use the Navigation framework is to install it using the NuGet Package Manager. Running the command “Install-Package Navigation” from within the Package Manager Console will add the required reference and configuration. If you’re not using Visual Studio 2010, manual setup instructions can be found at&amp;nbsp;&lt;a href=&quot;http://navigation.codeplex.com/documentation&quot; id=&quot;ctl00_MTContentSelector1_mainContentContainer_ctl05&quot; style=&quot;border: 0px; color: #0066dd; cursor: pointer; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px; text-decoration: none;&quot;&gt;navigation.codeplex.com/documentation&lt;/a&gt;.&lt;/div&gt;
&lt;h2 style=&quot;background-color: white; border: 0px; clear: both; color: #260859; font-family: &#39;Segoe UI Semibold&#39;, &#39;Segoe UI&#39;, &#39;Lucida Grande&#39;, Verdana, Arial, Helvetica, sans-serif; font-size: 16px; line-height: 20px; margin: 3px 0px 4px; outline: 0px; padding: 0px 0px 7px; text-align: -webkit-auto;&quot;&gt;
Navigation Configuration&lt;/h2&gt;
&lt;div style=&quot;background-color: white; border: 0px; color: #333333; font-family: &#39;Segoe UI&#39;, &#39;Lucida Grande&#39;, Verdana, Arial, Helvetica, sans-serif; font-size: 13px; line-height: 16px; margin-bottom: 12px; outline: 0px; padding: 0px; text-align: -webkit-auto;&quot;&gt;
The Navigation framework can be thought of as a state machine, where each different state represents a page and moving from one state to another—or navigating between pages—is termed a transition. This predefined set of states and transitions is configured in the StateInfo.config file created by the NuGet installation. Without this underpinning configuration, running the survey application will throw an exception.&lt;/div&gt;
&lt;div style=&quot;background-color: white; border: 0px; color: #333333; font-family: &#39;Segoe UI&#39;, &#39;Lucida Grande&#39;, Verdana, Arial, Helvetica, sans-serif; font-size: 13px; line-height: 16px; margin-bottom: 12px; outline: 0px; padding: 0px; text-align: -webkit-auto;&quot;&gt;
Because states are essentially just pages, the survey application requires three states, one for each of its three pages:&lt;/div&gt;
&lt;div class=&quot;CodeHighlighter&quot; style=&quot;background-color: white; border: 0px; color: #333333; font-family: &#39;Segoe UI&#39;, &#39;Lucida Grande&#39;, Verdana, Arial, Helvetica, sans-serif; font-size: 13px; line-height: 16px; margin: 0px; outline: 0px; padding: 0px 0px 15px 15px; text-align: -webkit-auto; word-wrap: break-word;&quot;&gt;
&lt;pre style=&quot;border: 0px; font-family: inherit; font-style: inherit; outline: 0px; padding: 0px; white-space: pre-wrap;&quot;&gt;&lt;code class=&quot;html&quot; style=&quot;border: 0px; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;&lt;ol style=&quot;border: 0px; font-family: inherit; font-style: inherit; margin: 12px 0px 12px 18px; outline: 0px; padding: 0px;&quot;&gt;
&lt;li style=&quot;border: 0px; font-family: inherit; font-style: inherit; list-style-image: none; margin: 0px; outline: 0px; padding: 0px 0px 3px;&quot;&gt;&lt;span class=&quot;html__tag_start&quot; style=&quot;border: 0px; color: navy; font-family: inherit; font-style: inherit; font-weight: bold; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;&amp;lt;state&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;html__attr_name&quot; style=&quot;border: 0px; color: green; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;key&lt;/span&gt;=&lt;span class=&quot;html__attr_value&quot; style=&quot;border: 0px; color: maroon; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;&quot;Question1&quot;&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;html__attr_name&quot; style=&quot;border: 0px; color: green; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;page&lt;/span&gt;=&lt;span class=&quot;html__attr_value&quot; style=&quot;border: 0px; color: maroon; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;&quot;~/Question1.aspx&quot;&lt;/span&gt;&lt;span class=&quot;html__tag_start&quot; style=&quot;border: 0px; color: navy; font-family: inherit; font-style: inherit; font-weight: bold; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;border: 0px; font-family: inherit; font-style: inherit; list-style-image: none; margin: 0px; outline: 0px; padding: 0px 0px 3px;&quot;&gt;&lt;span class=&quot;html__tag_end&quot; style=&quot;border: 0px; color: navy; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;&amp;lt;/state&amp;gt;&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;border: 0px; font-family: inherit; font-style: inherit; list-style-image: none; margin: 0px; outline: 0px; padding: 0px 0px 3px;&quot;&gt;&lt;span class=&quot;html__tag_start&quot; style=&quot;border: 0px; color: navy; font-family: inherit; font-style: inherit; font-weight: bold; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;&amp;lt;state&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;html__attr_name&quot; style=&quot;border: 0px; color: green; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;key&lt;/span&gt;=&lt;span class=&quot;html__attr_value&quot; style=&quot;border: 0px; color: maroon; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;&quot;Question2&quot;&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;html__attr_name&quot; style=&quot;border: 0px; color: green; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;page&lt;/span&gt;=&lt;span class=&quot;html__attr_value&quot; style=&quot;border: 0px; color: maroon; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;&quot;~/Question2.aspx&quot;&lt;/span&gt;&lt;span class=&quot;html__tag_start&quot; style=&quot;border: 0px; color: navy; font-family: inherit; font-style: inherit; font-weight: bold; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;border: 0px; font-family: inherit; font-style: inherit; list-style-image: none; margin: 0px; outline: 0px; padding: 0px 0px 3px;&quot;&gt;&lt;span class=&quot;html__tag_end&quot; style=&quot;border: 0px; color: navy; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;&amp;lt;/state&amp;gt;&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;border: 0px; font-family: inherit; font-style: inherit; list-style-image: none; margin: 0px; outline: 0px; padding: 0px 0px 3px;&quot;&gt;&lt;span class=&quot;html__tag_start&quot; style=&quot;border: 0px; color: navy; font-family: inherit; font-style: inherit; font-weight: bold; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;&amp;lt;state&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;html__attr_name&quot; style=&quot;border: 0px; color: green; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;key&lt;/span&gt;=&lt;span class=&quot;html__attr_value&quot; style=&quot;border: 0px; color: maroon; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;&quot;Thanks&quot;&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;html__attr_name&quot; style=&quot;border: 0px; color: green; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;page&lt;/span&gt;=&lt;span class=&quot;html__attr_value&quot; style=&quot;border: 0px; color: maroon; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;&quot;~/Thanks.aspx&quot;&lt;/span&gt;&lt;span class=&quot;html__tag_start&quot; style=&quot;border: 0px; color: navy; font-family: inherit; font-style: inherit; font-weight: bold; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;border: 0px; font-family: inherit; font-style: inherit; list-style-image: none; margin: 0px; outline: 0px; padding: 0px 0px 3px;&quot;&gt;&lt;span class=&quot;html__tag_end&quot; style=&quot;border: 0px; color: navy; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;&amp;lt;/state&amp;gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div style=&quot;background-color: white; border: 0px; color: #333333; font-family: &#39;Segoe UI&#39;, &#39;Lucida Grande&#39;, Verdana, Arial, Helvetica, sans-serif; font-size: 13px; line-height: 16px; margin-bottom: 12px; outline: 0px; padding: 0px; text-align: -webkit-auto;&quot;&gt;
From now on I’ll refer to the different states by their key names, Question1, Question2 and Thanks, rather than by the pages they represent.&lt;/div&gt;
&lt;div style=&quot;background-color: white; border: 0px; color: #333333; font-family: &#39;Segoe UI&#39;, &#39;Lucida Grande&#39;, Verdana, Arial, Helvetica, sans-serif; font-size: 13px; line-height: 16px; margin-bottom: 12px; outline: 0px; padding: 0px; text-align: -webkit-auto;&quot;&gt;
Because transitions describe the possible navigations between states, the survey application requires two transitions. One is for the navigation from Question1 to Question2 and another is for the navigation from Question2 to Thanks. A transition appears as a child of the state being exited and points, via its “to” attribute, at the state being entered:&lt;/div&gt;
&lt;div class=&quot;CodeHighlighter&quot; style=&quot;background-color: white; border: 0px; color: #333333; font-family: &#39;Segoe UI&#39;, &#39;Lucida Grande&#39;, Verdana, Arial, Helvetica, sans-serif; font-size: 13px; line-height: 16px; margin: 0px; outline: 0px; padding: 0px 0px 15px 15px; text-align: -webkit-auto; word-wrap: break-word;&quot;&gt;
&lt;pre style=&quot;border: 0px; font-family: inherit; font-style: inherit; outline: 0px; padding: 0px; white-space: pre-wrap;&quot;&gt;&lt;code class=&quot;html&quot; style=&quot;border: 0px; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;&lt;ol style=&quot;border: 0px; font-family: inherit; font-style: inherit; margin: 12px 0px 12px 18px; outline: 0px; padding: 0px;&quot;&gt;
&lt;li style=&quot;border: 0px; font-family: inherit; font-style: inherit; list-style-image: none; margin: 0px; outline: 0px; padding: 0px 0px 3px;&quot;&gt;&lt;span class=&quot;html__tag_start&quot; style=&quot;border: 0px; color: navy; font-family: inherit; font-style: inherit; font-weight: bold; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;&amp;lt;state&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;html__attr_name&quot; style=&quot;border: 0px; color: green; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;key&lt;/span&gt;=&lt;span class=&quot;html__attr_value&quot; style=&quot;border: 0px; color: maroon; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;&quot;Question1&quot;&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;html__attr_name&quot; style=&quot;border: 0px; color: green; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;page&lt;/span&gt;=&lt;span class=&quot;html__attr_value&quot; style=&quot;border: 0px; color: maroon; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;&quot;~/Question1.aspx&quot;&lt;/span&gt;&lt;span class=&quot;html__tag_start&quot; style=&quot;border: 0px; color: navy; font-family: inherit; font-style: inherit; font-weight: bold; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;border: 0px; font-family: inherit; font-style: inherit; list-style-image: none; margin: 0px; outline: 0px; padding: 0px 0px 3px;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;html__tag_start&quot; style=&quot;border: 0px; color: navy; font-family: inherit; font-style: inherit; font-weight: bold; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;&amp;lt;transition&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;html__attr_name&quot; style=&quot;border: 0px; color: green; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;key&lt;/span&gt;=&lt;span class=&quot;html__attr_value&quot; style=&quot;border: 0px; color: maroon; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;&quot;Next&quot;&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;html__attr_name&quot; style=&quot;border: 0px; color: green; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;to&lt;/span&gt;=&lt;span class=&quot;html__attr_value&quot; style=&quot;border: 0px; color: maroon; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;&quot;Question2&quot;&lt;/span&gt;&lt;span class=&quot;html__tag_start&quot; style=&quot;border: 0px; color: navy; font-family: inherit; font-style: inherit; font-weight: bold; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;border: 0px; font-family: inherit; font-style: inherit; list-style-image: none; margin: 0px; outline: 0px; padding: 0px 0px 3px;&quot;&gt;&lt;span class=&quot;html__tag_end&quot; style=&quot;border: 0px; color: navy; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;&amp;lt;/state&amp;gt;&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;border: 0px; font-family: inherit; font-style: inherit; list-style-image: none; margin: 0px; outline: 0px; padding: 0px 0px 3px;&quot;&gt;&lt;span class=&quot;html__tag_start&quot; style=&quot;border: 0px; color: navy; font-family: inherit; font-style: inherit; font-weight: bold; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;&amp;lt;state&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;html__attr_name&quot; style=&quot;border: 0px; color: green; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;key&lt;/span&gt;=&lt;span class=&quot;html__attr_value&quot; style=&quot;border: 0px; color: maroon; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;&quot;Question2&quot;&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;html__attr_name&quot; style=&quot;border: 0px; color: green; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;page&lt;/span&gt;=&lt;span class=&quot;html__attr_value&quot; style=&quot;border: 0px; color: maroon; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;&quot;~/Question2.aspx&quot;&lt;/span&gt;&lt;span class=&quot;html__tag_start&quot; style=&quot;border: 0px; color: navy; font-family: inherit; font-style: inherit; font-weight: bold; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;border: 0px; font-family: inherit; font-style: inherit; list-style-image: none; margin: 0px; outline: 0px; padding: 0px 0px 3px;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;html__tag_start&quot; style=&quot;border: 0px; color: navy; font-family: inherit; font-style: inherit; font-weight: bold; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;&amp;lt;transition&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;html__attr_name&quot; style=&quot;border: 0px; color: green; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;key&lt;/span&gt;=&lt;span class=&quot;html__attr_value&quot; style=&quot;border: 0px; color: maroon; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;&quot;Next&quot;&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;html__attr_name&quot; style=&quot;border: 0px; color: green; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;to&lt;/span&gt;=&lt;span class=&quot;html__attr_value&quot; style=&quot;border: 0px; color: maroon; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;&quot;Thanks&quot;&lt;/span&gt;&lt;span class=&quot;html__tag_start&quot; style=&quot;border: 0px; color: navy; font-family: inherit; font-style: inherit; font-weight: bold; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;border: 0px; font-family: inherit; font-style: inherit; list-style-image: none; margin: 0px; outline: 0px; padding: 0px 0px 3px;&quot;&gt;&lt;span class=&quot;html__tag_end&quot; style=&quot;border: 0px; color: navy; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;&amp;lt;/state&amp;gt;&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;border: 0px; font-family: inherit; font-style: inherit; list-style-image: none; margin: 0px; outline: 0px; padding: 0px 0px 3px;&quot;&gt;&lt;span class=&quot;html__tag_start&quot; style=&quot;border: 0px; color: navy; font-family: inherit; font-style: inherit; font-weight: bold; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;&amp;lt;state&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;html__attr_name&quot; style=&quot;border: 0px; color: green; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;key&lt;/span&gt;=&lt;span class=&quot;html__attr_value&quot; style=&quot;border: 0px; color: maroon; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;&quot;Thanks&quot;&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;html__attr_name&quot; style=&quot;border: 0px; color: green; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;page&lt;/span&gt;=&lt;span class=&quot;html__attr_value&quot; style=&quot;border: 0px; color: maroon; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;&quot;~/Thanks.aspx&quot;&lt;/span&gt;&lt;span class=&quot;html__tag_start&quot; style=&quot;border: 0px; color: navy; font-family: inherit; font-style: inherit; font-weight: bold; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;border: 0px; font-family: inherit; font-style: inherit; list-style-image: none; margin: 0px; outline: 0px; padding: 0px 0px 3px;&quot;&gt;&lt;span class=&quot;html__tag_end&quot; style=&quot;border: 0px; color: navy; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;&amp;lt;/state&amp;gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div style=&quot;background-color: white; border: 0px; color: #333333; font-family: &#39;Segoe UI&#39;, &#39;Lucida Grande&#39;, Verdana, Arial, Helvetica, sans-serif; font-size: 13px; line-height: 16px; margin-bottom: 12px; outline: 0px; padding: 0px; text-align: -webkit-auto;&quot;&gt;
Dialogs are the final element of the configuration and represent a logical grouping of states. The survey application only requires one dialog because Question1, Question2 and Thanks are effectively a single navigation path. The dialog’s “initial” attribute must point to the starting state—that is, Question1:&lt;/div&gt;
&lt;div class=&quot;CodeHighlighter&quot; style=&quot;background-color: white; border: 0px; color: #333333; font-family: &#39;Segoe UI&#39;, &#39;Lucida Grande&#39;, Verdana, Arial, Helvetica, sans-serif; font-size: 13px; line-height: 16px; margin: 0px; outline: 0px; padding: 0px 0px 15px 15px; text-align: -webkit-auto; word-wrap: break-word;&quot;&gt;
&lt;pre style=&quot;border: 0px; font-family: inherit; font-style: inherit; outline: 0px; padding: 0px; white-space: pre-wrap;&quot;&gt;&lt;code class=&quot;html&quot; style=&quot;border: 0px; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;&lt;ol style=&quot;border: 0px; font-family: inherit; font-style: inherit; margin: 12px 0px 12px 18px; outline: 0px; padding: 0px;&quot;&gt;
&lt;li style=&quot;border: 0px; font-family: inherit; font-style: inherit; list-style-image: none; margin: 0px; outline: 0px; padding: 0px 0px 3px;&quot;&gt;&lt;span class=&quot;html__tag_start&quot; style=&quot;border: 0px; color: navy; font-family: inherit; font-style: inherit; font-weight: bold; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;&amp;lt;dialog&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;html__attr_name&quot; style=&quot;border: 0px; color: green; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;key&lt;/span&gt;=&lt;span class=&quot;html__attr_value&quot; style=&quot;border: 0px; color: maroon; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;&quot;Survey&quot;&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;html__attr_name&quot; style=&quot;border: 0px; color: green; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;initial&lt;/span&gt;=&lt;span class=&quot;html__attr_value&quot; style=&quot;border: 0px; color: maroon; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;&quot;Question1&quot;&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;html__attr_name&quot; style=&quot;border: 0px; color: green; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;path&lt;/span&gt;=&lt;span class=&quot;html__attr_value&quot; style=&quot;border: 0px; color: maroon; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;&quot;~/Question1.aspx&quot;&lt;/span&gt;&lt;span class=&quot;html__tag_start&quot; style=&quot;border: 0px; color: navy; font-family: inherit; font-style: inherit; font-weight: bold; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;border: 0px; font-family: inherit; font-style: inherit; list-style-image: none; margin: 0px; outline: 0px; padding: 0px 0px 3px;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;html__tag_start&quot; style=&quot;border: 0px; color: navy; font-family: inherit; font-style: inherit; font-weight: bold; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;&amp;lt;state&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;html__attr_name&quot; style=&quot;border: 0px; color: green; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;key&lt;/span&gt;=&lt;span class=&quot;html__attr_value&quot; style=&quot;border: 0px; color: maroon; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;&quot;Question1&quot;&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;html__attr_name&quot; style=&quot;border: 0px; color: green; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;page&lt;/span&gt;=&lt;span class=&quot;html__attr_value&quot; style=&quot;border: 0px; color: maroon; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;&quot;~/Question1.aspx&quot;&lt;/span&gt;&lt;span class=&quot;html__tag_start&quot; style=&quot;border: 0px; color: navy; font-family: inherit; font-style: inherit; font-weight: bold; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;border: 0px; font-family: inherit; font-style: inherit; list-style-image: none; margin: 0px; outline: 0px; padding: 0px 0px 3px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;html__tag_start&quot; style=&quot;border: 0px; color: navy; font-family: inherit; font-style: inherit; font-weight: bold; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;&amp;lt;transition&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;html__attr_name&quot; style=&quot;border: 0px; color: green; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;key&lt;/span&gt;=&lt;span class=&quot;html__attr_value&quot; style=&quot;border: 0px; color: maroon; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;&quot;Next&quot;&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;html__attr_name&quot; style=&quot;border: 0px; color: green; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;to&lt;/span&gt;=&lt;span class=&quot;html__attr_value&quot; style=&quot;border: 0px; color: maroon; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;&quot;Question2&quot;&lt;/span&gt;&lt;span class=&quot;html__tag_start&quot; style=&quot;border: 0px; color: navy; font-family: inherit; font-style: inherit; font-weight: bold; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;border: 0px; font-family: inherit; font-style: inherit; list-style-image: none; margin: 0px; outline: 0px; padding: 0px 0px 3px;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;html__tag_end&quot; style=&quot;border: 0px; color: navy; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;&amp;lt;/state&amp;gt;&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;border: 0px; font-family: inherit; font-style: inherit; list-style-image: none; margin: 0px; outline: 0px; padding: 0px 0px 3px;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;html__tag_start&quot; style=&quot;border: 0px; color: navy; font-family: inherit; font-style: inherit; font-weight: bold; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;&amp;lt;state&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;html__attr_name&quot; style=&quot;border: 0px; color: green; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;key&lt;/span&gt;=&lt;span class=&quot;html__attr_value&quot; style=&quot;border: 0px; color: maroon; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;&quot;Question2&quot;&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;html__attr_name&quot; style=&quot;border: 0px; color: green; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;page&lt;/span&gt;=&lt;span class=&quot;html__attr_value&quot; style=&quot;border: 0px; color: maroon; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;&quot;~/Question2.aspx&quot;&lt;/span&gt;&lt;span class=&quot;html__tag_start&quot; style=&quot;border: 0px; color: navy; font-family: inherit; font-style: inherit; font-weight: bold; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;border: 0px; font-family: inherit; font-style: inherit; list-style-image: none; margin: 0px; outline: 0px; padding: 0px 0px 3px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;html__tag_start&quot; style=&quot;border: 0px; color: navy; font-family: inherit; font-style: inherit; font-weight: bold; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;&amp;lt;transition&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;html__attr_name&quot; style=&quot;border: 0px; color: green; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;key&lt;/span&gt;=&lt;span class=&quot;html__attr_value&quot; style=&quot;border: 0px; color: maroon; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;&quot;Next&quot;&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;html__attr_name&quot; style=&quot;border: 0px; color: green; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;to&lt;/span&gt;=&lt;span class=&quot;html__attr_value&quot; style=&quot;border: 0px; color: maroon; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;&quot;Thanks&quot;&lt;/span&gt;&lt;span class=&quot;html__tag_start&quot; style=&quot;border: 0px; color: navy; font-family: inherit; font-style: inherit; font-weight: bold; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;border: 0px; font-family: inherit; font-style: inherit; list-style-image: none; margin: 0px; outline: 0px; padding: 0px 0px 3px;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;html__tag_end&quot; style=&quot;border: 0px; color: navy; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;&amp;lt;/state&amp;gt;&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;border: 0px; font-family: inherit; font-style: inherit; list-style-image: none; margin: 0px; outline: 0px; padding: 0px 0px 3px;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;html__tag_start&quot; style=&quot;border: 0px; color: navy; font-family: inherit; font-style: inherit; font-weight: bold; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;&amp;lt;state&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;html__attr_name&quot; style=&quot;border: 0px; color: green; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;key&lt;/span&gt;=&lt;span class=&quot;html__attr_value&quot; style=&quot;border: 0px; color: maroon; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;&quot;Thanks&quot;&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;html__attr_name&quot; style=&quot;border: 0px; color: green; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;page&lt;/span&gt;=&lt;span class=&quot;html__attr_value&quot; style=&quot;border: 0px; color: maroon; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;&quot;~/Thanks.aspx&quot;&lt;/span&gt;&lt;span class=&quot;html__tag_start&quot; style=&quot;border: 0px; color: navy; font-family: inherit; font-style: inherit; font-weight: bold; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;border: 0px; font-family: inherit; font-style: inherit; list-style-image: none; margin: 0px; outline: 0px; padding: 0px 0px 3px;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;html__tag_end&quot; style=&quot;border: 0px; color: navy; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;&amp;lt;/state&amp;gt;&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;border: 0px; font-family: inherit; font-style: inherit; list-style-image: none; margin: 0px; outline: 0px; padding: 0px 0px 3px;&quot;&gt;&lt;span class=&quot;html__tag_end&quot; style=&quot;border: 0px; color: navy; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;&amp;lt;/dialog&amp;gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div style=&quot;background-color: white; border: 0px; color: #333333; font-family: &#39;Segoe UI&#39;, &#39;Lucida Grande&#39;, Verdana, Arial, Helvetica, sans-serif; font-size: 13px; line-height: 16px; margin-bottom: 12px; outline: 0px; padding: 0px; text-align: -webkit-auto;&quot;&gt;
You’ll notice that each dialog, state and transition has a key attribute. I chose to name the state keys after the page names, but this isn’t necessary. Note, though, that all keys must be unique within their parent; for example, you can’t have sibling states with the same key.&lt;/div&gt;
&lt;div style=&quot;background-color: white; border: 0px; color: #333333; font-family: &#39;Segoe UI&#39;, &#39;Lucida Grande&#39;, Verdana, Arial, Helvetica, sans-serif; font-size: 13px; line-height: 16px; margin-bottom: 12px; outline: 0px; padding: 0px; text-align: -webkit-auto;&quot;&gt;
With Question1.aspx as the start page, the survey application now starts successfully in the Question1 state. However, the survey remains stuck in this state because there’s no way to progress to Question2.&lt;/div&gt;
&lt;h2 style=&quot;background-color: white; border: 0px; clear: both; color: #260859; font-family: &#39;Segoe UI Semibold&#39;, &#39;Segoe UI&#39;, &#39;Lucida Grande&#39;, Verdana, Arial, Helvetica, sans-serif; font-size: 16px; line-height: 20px; margin: 3px 0px 4px; outline: 0px; padding: 0px 0px 7px; text-align: -webkit-auto;&quot;&gt;
Navigation&lt;/h2&gt;
&lt;div style=&quot;background-color: white; border: 0px; color: #333333; font-family: &#39;Segoe UI&#39;, &#39;Lucida Grande&#39;, Verdana, Arial, Helvetica, sans-serif; font-size: 13px; line-height: 16px; margin-bottom: 12px; outline: 0px; padding: 0px; text-align: -webkit-auto;&quot;&gt;
It’s useful to split the different sorts of Web Forms navigation into two camps. The non-postback camp is where control is passed from one ASPX page to another and takes the form of hyperlinks, redirects or transfers. The postback camp is where control remains on the same page and takes the form of postbacks, partial page requests or AJAX history. This second kind will be examined in a future article discussing the single-page interface pattern. In this article, I’ll focus on the first type of navigation.&lt;/div&gt;
&lt;div style=&quot;background-color: white; border: 0px; color: #333333; font-family: &#39;Segoe UI&#39;, &#39;Lucida Grande&#39;, Verdana, Arial, Helvetica, sans-serif; font-size: 13px; line-height: 16px; margin-bottom: 12px; outline: 0px; padding: 0px; text-align: -webkit-auto;&quot;&gt;
To move between pages, a URL must be built. Prior to Visual Studio 2008, the only option was to manually construct URLs from hardcoded ASPX page names, causing tight coupling between pages that made applications brittle and hard to maintain. The introduction of routing alleviated this problem, with configurable route names used in place of page names. However, the fact that routing throws an exception if used outside a Web environment—­combined with routing’s resistance to mocking—makes it an enemy of unit testing.&lt;/div&gt;
&lt;div style=&quot;background-color: white; border: 0px; color: #333333; font-family: &#39;Segoe UI&#39;, &#39;Lucida Grande&#39;, Verdana, Arial, Helvetica, sans-serif; font-size: 13px; line-height: 16px; margin-bottom: 12px; outline: 0px; padding: 0px; text-align: -webkit-auto;&quot;&gt;
The Navigation framework retains the loose coupling provided by routing and is a friend of unit testing. Similar to the use of route names, instead of hardcoding ASPX page names, it’s the dialog and transition keys configured in the preceding section that are referenced in code; the state navigated to is determined by the respective “initial” and “to” attributes.&lt;/div&gt;
&lt;div style=&quot;background-color: white; border: 0px; color: #333333; font-family: &#39;Segoe UI&#39;, &#39;Lucida Grande&#39;, Verdana, Arial, Helvetica, sans-serif; font-size: 13px; line-height: 16px; margin-bottom: 12px; outline: 0px; padding: 0px; text-align: -webkit-auto;&quot;&gt;
Returning to the survey, the Next transition key can be used to move from Question1 to Question2. I’ll add a Next button to Question1.aspx and the following code to its associated click handler:&lt;/div&gt;
&lt;div class=&quot;CodeHighlighter&quot; style=&quot;background-color: white; border: 0px; color: #333333; font-family: &#39;Segoe UI&#39;, &#39;Lucida Grande&#39;, Verdana, Arial, Helvetica, sans-serif; font-size: 13px; line-height: 16px; margin: 0px; outline: 0px; padding: 0px 0px 15px 15px; text-align: -webkit-auto; word-wrap: break-word;&quot;&gt;
&lt;pre style=&quot;border: 0px; font-family: inherit; font-style: inherit; outline: 0px; padding: 0px; white-space: pre-wrap;&quot;&gt;&lt;code class=&quot;csharp&quot; style=&quot;border: 0px; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;&lt;ol style=&quot;border: 0px; font-family: inherit; font-style: inherit; margin: 12px 0px 12px 18px; outline: 0px; padding: 0px;&quot;&gt;
&lt;li style=&quot;border: 0px; font-family: inherit; font-style: inherit; list-style-image: none; margin: 0px; outline: 0px; padding: 0px 0px 3px;&quot;&gt;&lt;span class=&quot;cs__keyword&quot; style=&quot;border: 0px; color: navy; font-family: inherit; font-style: inherit; font-weight: bold; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;protected&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;cs__keyword&quot; style=&quot;border: 0px; color: navy; font-family: inherit; font-style: inherit; font-weight: bold; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;void&lt;/span&gt;&amp;nbsp;Next_Click(&lt;span class=&quot;cs__keyword&quot; style=&quot;border: 0px; color: navy; font-family: inherit; font-style: inherit; font-weight: bold; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;object&lt;/span&gt;&amp;nbsp;sender,&amp;nbsp;EventArgs&amp;nbsp;e)&lt;/li&gt;
&lt;li style=&quot;border: 0px; font-family: inherit; font-style: inherit; list-style-image: none; margin: 0px; outline: 0px; padding: 0px 0px 3px;&quot;&gt;{&lt;/li&gt;
&lt;li style=&quot;border: 0px; font-family: inherit; font-style: inherit; list-style-image: none; margin: 0px; outline: 0px; padding: 0px 0px 3px;&quot;&gt;&amp;nbsp;&amp;nbsp;StateController.Navigate(&lt;span class=&quot;cs__string&quot; style=&quot;border: 0px; color: teal; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;&quot;Next&quot;&lt;/span&gt;);&lt;/li&gt;
&lt;li style=&quot;border: 0px; font-family: inherit; font-style: inherit; list-style-image: none; margin: 0px; outline: 0px; padding: 0px 0px 3px;&quot;&gt;}&lt;/li&gt;
&lt;/ol&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div style=&quot;background-color: white; border: 0px; color: #333333; font-family: &#39;Segoe UI&#39;, &#39;Lucida Grande&#39;, Verdana, Arial, Helvetica, sans-serif; font-size: 13px; line-height: 16px; margin-bottom: 12px; outline: 0px; padding: 0px; text-align: -webkit-auto;&quot;&gt;
The key passed in to the Navigate method is matched against the configured child transitions of the Question1 state and then the state identified by the “to” attribute is displayed—that is, Question2. I’ll add the same button and handler to Question2.aspx. If you run the survey, you’ll find you can navigate through the three states by clicking the Next buttons.&lt;/div&gt;
&lt;div style=&quot;background-color: white; border: 0px; color: #333333; font-family: &#39;Segoe UI&#39;, &#39;Lucida Grande&#39;, Verdana, Arial, Helvetica, sans-serif; font-size: 13px; line-height: 16px; margin-bottom: 12px; outline: 0px; padding: 0px; text-align: -webkit-auto;&quot;&gt;
You might have noticed the second question is Web Forms-specific and, as such, is irrelevant when “MVC” is selected as the first answer. The code needs changing to handle this scenario, navigating directly from Question1 to Thanks and bypassing Question2 entirely.&lt;/div&gt;
&lt;div style=&quot;background-color: white; border: 0px; color: #333333; font-family: &#39;Segoe UI&#39;, &#39;Lucida Grande&#39;, Verdana, Arial, Helvetica, sans-serif; font-size: 13px; line-height: 16px; margin-bottom: 12px; outline: 0px; padding: 0px; text-align: -webkit-auto;&quot;&gt;
The current configuration doesn’t allow navigation from Question1 to Thanks because the only transition listed is to Question2. So I’ll change the configuration by adding a second transition below the Question1 state:&lt;/div&gt;
&lt;div class=&quot;CodeHighlighter&quot; style=&quot;background-color: white; border: 0px; color: #333333; font-family: &#39;Segoe UI&#39;, &#39;Lucida Grande&#39;, Verdana, Arial, Helvetica, sans-serif; font-size: 13px; line-height: 16px; margin: 0px; outline: 0px; padding: 0px 0px 15px 15px; text-align: -webkit-auto; word-wrap: break-word;&quot;&gt;
&lt;pre style=&quot;border: 0px; font-family: inherit; font-style: inherit; outline: 0px; padding: 0px; white-space: pre-wrap;&quot;&gt;&lt;code class=&quot;html&quot; style=&quot;border: 0px; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;&lt;ol style=&quot;border: 0px; font-family: inherit; font-style: inherit; margin: 12px 0px 12px 18px; outline: 0px; padding: 0px;&quot;&gt;
&lt;li style=&quot;border: 0px; font-family: inherit; font-style: inherit; list-style-image: none; margin: 0px; outline: 0px; padding: 0px 0px 3px;&quot;&gt;&lt;span class=&quot;html__tag_start&quot; style=&quot;border: 0px; color: navy; font-family: inherit; font-style: inherit; font-weight: bold; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;&amp;lt;state&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;html__attr_name&quot; style=&quot;border: 0px; color: green; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;key&lt;/span&gt;=&lt;span class=&quot;html__attr_value&quot; style=&quot;border: 0px; color: maroon; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;&quot;Question1&quot;&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;html__attr_name&quot; style=&quot;border: 0px; color: green; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;page&lt;/span&gt;=&lt;span class=&quot;html__attr_value&quot; style=&quot;border: 0px; color: maroon; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;&quot;~/Question1.aspx&quot;&lt;/span&gt;&lt;span class=&quot;html__tag_start&quot; style=&quot;border: 0px; color: navy; font-family: inherit; font-style: inherit; font-weight: bold; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;border: 0px; font-family: inherit; font-style: inherit; list-style-image: none; margin: 0px; outline: 0px; padding: 0px 0px 3px;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;html__tag_start&quot; style=&quot;border: 0px; color: navy; font-family: inherit; font-style: inherit; font-weight: bold; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;&amp;lt;transition&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;html__attr_name&quot; style=&quot;border: 0px; color: green; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;key&lt;/span&gt;=&lt;span class=&quot;html__attr_value&quot; style=&quot;border: 0px; color: maroon; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;&quot;Next&quot;&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;html__attr_name&quot; style=&quot;border: 0px; color: green; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;to&lt;/span&gt;=&lt;span class=&quot;html__attr_value&quot; style=&quot;border: 0px; color: maroon; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;&quot;Question2&quot;&lt;/span&gt;&lt;span class=&quot;html__tag_start&quot; style=&quot;border: 0px; color: navy; font-family: inherit; font-style: inherit; font-weight: bold; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;border: 0px; font-family: inherit; font-style: inherit; list-style-image: none; margin: 0px; outline: 0px; padding: 0px 0px 3px;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;html__tag_start&quot; style=&quot;border: 0px; color: navy; font-family: inherit; font-style: inherit; font-weight: bold; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;&amp;lt;transition&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;html__attr_name&quot; style=&quot;border: 0px; color: green; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;key&lt;/span&gt;=&lt;span class=&quot;html__attr_value&quot; style=&quot;border: 0px; color: maroon; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;&quot;Next_MVC&quot;&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;html__attr_name&quot; style=&quot;border: 0px; color: green; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;to&lt;/span&gt;=&lt;span class=&quot;html__attr_value&quot; style=&quot;border: 0px; color: maroon; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;&quot;Thanks&quot;&lt;/span&gt;&lt;span class=&quot;html__tag_start&quot; style=&quot;border: 0px; color: navy; font-family: inherit; font-style: inherit; font-weight: bold; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;border: 0px; font-family: inherit; font-style: inherit; list-style-image: none; margin: 0px; outline: 0px; padding: 0px 0px 3px;&quot;&gt;&lt;span class=&quot;html__tag_end&quot; style=&quot;border: 0px; color: navy; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;&amp;lt;/state&amp;gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div style=&quot;background-color: white; border: 0px; color: #333333; font-family: &#39;Segoe UI&#39;, &#39;Lucida Grande&#39;, Verdana, Arial, Helvetica, sans-serif; font-size: 13px; line-height: 16px; margin-bottom: 12px; outline: 0px; padding: 0px; text-align: -webkit-auto;&quot;&gt;
With this new transition in place it’s simple to adjust the Next button click handler to pass a different transition key depending on the answer chosen:&lt;/div&gt;
&lt;div class=&quot;CodeHighlighter&quot; style=&quot;background-color: white; border: 0px; color: #333333; font-family: &#39;Segoe UI&#39;, &#39;Lucida Grande&#39;, Verdana, Arial, Helvetica, sans-serif; font-size: 13px; line-height: 16px; margin: 0px; outline: 0px; padding: 0px 0px 15px 15px; text-align: -webkit-auto; word-wrap: break-word;&quot;&gt;
&lt;pre style=&quot;border: 0px; font-family: inherit; font-style: inherit; outline: 0px; padding: 0px; white-space: pre-wrap;&quot;&gt;&lt;code class=&quot;csharp&quot; style=&quot;border: 0px; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;&lt;ol style=&quot;border: 0px; font-family: inherit; font-style: inherit; margin: 12px 0px 12px 18px; outline: 0px; padding: 0px;&quot;&gt;
&lt;li style=&quot;border: 0px; font-family: inherit; font-style: inherit; list-style-image: none; margin: 0px; outline: 0px; padding: 0px 0px 3px;&quot;&gt;&lt;span class=&quot;cs__keyword&quot; style=&quot;border: 0px; color: navy; font-family: inherit; font-style: inherit; font-weight: bold; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;if&lt;/span&gt;&amp;nbsp;(Answer.SelectedValue&amp;nbsp;!=&amp;nbsp;&lt;span class=&quot;cs__string&quot; style=&quot;border: 0px; color: teal; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;&quot;MVC&quot;&lt;/span&gt;)&lt;/li&gt;
&lt;li style=&quot;border: 0px; font-family: inherit; font-style: inherit; list-style-image: none; margin: 0px; outline: 0px; padding: 0px 0px 3px;&quot;&gt;{&lt;/li&gt;
&lt;li style=&quot;border: 0px; font-family: inherit; font-style: inherit; list-style-image: none; margin: 0px; outline: 0px; padding: 0px 0px 3px;&quot;&gt;&amp;nbsp;&amp;nbsp;StateController.Navigate(&lt;span class=&quot;cs__string&quot; style=&quot;border: 0px; color: teal; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;&quot;Next&quot;&lt;/span&gt;);&lt;/li&gt;
&lt;li style=&quot;border: 0px; font-family: inherit; font-style: inherit; list-style-image: none; margin: 0px; outline: 0px; padding: 0px 0px 3px;&quot;&gt;}&lt;/li&gt;
&lt;li style=&quot;border: 0px; font-family: inherit; font-style: inherit; list-style-image: none; margin: 0px; outline: 0px; padding: 0px 0px 3px;&quot;&gt;&lt;span class=&quot;cs__keyword&quot; style=&quot;border: 0px; color: navy; font-family: inherit; font-style: inherit; font-weight: bold; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;else&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;border: 0px; font-family: inherit; font-style: inherit; list-style-image: none; margin: 0px; outline: 0px; padding: 0px 0px 3px;&quot;&gt;{&lt;/li&gt;
&lt;li style=&quot;border: 0px; font-family: inherit; font-style: inherit; list-style-image: none; margin: 0px; outline: 0px; padding: 0px 0px 3px;&quot;&gt;&amp;nbsp;&amp;nbsp;StateController.Navigate(&lt;span class=&quot;cs__string&quot; style=&quot;border: 0px; color: teal; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;&quot;Next_MVC&quot;&lt;/span&gt;);&lt;/li&gt;
&lt;li style=&quot;border: 0px; font-family: inherit; font-style: inherit; list-style-image: none; margin: 0px; outline: 0px; padding: 0px 0px 3px;&quot;&gt;}&lt;/li&gt;
&lt;/ol&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div style=&quot;background-color: white; border: 0px; color: #333333; font-family: &#39;Segoe UI&#39;, &#39;Lucida Grande&#39;, Verdana, Arial, Helvetica, sans-serif; font-size: 13px; line-height: 16px; margin-bottom: 12px; outline: 0px; padding: 0px; text-align: -webkit-auto;&quot;&gt;
A survey wouldn’t be much good if it didn’t allow the user to change answers. Currently there’s no way to return to a previous question (aside from the browser back button). To navigate back you might think you need to add two transitions below Thanks, pointing to Question1 and Question2, and another below Question2, pointing to Question1. Although this would work, it’s unnecessary because back navigation comes free with the Navigation framework.&lt;/div&gt;
&lt;div style=&quot;background-color: white; border: 0px; color: #333333; font-family: &#39;Segoe UI&#39;, &#39;Lucida Grande&#39;, Verdana, Arial, Helvetica, sans-serif; font-size: 13px; line-height: 16px; margin-bottom: 12px; outline: 0px; padding: 0px; text-align: -webkit-auto;&quot;&gt;
Breadcrumb navigation is a set of links providing access to each previous page the user visited in reaching the current one. Web Forms has breadcrumb navigation built into its site map functionality. However, because site maps are represented by a fixed navigational structure, for a given page these breadcrumbs are always the same regardless of the route taken. They can’t handle situations like that found in the survey where the route to Thanks sometimes excludes Question2. The Navigation framework, by keeping track of states visited as navigations occur, builds up a breadcrumb trail of the actual route taken.&lt;/div&gt;
&lt;div style=&quot;background-color: white; border: 0px; color: #333333; font-family: &#39;Segoe UI&#39;, &#39;Lucida Grande&#39;, Verdana, Arial, Helvetica, sans-serif; font-size: 13px; line-height: 16px; margin-bottom: 12px; outline: 0px; padding: 0px; text-align: -webkit-auto;&quot;&gt;
To demonstrate, I’ll add a hyperlink to Question2.aspx and in the codebehind programmatically set its NavigateUrl property using back navigation. A distance parameter must be passed indicating how many states to go back to, a value of 1 meaning the immediate predecessor:&lt;/div&gt;
&lt;div class=&quot;CodeHighlighter&quot; style=&quot;background-color: white; border: 0px; color: #333333; font-family: &#39;Segoe UI&#39;, &#39;Lucida Grande&#39;, Verdana, Arial, Helvetica, sans-serif; font-size: 13px; line-height: 16px; margin: 0px; outline: 0px; padding: 0px 0px 15px 15px; text-align: -webkit-auto; word-wrap: break-word;&quot;&gt;
&lt;pre style=&quot;border: 0px; font-family: inherit; font-style: inherit; outline: 0px; padding: 0px; white-space: pre-wrap;&quot;&gt;&lt;code class=&quot;csharp&quot; style=&quot;border: 0px; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;&lt;ol style=&quot;border: 0px; font-family: inherit; font-style: inherit; margin: 12px 0px 12px 18px; outline: 0px; padding: 0px;&quot;&gt;
&lt;li style=&quot;border: 0px; font-family: inherit; font-style: inherit; list-style-image: none; margin: 0px; outline: 0px; padding: 0px 0px 3px;&quot;&gt;&lt;span class=&quot;cs__keyword&quot; style=&quot;border: 0px; color: navy; font-family: inherit; font-style: inherit; font-weight: bold; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;protected&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;cs__keyword&quot; style=&quot;border: 0px; color: navy; font-family: inherit; font-style: inherit; font-weight: bold; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;void&lt;/span&gt;&amp;nbsp;Page_Load(&lt;span class=&quot;cs__keyword&quot; style=&quot;border: 0px; color: navy; font-family: inherit; font-style: inherit; font-weight: bold; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;object&lt;/span&gt;&amp;nbsp;sender,&amp;nbsp;EventArgs&amp;nbsp;e)&lt;/li&gt;
&lt;li style=&quot;border: 0px; font-family: inherit; font-style: inherit; list-style-image: none; margin: 0px; outline: 0px; padding: 0px 0px 3px;&quot;&gt;{&lt;/li&gt;
&lt;li style=&quot;border: 0px; font-family: inherit; font-style: inherit; list-style-image: none; margin: 0px; outline: 0px; padding: 0px 0px 3px;&quot;&gt;&amp;nbsp;&amp;nbsp;Question1.NavigateUrl&amp;nbsp;=&amp;nbsp;StateController.GetNavigationBackLink(&lt;span class=&quot;cs__number&quot; style=&quot;border: 0px; color: red; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;1&lt;/span&gt;);&lt;/li&gt;
&lt;li style=&quot;border: 0px; font-family: inherit; font-style: inherit; list-style-image: none; margin: 0px; outline: 0px; padding: 0px 0px 3px;&quot;&gt;}&lt;/li&gt;
&lt;/ol&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div style=&quot;background-color: white; border: 0px; color: #333333; font-family: &#39;Segoe UI&#39;, &#39;Lucida Grande&#39;, Verdana, Arial, Helvetica, sans-serif; font-size: 13px; line-height: 16px; margin-bottom: 12px; outline: 0px; padding: 0px; text-align: -webkit-auto;&quot;&gt;
If you run the app and answer “Web Forms” to question one you’ll see the hyperlink on Question2.aspx takes you back to the first question.&lt;/div&gt;
&lt;div style=&quot;background-color: white; border: 0px; color: #333333; font-family: &#39;Segoe UI&#39;, &#39;Lucida Grande&#39;, Verdana, Arial, Helvetica, sans-serif; font-size: 13px; line-height: 16px; margin-bottom: 12px; outline: 0px; padding: 0px; text-align: -webkit-auto;&quot;&gt;
I’ll do the same for Thanks.aspx, although it’s a bit trickier because two hyperlinks are needed (one for each question), and the user may not have seen both questions—that is, if he answered “MVC” to the first. The number of precedent states can be checked before deciding how to set up the hyperlinks (see&amp;nbsp;&lt;strong style=&quot;border: 0px; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;Figure 1&lt;/strong&gt;).&lt;/div&gt;
&lt;div style=&quot;background-color: white; border: 0px; color: #333333; font-family: &#39;Segoe UI&#39;, &#39;Lucida Grande&#39;, Verdana, Arial, Helvetica, sans-serif; font-size: 13px; line-height: 16px; margin: 0px; outline: 0px; padding: 0px; text-align: -webkit-auto;&quot;&gt;
&lt;div style=&quot;border: 0px; font-family: inherit; font-style: inherit; margin-bottom: 12px; outline: 0px; padding: 0px;&quot;&gt;
&lt;strong style=&quot;border: 0px; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;Figure 1 Dynamic Back Navigation&lt;/strong&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;CodeHighlighter&quot; style=&quot;background-color: white; border: 0px; color: #333333; font-family: &#39;Segoe UI&#39;, &#39;Lucida Grande&#39;, Verdana, Arial, Helvetica, sans-serif; font-size: 13px; line-height: 16px; margin: 0px; outline: 0px; padding: 0px 0px 15px 15px; text-align: -webkit-auto; word-wrap: break-word;&quot;&gt;
&lt;pre style=&quot;border: 0px; font-family: inherit; font-style: inherit; outline: 0px; padding: 0px; white-space: pre-wrap;&quot;&gt;&lt;code class=&quot;csharp&quot; style=&quot;border: 0px; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;&lt;ol style=&quot;border: 0px; font-family: inherit; font-style: inherit; margin: 12px 0px 12px 18px; outline: 0px; padding: 0px;&quot;&gt;
&lt;li style=&quot;border: 0px; font-family: inherit; font-style: inherit; list-style-image: none; margin: 0px; outline: 0px; padding: 0px 0px 3px;&quot;&gt;&lt;span class=&quot;cs__keyword&quot; style=&quot;border: 0px; color: navy; font-family: inherit; font-style: inherit; font-weight: bold; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;protected&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;cs__keyword&quot; style=&quot;border: 0px; color: navy; font-family: inherit; font-style: inherit; font-weight: bold; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;void&lt;/span&gt;&amp;nbsp;Page_Load(&lt;span class=&quot;cs__keyword&quot; style=&quot;border: 0px; color: navy; font-family: inherit; font-style: inherit; font-weight: bold; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;object&lt;/span&gt;&amp;nbsp;sender,&amp;nbsp;EventArgs&amp;nbsp;e)&lt;/li&gt;
&lt;li style=&quot;border: 0px; font-family: inherit; font-style: inherit; list-style-image: none; margin: 0px; outline: 0px; padding: 0px 0px 3px;&quot;&gt;{&lt;/li&gt;
&lt;li style=&quot;border: 0px; font-family: inherit; font-style: inherit; list-style-image: none; margin: 0px; outline: 0px; padding: 0px 0px 3px;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;cs__keyword&quot; style=&quot;border: 0px; color: navy; font-family: inherit; font-style: inherit; font-weight: bold; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;if&lt;/span&gt;&amp;nbsp;(StateController.CanNavigateBack(&lt;span class=&quot;cs__number&quot; style=&quot;border: 0px; color: red; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;2&lt;/span&gt;))&lt;/li&gt;
&lt;li style=&quot;border: 0px; font-family: inherit; font-style: inherit; list-style-image: none; margin: 0px; outline: 0px; padding: 0px 0px 3px;&quot;&gt;&amp;nbsp;&amp;nbsp;{&lt;/li&gt;
&lt;li style=&quot;border: 0px; font-family: inherit; font-style: inherit; list-style-image: none; margin: 0px; outline: 0px; padding: 0px 0px 3px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Question1.NavigateUrl&amp;nbsp;=&amp;nbsp;StateController.GetNavigationBackLink(&lt;span class=&quot;cs__number&quot; style=&quot;border: 0px; color: red; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;2&lt;/span&gt;);&lt;/li&gt;
&lt;li style=&quot;border: 0px; font-family: inherit; font-style: inherit; list-style-image: none; margin: 0px; outline: 0px; padding: 0px 0px 3px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Question2.NavigateUrl&amp;nbsp;=&amp;nbsp;StateController.GetNavigationBackLink(&lt;span class=&quot;cs__number&quot; style=&quot;border: 0px; color: red; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;1&lt;/span&gt;);&lt;/li&gt;
&lt;li style=&quot;border: 0px; font-family: inherit; font-style: inherit; list-style-image: none; margin: 0px; outline: 0px; padding: 0px 0px 3px;&quot;&gt;&amp;nbsp;&amp;nbsp;}&lt;/li&gt;
&lt;li style=&quot;border: 0px; font-family: inherit; font-style: inherit; list-style-image: none; margin: 0px; outline: 0px; padding: 0px 0px 3px;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;cs__keyword&quot; style=&quot;border: 0px; color: navy; font-family: inherit; font-style: inherit; font-weight: bold; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;else&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;border: 0px; font-family: inherit; font-style: inherit; list-style-image: none; margin: 0px; outline: 0px; padding: 0px 0px 3px;&quot;&gt;&amp;nbsp;&amp;nbsp;{&lt;/li&gt;
&lt;li style=&quot;border: 0px; font-family: inherit; font-style: inherit; list-style-image: none; margin: 0px; outline: 0px; padding: 0px 0px 3px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Question1.NavigateUrl&amp;nbsp;=&amp;nbsp;StateController.GetNavigationBackLink(&lt;span class=&quot;cs__number&quot; style=&quot;border: 0px; color: red; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;1&lt;/span&gt;);&lt;/li&gt;
&lt;li style=&quot;border: 0px; font-family: inherit; font-style: inherit; list-style-image: none; margin: 0px; outline: 0px; padding: 0px 0px 3px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Question2.Visible&amp;nbsp;=&amp;nbsp;&lt;span class=&quot;cs__keyword&quot; style=&quot;border: 0px; color: navy; font-family: inherit; font-style: inherit; font-weight: bold; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;false&lt;/span&gt;;&lt;/li&gt;
&lt;li style=&quot;border: 0px; font-family: inherit; font-style: inherit; list-style-image: none; margin: 0px; outline: 0px; padding: 0px 0px 3px;&quot;&gt;&amp;nbsp;&amp;nbsp;}&lt;/li&gt;
&lt;li style=&quot;border: 0px; font-family: inherit; font-style: inherit; list-style-image: none; margin: 0px; outline: 0px; padding: 0px 0px 3px;&quot;&gt;}&lt;/li&gt;
&lt;/ol&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div style=&quot;background-color: white; border: 0px; color: #333333; font-family: &#39;Segoe UI&#39;, &#39;Lucida Grande&#39;, Verdana, Arial, Helvetica, sans-serif; font-size: 13px; line-height: 16px; margin-bottom: 12px; outline: 0px; padding: 0px; text-align: -webkit-auto;&quot;&gt;
The survey is now functional, allowing you to fill in questions and amend previous answers. But there’s little point to a survey if these answers aren’t put to use. I’ll show how they can be passed from Question1 and Question2 to Thanks, where they’ll be displayed in summary form.&lt;/div&gt;
&lt;h2 style=&quot;background-color: white; border: 0px; clear: both; color: #260859; font-family: &#39;Segoe UI Semibold&#39;, &#39;Segoe UI&#39;, &#39;Lucida Grande&#39;, Verdana, Arial, Helvetica, sans-serif; font-size: 16px; line-height: 20px; margin: 3px 0px 4px; outline: 0px; padding: 0px 0px 7px; text-align: -webkit-auto;&quot;&gt;
Data Passing&lt;/h2&gt;
&lt;div style=&quot;background-color: white; border: 0px; color: #333333; font-family: &#39;Segoe UI&#39;, &#39;Lucida Grande&#39;, Verdana, Arial, Helvetica, sans-serif; font-size: 13px; line-height: 16px; margin-bottom: 12px; outline: 0px; padding: 0px; text-align: -webkit-auto;&quot;&gt;
There are as many different ways of passing data in Web Forms as there are ways to navigate. With non-postback navigation, where control is passed from one page to another (via hyperlink, redirect or transfer), query string or route data can be used. With postback navigation, where control remains on the same page (via postback, partial page request or AJAX history), control values, view state or event arguments are the likely candidates.&lt;/div&gt;
&lt;div style=&quot;background-color: white; border: 0px; color: #333333; font-family: &#39;Segoe UI&#39;, &#39;Lucida Grande&#39;, Verdana, Arial, Helvetica, sans-serif; font-size: 13px; line-height: 16px; margin-bottom: 12px; outline: 0px; padding: 0px; text-align: -webkit-auto;&quot;&gt;
Prior to Visual Studio 2005, codebehinds were burdened with handling this passed-in data, so they swelled with value-extraction and type-conversion logic. Their load was considerably lightened with the introduction of data source controls and select parameters (“value providers” in the next version of Visual Studio). However, these select parameters are tied to a specific data source and they can’t dynamically switch sources depending on the navigational context. For example, they can’t retrieve their values alternatively from a control or from the query string depending on whether it’s a postback or not. Working around these limitations causes code to leak back into the codebehind, reverting back to square one of bloated and untestable codebehinds.&lt;/div&gt;
&lt;div style=&quot;background-color: white; border: 0px; color: #333333; font-family: &#39;Segoe UI&#39;, &#39;Lucida Grande&#39;, Verdana, Arial, Helvetica, sans-serif; font-size: 13px; line-height: 16px; margin-bottom: 12px; outline: 0px; padding: 0px; text-align: -webkit-auto;&quot;&gt;
The Navigation framework avoids such problems by providing a single data source regardless of the navigation involved, called state data. The first time a page is loaded, the state data is populated with any data passed during the navigation, in a fashion similar to query string or route data. A marked difference, however, is that state data isn’t read-only, so as subsequent postback navigations occur, it can be updated to reflect the page’s current incarnation. This will prove beneficial when I revisit back navigation toward the end of this section.&lt;/div&gt;
&lt;div style=&quot;background-color: white; border: 0px; color: #333333; font-family: &#39;Segoe UI&#39;, &#39;Lucida Grande&#39;, Verdana, Arial, Helvetica, sans-serif; font-size: 13px; line-height: 16px; margin-bottom: 12px; outline: 0px; padding: 0px; text-align: -webkit-auto;&quot;&gt;
I’ll change the survey so the answer to the first question is passed to the Thanks state where it will be redisplayed to the user. Data is passed while navigating via a collection of key-value pairs, called NavigationData. I’ll change the Next click handler of Question1.aspx so the answer to the first question is passed to the next state:&lt;/div&gt;
&lt;div class=&quot;CodeHighlighter&quot; style=&quot;background-color: white; border: 0px; color: #333333; font-family: &#39;Segoe UI&#39;, &#39;Lucida Grande&#39;, Verdana, Arial, Helvetica, sans-serif; font-size: 13px; line-height: 16px; margin: 0px; outline: 0px; padding: 0px 0px 15px 15px; text-align: -webkit-auto; word-wrap: break-word;&quot;&gt;
&lt;pre style=&quot;border: 0px; font-family: inherit; font-style: inherit; outline: 0px; padding: 0px; white-space: pre-wrap;&quot;&gt;&lt;code class=&quot;csharp&quot; style=&quot;border: 0px; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;&lt;ol style=&quot;border: 0px; font-family: inherit; font-style: inherit; margin: 12px 0px 12px 18px; outline: 0px; padding: 0px;&quot;&gt;
&lt;li style=&quot;border: 0px; font-family: inherit; font-style: inherit; list-style-image: none; margin: 0px; outline: 0px; padding: 0px 0px 3px;&quot;&gt;NavigationData&amp;nbsp;data&amp;nbsp;=&amp;nbsp;&lt;span class=&quot;cs__keyword&quot; style=&quot;border: 0px; color: navy; font-family: inherit; font-style: inherit; font-weight: bold; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;new&lt;/span&gt;&amp;nbsp;NavigationData();&lt;/li&gt;
&lt;li style=&quot;border: 0px; font-family: inherit; font-style: inherit; list-style-image: none; margin: 0px; outline: 0px; padding: 0px 0px 3px;&quot;&gt;data[&lt;span class=&quot;cs__string&quot; style=&quot;border: 0px; color: teal; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;&quot;technology&quot;&lt;/span&gt;]&amp;nbsp;=&amp;nbsp;Answer.SelectedValue;&lt;/li&gt;
&lt;li style=&quot;border: 0px; font-family: inherit; font-style: inherit; list-style-image: none; margin: 0px; outline: 0px; padding: 0px 0px 3px;&quot;&gt;&lt;span class=&quot;cs__keyword&quot; style=&quot;border: 0px; color: navy; font-family: inherit; font-style: inherit; font-weight: bold; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;if&lt;/span&gt;&amp;nbsp;(Answer.SelectedValue&amp;nbsp;!=&amp;nbsp;&lt;span class=&quot;cs__string&quot; style=&quot;border: 0px; color: teal; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;&quot;MVC&quot;&lt;/span&gt;)&lt;/li&gt;
&lt;li style=&quot;border: 0px; font-family: inherit; font-style: inherit; list-style-image: none; margin: 0px; outline: 0px; padding: 0px 0px 3px;&quot;&gt;{&lt;/li&gt;
&lt;li style=&quot;border: 0px; font-family: inherit; font-style: inherit; list-style-image: none; margin: 0px; outline: 0px; padding: 0px 0px 3px;&quot;&gt;&amp;nbsp;&amp;nbsp;StateController.Navigate(&lt;span class=&quot;cs__string&quot; style=&quot;border: 0px; color: teal; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;&quot;Next&quot;&lt;/span&gt;,&amp;nbsp;data);&lt;/li&gt;
&lt;li style=&quot;border: 0px; font-family: inherit; font-style: inherit; list-style-image: none; margin: 0px; outline: 0px; padding: 0px 0px 3px;&quot;&gt;}&lt;/li&gt;
&lt;li style=&quot;border: 0px; font-family: inherit; font-style: inherit; list-style-image: none; margin: 0px; outline: 0px; padding: 0px 0px 3px;&quot;&gt;&lt;span class=&quot;cs__keyword&quot; style=&quot;border: 0px; color: navy; font-family: inherit; font-style: inherit; font-weight: bold; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;else&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;border: 0px; font-family: inherit; font-style: inherit; list-style-image: none; margin: 0px; outline: 0px; padding: 0px 0px 3px;&quot;&gt;{&lt;/li&gt;
&lt;li style=&quot;border: 0px; font-family: inherit; font-style: inherit; list-style-image: none; margin: 0px; outline: 0px; padding: 0px 0px 3px;&quot;&gt;&amp;nbsp;&amp;nbsp;StateController.Navigate(&lt;span class=&quot;cs__string&quot; style=&quot;border: 0px; color: teal; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;&quot;Next_MVC&quot;&lt;/span&gt;,&amp;nbsp;data);&lt;/li&gt;
&lt;li style=&quot;border: 0px; font-family: inherit; font-style: inherit; list-style-image: none; margin: 0px; outline: 0px; padding: 0px 0px 3px;&quot;&gt;}&lt;/li&gt;
&lt;/ol&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div style=&quot;background-color: white; border: 0px; color: #333333; font-family: &#39;Segoe UI&#39;, &#39;Lucida Grande&#39;, Verdana, Arial, Helvetica, sans-serif; font-size: 13px; line-height: 16px; margin-bottom: 12px; outline: 0px; padding: 0px; text-align: -webkit-auto;&quot;&gt;
This NavigationData passed during navigation is used to initialize the state data that’s made available to the next state via the Data property on the StateContext object. I’ll add a Label to Thanks.aspx and set its Text property to display the answer passed in:&lt;/div&gt;
&lt;div class=&quot;CodeHighlighter&quot; style=&quot;background-color: white; border: 0px; color: #333333; font-family: &#39;Segoe UI&#39;, &#39;Lucida Grande&#39;, Verdana, Arial, Helvetica, sans-serif; font-size: 13px; line-height: 16px; margin: 0px; outline: 0px; padding: 0px 0px 15px 15px; text-align: -webkit-auto; word-wrap: break-word;&quot;&gt;
&lt;pre style=&quot;border: 0px; font-family: inherit; font-style: inherit; outline: 0px; padding: 0px; white-space: pre-wrap;&quot;&gt;&lt;code class=&quot;csharp&quot; style=&quot;border: 0px; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;&lt;ol style=&quot;border: 0px; font-family: inherit; font-style: inherit; margin: 12px 0px 12px 18px; outline: 0px; padding: 0px;&quot;&gt;
&lt;li style=&quot;border: 0px; font-family: inherit; font-style: inherit; list-style-image: none; margin: 0px; outline: 0px; padding: 0px 0px 3px;&quot;&gt;Summary.Text&amp;nbsp;=&amp;nbsp;(&lt;span class=&quot;cs__keyword&quot; style=&quot;border: 0px; color: navy; font-family: inherit; font-style: inherit; font-weight: bold; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;string&lt;/span&gt;)&amp;nbsp;StateContext.Data[&lt;span class=&quot;cs__string&quot; style=&quot;border: 0px; color: teal; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;&quot;technology&quot;&lt;/span&gt;];&lt;/li&gt;
&lt;/ol&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div style=&quot;background-color: white; border: 0px; color: #333333; font-family: &#39;Segoe UI&#39;, &#39;Lucida Grande&#39;, Verdana, Arial, Helvetica, sans-serif; font-size: 13px; line-height: 16px; margin-bottom: 12px; outline: 0px; padding: 0px; text-align: -webkit-auto;&quot;&gt;
If you run the survey, you’ll notice this summary information is only displayed when the answer to the first question is “MVC”; an answer of “Web Forms” is never shown. This is because NavigationData is only available to the next state, but not to any states reached as a result of subsequent navigation. So an answer of “Web Forms” is present in the Question2 state data, but isn’t available by the time Thanks is reached. One way to solve this is to change Question2.aspx so that it relays the answer to the first question—that is, it takes the answer out of its state data and passes it to Thanks when it navigates:&lt;/div&gt;
&lt;div class=&quot;CodeHighlighter&quot; style=&quot;background-color: white; border: 0px; color: #333333; font-family: &#39;Segoe UI&#39;, &#39;Lucida Grande&#39;, Verdana, Arial, Helvetica, sans-serif; font-size: 13px; line-height: 16px; margin: 0px; outline: 0px; padding: 0px 0px 15px 15px; text-align: -webkit-auto; word-wrap: break-word;&quot;&gt;
&lt;pre style=&quot;border: 0px; font-family: inherit; font-style: inherit; outline: 0px; padding: 0px; white-space: pre-wrap;&quot;&gt;&lt;code class=&quot;csharp&quot; style=&quot;border: 0px; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;&lt;ol style=&quot;border: 0px; font-family: inherit; font-style: inherit; margin: 12px 0px 12px 18px; outline: 0px; padding: 0px;&quot;&gt;
&lt;li style=&quot;border: 0px; font-family: inherit; font-style: inherit; list-style-image: none; margin: 0px; outline: 0px; padding: 0px 0px 3px;&quot;&gt;NavigationData&amp;nbsp;data&amp;nbsp;=&amp;nbsp;&lt;span class=&quot;cs__keyword&quot; style=&quot;border: 0px; color: navy; font-family: inherit; font-style: inherit; font-weight: bold; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;new&lt;/span&gt;&amp;nbsp;NavigationData();&lt;/li&gt;
&lt;li style=&quot;border: 0px; font-family: inherit; font-style: inherit; list-style-image: none; margin: 0px; outline: 0px; padding: 0px 0px 3px;&quot;&gt;data[&lt;span class=&quot;cs__string&quot; style=&quot;border: 0px; color: teal; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;&quot;technology&quot;&lt;/span&gt;]&amp;nbsp;=&amp;nbsp;StateContext.Data[&lt;span class=&quot;cs__string&quot; style=&quot;border: 0px; color: teal; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;&quot;technology&quot;&lt;/span&gt;];&lt;/li&gt;
&lt;li style=&quot;border: 0px; font-family: inherit; font-style: inherit; list-style-image: none; margin: 0px; outline: 0px; padding: 0px 0px 3px;&quot;&gt;StateController.Navigate(&lt;span class=&quot;cs__string&quot; style=&quot;border: 0px; color: teal; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;&quot;Next&quot;&lt;/span&gt;,&amp;nbsp;data);&lt;/li&gt;
&lt;/ol&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div style=&quot;background-color: white; border: 0px; color: #333333; font-family: &#39;Segoe UI&#39;, &#39;Lucida Grande&#39;, Verdana, Arial, Helvetica, sans-serif; font-size: 13px; line-height: 16px; margin-bottom: 12px; outline: 0px; padding: 0px; text-align: -webkit-auto;&quot;&gt;
This approach isn’t ideal because it couples Question1 and Question2 together, forcing the latter state to be aware of the data being passed in by the former. For example, a new question can’t be inserted between the first and second without a corresponding change to Question2.aspx. A future-proof implementation involves creating a new NavigationData containing all of the Question2 state data; this is achieved by passing true to the NavigationData constructor:&lt;/div&gt;
&lt;div class=&quot;CodeHighlighter&quot; style=&quot;background-color: white; border: 0px; color: #333333; font-family: &#39;Segoe UI&#39;, &#39;Lucida Grande&#39;, Verdana, Arial, Helvetica, sans-serif; font-size: 13px; line-height: 16px; margin: 0px; outline: 0px; padding: 0px 0px 15px 15px; text-align: -webkit-auto; word-wrap: break-word;&quot;&gt;
&lt;pre style=&quot;border: 0px; font-family: inherit; font-style: inherit; outline: 0px; padding: 0px; white-space: pre-wrap;&quot;&gt;&lt;code class=&quot;csharp&quot; style=&quot;border: 0px; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;&lt;ol style=&quot;border: 0px; font-family: inherit; font-style: inherit; margin: 12px 0px 12px 18px; outline: 0px; padding: 0px;&quot;&gt;
&lt;li style=&quot;border: 0px; font-family: inherit; font-style: inherit; list-style-image: none; margin: 0px; outline: 0px; padding: 0px 0px 3px;&quot;&gt;NavigationData&amp;nbsp;data&amp;nbsp;=&amp;nbsp;&lt;span class=&quot;cs__keyword&quot; style=&quot;border: 0px; color: navy; font-family: inherit; font-style: inherit; font-weight: bold; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;new&lt;/span&gt;&amp;nbsp;NavigationData(&lt;span class=&quot;cs__keyword&quot; style=&quot;border: 0px; color: navy; font-family: inherit; font-style: inherit; font-weight: bold; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;true&lt;/span&gt;);&lt;/li&gt;
&lt;li style=&quot;border: 0px; font-family: inherit; font-style: inherit; list-style-image: none; margin: 0px; outline: 0px; padding: 0px 0px 3px;&quot;&gt;StateController.Navigate(&lt;span class=&quot;cs__string&quot; style=&quot;border: 0px; color: teal; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;&quot;Next&quot;&lt;/span&gt;,&amp;nbsp;data);&lt;/li&gt;
&lt;/ol&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div style=&quot;background-color: white; border: 0px; color: #333333; font-family: &#39;Segoe UI&#39;, &#39;Lucida Grande&#39;, Verdana, Arial, Helvetica, sans-serif; font-size: 13px; line-height: 16px; margin-bottom: 12px; outline: 0px; padding: 0px; text-align: -webkit-auto;&quot;&gt;
Another key difference between state data and query string or route data is that with state data you’re not restricted to passing strings. Rather than pass the answer as a string, as was done for Question1, for Question2 I’ll pass a bool to Thanks, with a value of true corresponding to “Yes”:&lt;/div&gt;
&lt;div class=&quot;CodeHighlighter&quot; style=&quot;background-color: white; border: 0px; color: #333333; font-family: &#39;Segoe UI&#39;, &#39;Lucida Grande&#39;, Verdana, Arial, Helvetica, sans-serif; font-size: 13px; line-height: 16px; margin: 0px; outline: 0px; padding: 0px 0px 15px 15px; text-align: -webkit-auto; word-wrap: break-word;&quot;&gt;
&lt;pre style=&quot;border: 0px; font-family: inherit; font-style: inherit; outline: 0px; padding: 0px; white-space: pre-wrap;&quot;&gt;&lt;code class=&quot;csharp&quot; style=&quot;border: 0px; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;&lt;ol style=&quot;border: 0px; font-family: inherit; font-style: inherit; margin: 12px 0px 12px 18px; outline: 0px; padding: 0px;&quot;&gt;
&lt;li style=&quot;border: 0px; font-family: inherit; font-style: inherit; list-style-image: none; margin: 0px; outline: 0px; padding: 0px 0px 3px;&quot;&gt;NavigationData&amp;nbsp;data&amp;nbsp;=&amp;nbsp;&lt;span class=&quot;cs__keyword&quot; style=&quot;border: 0px; color: navy; font-family: inherit; font-style: inherit; font-weight: bold; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;new&lt;/span&gt;&amp;nbsp;NavigationData(&lt;span class=&quot;cs__keyword&quot; style=&quot;border: 0px; color: navy; font-family: inherit; font-style: inherit; font-weight: bold; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;true&lt;/span&gt;);&lt;/li&gt;
&lt;li style=&quot;border: 0px; font-family: inherit; font-style: inherit; list-style-image: none; margin: 0px; outline: 0px; padding: 0px 0px 3px;&quot;&gt;data[&lt;span class=&quot;cs__string&quot; style=&quot;border: 0px; color: teal; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;&quot;navigation&quot;&lt;/span&gt;]&amp;nbsp;=&amp;nbsp;Answer.SelectedValue&amp;nbsp;==&amp;nbsp;&lt;span class=&quot;cs__string&quot; style=&quot;border: 0px; color: teal; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;&quot;Yes&quot;&lt;/span&gt;&amp;nbsp;?&amp;nbsp;&lt;span class=&quot;cs__keyword&quot; style=&quot;border: 0px; color: navy; font-family: inherit; font-style: inherit; font-weight: bold; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;true&lt;/span&gt;&amp;nbsp;:&amp;nbsp;&lt;span class=&quot;cs__keyword&quot; style=&quot;border: 0px; color: navy; font-family: inherit; font-style: inherit; font-weight: bold; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;false&lt;/span&gt;;&lt;/li&gt;
&lt;li style=&quot;border: 0px; font-family: inherit; font-style: inherit; list-style-image: none; margin: 0px; outline: 0px; padding: 0px 0px 3px;&quot;&gt;StateController.Navigate(&lt;span class=&quot;cs__string&quot; style=&quot;border: 0px; color: teal; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;&quot;Next&quot;&lt;/span&gt;,&amp;nbsp;data);&lt;/li&gt;
&lt;/ol&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div style=&quot;background-color: white; border: 0px; color: #333333; font-family: &#39;Segoe UI&#39;, &#39;Lucida Grande&#39;, Verdana, Arial, Helvetica, sans-serif; font-size: 13px; line-height: 16px; margin-bottom: 12px; outline: 0px; padding: 0px; text-align: -webkit-auto;&quot;&gt;
You can see its data type is preserved when it’s retrieved from the Thanks state data:&lt;/div&gt;
&lt;div class=&quot;CodeHighlighter&quot; style=&quot;background-color: white; border: 0px; color: #333333; font-family: &#39;Segoe UI&#39;, &#39;Lucida Grande&#39;, Verdana, Arial, Helvetica, sans-serif; font-size: 13px; line-height: 16px; margin: 0px; outline: 0px; padding: 0px 0px 15px 15px; text-align: -webkit-auto; word-wrap: break-word;&quot;&gt;
&lt;pre style=&quot;border: 0px; font-family: inherit; font-style: inherit; outline: 0px; padding: 0px; white-space: pre-wrap;&quot;&gt;&lt;code class=&quot;csharp&quot; style=&quot;border: 0px; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;&lt;ol style=&quot;border: 0px; font-family: inherit; font-style: inherit; margin: 12px 0px 12px 18px; outline: 0px; padding: 0px;&quot;&gt;
&lt;li style=&quot;border: 0px; font-family: inherit; font-style: inherit; list-style-image: none; margin: 0px; outline: 0px; padding: 0px 0px 3px;&quot;&gt;Summary.Text&amp;nbsp;=&amp;nbsp;(&lt;span class=&quot;cs__keyword&quot; style=&quot;border: 0px; color: navy; font-family: inherit; font-style: inherit; font-weight: bold; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;string&lt;/span&gt;)&amp;nbsp;StateContext.Data[&lt;span class=&quot;cs__string&quot; style=&quot;border: 0px; color: teal; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;&quot;technology&quot;&lt;/span&gt;];&lt;/li&gt;
&lt;li style=&quot;border: 0px; font-family: inherit; font-style: inherit; list-style-image: none; margin: 0px; outline: 0px; padding: 0px 0px 3px;&quot;&gt;&lt;span class=&quot;cs__keyword&quot; style=&quot;border: 0px; color: navy; font-family: inherit; font-style: inherit; font-weight: bold; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;if&lt;/span&gt;&amp;nbsp;(StateContext.Data[&lt;span class=&quot;cs__string&quot; style=&quot;border: 0px; color: teal; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;&quot;navigation&quot;&lt;/span&gt;]&amp;nbsp;!=&amp;nbsp;&lt;span class=&quot;cs__keyword&quot; style=&quot;border: 0px; color: navy; font-family: inherit; font-style: inherit; font-weight: bold; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;null&lt;/span&gt;)&lt;/li&gt;
&lt;li style=&quot;border: 0px; font-family: inherit; font-style: inherit; list-style-image: none; margin: 0px; outline: 0px; padding: 0px 0px 3px;&quot;&gt;{&lt;/li&gt;
&lt;li style=&quot;border: 0px; font-family: inherit; font-style: inherit; list-style-image: none; margin: 0px; outline: 0px; padding: 0px 0px 3px;&quot;&gt;&amp;nbsp;&amp;nbsp;Summary.Text&amp;nbsp;+=&amp;nbsp;&lt;span class=&quot;cs__string&quot; style=&quot;border: 0px; color: teal; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;&quot;,&amp;nbsp;&quot;&lt;/span&gt;&amp;nbsp;+&amp;nbsp;(&lt;span class=&quot;cs__keyword&quot; style=&quot;border: 0px; color: navy; font-family: inherit; font-style: inherit; font-weight: bold; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;bool&lt;/span&gt;)&amp;nbsp;StateContext.Data[&lt;span class=&quot;cs__string&quot; style=&quot;border: 0px; color: teal; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;&quot;navigation&quot;&lt;/span&gt;];&lt;/li&gt;
&lt;li style=&quot;border: 0px; font-family: inherit; font-style: inherit; list-style-image: none; margin: 0px; outline: 0px; padding: 0px 0px 3px;&quot;&gt;}&lt;/li&gt;
&lt;/ol&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div style=&quot;background-color: white; border: 0px; color: #333333; font-family: &#39;Segoe UI&#39;, &#39;Lucida Grande&#39;, Verdana, Arial, Helvetica, sans-serif; font-size: 13px; line-height: 16px; margin-bottom: 12px; outline: 0px; padding: 0px; text-align: -webkit-auto;&quot;&gt;
The survey is complete, except for one problem: Answers to questions aren’t retained when using the back navigation hyperlinks. For example, when returning to Question1 from Thanks the context is lost, so the default “Web Forms” radio button is always selected regardless of the answer given.&lt;/div&gt;
&lt;div style=&quot;background-color: white; border: 0px; color: #333333; font-family: &#39;Segoe UI&#39;, &#39;Lucida Grande&#39;, Verdana, Arial, Helvetica, sans-serif; font-size: 13px; line-height: 16px; margin-bottom: 12px; outline: 0px; padding: 0px; text-align: -webkit-auto;&quot;&gt;
In the previous section you saw the benefit of back navigation over static site map breadcrumbs. Another limitation of the breadcrumbs generated by the site map is that they don’t carry any data. This means following them can lose contextual information. For example, they can’t pass the “MVC” answer previously selected when they return to Question1 from Thanks. The Navigation framework, by keeping track of the state data associated with the states visited as navigations occur, builds up a context-sensitive breadcrumb trail. During a back navigation this state data is restored, allowing the page to be recreated exactly as before.&lt;/div&gt;
&lt;div style=&quot;background-color: white; border: 0px; color: #333333; font-family: &#39;Segoe UI&#39;, &#39;Lucida Grande&#39;, Verdana, Arial, Helvetica, sans-serif; font-size: 13px; line-height: 16px; margin-bottom: 12px; outline: 0px; padding: 0px; text-align: -webkit-auto;&quot;&gt;
Armed with context-sensitive back navigation, I can change the survey so that answers are retained when revisiting states. The first stage is to set the answers into state data in the Next click handlers, prior to navigating away:&lt;/div&gt;
&lt;div class=&quot;CodeHighlighter&quot; style=&quot;background-color: white; border: 0px; color: #333333; font-family: &#39;Segoe UI&#39;, &#39;Lucida Grande&#39;, Verdana, Arial, Helvetica, sans-serif; font-size: 13px; line-height: 16px; margin: 0px; outline: 0px; padding: 0px 0px 15px 15px; text-align: -webkit-auto; word-wrap: break-word;&quot;&gt;
&lt;pre style=&quot;border: 0px; font-family: inherit; font-style: inherit; outline: 0px; padding: 0px; white-space: pre-wrap;&quot;&gt;&lt;code class=&quot;csharp&quot; style=&quot;border: 0px; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;&lt;ol style=&quot;border: 0px; font-family: inherit; font-style: inherit; margin: 12px 0px 12px 18px; outline: 0px; padding: 0px;&quot;&gt;
&lt;li style=&quot;border: 0px; font-family: inherit; font-style: inherit; list-style-image: none; margin: 0px; outline: 0px; padding: 0px 0px 3px;&quot;&gt;StateContext.Data[&lt;span class=&quot;cs__string&quot; style=&quot;border: 0px; color: teal; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;&quot;answer&quot;&lt;/span&gt;]&amp;nbsp;=&amp;nbsp;Answer.SelectedValue;&lt;/li&gt;
&lt;/ol&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div style=&quot;background-color: white; border: 0px; color: #333333; font-family: &#39;Segoe UI&#39;, &#39;Lucida Grande&#39;, Verdana, Arial, Helvetica, sans-serif; font-size: 13px; line-height: 16px; margin-bottom: 12px; outline: 0px; padding: 0px; text-align: -webkit-auto;&quot;&gt;
Now, when Question1 or Question2 are revisited, the state data will contain the answer previously selected. It’s then a simple matter to retrieve this answer in the Page_Load method and preselect the relevant radio button:&lt;/div&gt;
&lt;div class=&quot;CodeHighlighter&quot; style=&quot;background-color: white; border: 0px; color: #333333; font-family: &#39;Segoe UI&#39;, &#39;Lucida Grande&#39;, Verdana, Arial, Helvetica, sans-serif; font-size: 13px; line-height: 16px; margin: 0px; outline: 0px; padding: 0px 0px 15px 15px; text-align: -webkit-auto; word-wrap: break-word;&quot;&gt;
&lt;pre style=&quot;border: 0px; font-family: inherit; font-style: inherit; outline: 0px; padding: 0px; white-space: pre-wrap;&quot;&gt;&lt;code class=&quot;csharp&quot; style=&quot;border: 0px; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;&lt;ol style=&quot;border: 0px; font-family: inherit; font-style: inherit; margin: 12px 0px 12px 18px; outline: 0px; padding: 0px;&quot;&gt;
&lt;li style=&quot;border: 0px; font-family: inherit; font-style: inherit; list-style-image: none; margin: 0px; outline: 0px; padding: 0px 0px 3px;&quot;&gt;&lt;span class=&quot;cs__keyword&quot; style=&quot;border: 0px; color: navy; font-family: inherit; font-style: inherit; font-weight: bold; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;protected&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;cs__keyword&quot; style=&quot;border: 0px; color: navy; font-family: inherit; font-style: inherit; font-weight: bold; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;void&lt;/span&gt;&amp;nbsp;Page_Load(&lt;span class=&quot;cs__keyword&quot; style=&quot;border: 0px; color: navy; font-family: inherit; font-style: inherit; font-weight: bold; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;object&lt;/span&gt;&amp;nbsp;sender,&amp;nbsp;EventArgs&amp;nbsp;e)&lt;/li&gt;
&lt;li style=&quot;border: 0px; font-family: inherit; font-style: inherit; list-style-image: none; margin: 0px; outline: 0px; padding: 0px 0px 3px;&quot;&gt;{&lt;/li&gt;
&lt;li style=&quot;border: 0px; font-family: inherit; font-style: inherit; list-style-image: none; margin: 0px; outline: 0px; padding: 0px 0px 3px;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;cs__keyword&quot; style=&quot;border: 0px; color: navy; font-family: inherit; font-style: inherit; font-weight: bold; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;if&lt;/span&gt;&amp;nbsp;(!Page.IsPostBack)&lt;/li&gt;
&lt;li style=&quot;border: 0px; font-family: inherit; font-style: inherit; list-style-image: none; margin: 0px; outline: 0px; padding: 0px 0px 3px;&quot;&gt;&amp;nbsp;&amp;nbsp;{&lt;/li&gt;
&lt;li style=&quot;border: 0px; font-family: inherit; font-style: inherit; list-style-image: none; margin: 0px; outline: 0px; padding: 0px 0px 3px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;cs__keyword&quot; style=&quot;border: 0px; color: navy; font-family: inherit; font-style: inherit; font-weight: bold; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;if&lt;/span&gt;&amp;nbsp;(StateContext.Data[&lt;span class=&quot;cs__string&quot; style=&quot;border: 0px; color: teal; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;&quot;answer&quot;&lt;/span&gt;]&amp;nbsp;!=&amp;nbsp;&lt;span class=&quot;cs__keyword&quot; style=&quot;border: 0px; color: navy; font-family: inherit; font-style: inherit; font-weight: bold; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;null&lt;/span&gt;)&lt;/li&gt;
&lt;li style=&quot;border: 0px; font-family: inherit; font-style: inherit; list-style-image: none; margin: 0px; outline: 0px; padding: 0px 0px 3px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;/li&gt;
&lt;li style=&quot;border: 0px; font-family: inherit; font-style: inherit; list-style-image: none; margin: 0px; outline: 0px; padding: 0px 0px 3px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Answer.SelectedValue&amp;nbsp;=&amp;nbsp;&lt;/li&gt;
&lt;li style=&quot;border: 0px; font-family: inherit; font-style: inherit; list-style-image: none; margin: 0px; outline: 0px; padding: 0px 0px 3px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;(&lt;span class=&quot;cs__keyword&quot; style=&quot;border: 0px; color: navy; font-family: inherit; font-style: inherit; font-weight: bold; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;string&lt;/span&gt;)StateContext.Data[&lt;span class=&quot;cs__string&quot; style=&quot;border: 0px; color: teal; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;&quot;answer&quot;&lt;/span&gt;];&lt;/li&gt;
&lt;li style=&quot;border: 0px; font-family: inherit; font-style: inherit; list-style-image: none; margin: 0px; outline: 0px; padding: 0px 0px 3px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/li&gt;
&lt;li style=&quot;border: 0px; font-family: inherit; font-style: inherit; list-style-image: none; margin: 0px; outline: 0px; padding: 0px 0px 3px;&quot;&gt;&amp;nbsp;&amp;nbsp;}&lt;/li&gt;
&lt;li style=&quot;border: 0px; font-family: inherit; font-style: inherit; list-style-image: none; margin: 0px; outline: 0px; padding: 0px 0px 3px;&quot;&gt;}&lt;/li&gt;
&lt;/ol&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div style=&quot;background-color: white; border: 0px; color: #333333; font-family: &#39;Segoe UI&#39;, &#39;Lucida Grande&#39;, Verdana, Arial, Helvetica, sans-serif; font-size: 13px; line-height: 16px; margin-bottom: 12px; outline: 0px; padding: 0px; text-align: -webkit-auto;&quot;&gt;
The survey, now complete, isn’t susceptible to the errors commonly encountered in Web applications when users press the browser back button (or have multiple browser windows open). Such problems typically arise when page-specific data is persisted in a server-side session. Although there’s only one session object, there can be multiple “current” versions of a single page. For example, using the back button to retrieve a “stale” version of a page from the browser cache might cause the client and server to be out of sync. The Navigation framework faces no such issues because it doesn’t have any server-side cache. Instead, the state, state data and breadcrumb trail are all held in the URL. This does mean, however, that a user can change these values by editing the URL.&lt;/div&gt;
&lt;h2 style=&quot;background-color: white; border: 0px; clear: both; color: #260859; font-family: &#39;Segoe UI Semibold&#39;, &#39;Segoe UI&#39;, &#39;Lucida Grande&#39;, Verdana, Arial, Helvetica, sans-serif; font-size: 16px; line-height: 20px; margin: 3px 0px 4px; outline: 0px; padding: 0px 0px 7px; text-align: -webkit-auto;&quot;&gt;
Making MVC Jealous&lt;/h2&gt;
&lt;div style=&quot;background-color: white; border: 0px; color: #333333; font-family: &#39;Segoe UI&#39;, &#39;Lucida Grande&#39;, Verdana, Arial, Helvetica, sans-serif; font-size: 13px; line-height: 16px; margin-bottom: 12px; outline: 0px; padding: 0px; text-align: -webkit-auto;&quot;&gt;
Earlier I stated that the Navigation framework lets you create Web Forms code to make MVC jealous. After such a bold claim you might be feeling a bit short-changed by the survey sample application, because it probably has MVC holding its nose to avoid the unsavory whiff of codebehind about it. But please don’t despair; this was merely an introduction to the core concepts. Future articles will focus on architectural integrity, with particular attention paid to unit testing and DRY principles.&lt;/div&gt;
&lt;div style=&quot;background-color: white; border: 0px; color: #333333; font-family: &#39;Segoe UI&#39;, &#39;Lucida Grande&#39;, Verdana, Arial, Helvetica, sans-serif; font-size: 13px; line-height: 16px; margin-bottom: 12px; outline: 0px; padding: 0px; text-align: -webkit-auto;&quot;&gt;
In the second installment I’ll build a data-bound sample with empty codebehinds and complete unit test code coverage. This coverage will even include the navigational code, notoriously difficult to test in an MVC application.&lt;/div&gt;
&lt;div style=&quot;background-color: white; border: 0px; color: #333333; font-family: &#39;Segoe UI&#39;, &#39;Lucida Grande&#39;, Verdana, Arial, Helvetica, sans-serif; font-size: 13px; line-height: 16px; margin-bottom: 12px; outline: 0px; padding: 0px; text-align: -webkit-auto;&quot;&gt;
In the third installment I’ll build an SEO-friendly single-page application. It’ll use progressive enhancement, employing ASP.NET AJAX when JavaScript is enabled and degrading gracefully when it’s disabled, with the same data-bound methods used in both scenarios. Again, this is tricky to achieve in an MVC application.&lt;/div&gt;
&lt;div style=&quot;background-color: white; border: 0px; color: #333333; font-family: &#39;Segoe UI&#39;, &#39;Lucida Grande&#39;, Verdana, Arial, Helvetica, sans-serif; font-size: 13px; line-height: 16px; margin-bottom: 12px; outline: 0px; padding: 0px; text-align: -webkit-auto;&quot;&gt;
If this whets your appetite and you can’t wait to try out some of the more advanced functionality, be sure to download the comprehensive feature documentation and sample code from&amp;nbsp;&lt;a href=&quot;http://navigation.codeplex.com/&quot; id=&quot;ctl00_MTContentSelector1_mainContentContainer_ctl22&quot; style=&quot;border: 0px; color: #0066dd; cursor: pointer; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px; text-decoration: none;&quot;&gt;navigation.codeplex.com&lt;/a&gt;.&lt;/div&gt;
&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sandeepbs404.blogspot.com/feeds/8007643149289310776/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sandeepbs404.blogspot.com/2012/06/navigation-for-aspnet-web-forms.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1725135844323517190/posts/default/8007643149289310776'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1725135844323517190/posts/default/8007643149289310776'/><link rel='alternate' type='text/html' href='http://sandeepbs404.blogspot.com/2012/06/navigation-for-aspnet-web-forms.html' title='Navigation for ASP.NET Web Forms Framework'/><author><name>sanju</name><uri>http://www.blogger.com/profile/05489844376913890016</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry></feed>