<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-8777320242835817445</id><updated>2011-11-27T15:24:21.864-08:00</updated><title type='text'>Jeffery (Mingqiu) Chi</title><subtitle type='html'>Keep up with the good work mate ... per angusta ad augusta ...</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://jefferychinet.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://jefferychinet.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default?start-index=101&amp;max-results=100'/><author><name>Jeffery Chi</name><uri>http://www.blogger.com/profile/01777274222273910460</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_0awGwIWdbAQ/SrWo52s_aPI/AAAAAAAAAe0/sz5rSKavJMs/S220/airforcewing.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>275</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-8777320242835817445.post-755803367962514881</id><published>2011-01-18T12:03:00.001-08:00</published><updated>2011-01-18T12:03:51.742-08:00</updated><title type='text'>C#: Calculate Age in Years, Month and Days</title><content type='html'>C#: Calculate Age in Years, Month and Days&lt;br /&gt;&lt;br /&gt;http://www.raasukutty.com/blog/programming/c-calculate-age-in-years-month-and-days.html&lt;br /&gt;&lt;br /&gt;All credits belong to the original author...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8777320242835817445-755803367962514881?l=jefferychinet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jefferychinet.blogspot.com/feeds/755803367962514881/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jefferychinet.blogspot.com/2011/01/c-calculate-age-in-years-month-and-days.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/755803367962514881'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/755803367962514881'/><link rel='alternate' type='text/html' href='http://jefferychinet.blogspot.com/2011/01/c-calculate-age-in-years-month-and-days.html' title='C#: Calculate Age in Years, Month and Days'/><author><name>Jeffery Chi</name><uri>http://www.blogger.com/profile/01777274222273910460</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_0awGwIWdbAQ/SrWo52s_aPI/AAAAAAAAAe0/sz5rSKavJMs/S220/airforcewing.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8777320242835817445.post-5506473692416383935</id><published>2010-12-22T19:33:00.001-08:00</published><updated>2010-12-22T19:34:21.099-08:00</updated><title type='text'>Unit Testing Entity Framework 4 - Test Add Object</title><content type='html'>&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;&lt;br /&gt;&lt;div class="csharpcode"&gt;&lt;br /&gt;&lt;pre class="alt"&gt;  [TestMethod]&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; ShouldSaveMemberNote()&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;        {&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;            &lt;span class="kwrd"&gt;using&lt;/span&gt;(var memberDataRepository = &lt;span class="kwrd"&gt;new&lt;/span&gt; MemberDataRepository(mockUnitOfWork.Object))&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;            {&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;                &lt;span class="kwrd"&gt;const&lt;/span&gt; &lt;span class="kwrd"&gt;int&lt;/span&gt; memberId = 1;&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;                &lt;span class="kwrd"&gt;const&lt;/span&gt; &lt;span class="kwrd"&gt;int&lt;/span&gt; noteCategoryLookupId = 1;&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;                memberDataRepository.SaveMemberNote(memberId, noteCategoryLookupId, &lt;span class="str"&gt;@"Some Random Texts"&lt;/span&gt;);&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;            }&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;&amp;nbsp;&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;            mockUnitOfWork.Verify(work =&amp;gt; work.AddObject(&lt;span class="str"&gt;"MemberNotes"&lt;/span&gt;, It.IsAny&amp;lt;MemberNote&amp;gt;()));&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;            mockUnitOfWork.Verify(work =&amp;gt; work.SaveChanges());&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;        }&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8777320242835817445-5506473692416383935?l=jefferychinet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jefferychinet.blogspot.com/feeds/5506473692416383935/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jefferychinet.blogspot.com/2010/12/unit-testing.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/5506473692416383935'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/5506473692416383935'/><link rel='alternate' type='text/html' href='http://jefferychinet.blogspot.com/2010/12/unit-testing.html' title='Unit Testing Entity Framework 4 - Test Add Object'/><author><name>Jeffery Chi</name><uri>http://www.blogger.com/profile/01777274222273910460</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_0awGwIWdbAQ/SrWo52s_aPI/AAAAAAAAAe0/sz5rSKavJMs/S220/airforcewing.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8777320242835817445.post-1516164441466259478</id><published>2010-12-22T14:09:00.000-08:00</published><updated>2010-12-22T14:10:40.982-08:00</updated><title type='text'>Resharper</title><content type='html'>&lt;a href="http://www.jetbrains.com/resharper/documentation/help20/OtherEdit/showParams.html"&gt;http://www.jetbrains.com/resharper/documentation/help20/OtherEdit/showParams.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8777320242835817445-1516164441466259478?l=jefferychinet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jefferychinet.blogspot.com/feeds/1516164441466259478/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jefferychinet.blogspot.com/2010/12/resharper.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/1516164441466259478'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/1516164441466259478'/><link rel='alternate' type='text/html' href='http://jefferychinet.blogspot.com/2010/12/resharper.html' title='Resharper'/><author><name>Jeffery Chi</name><uri>http://www.blogger.com/profile/01777274222273910460</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_0awGwIWdbAQ/SrWo52s_aPI/AAAAAAAAAe0/sz5rSKavJMs/S220/airforcewing.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8777320242835817445.post-891424664984793794</id><published>2010-12-18T03:26:00.000-08:00</published><updated>2010-12-18T03:30:40.046-08:00</updated><title type='text'>C# + Multithreading returns value</title><content type='html'>&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;&lt;br /&gt;&lt;div class="csharpcode"&gt;&lt;br /&gt;&lt;pre class="alt"&gt;&amp;nbsp;&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;  [HandleError]&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;    &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;class&lt;/span&gt; HomeController : Controller&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;    {&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;        &lt;span class="kwrd"&gt;private&lt;/span&gt; Stream streamTesting = &lt;span class="kwrd"&gt;null&lt;/span&gt;;&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; StreamResultCallBack(Stream s)&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;        {&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;            streamTesting = s;&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;        }&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;&amp;nbsp;&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; FileStreamResult GeneratePdfReport()&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;        {&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;            var g = &lt;span class="kwrd"&gt;new&lt;/span&gt; GenerateReport(_callback: &lt;span class="kwrd"&gt;new&lt;/span&gt; StreamResultDelegate(StreamResultCallBack));&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;            var t = &lt;span class="kwrd"&gt;new&lt;/span&gt; Thread(&lt;span class="kwrd"&gt;new&lt;/span&gt; ThreadStart(g.ThreadProc));&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;            t.Start();&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;            t.Join();&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;&amp;nbsp;&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;            HttpContext.Response.AddHeader(&lt;span class="str"&gt;"content-disposition"&lt;/span&gt;, &lt;span class="str"&gt;"attachment; filename=Rockets_List_Printout.pdf"&lt;/span&gt;);&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;            &lt;span class="kwrd"&gt;return&lt;/span&gt; &lt;span class="kwrd"&gt;new&lt;/span&gt; FileStreamResult(streamTesting, &lt;span class="str"&gt;"application/pdf"&lt;/span&gt;);&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;        }&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;    }&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;&lt;br /&gt;&lt;div class="csharpcode"&gt;&lt;br /&gt;&lt;pre class="alt"&gt; &lt;span class="preproc"&gt;#region&lt;/span&gt; &lt;span class="str"&gt;"Report related multi-thread applications"&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;&amp;nbsp;&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;    &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;delegate&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; StreamResultDelegate(Stream streamResults);&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;&amp;nbsp;&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;    &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;class&lt;/span&gt; GenerateReport&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;    {&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;        &lt;span class="kwrd"&gt;private&lt;/span&gt; StreamResultDelegate callback;&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;&amp;nbsp;&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; GenerateReport(StreamResultDelegate _callback)&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;        {&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;            callback = _callback;&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;        }&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;&amp;nbsp;&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; ThreadProc()&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;        {&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;            &lt;span class="kwrd"&gt;if&lt;/span&gt; (callback != &lt;span class="kwrd"&gt;null&lt;/span&gt;)&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;            {&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;                callback(Testing());&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;            }&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;        }&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;&amp;nbsp;&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; Stream Testing()&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;        {&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;            var reportsService = &lt;span class="kwrd"&gt;new&lt;/span&gt; ReportsService();&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;            var nameValueCollection = &lt;span class="kwrd"&gt;new&lt;/span&gt; NameValueCollection();&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;            &lt;span class="kwrd"&gt;byte&lt;/span&gt;[] pdfReportContents = reportsService.GetReport(&lt;span class="str"&gt;"/Rocket.Reports/RocketReport"&lt;/span&gt;, nameValueCollection);&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;            var stream = &lt;span class="kwrd"&gt;new&lt;/span&gt; MemoryStream(pdfReportContents);&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;            &lt;span class="kwrd"&gt;return&lt;/span&gt; stream;&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;        }&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;    }&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;    &lt;span class="preproc"&gt;#endregion&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8777320242835817445-891424664984793794?l=jefferychinet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jefferychinet.blogspot.com/feeds/891424664984793794/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jefferychinet.blogspot.com/2010/12/c-multithreading-returns-value.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/891424664984793794'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/891424664984793794'/><link rel='alternate' type='text/html' href='http://jefferychinet.blogspot.com/2010/12/c-multithreading-returns-value.html' title='C# + Multithreading returns value'/><author><name>Jeffery Chi</name><uri>http://www.blogger.com/profile/01777274222273910460</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_0awGwIWdbAQ/SrWo52s_aPI/AAAAAAAAAe0/sz5rSKavJMs/S220/airforcewing.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8777320242835817445.post-1719894315748161607</id><published>2010-11-09T22:35:00.000-08:00</published><updated>2010-12-13T20:27:09.585-08:00</updated><title type='text'>Professional Portfolio</title><content type='html'>(GSFA - New Zealand Government)&lt;br /&gt;&lt;br /&gt;&lt;a href="http://jefferychinet.blogspot.com/2010/11/government-superannuation-fund.html"&gt;http://jefferychinet.blogspot.com/2010/11/government-superannuation-fund.html&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.stuff.co.nz/dominion-post/news/4454435/Scrutinise-MPs-super-too-say-Greens"&gt;http://www.stuff.co.nz/dominion-post/news/4454435/Scrutinise-MPs-super-too-say-Greens&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;(ANZ/National Bank - Forward Loading Tool)&lt;br /&gt;&lt;br /&gt;&lt;a href="http://jefferychinet.blogspot.com/2010/07/anz-bank-new-zealand-forward-load-tool.html"&gt;http://jefferychinet.blogspot.com/2010/07/anz-bank-new-zealand-forward-load-tool.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;(ANZ/National Bank - Personal Loan Form)&lt;br /&gt;&lt;br /&gt;&lt;a href="http://jefferychinet.blogspot.com/2010/07/anz-bank-new-zealand-projects.html"&gt;http://jefferychinet.blogspot.com/2010/07/anz-bank-new-zealand-projects.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;(MS Open XML Developer)&lt;br /&gt;&lt;br /&gt;&lt;a href="http://jefferychinet.blogspot.com/2010/03/microsoft-us-open-xml-developer.html"&gt;http://jefferychinet.blogspot.com/2010/03/microsoft-us-open-xml-developer.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;(SharePoint WSS)&lt;br /&gt;&lt;br /&gt;&lt;a href="http://jefferychinet.blogspot.com/2010/03/my-first-sharepoint-internet-site.html"&gt;http://jefferychinet.blogspot.com/2010/03/my-first-sharepoint-internet-site.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;(Greymouth District Council - New Zealand Government)&lt;br /&gt;&lt;br /&gt;&lt;a href="http://jefferychinet.blogspot.com/2010/03/greymouth-district-council-website-sign.html"&gt;http://jefferychinet.blogspot.com/2010/03/greymouth-district-council-website-sign.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;(Factor.co.nz Debtor Management System )&lt;br /&gt;&lt;br /&gt;&lt;a href="http://jefferychinet.blogspot.com/2010/03/httpwwwfactorconz-debtor-management.html"&gt;http://jefferychinet.blogspot.com/2010/03/httpwwwfactorconz-debtor-management.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;(Otorohanga District Council - New Zealand Government)&lt;br /&gt;&lt;br /&gt;&lt;a href="http://jefferychinet.blogspot.com/2010/02/otorohanga-district-council-web-site.html"&gt;http://jefferychinet.blogspot.com/2010/02/otorohanga-district-council-web-site.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;(Department of Correction - New Zealand Government)&lt;br /&gt;&lt;br /&gt;&lt;a href="http://jefferychinet.blogspot.com/2009/10/nz-department-of-correction-project.html"&gt;http://jefferychinet.blogspot.com/2009/10/nz-department-of-correction-project.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;(Pharmacy Council - New Zealand Governemnt)&lt;br /&gt;&lt;br /&gt;&lt;a href="http://jefferychinet.blogspot.com/2009/09/pharmacy-council-new-zealand-members.html"&gt;http://jefferychinet.blogspot.com/2009/09/pharmacy-council-new-zealand-members.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;(Pharmacy Society - New Zealand Governemnt)&lt;br /&gt;&lt;br /&gt;(Tributes.co.nz - Online Video Conversion and Broadcasting)&lt;br /&gt;&lt;br /&gt;&lt;a href="http://jefferychinet.blogspot.com/2009/09/tributesconz-sothink-online-video.html"&gt;http://jefferychinet.blogspot.com/2009/09/tributesconz-sothink-online-video.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8777320242835817445-1719894315748161607?l=jefferychinet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jefferychinet.blogspot.com/feeds/1719894315748161607/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jefferychinet.blogspot.com/2010/11/professional-portfolio.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/1719894315748161607'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/1719894315748161607'/><link rel='alternate' type='text/html' href='http://jefferychinet.blogspot.com/2010/11/professional-portfolio.html' title='Professional Portfolio'/><author><name>Jeffery Chi</name><uri>http://www.blogger.com/profile/01777274222273910460</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_0awGwIWdbAQ/SrWo52s_aPI/AAAAAAAAAe0/sz5rSKavJMs/S220/airforcewing.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8777320242835817445.post-2217374454996438737</id><published>2010-11-09T22:32:00.001-08:00</published><updated>2010-11-09T22:35:21.204-08:00</updated><title type='text'>Government Superannuation Fund Authority (ASP.NET MVC)</title><content type='html'>&lt;a href="http://4.bp.blogspot.com/_0awGwIWdbAQ/TNo8pnWVBbI/AAAAAAAAApQ/mV0oyDppFrs/s1600/logo-d60.jpg"&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 285px; DISPLAY: block; HEIGHT: 84px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5537805377440384434" border="0" alt="" src="http://4.bp.blogspot.com/_0awGwIWdbAQ/TNo8pnWVBbI/AAAAAAAAApQ/mV0oyDppFrs/s400/logo-d60.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;The Government Superannuation Fund Authority is an autonomous Crown Entity, established in October 2001. Its functions are to manage and administer the Government Superannuation Fund (“GSF” or the “Fund”) and the GSF Schemes in accordance with the &lt;a href="http://www.gsfa.govt.nz/content/86310c3a-8ff3-453e-826a-51e32c7c6272.html#legislation"&gt;Government Superannuation Fund Act 1956 &lt;/a&gt;and subsequent amendments (“the GSF Act”).&lt;br /&gt;&lt;br /&gt;Project is built using ASP.NET MVC 2 with MS SQL SERVER 2008, report server 2008.&lt;/div&gt;&lt;br /&gt;&lt;div&gt;Unit Testing Moq&lt;/div&gt;&lt;div&gt;Entity Framework 4&lt;/div&gt;&lt;div&gt;The Unity Application Block (Unity) is a lightweight extensible dependency injection&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8777320242835817445-2217374454996438737?l=jefferychinet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jefferychinet.blogspot.com/feeds/2217374454996438737/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jefferychinet.blogspot.com/2010/11/government-superannuation-fund.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/2217374454996438737'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/2217374454996438737'/><link rel='alternate' type='text/html' href='http://jefferychinet.blogspot.com/2010/11/government-superannuation-fund.html' title='Government Superannuation Fund Authority (ASP.NET MVC)'/><author><name>Jeffery Chi</name><uri>http://www.blogger.com/profile/01777274222273910460</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_0awGwIWdbAQ/SrWo52s_aPI/AAAAAAAAAe0/sz5rSKavJMs/S220/airforcewing.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_0awGwIWdbAQ/TNo8pnWVBbI/AAAAAAAAApQ/mV0oyDppFrs/s72-c/logo-d60.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8777320242835817445.post-908342321341145345</id><published>2010-09-25T21:20:00.001-07:00</published><updated>2010-09-25T21:42:12.379-07:00</updated><title type='text'>MS Exam 70433 Chapter 1 Data Retrieval - Lesson 3 : Implementing Aggregate Queries</title><content type='html'>Lesson 3 : Imp re&lt;br /&gt;Objectives :&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;p&gt;1. Describe the purpose of the aggregate functions available&lt;br /&gt;2. Group aggregate data by using the GROUP BY statement&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Working with Aggregate functions, aggregate functions perform calculations on a set of data and return a scalar (single) value.&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;AVG&lt;/strong&gt; Returns the average of all values in the data set&lt;/li&gt;&lt;li&gt;&lt;strong&gt;CHECKSUM_AGG&lt;/strong&gt; Returns the checksum of all values in the data set&lt;/li&gt;&lt;li&gt;&lt;strong&gt;COUNT&lt;/strong&gt; Returns the number of values contained in the data set. COUNT (*) returns the number of rows in the set.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;COUNT_BIG&lt;/strong&gt; Works the same as COUNT, but it returns the bigint data type, while COUNT returns only the int data type.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;GROUPING&lt;/strong&gt; Returns 1 or 0 and identifies rows as aggregate or detail rows when the GROUP By statement is used. &lt;/li&gt;&lt;li&gt;&lt;strong&gt;MAX&lt;/strong&gt; Returns the highest value in the data set for numeric, data, and character-based fields.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;MIN&lt;/strong&gt; Returns the lowest value in the data set for numeric, data, and character-based fields.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;SUM&lt;/strong&gt; Returns the total of the values in the data set. You can specify ALL or DISTINCT to produce either the sum of all values or only distinct values in the data set.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;STDEV&lt;/strong&gt; Returns the statistical standard deviation of the values in the data set.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;STDEVP&lt;/strong&gt; Returns the statistical standard deviation for the population of the values in the data set.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;VAR&lt;/strong&gt; Returns the statistical variance of the values in the data set.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;VARP&lt;/strong&gt; Returns the statistical variance for the population of the values in the data set.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8777320242835817445-908342321341145345?l=jefferychinet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jefferychinet.blogspot.com/feeds/908342321341145345/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jefferychinet.blogspot.com/2010/09/ms-exam-70433-chapter-1-data-retrieval_25.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/908342321341145345'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/908342321341145345'/><link rel='alternate' type='text/html' href='http://jefferychinet.blogspot.com/2010/09/ms-exam-70433-chapter-1-data-retrieval_25.html' title='MS Exam 70433 Chapter 1 Data Retrieval - Lesson 3 : Implementing Aggregate Queries'/><author><name>Jeffery Chi</name><uri>http://www.blogger.com/profile/01777274222273910460</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_0awGwIWdbAQ/SrWo52s_aPI/AAAAAAAAAe0/sz5rSKavJMs/S220/airforcewing.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8777320242835817445.post-8391402828401464359</id><published>2010-09-18T23:22:00.000-07:00</published><updated>2010-09-25T21:17:41.500-07:00</updated><title type='text'>MS Exam 70433 Chapter 1 Data Retrieval - Lesson 2 : Joining Related Tables</title><content type='html'>Normalized databases :&lt;br /&gt;&lt;br /&gt;-&gt;Using INNER, OUTER, FULL and CROSS JOIN&lt;br /&gt;-&gt;Difference between different JOIN operators&lt;br /&gt;&lt;br /&gt;The join operator allows you to return data from columns stored in multiple related tables. Although actual relatinships,&lt;span style="color:#ff0000;"&gt; implemented by creating PRIMARY KEY and FOREIGN KEY constraints, are not required&lt;/span&gt;, there does need to be at least one column in each of the tables that has the same meaning to enable the join query.&lt;br /&gt;&lt;br /&gt;If a column with the&lt;span style="color:#ff0000;"&gt; same column name exists in more than one table in the query&lt;/span&gt;, you must &lt;span style="color:#ff0000;"&gt;qualify the column with the table name&lt;/span&gt; when defining the select list of listing columns in the WHERE clause or other clauses within the SELECT statement.&lt;br /&gt;&lt;br /&gt;You can use &lt;span style="color:#ff0000;"&gt;table aliases&lt;/span&gt; to avoid lengthy code caused by long schema and object names.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="csharpcode"&gt;&lt;br /&gt;&lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;select&lt;/span&gt; firstname, lastname, jobtitle, vacationhours, sickleavehours &lt;span class="kwrd"&gt;from&lt;/span&gt; humanresources.employee e &lt;span class="kwrd"&gt;inner&lt;/span&gt; &lt;span class="kwrd"&gt;join&lt;/span&gt; person.person p &lt;span class="kwrd"&gt;on&lt;/span&gt; e.businessentityid = p.businessentityid&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Defining Inner Joins&lt;/strong&gt;&lt;br /&gt;Inner joins return only the rows that match in the join condition. Although an inner join can be specified in either the FROM or the WHERE clause, it is recommended to specify the JOIN in the FROM clause. All samples and practices in this book follow this recommendation.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Defining Outer Joins&lt;/strong&gt;&lt;br /&gt;An outer join can be used to return all rows from one table and only information from rows that are in common from the other table, or it can return all rows from all tables in the JOIN clause.&lt;br /&gt;&lt;blockquote&gt;&lt;p&gt;A FULL OUTER JOIN is neither "left" nor "right"— it's both! It includes all the rows from both of the tables or result sets participating in the JOIN. When no matching rows exist for rows on the "left" side of the JOIN, you see Null values from the result set on the "right." Conversely, when no matching rows exist for rows on the "right" side of the JOIN, you see Null values from the result set on the "left."&lt;br /&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;strong&gt;Defining Cross Joins&lt;/strong&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;p&gt;Most of the time, we do not want a Cartesian join, and we end up with one because we failed to provide a filter on the join. If we actually want a Cartesian join, then we should use the ANSI cross join to tell others reading the script that we actually wanted a Cartesian join.&lt;/p&gt;&lt;p&gt;One reason to use a Cartesian join is to generate a large amount of rows to use for testing. I can take a large table and cross join it to another large table and produce a very large results set. &lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;strong&gt;Working with More Than Two Tables&lt;/strong&gt;&lt;br /&gt;A general performance recommendation is to try and avoid JOIN operations that include more than four or five tables.&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;p&gt;CAUTION: Working with more than two tables. You need to be especially careful to verify result sets when working with the&lt;span style="color:#ff0000;"&gt; OUTER JOIN operator within more than two tables involved&lt;/span&gt;. &lt;span style="color:#ff0000;"&gt;The Database Engine builds temporary result sets from the first JOIN operation, and then uses that result set for the next JOIN operation.&lt;/span&gt; Depending on the &lt;span style="color:#ff0000;"&gt;order defined and the operators specified&lt;/span&gt;, you may get &lt;span style="color:#ff0000;"&gt;different &lt;/span&gt;results.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;br /&gt;Defining a Self - Join&lt;br /&gt;1) When your database includes a self-referencing table. (common table expression (CTE))&lt;br /&gt;&lt;br /&gt;&lt;div class="csharpcode"&gt;&lt;br /&gt;&lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;select&lt;/span&gt; e.firstname + &lt;span class="str"&gt;''&lt;/span&gt; + e.lastname &lt;span class="kwrd"&gt;as&lt;/span&gt; &lt;span class="str"&gt;'employee name'&lt;/span&gt;, ds.firstname + &lt;span class="str"&gt;''&lt;/span&gt; + ds.lastname &lt;span class="kwrd"&gt;as&lt;/span&gt; &lt;span class="str"&gt;'direct supervisor'&lt;/span&gt; &lt;span class="kwrd"&gt;from&lt;/span&gt; dimemployee e &lt;span class="kwrd"&gt;inner&lt;/span&gt; &lt;span class="kwrd"&gt;join&lt;/span&gt; dimemployee ds &lt;span class="kwrd"&gt;on&lt;/span&gt; e.parentemployeekey = ds.employeekey;&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;2)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;PRACTICE :&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="csharpcode"&gt;&lt;br /&gt;&lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;use&lt;/span&gt; testing&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;&lt;span class="kwrd"&gt;select&lt;/span&gt; tblA.PKROWID, ROWDETAILS &lt;span class="kwrd"&gt;as&lt;/span&gt; &lt;span class="str"&gt;'details'&lt;/span&gt; &lt;span class="kwrd"&gt;from&lt;/span&gt; tbla &lt;span class="kwrd"&gt;where&lt;/span&gt; rowdetails &lt;span class="kwrd"&gt;like&lt;/span&gt; &lt;span class="str"&gt;'%two%'&lt;/span&gt; &lt;span class="kwrd"&gt;order&lt;/span&gt; &lt;span class="kwrd"&gt;by&lt;/span&gt; [details]&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="csharpcode"&gt;&lt;br /&gt;&lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;select&lt;/span&gt; * &lt;span class="kwrd"&gt;from&lt;/span&gt; HumanResources.Employee &lt;span class="kwrd"&gt;as&lt;/span&gt; e &lt;span class="kwrd"&gt;JOIN&lt;/span&gt; HumanResources.Employee &lt;span class="kwrd"&gt;as&lt;/span&gt; em &lt;span class="kwrd"&gt;ON&lt;/span&gt; e.EmployeeID = em.ManagerID &lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Lesson Summary :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;The JOIN clause allows you to retrieve columns from related tables and group the results into a single result set.&lt;/li&gt;&lt;li&gt;JOIN type include INNER, LEFT OUTER, RIGHT OUTER, FULL OUTER, and CROSS&lt;/li&gt;&lt;li&gt;JOIN operators can combine more than two tables&lt;/li&gt;&lt;li&gt;A table can be joined to itself by defining different aliases for each reference to the table&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8777320242835817445-8391402828401464359?l=jefferychinet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jefferychinet.blogspot.com/feeds/8391402828401464359/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jefferychinet.blogspot.com/2010/09/ms-exam-70433-chapter-1-data-retrieval.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/8391402828401464359'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/8391402828401464359'/><link rel='alternate' type='text/html' href='http://jefferychinet.blogspot.com/2010/09/ms-exam-70433-chapter-1-data-retrieval.html' title='MS Exam 70433 Chapter 1 Data Retrieval - Lesson 2 : Joining Related Tables'/><author><name>Jeffery Chi</name><uri>http://www.blogger.com/profile/01777274222273910460</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_0awGwIWdbAQ/SrWo52s_aPI/AAAAAAAAAe0/sz5rSKavJMs/S220/airforcewing.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8777320242835817445.post-8103681855440096387</id><published>2010-09-16T14:53:00.001-07:00</published><updated>2010-09-25T21:18:29.876-07:00</updated><title type='text'>MS SQL SERVER RELATED ARTICLES</title><content type='html'>&lt;a href="http://4.bp.blogspot.com/_0awGwIWdbAQ/TJKZ7IGXLHI/AAAAAAAAAlA/atnVVwmKBKw/s1600/images.jpg"&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 200px; DISPLAY: block; HEIGHT: 56px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5517641734547778674" border="0" alt="" src="http://4.bp.blogspot.com/_0awGwIWdbAQ/TJKZ7IGXLHI/AAAAAAAAAlA/atnVVwmKBKw/s400/images.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;a href="http://jefferychinet.blogspot.com/2010/08/tsql-sample.html"&gt;http://jefferychinet.blogspot.com/2010/08/tsql-sample.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://jefferychinet.blogspot.com/2010/07/win-cmd-script-ms-sql-server-database.html"&gt;http://jefferychinet.blogspot.com/2010/07/win-cmd-script-ms-sql-server-database.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://jefferychinet.blogspot.com/2010/07/server-principal-is-not-able-to-access.html"&gt;http://jefferychinet.blogspot.com/2010/07/server-principal-is-not-able-to-access.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://jefferychinet.blogspot.com/2010/07/install-ms-sql-server-2008-on-2k3.html"&gt;http://jefferychinet.blogspot.com/2010/07/install-ms-sql-server-2008-on-2k3.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://jefferychinet.blogspot.com/2010/07/ms-sql-with-c.html"&gt;http://jefferychinet.blogspot.com/2010/07/ms-sql-with-c.html&lt;/a&gt;&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt;Study :&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt;&lt;a href="http://jefferychinet.blogspot.com/2010/07/ms-exam-70433.html"&gt;http://jefferychinet.blogspot.com/2010/07/ms-exam-70433.html&lt;/a&gt; &lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt;&lt;a href="http://jefferychinet.blogspot.com/2010/09/ms-exam-70433-chapter-1-data-retrieval.html"&gt;http://jefferychinet.blogspot.com/2010/09/ms-exam-70433-chapter-1-data-retrieval.html&lt;/a&gt;&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8777320242835817445-8103681855440096387?l=jefferychinet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jefferychinet.blogspot.com/feeds/8103681855440096387/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jefferychinet.blogspot.com/2010/09/ms-sql-server.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/8103681855440096387'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/8103681855440096387'/><link rel='alternate' type='text/html' href='http://jefferychinet.blogspot.com/2010/09/ms-sql-server.html' title='MS SQL SERVER RELATED ARTICLES'/><author><name>Jeffery Chi</name><uri>http://www.blogger.com/profile/01777274222273910460</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_0awGwIWdbAQ/SrWo52s_aPI/AAAAAAAAAe0/sz5rSKavJMs/S220/airforcewing.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_0awGwIWdbAQ/TJKZ7IGXLHI/AAAAAAAAAlA/atnVVwmKBKw/s72-c/images.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8777320242835817445.post-8793337023963940725</id><published>2010-09-11T02:28:00.001-07:00</published><updated>2010-09-11T02:28:24.851-07:00</updated><title type='text'>colorpic</title><content type='html'>&lt;a href="http://www.iconico.com/download.aspx?app=ColorPic&amp;amp;type=free"&gt;http://www.iconico.com/download.aspx?app=ColorPic&amp;amp;type=free&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8777320242835817445-8793337023963940725?l=jefferychinet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jefferychinet.blogspot.com/feeds/8793337023963940725/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jefferychinet.blogspot.com/2010/09/colorpic.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/8793337023963940725'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/8793337023963940725'/><link rel='alternate' type='text/html' href='http://jefferychinet.blogspot.com/2010/09/colorpic.html' title='colorpic'/><author><name>Jeffery Chi</name><uri>http://www.blogger.com/profile/01777274222273910460</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_0awGwIWdbAQ/SrWo52s_aPI/AAAAAAAAAe0/sz5rSKavJMs/S220/airforcewing.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8777320242835817445.post-8701558100922108401</id><published>2010-09-08T17:22:00.000-07:00</published><updated>2010-09-08T17:27:08.224-07:00</updated><title type='text'>JavaScript + Server Side Control</title><content type='html'>If the data of a drop down box server control is populated from the client side, then you &lt;b&gt;&lt;u&gt;can't&lt;/u&gt;&lt;/b&gt; read its value from server side.&lt;br /&gt;&lt;br /&gt;I normally add a hidden textbox to store the selected value of the drop down box, of course you need to write a javascript function that pass the value from the drop down box to the hidden textbox.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8777320242835817445-8701558100922108401?l=jefferychinet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jefferychinet.blogspot.com/feeds/8701558100922108401/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jefferychinet.blogspot.com/2010/09/javascript-server-side-control.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/8701558100922108401'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/8701558100922108401'/><link rel='alternate' type='text/html' href='http://jefferychinet.blogspot.com/2010/09/javascript-server-side-control.html' title='JavaScript + Server Side Control'/><author><name>Jeffery Chi</name><uri>http://www.blogger.com/profile/01777274222273910460</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_0awGwIWdbAQ/SrWo52s_aPI/AAAAAAAAAe0/sz5rSKavJMs/S220/airforcewing.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8777320242835817445.post-3208095434404066093</id><published>2010-09-05T21:09:00.001-07:00</published><updated>2010-09-09T16:23:19.990-07:00</updated><title type='text'>To learn list</title><content type='html'>TypeConverter Class (1.1 ; 2.0; 3.0 ; 3.5)&lt;br /&gt;&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.componentmodel.typeconverter.aspx"&gt;http://msdn.microsoft.com/en-us/library/system.componentmodel.typeconverter.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;DateTimeStyles Enumeration&lt;br /&gt;&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/91hfhz89(VS.71).aspx"&gt;http://msdn.microsoft.com/en-us/library/91hfhz89(VS.71).aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;DateTime Swap Problem :&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="csharpcode"&gt;&lt;br /&gt;&lt;pre class="alt"&gt; &lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; IsValidDateValue(&lt;span class="kwrd"&gt;string&lt;/span&gt; userInputValue, CustomValidatorExtended custValidator, &lt;span class="kwrd"&gt;string&lt;/span&gt; errorMessage, &lt;span class="kwrd"&gt;ref&lt;/span&gt; &lt;span class="kwrd"&gt;bool&lt;/span&gt; isValid)&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;        {&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;            Regex regexValue = &lt;span class="kwrd"&gt;new&lt;/span&gt; Regex(SHORT_DATE_VALUE);&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;            &lt;span class="kwrd"&gt;if&lt;/span&gt; (regexValue.IsMatch(userInputValue))&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;            {&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;                Match match = regexValue.Match(userInputValue);&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;                &lt;span class="kwrd"&gt;int&lt;/span&gt; dayValue;&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;                &lt;span class="kwrd"&gt;if&lt;/span&gt; (!Int32.TryParse(match.Groups[&lt;span class="str"&gt;"date"&lt;/span&gt;].Value, &lt;span class="kwrd"&gt;out&lt;/span&gt; dayValue))&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;                {&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;                    custValidator.ErrorMessage = errorMessage;&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;                    isValid = &lt;span class="kwrd"&gt;false&lt;/span&gt;;&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;                    &lt;span class="kwrd"&gt;return&lt;/span&gt;;&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;                }&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;                &lt;span class="kwrd"&gt;int&lt;/span&gt; monthValue;&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;                &lt;span class="kwrd"&gt;if&lt;/span&gt; (!Int32.TryParse(ConvertMonthNameToNumber(match.Groups[&lt;span class="str"&gt;"month"&lt;/span&gt;].Value).ToString(), &lt;span class="kwrd"&gt;out&lt;/span&gt; monthValue))&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;                {&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;                    custValidator.ErrorMessage = errorMessage;&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;                    isValid = &lt;span class="kwrd"&gt;false&lt;/span&gt;;&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;                    &lt;span class="kwrd"&gt;return&lt;/span&gt;;&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;                }&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;                &lt;span class="rem"&gt;//this application is designed to handle only from year 2000 ~ 2020 and user only suppose to enter 2 digits for year &lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;                &lt;span class="kwrd"&gt;int&lt;/span&gt; yearValue;&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;                &lt;span class="kwrd"&gt;if&lt;/span&gt; (!Int32.TryParse(&lt;span class="str"&gt;"20"&lt;/span&gt; + match.Groups[&lt;span class="str"&gt;"year"&lt;/span&gt;].Value, &lt;span class="kwrd"&gt;out&lt;/span&gt; yearValue))&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;                {&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;                    custValidator.ErrorMessage = errorMessage;&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;                    isValid = &lt;span class="kwrd"&gt;false&lt;/span&gt;;&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;                    &lt;span class="kwrd"&gt;return&lt;/span&gt;;&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;                }&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;                DateTime dtParse;&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;                &lt;span class="kwrd"&gt;if&lt;/span&gt; (!DateTime.TryParse(yearValue + &lt;span class="str"&gt;"-"&lt;/span&gt; + monthValue + &lt;span class="str"&gt;"-"&lt;/span&gt; + dayValue, &lt;span class="kwrd"&gt;out&lt;/span&gt; dtParse))&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;                {&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;                    custValidator.ErrorMessage = errorMessage;&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;                    isValid = &lt;span class="kwrd"&gt;false&lt;/span&gt;;&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;                    &lt;span class="kwrd"&gt;return&lt;/span&gt;;&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;                }&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;            }&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;            &lt;span class="kwrd"&gt;else&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;            {&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;                isValid = &lt;span class="kwrd"&gt;true&lt;/span&gt;;&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;                &lt;span class="kwrd"&gt;return&lt;/span&gt;;&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;            }&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;        }&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/0yw3tz5k%28v=VS.80%29.aspx"&gt;http://msdn.microsoft.com/en-us/library/0yw3tz5k%28v=VS.80%29.aspx&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8777320242835817445-3208095434404066093?l=jefferychinet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jefferychinet.blogspot.com/feeds/3208095434404066093/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jefferychinet.blogspot.com/2010/09/net-framework-4.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/3208095434404066093'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/3208095434404066093'/><link rel='alternate' type='text/html' href='http://jefferychinet.blogspot.com/2010/09/net-framework-4.html' title='To learn list'/><author><name>Jeffery Chi</name><uri>http://www.blogger.com/profile/01777274222273910460</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_0awGwIWdbAQ/SrWo52s_aPI/AAAAAAAAAe0/sz5rSKavJMs/S220/airforcewing.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8777320242835817445.post-7430945307261953398</id><published>2010-08-31T22:49:00.000-07:00</published><updated>2010-08-31T22:50:01.913-07:00</updated><title type='text'>sql temp table and table variable</title><content type='html'>&lt;a href="http://databases.aspfaq.com/database/should-i-use-a-temp-table-or-a-table-variable.html"&gt;http://databases.aspfaq.com/database/should-i-use-a-temp-table-or-a-table-variable.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8777320242835817445-7430945307261953398?l=jefferychinet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jefferychinet.blogspot.com/feeds/7430945307261953398/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jefferychinet.blogspot.com/2010/08/sql-temp-table-and-table-variable.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/7430945307261953398'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/7430945307261953398'/><link rel='alternate' type='text/html' href='http://jefferychinet.blogspot.com/2010/08/sql-temp-table-and-table-variable.html' title='sql temp table and table variable'/><author><name>Jeffery Chi</name><uri>http://www.blogger.com/profile/01777274222273910460</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_0awGwIWdbAQ/SrWo52s_aPI/AAAAAAAAAe0/sz5rSKavJMs/S220/airforcewing.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8777320242835817445.post-8981133831493508297</id><published>2010-08-30T16:22:00.001-07:00</published><updated>2010-08-30T16:22:45.091-07:00</updated><title type='text'>You can find the integer value of an enum by casting</title><content type='html'>int complexityValueToStore = (int)Complexity.Normal;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8777320242835817445-8981133831493508297?l=jefferychinet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jefferychinet.blogspot.com/feeds/8981133831493508297/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jefferychinet.blogspot.com/2010/08/you-can-find-integer-value-of-enum-by.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/8981133831493508297'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/8981133831493508297'/><link rel='alternate' type='text/html' href='http://jefferychinet.blogspot.com/2010/08/you-can-find-integer-value-of-enum-by.html' title='You can find the integer value of an enum by casting'/><author><name>Jeffery Chi</name><uri>http://www.blogger.com/profile/01777274222273910460</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_0awGwIWdbAQ/SrWo52s_aPI/AAAAAAAAAe0/sz5rSKavJMs/S220/airforcewing.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8777320242835817445.post-8357691684810117592</id><published>2010-08-29T17:41:00.000-07:00</published><updated>2010-08-30T13:44:57.543-07:00</updated><title type='text'>.NET Framework 4</title><content type='html'>Page.RegisterRequiresControlState Method&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="csharpcode"&gt;&lt;br /&gt;&lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;class&lt;/span&gt; Sample : Control {&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;    &lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;int&lt;/span&gt; currentIndex = 0;&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt; &lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;    &lt;span class="kwrd"&gt;protected&lt;/span&gt; &lt;span class="kwrd"&gt;override&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; OnInit(EventArgs e) {&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;        Page.RegisterRequiresControlState(&lt;span class="kwrd"&gt;this&lt;/span&gt;);&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;        &lt;span class="kwrd"&gt;base&lt;/span&gt;.OnInit(e);&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;    }&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt; &lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;    &lt;span class="kwrd"&gt;protected&lt;/span&gt; &lt;span class="kwrd"&gt;override&lt;/span&gt; &lt;span class="kwrd"&gt;object&lt;/span&gt; SaveControlState() {&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;        &lt;span class="kwrd"&gt;return&lt;/span&gt; currentIndex != 0 ? (&lt;span class="kwrd"&gt;object&lt;/span&gt;)currentIndex : &lt;span class="kwrd"&gt;null&lt;/span&gt;;&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;    }&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt; &lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;    &lt;span class="kwrd"&gt;protected&lt;/span&gt; &lt;span class="kwrd"&gt;override&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; LoadControlState(&lt;span class="kwrd"&gt;object&lt;/span&gt; state) {&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;        &lt;span class="kwrd"&gt;if&lt;/span&gt; (state != &lt;span class="kwrd"&gt;null&lt;/span&gt;) {&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;            currentIndex = (&lt;span class="kwrd"&gt;int&lt;/span&gt;)state;&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;        }&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;    }&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;}&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.web.ui.page.registerrequirescontrolstate.aspx"&gt;http://msdn.microsoft.com/en-us/library/system.web.ui.page.registerrequirescontrolstate.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/aa479403.aspx"&gt;http://msdn.microsoft.com/en-us/library/aa479403.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="csharpcode"&gt;&lt;br /&gt;&lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System;&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Collections.Generic;&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Security.Permissions;&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Text;&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Web;&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Web.UI;&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt; &lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;&lt;span class="kwrd"&gt;namespace&lt;/span&gt; AnzNational.FLT.ServerControls&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;{&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;    &lt;span class="rem"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;    &lt;span class="rem"&gt;/// This control provides PageState object&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;    &lt;span class="rem"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;    [AspNetHostingPermission(SecurityAction.Demand, Level = AspNetHostingPermissionLevel.Minimal)]&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;    [AspNetHostingPermission(SecurityAction.InheritanceDemand, Level = AspNetHostingPermissionLevel.Minimal)]&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;    [ToolboxData(&lt;span class="str"&gt;"&amp;lt;{0}:PageState runat=server&amp;gt;&amp;lt;/{0}:PageState&amp;gt;"&lt;/span&gt;)]&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;    &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;class&lt;/span&gt; PageState : UserControl&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;    {&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;        List&amp;lt;&lt;span class="kwrd"&gt;object&lt;/span&gt;&amp;gt; pageState = &lt;span class="kwrd"&gt;null&lt;/span&gt;;&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt; &lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;        &lt;span class="kwrd"&gt;protected&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; Page_Init(&lt;span class="kwrd"&gt;object&lt;/span&gt; sender, EventArgs e)&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;        {&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;            &lt;span class="kwrd"&gt;if&lt;/span&gt; (pageState == &lt;span class="kwrd"&gt;null&lt;/span&gt;)&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;            {&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;                pageState = &lt;span class="kwrd"&gt;new&lt;/span&gt; List&amp;lt;&lt;span class="kwrd"&gt;object&lt;/span&gt;&amp;gt;();&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;            }&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;            Page.RegisterRequiresControlState(&lt;span class="kwrd"&gt;this&lt;/span&gt;);&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;        }&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt; &lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;        &lt;span class="kwrd"&gt;protected&lt;/span&gt; &lt;span class="kwrd"&gt;override&lt;/span&gt; &lt;span class="kwrd"&gt;object&lt;/span&gt; SaveControlState()&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;        {&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;            &lt;span class="kwrd"&gt;return&lt;/span&gt; pageState;&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;        }&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt; &lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;        &lt;span class="kwrd"&gt;protected&lt;/span&gt; &lt;span class="kwrd"&gt;override&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; LoadControlState(&lt;span class="kwrd"&gt;object&lt;/span&gt; savedState)&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;        {&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;            &lt;span class="kwrd"&gt;if&lt;/span&gt; (savedState == &lt;span class="kwrd"&gt;null&lt;/span&gt;)&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;            {&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;                &lt;span class="kwrd"&gt;return&lt;/span&gt;;&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;            }&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;            pageState = (List&amp;lt;&lt;span class="kwrd"&gt;object&lt;/span&gt;&amp;gt;)savedState;&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;        }&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt; &lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;object&lt;/span&gt; GetPageState(&lt;span class="kwrd"&gt;int&lt;/span&gt; index)&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;        {&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;            &lt;span class="kwrd"&gt;if&lt;/span&gt; (pageState != &lt;span class="kwrd"&gt;null&lt;/span&gt; &amp;amp;&amp;amp; index &amp;lt; pageState.Count)&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;            {&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;                &lt;span class="kwrd"&gt;return&lt;/span&gt; pageState[index];&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;            }&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;            &lt;span class="kwrd"&gt;return&lt;/span&gt; &lt;span class="kwrd"&gt;null&lt;/span&gt;;&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;        }&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt; &lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; SetPageState(&lt;span class="kwrd"&gt;int&lt;/span&gt; index, &lt;span class="kwrd"&gt;object&lt;/span&gt; obj)&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;        {&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;            &lt;span class="kwrd"&gt;if&lt;/span&gt; (pageState == &lt;span class="kwrd"&gt;null&lt;/span&gt;)&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;            {&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;                pageState = &lt;span class="kwrd"&gt;new&lt;/span&gt; List&amp;lt;&lt;span class="kwrd"&gt;object&lt;/span&gt;&amp;gt;();&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;            }&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt; &lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;            &lt;span class="kwrd"&gt;if&lt;/span&gt; (index &amp;gt;= pageState.Count)&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;            {&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;                &lt;span class="kwrd"&gt;for&lt;/span&gt; (&lt;span class="kwrd"&gt;int&lt;/span&gt; i = pageState.Count; i &amp;lt; index; i++)&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;                {&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;                    pageState.Add(&lt;span class="kwrd"&gt;null&lt;/span&gt;);&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;                }&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;                pageState.Add(obj);&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;            }&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;            &lt;span class="kwrd"&gt;else&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;            {&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;                pageState[index] = obj;&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;            }&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;        }&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;    }&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;}&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The idea behind using this feature is to retain the state of certain value even when ViewState has been turnned off on that page.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8777320242835817445-8357691684810117592?l=jefferychinet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jefferychinet.blogspot.com/feeds/8357691684810117592/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jefferychinet.blogspot.com/2010/08/net-framework-4.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/8357691684810117592'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/8357691684810117592'/><link rel='alternate' type='text/html' href='http://jefferychinet.blogspot.com/2010/08/net-framework-4.html' title='.NET Framework 4'/><author><name>Jeffery Chi</name><uri>http://www.blogger.com/profile/01777274222273910460</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_0awGwIWdbAQ/SrWo52s_aPI/AAAAAAAAAe0/sz5rSKavJMs/S220/airforcewing.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8777320242835817445.post-349259471162394564</id><published>2010-08-28T20:28:00.000-07:00</published><updated>2010-08-28T20:30:31.336-07:00</updated><title type='text'>Install windows 2003 active directory</title><content type='html'>&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 400px; DISPLAY: block; HEIGHT: 304px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5510668789923068722" border="0" alt="" src="http://3.bp.blogspot.com/_0awGwIWdbAQ/THnUEVIyOzI/AAAAAAAAAko/7axCuog0dVU/s400/1.JPG" /&gt;&lt;a href="http://1.bp.blogspot.com/_0awGwIWdbAQ/THnUIYOwRvI/AAAAAAAAAkw/P3j-P5hubg0/s1600/2.JPG"&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 400px; DISPLAY: block; HEIGHT: 303px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5510668859472889586" border="0" alt="" src="http://1.bp.blogspot.com/_0awGwIWdbAQ/THnUIYOwRvI/AAAAAAAAAkw/P3j-P5hubg0/s400/2.JPG" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8777320242835817445-349259471162394564?l=jefferychinet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jefferychinet.blogspot.com/feeds/349259471162394564/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jefferychinet.blogspot.com/2010/08/install-windows-2003-active-directory.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/349259471162394564'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/349259471162394564'/><link rel='alternate' type='text/html' href='http://jefferychinet.blogspot.com/2010/08/install-windows-2003-active-directory.html' title='Install windows 2003 active directory'/><author><name>Jeffery Chi</name><uri>http://www.blogger.com/profile/01777274222273910460</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_0awGwIWdbAQ/SrWo52s_aPI/AAAAAAAAAe0/sz5rSKavJMs/S220/airforcewing.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_0awGwIWdbAQ/THnUEVIyOzI/AAAAAAAAAko/7axCuog0dVU/s72-c/1.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8777320242835817445.post-2318083631697477754</id><published>2010-08-25T14:53:00.000-07:00</published><updated>2010-08-25T14:54:53.580-07:00</updated><title type='text'>TSQL SAMPLE</title><content type='html'>&lt;div class="csharpcode"&gt;&lt;br /&gt;&lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;select&lt;/span&gt; d.vcrDeliveryTeamName,&lt;span class="kwrd"&gt;COUNT&lt;/span&gt;(r.in2roleid) &lt;span class="kwrd"&gt;from&lt;/span&gt; tblRole r&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;&lt;span class="kwrd"&gt;inner&lt;/span&gt; &lt;span class="kwrd"&gt;join&lt;/span&gt; tblDeliveryTeam d &lt;span class="kwrd"&gt;on&lt;/span&gt; r.in2DeliveryTeamID = d.in2DeliveryTeamID&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;group&lt;/span&gt; &lt;span class="kwrd"&gt;by&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;d.vcrDeliveryTeamName&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;order&lt;/span&gt; &lt;span class="kwrd"&gt;by&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;&lt;span class="kwrd"&gt;COUNT&lt;/span&gt;(r.in2roleid) desc&lt;/pre&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8777320242835817445-2318083631697477754?l=jefferychinet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jefferychinet.blogspot.com/feeds/2318083631697477754/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jefferychinet.blogspot.com/2010/08/tsql-sample.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/2318083631697477754'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/2318083631697477754'/><link rel='alternate' type='text/html' href='http://jefferychinet.blogspot.com/2010/08/tsql-sample.html' title='TSQL SAMPLE'/><author><name>Jeffery Chi</name><uri>http://www.blogger.com/profile/01777274222273910460</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_0awGwIWdbAQ/SrWo52s_aPI/AAAAAAAAAe0/sz5rSKavJMs/S220/airforcewing.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8777320242835817445.post-8747262907061642585</id><published>2010-08-24T14:12:00.000-07:00</published><updated>2010-08-24T14:14:29.916-07:00</updated><title type='text'>Javascript drag and drop</title><content type='html'>&lt;a href="http://archive.dojotoolkit.org/nightly/dojotoolkit/dojox/grid/tests/test_grid_column_reorder.html"&gt;http://archive.dojotoolkit.org/nightly/dojotoolkit/dojox/grid/tests/test_grid_column_reorder.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://docs.jquery.com/UI/Draggable"&gt;http://docs.jquery.com/UI/Draggable&lt;/a&gt; &lt;br /&gt;&lt;a href="http://code.google.com/p/tablednd/source/browse/trunk/stable/jquery.tablednd.js?r=7"&gt;http://code.google.com/p/tablednd/source/browse/trunk/stable/jquery.tablednd.js?r=7&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8777320242835817445-8747262907061642585?l=jefferychinet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jefferychinet.blogspot.com/feeds/8747262907061642585/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jefferychinet.blogspot.com/2010/08/javascript-drag-and-drop.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/8747262907061642585'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/8747262907061642585'/><link rel='alternate' type='text/html' href='http://jefferychinet.blogspot.com/2010/08/javascript-drag-and-drop.html' title='Javascript drag and drop'/><author><name>Jeffery Chi</name><uri>http://www.blogger.com/profile/01777274222273910460</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_0awGwIWdbAQ/SrWo52s_aPI/AAAAAAAAAe0/sz5rSKavJMs/S220/airforcewing.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8777320242835817445.post-5077483045529494681</id><published>2010-08-03T19:58:00.000-07:00</published><updated>2010-08-03T20:00:44.137-07:00</updated><title type='text'>Javascript Regular Expression and Date Type</title><content type='html'>&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;&lt;br /&gt;&lt;div class="csharpcode"&gt;&lt;br /&gt;&lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;script&lt;/span&gt; &lt;span class="attr"&gt;type&lt;/span&gt;&lt;span class="kwrd"&gt;="text/javascript"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;    &lt;span class="rem"&gt;/*&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;&lt;span class="rem"&gt;    Convert Month Name To Number Value&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;&lt;span class="rem"&gt;    */&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;    &lt;span class="kwrd"&gt;function&lt;/span&gt; ConvertMonthNameToNumber(strMonthNameAbbreviation) {&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;        &lt;span class="kwrd"&gt;var&lt;/span&gt; intMonthValue;&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;        &lt;span class="kwrd"&gt;switch&lt;/span&gt; (strMonthNameAbbreviation) {&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;            &lt;span class="kwrd"&gt;case&lt;/span&gt; &lt;span class="str"&gt;"Jan"&lt;/span&gt;:&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;                intMonthValue = 1;&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;                &lt;span class="kwrd"&gt;break&lt;/span&gt;;&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;            &lt;span class="kwrd"&gt;case&lt;/span&gt; &lt;span class="str"&gt;"Feb"&lt;/span&gt;:&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;                intMonthValue = 2;&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;                &lt;span class="kwrd"&gt;break&lt;/span&gt;;&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;            &lt;span class="kwrd"&gt;case&lt;/span&gt; &lt;span class="str"&gt;"Mar"&lt;/span&gt;:&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;                intMonthValue = 3;&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;                &lt;span class="kwrd"&gt;break&lt;/span&gt;;&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;            &lt;span class="kwrd"&gt;case&lt;/span&gt; &lt;span class="str"&gt;"Apr"&lt;/span&gt;:&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;                intMonthValue = 4;&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;                &lt;span class="kwrd"&gt;break&lt;/span&gt;;&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;            &lt;span class="kwrd"&gt;case&lt;/span&gt; &lt;span class="str"&gt;"May"&lt;/span&gt;:&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;                intMonthValue = 5;&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;                &lt;span class="kwrd"&gt;break&lt;/span&gt;;&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;            &lt;span class="kwrd"&gt;case&lt;/span&gt; &lt;span class="str"&gt;"June"&lt;/span&gt;:&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;                intMonthValue = 6;&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;                &lt;span class="kwrd"&gt;break&lt;/span&gt;;&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;            &lt;span class="kwrd"&gt;case&lt;/span&gt; &lt;span class="str"&gt;"July"&lt;/span&gt;:&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;                intMonthValue = 7;&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;                &lt;span class="kwrd"&gt;break&lt;/span&gt;;&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;            &lt;span class="kwrd"&gt;case&lt;/span&gt; &lt;span class="str"&gt;"Aug"&lt;/span&gt;:&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;                intMonthValue = 8;&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;                &lt;span class="kwrd"&gt;break&lt;/span&gt;;&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;            &lt;span class="kwrd"&gt;case&lt;/span&gt; &lt;span class="str"&gt;"Sept"&lt;/span&gt;:&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;                intMonthValue = 9;&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;                &lt;span class="kwrd"&gt;break&lt;/span&gt;;&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;            &lt;span class="kwrd"&gt;case&lt;/span&gt; &lt;span class="str"&gt;"Oct"&lt;/span&gt;:&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;                intMonthValue = 10;&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;                &lt;span class="kwrd"&gt;break&lt;/span&gt;;&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;            &lt;span class="kwrd"&gt;case&lt;/span&gt; &lt;span class="str"&gt;"Nov"&lt;/span&gt;:&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;                intMonthValue = 11;&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;                &lt;span class="kwrd"&gt;break&lt;/span&gt;;&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;            &lt;span class="kwrd"&gt;case&lt;/span&gt; &lt;span class="str"&gt;"Dec"&lt;/span&gt;:&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;                intMonthValue = 12;&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;                &lt;span class="kwrd"&gt;break&lt;/span&gt;;&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;        }&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;        &lt;span class="kwrd"&gt;return&lt;/span&gt; intMonthValue;&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;    }&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;&amp;nbsp;&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;    $(document).ready(&lt;span class="kwrd"&gt;function&lt;/span&gt;() {&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;&amp;nbsp;&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;        $(&lt;span class="str"&gt;"#linkToManageEmploymentStatus"&lt;/span&gt;).hide();&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;        $(&lt;span class="str"&gt;"#spanTerminateDate"&lt;/span&gt;).hide();&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;        $(&lt;span class="str"&gt;"#aspnetForm"&lt;/span&gt;).submit(&lt;span class="kwrd"&gt;function&lt;/span&gt;() {&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;&amp;nbsp;&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;            &lt;span class="kwrd"&gt;var&lt;/span&gt; startDate = $(&lt;span class="str"&gt;"#ctl00_mainContent_dtHireDate"&lt;/span&gt;).val();&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;            &lt;span class="kwrd"&gt;var&lt;/span&gt; endDate = $(&lt;span class="str"&gt;"#ctl00_mainContent_dtTerminateDate"&lt;/span&gt;).val();&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;            &lt;span class="kwrd"&gt;var&lt;/span&gt; pattest = /(\d{1,2})\s([a-zA-Z]+)\s(\d{4}|\d{2})/;&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;&amp;nbsp;&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;            &lt;span class="kwrd"&gt;var&lt;/span&gt; startDateFormatted = &lt;span class="kwrd"&gt;new&lt;/span&gt; Date(startDate.match(pattest)[3], ConvertMonthNameToNumber(startDate.match(pattest)[2]), startDate.match(pattest)[1]);&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;            &lt;span class="kwrd"&gt;var&lt;/span&gt; endDateFormatted = &lt;span class="kwrd"&gt;new&lt;/span&gt; Date(endDate.match(pattest)[3], ConvertMonthNameToNumber(endDate.match(pattest)[2]), endDate.match(pattest)[1]);&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;&amp;nbsp;&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;          &lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;            &lt;span class="kwrd"&gt;if&lt;/span&gt; (&lt;span class="kwrd"&gt;typeof&lt;/span&gt; (startDateFormatted) != &lt;span class="str"&gt;"undefined"&lt;/span&gt; &amp;amp;&amp;amp;&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;               startDateFormatted != &lt;span class="kwrd"&gt;null&lt;/span&gt; &amp;amp;&amp;amp;&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;               startDateFormatted != &lt;span class="str"&gt;""&lt;/span&gt; &amp;amp;&amp;amp;&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;               &lt;span class="kwrd"&gt;typeof&lt;/span&gt; (endDateFormatted) != &lt;span class="str"&gt;"undefined"&lt;/span&gt; &amp;amp;&amp;amp;&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;               endDateFormatted != &lt;span class="kwrd"&gt;null&lt;/span&gt; &amp;amp;&amp;amp;&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;               endDateFormatted != &lt;span class="str"&gt;""&lt;/span&gt;) {&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;                   &lt;span class="kwrd"&gt;if&lt;/span&gt; (Date.parse(startDateFormatted) &amp;gt;= Date.parse(endDateFormatted)) {&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;                       $(&lt;span class="str"&gt;"#spanTerminateDate"&lt;/span&gt;).show();&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;                       &lt;span class="kwrd"&gt;return&lt;/span&gt; &lt;span class="kwrd"&gt;false&lt;/span&gt;;&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;                   }&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;               }&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;&amp;nbsp;&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;            &lt;span class="kwrd"&gt;var&lt;/span&gt; employmentStatusValue = $(&lt;span class="str"&gt;"#ctl00_mainContent_ddlEmploymentStatus"&lt;/span&gt;).val();&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;            &lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;            &lt;span class="kwrd"&gt;if&lt;/span&gt; (&lt;span class="kwrd"&gt;typeof&lt;/span&gt; (employmentStatusValue) != &lt;span class="str"&gt;"undefined"&lt;/span&gt; &amp;amp;&amp;amp; employmentStatusValue != &lt;span class="kwrd"&gt;null&lt;/span&gt; &amp;amp;&amp;amp; employmentStatusValue != &lt;span class="str"&gt;""&lt;/span&gt;) {&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;                $(&lt;span class="str"&gt;"#linkToManageEmploymentStatus"&lt;/span&gt;).hide();&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;                &lt;span class="kwrd"&gt;return&lt;/span&gt; &lt;span class="kwrd"&gt;true&lt;/span&gt;;&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;            } &lt;span class="kwrd"&gt;else&lt;/span&gt; {&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;                $(&lt;span class="str"&gt;"#linkToManageEmploymentStatus"&lt;/span&gt;).show();&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;                &lt;span class="kwrd"&gt;return&lt;/span&gt; &lt;span class="kwrd"&gt;false&lt;/span&gt;;&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;            }&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;        });&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;    });&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;script&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8777320242835817445-5077483045529494681?l=jefferychinet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jefferychinet.blogspot.com/feeds/5077483045529494681/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jefferychinet.blogspot.com/2010/08/javascript-regular-expression-and-date.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/5077483045529494681'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/5077483045529494681'/><link rel='alternate' type='text/html' href='http://jefferychinet.blogspot.com/2010/08/javascript-regular-expression-and-date.html' title='Javascript Regular Expression and Date Type'/><author><name>Jeffery Chi</name><uri>http://www.blogger.com/profile/01777274222273910460</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_0awGwIWdbAQ/SrWo52s_aPI/AAAAAAAAAe0/sz5rSKavJMs/S220/airforcewing.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8777320242835817445.post-2052053401206783882</id><published>2010-07-28T18:23:00.001-07:00</published><updated>2010-07-28T18:23:51.801-07:00</updated><title type='text'>Jquery Tablesorter Persistent</title><content type='html'>&lt;a href="http://ybits.net/2009/10/making-jquery-tablesorter-persistent/"&gt;http://ybits.net/2009/10/making-jquery-tablesorter-persistent/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8777320242835817445-2052053401206783882?l=jefferychinet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jefferychinet.blogspot.com/feeds/2052053401206783882/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jefferychinet.blogspot.com/2010/07/jquery-tablesorter-persistent.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/2052053401206783882'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/2052053401206783882'/><link rel='alternate' type='text/html' href='http://jefferychinet.blogspot.com/2010/07/jquery-tablesorter-persistent.html' title='Jquery Tablesorter Persistent'/><author><name>Jeffery Chi</name><uri>http://www.blogger.com/profile/01777274222273910460</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_0awGwIWdbAQ/SrWo52s_aPI/AAAAAAAAAe0/sz5rSKavJMs/S220/airforcewing.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8777320242835817445.post-3931544631708439085</id><published>2010-07-26T20:44:00.000-07:00</published><updated>2010-07-26T20:45:22.665-07:00</updated><title type='text'>Win CMD script + MS Sql Server database</title><content type='html'>&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;&lt;br /&gt;&lt;div class="csharpcode"&gt;&lt;br /&gt;&lt;pre class="alt"&gt;@echo off&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;&lt;span class="kwrd"&gt;if&lt;/span&gt; &lt;span class="str"&gt;'%1'&lt;/span&gt; == &lt;span class="str"&gt;''&lt;/span&gt; goto lblUsage&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;if&lt;/span&gt; &lt;span class="str"&gt;'%2'&lt;/span&gt; == &lt;span class="str"&gt;''&lt;/span&gt; goto lblUsage&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;&lt;span class="kwrd"&gt;if&lt;/span&gt; &lt;span class="str"&gt;'%3'&lt;/span&gt; == &lt;span class="str"&gt;''&lt;/span&gt; goto lblUsage&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;if&lt;/span&gt; &lt;span class="str"&gt;'%4'&lt;/span&gt; == &lt;span class="str"&gt;''&lt;/span&gt; goto lblUsage&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;&lt;span class="kwrd"&gt;if&lt;/span&gt; &lt;span class="str"&gt;'%5'&lt;/span&gt; == &lt;span class="str"&gt;''&lt;/span&gt; goto lblUsage&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;if&lt;/span&gt; &lt;span class="str"&gt;'%6'&lt;/span&gt; == &lt;span class="str"&gt;''&lt;/span&gt; goto lblUsage&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;&lt;span class="kwrd"&gt;if&lt;/span&gt; &lt;span class="str"&gt;'%7'&lt;/span&gt; == &lt;span class="str"&gt;''&lt;/span&gt; goto lblUsage&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;if&lt;/span&gt; &lt;span class="str"&gt;'%8'&lt;/span&gt; == &lt;span class="str"&gt;''&lt;/span&gt; goto lblUsage&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;&lt;span class="kwrd"&gt;if&lt;/span&gt; &lt;span class="str"&gt;'%9'&lt;/span&gt; == &lt;span class="str"&gt;''&lt;/span&gt; goto lblUsage&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;if&lt;/span&gt; &lt;span class="str"&gt;'%10'&lt;/span&gt; == &lt;span class="str"&gt;''&lt;/span&gt; goto lblUsage&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;&amp;nbsp;&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;if&lt;/span&gt; &lt;span class="str"&gt;'%1'&lt;/span&gt; == &lt;span class="str"&gt;'/?'&lt;/span&gt; goto lblUsage&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;&lt;span class="kwrd"&gt;if&lt;/span&gt; &lt;span class="str"&gt;'%1'&lt;/span&gt; == &lt;span class="str"&gt;'-?'&lt;/span&gt; goto lblUsage&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;if&lt;/span&gt; &lt;span class="str"&gt;'%1'&lt;/span&gt; == &lt;span class="str"&gt;'?'&lt;/span&gt; goto lblUsage&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;&lt;span class="kwrd"&gt;if&lt;/span&gt; &lt;span class="str"&gt;'%1'&lt;/span&gt; == &lt;span class="str"&gt;'/help'&lt;/span&gt; goto lblUsage&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;&amp;nbsp;&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;:: Set Error Variables&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;set ErrValue=0&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;&amp;nbsp;&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;:: Delete directory &lt;span class="kwrd"&gt;for&lt;/span&gt; Install Reports&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;&lt;span class="kwrd"&gt;if&lt;/span&gt; exist &lt;span class="str"&gt;"%~dp0Install"&lt;/span&gt; (&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;rmdir &lt;span class="str"&gt;"%~dp0Install"&lt;/span&gt; /s /q&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;)&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;if&lt;/span&gt; %ERRORLEVEL%==1 (&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;set ErrValue=2&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;goto lblExit&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;)&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;&amp;nbsp;&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;:: Create directory &lt;span class="kwrd"&gt;for&lt;/span&gt; Install Reports&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;echo Creating Installation Reports Directory &lt;span class="str"&gt;"%~dp0Install"&lt;/span&gt; ...&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;&lt;span class="kwrd"&gt;if&lt;/span&gt; not exist &lt;span class="str"&gt;"%~dp0Install"&lt;/span&gt; (&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;md &lt;span class="str"&gt;"%~dp0Install"&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;)&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;if&lt;/span&gt; %ERRORLEVEL%==1 (&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;set ErrValue=2&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;goto lblExit&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;)&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;&amp;nbsp;&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;:: Create Database and Setup Security&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;echo Creating &lt;span class="str"&gt;"%2"&lt;/span&gt; Database on %1 Server and Configuring Security ...&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;echo Creating &lt;span class="str"&gt;"%2"&lt;/span&gt; Database on %1 Server and Configuring Security ... &amp;gt;&amp;gt; %~dp0Install\Install.rpt&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;sqlcmd -S %1 -d master -E -b -e -i &lt;span class="str"&gt;"%~dp0_CreateDB.sql"&lt;/span&gt; -o &lt;span class="str"&gt;"%~dp0Install\_CreateDB.rpt"&lt;/span&gt; -vDBName=%2 DataPath=%4 LogPath=%5 AppAcct=%6 DevGrp=%7 Domain=%8 DeleteDB=%9 &lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;sqlcmd -S %1 -d master -E -b -e -i &lt;span class="str"&gt;"%~dp0_CreateDB.sql"&lt;/span&gt; -o &lt;span class="str"&gt;"%~dp0Install\_CreateDB.rpt"&lt;/span&gt; -vDBName=%2 DataPath=%4 LogPath=%5 AppAcct=%6 DevGrp=%7 Domain=%8 DeleteDB=%9  &amp;gt;&amp;gt; &lt;span class="str"&gt;"%~dp0Install\Install.rpt"&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;if&lt;/span&gt; %ERRORLEVEL%==1 goto lblExit&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;echo            SUCCESS ... &lt;span class="str"&gt;"%~dp0_CreateDB.sql"&lt;/span&gt; has run successfully&amp;gt;&amp;gt; %~dp0Install\Install.rpt&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;echo           SUCCESS ... &lt;span class="str"&gt;"%~dp0_CreateDB.sql"&lt;/span&gt; has run successfully&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;echo. &amp;gt;&amp;gt;&lt;span class="str"&gt;"%~dp0Install\Install.rpt"&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;&amp;nbsp;&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;:: Tables&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;call &lt;span class="str"&gt;"%~dp0Tables\_CreateTables.cmd"&lt;/span&gt; %1 %2&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;&lt;span class="kwrd"&gt;if&lt;/span&gt; %ERRORLEVEL%==1 goto lblError&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;&amp;nbsp;&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;:: Functions &lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;call &lt;span class="str"&gt;"%~dp0Functions\_CreateFunctions.cmd"&lt;/span&gt; %1 %2&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;&lt;span class="kwrd"&gt;if&lt;/span&gt; %ERRORLEVEL%==1 goto lblError&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;&amp;nbsp;&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;:: Triggers&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;&amp;nbsp;&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;:: Indexes&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;call &lt;span class="str"&gt;"%~dp0Indexes\_CreateIndexes.cmd"&lt;/span&gt; %1 %2&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;&lt;span class="kwrd"&gt;if&lt;/span&gt; %ERRORLEVEL%==1 goto lblError&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;&amp;nbsp;&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;:: StoredProcedures&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;call &lt;span class="str"&gt;"%~dp0Procedures\_CreateProcedures.cmd"&lt;/span&gt; %1 %2&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;&lt;span class="kwrd"&gt;if&lt;/span&gt; %ERRORLEVEL%==1 goto lblError&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;&amp;nbsp;&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;:: InitialData&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;call &lt;span class="str"&gt;"%~dp0InitialData\_CreateInitialData.cmd"&lt;/span&gt; %1 %2&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;&lt;span class="kwrd"&gt;if&lt;/span&gt; %ERRORLEVEL%==1 goto lblError&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;&amp;nbsp;&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;:: Run ANZ Standards Check&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;echo Checking Database &lt;span class="str"&gt;"%2"&lt;/span&gt; against ANZ Standards ...&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;echo Checking Database &lt;span class="str"&gt;"%2"&lt;/span&gt; against ANZ Standards ... &amp;gt;&amp;gt; %~dp0Install\Install.rpt&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;sqlcmd -S %1 -d %2 -E -b -e -i &lt;span class="str"&gt;"%~dp0ANZStandardsCheck.sql"&lt;/span&gt; -o &lt;span class="str"&gt;"%~dp0Install\ANZStandardsCheck.rpt"&lt;/span&gt; &lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;sqlcmd -S %1 -d %2 -E -b -e -i &lt;span class="str"&gt;"%~dp0ANZStandardsCheck.sql"&lt;/span&gt; -o &lt;span class="str"&gt;"%~dp0Install\ANZStandardsCheck.rpt"&lt;/span&gt;  &amp;gt;&amp;gt; &lt;span class="str"&gt;"%~dp0Install\Install.rpt"&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;if&lt;/span&gt; %ERRORLEVEL%==1 goto lblExit&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;echo            SUCCESS ... &lt;span class="str"&gt;"%~dp0ANZStandardsCheck.sql"&lt;/span&gt; has run successfully&amp;gt;&amp;gt; %~dp0Install\Install.rpt&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;echo           SUCCESS ... &lt;span class="str"&gt;"%~dp0ANZStandardsCheck.sql"&lt;/span&gt; has run successfully&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;echo. &amp;gt;&amp;gt;&lt;span class="str"&gt;"%~dp0Install\Install.rpt"&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;&amp;nbsp;&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;&amp;nbsp;&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;goto lblExit&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;&amp;nbsp;&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;:lblUsage&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;echo.&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;echo Usage: _CreateDB.cmd  SQLServer DatabaseName TestData DataPath LogPath AppAcct DevGrp Domain DeleteDB&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;echo SQLServer: the name of the target SQL Server, e.g. DSSQL02\I2,49169&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;echo DBName: the name of the target DBName, eg. PIP&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;echo TestData: include creation of test data, e.g. Y or N&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;echo DataPath: the path &lt;span class="kwrd"&gt;for&lt;/span&gt; Data files, e.g. E:\MSSQL.1\Data (Default)&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;echo LogPath: the path &lt;span class="kwrd"&gt;for&lt;/span&gt; Log files, e.g. F:\MSSQL.1\Logs (Default)&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;echo AppAcct: the Application Account used by the Web Services, e.g. nzPIPsvcsservice (Default)&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;echo DevGrp: the Developer Support Group Name, e.g. Sat Sys Developer (Default)&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;echo Domain: the domain name &lt;span class="kwrd"&gt;for&lt;/span&gt; the implementation, e.g. DEVDOMAIN&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;echo DeleteDB: delete the database &lt;span class="kwrd"&gt;if&lt;/span&gt; it exists.&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;echo.&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;echo Example: _CreateDB.cmd &lt;span class="str"&gt;"DSSQL02\I2,49169"&lt;/span&gt; FLT Y &lt;span class="str"&gt;"C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data"&lt;/span&gt; &lt;span class="str"&gt;"C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data"&lt;/span&gt; &lt;span class="str"&gt;"FLTacc"&lt;/span&gt; &lt;span class="str"&gt;"Sat Sys Developer"&lt;/span&gt; &lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;echo.&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;echo.&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;&amp;nbsp;&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;:lblExit&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;if&lt;/span&gt; %ERRORLEVEL%==1 goto lblError&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;echo.&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;echo.&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;echo. &amp;gt;&amp;gt;&lt;span class="str"&gt;"%~dp0Install\Install.rpt"&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;echo. &amp;gt;&amp;gt;&lt;span class="str"&gt;"%~dp0Install\Install.rpt"&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;echo SUCCESS  .. Database creation has completed successfully &amp;gt;&amp;gt; %~dp0Install\Install.rpt&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;echo SUCCESS  .. Database creation has completed successfully&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;goto lblExitBuild&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;&amp;nbsp;&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;:lblError&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;echo.&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;echo.&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;echo FAILED  .. Database creation has failed&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;&lt;span class="kwrd"&gt;if&lt;/span&gt; not %ErrValue%==2 (&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;echo. &amp;gt;&amp;gt;&lt;span class="str"&gt;"%~dp0Install\Install.rpt"&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;echo. &amp;gt;&amp;gt;&lt;span class="str"&gt;"%~dp0Install\Install.rpt"&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;echo FAILED  .. Database creation has failed &amp;gt;&amp;gt; %~dp0Install\Install.rpt&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;)&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;&amp;nbsp;&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt; :lblExitBuild&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;exit /b %ERRORLEVEL%&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;&amp;nbsp;&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;&amp;nbsp;&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8777320242835817445-3931544631708439085?l=jefferychinet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jefferychinet.blogspot.com/feeds/3931544631708439085/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jefferychinet.blogspot.com/2010/07/win-cmd-script-ms-sql-server-database.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/3931544631708439085'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/3931544631708439085'/><link rel='alternate' type='text/html' href='http://jefferychinet.blogspot.com/2010/07/win-cmd-script-ms-sql-server-database.html' title='Win CMD script + MS Sql Server database'/><author><name>Jeffery Chi</name><uri>http://www.blogger.com/profile/01777274222273910460</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_0awGwIWdbAQ/SrWo52s_aPI/AAAAAAAAAe0/sz5rSKavJMs/S220/airforcewing.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8777320242835817445.post-2614829597279842622</id><published>2010-07-25T20:22:00.001-07:00</published><updated>2010-07-25T20:31:27.532-07:00</updated><title type='text'>The server principal " " is not able to access the database " " under the current security context. (Microsoft SQL Server, Error: 916)</title><content type='html'>The server principal " " is not able to access the database " " under the current security context. (Microsoft SQL Server, Error: 916)&lt;br /&gt;&lt;br /&gt;&lt;a href="http://connect.microsoft.com/SQLServer/feedback/details/354291/the-server-principal-is-not-able-to-access-the-database-under-the-current-security-context-microsoft-sql-server-error-916"&gt;http://connect.microsoft.com/SQLServer/feedback/details/354291/the-server-principal-is-not-able-to-access-the-database-under-the-current-security-context-microsoft-sql-server-error-916&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I create a database when I login as Administrator, the I login as domain user, this time the database I setup previously disappeared. And I saw the above error, so I login again as administrator this time and add my domain user account as database user.&lt;br /&gt;&lt;br /&gt;Logout and login as domain user again, this time database works fine.&lt;br /&gt;&lt;br /&gt;:)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8777320242835817445-2614829597279842622?l=jefferychinet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jefferychinet.blogspot.com/feeds/2614829597279842622/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jefferychinet.blogspot.com/2010/07/server-principal-is-not-able-to-access.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/2614829597279842622'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/2614829597279842622'/><link rel='alternate' type='text/html' href='http://jefferychinet.blogspot.com/2010/07/server-principal-is-not-able-to-access.html' title='The server principal &quot; &quot; is not able to access the database &quot; &quot; under the current security context. (Microsoft SQL Server, Error: 916)'/><author><name>Jeffery Chi</name><uri>http://www.blogger.com/profile/01777274222273910460</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_0awGwIWdbAQ/SrWo52s_aPI/AAAAAAAAAe0/sz5rSKavJMs/S220/airforcewing.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8777320242835817445.post-228839775850867545</id><published>2010-07-25T15:25:00.001-07:00</published><updated>2010-09-19T00:34:35.825-07:00</updated><title type='text'>Install MS Sql Server 2008 on 2k3 Server</title><content type='html'>&lt;a href="http://1.bp.blogspot.com/_0awGwIWdbAQ/TJW9Bwz-qUI/AAAAAAAAApI/Lv73_DonC8A/s1600/28.JPG"&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 400px; DISPLAY: block; HEIGHT: 300px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5518524756392847682" border="0" alt="" src="http://1.bp.blogspot.com/_0awGwIWdbAQ/TJW9Bwz-qUI/AAAAAAAAApI/Lv73_DonC8A/s400/28.JPG" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;&lt;a href="http://2.bp.blogspot.com/_0awGwIWdbAQ/TJW9Bo-Qf5I/AAAAAAAAApA/R3m5ChbF2ps/s1600/27.JPG"&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 400px; DISPLAY: block; HEIGHT: 300px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5518524754288476050" border="0" alt="" src="http://2.bp.blogspot.com/_0awGwIWdbAQ/TJW9Bo-Qf5I/AAAAAAAAApA/R3m5ChbF2ps/s400/27.JPG" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;a href="http://2.bp.blogspot.com/_0awGwIWdbAQ/TJW9BQCB-zI/AAAAAAAAAo4/cCbOFsG4ZNE/s1600/26.JPG"&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 400px; DISPLAY: block; HEIGHT: 300px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5518524747593415474" border="0" alt="" src="http://2.bp.blogspot.com/_0awGwIWdbAQ/TJW9BQCB-zI/AAAAAAAAAo4/cCbOFsG4ZNE/s400/26.JPG" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;a href="http://2.bp.blogspot.com/_0awGwIWdbAQ/TJW8n4CvPqI/AAAAAAAAAng/V5Nmyl3eK8c/s1600/20.JPG"&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 400px; DISPLAY: block; HEIGHT: 301px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5518524311657201314" border="0" alt="" src="http://2.bp.blogspot.com/_0awGwIWdbAQ/TJW8n4CvPqI/AAAAAAAAAng/V5Nmyl3eK8c/s400/20.JPG" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;a href="http://1.bp.blogspot.com/_0awGwIWdbAQ/TJW8njQP3vI/AAAAAAAAAnY/xAHvWDcslZ8/s1600/19.JPG"&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 400px; DISPLAY: block; HEIGHT: 301px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5518524306076720882" border="0" alt="" src="http://1.bp.blogspot.com/_0awGwIWdbAQ/TJW8njQP3vI/AAAAAAAAAnY/xAHvWDcslZ8/s400/19.JPG" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;a href="http://2.bp.blogspot.com/_0awGwIWdbAQ/TJW8nQZdvJI/AAAAAAAAAnQ/TMxIdioN1r0/s1600/18.JPG"&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 400px; DISPLAY: block; HEIGHT: 301px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5518524301015104658" border="0" alt="" src="http://2.bp.blogspot.com/_0awGwIWdbAQ/TJW8nQZdvJI/AAAAAAAAAnQ/TMxIdioN1r0/s400/18.JPG" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;a href="http://4.bp.blogspot.com/_0awGwIWdbAQ/TJW8nGVQ6ZI/AAAAAAAAAnI/FbfJWOY-MHE/s1600/17.JPG"&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 400px; DISPLAY: block; HEIGHT: 301px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5518524298313132434" border="0" alt="" src="http://4.bp.blogspot.com/_0awGwIWdbAQ/TJW8nGVQ6ZI/AAAAAAAAAnI/FbfJWOY-MHE/s400/17.JPG" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;a href="http://2.bp.blogspot.com/_0awGwIWdbAQ/TJW8mo9EXsI/AAAAAAAAAnA/8RxLZe0Sj2w/s1600/16.JPG"&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 400px; DISPLAY: block; HEIGHT: 267px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5518524290427018946" border="0" alt="" src="http://2.bp.blogspot.com/_0awGwIWdbAQ/TJW8mo9EXsI/AAAAAAAAAnA/8RxLZe0Sj2w/s400/16.JPG" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;a href="http://2.bp.blogspot.com/_0awGwIWdbAQ/TJW8J_43KSI/AAAAAAAAAm4/RPgVdc1Mlvw/s1600/15.JPG"&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 400px; DISPLAY: block; HEIGHT: 302px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5518523798367185186" border="0" alt="" src="http://2.bp.blogspot.com/_0awGwIWdbAQ/TJW8J_43KSI/AAAAAAAAAm4/RPgVdc1Mlvw/s400/15.JPG" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;a href="http://2.bp.blogspot.com/_0awGwIWdbAQ/TJW8JlEM5DI/AAAAAAAAAmw/7HQxNOXD8T4/s1600/14.JPG"&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 400px; DISPLAY: block; HEIGHT: 276px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5518523791166989362" border="0" alt="" src="http://2.bp.blogspot.com/_0awGwIWdbAQ/TJW8JlEM5DI/AAAAAAAAAmw/7HQxNOXD8T4/s400/14.JPG" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;a href="http://4.bp.blogspot.com/_0awGwIWdbAQ/TJW8JaOTZCI/AAAAAAAAAmo/cEF1MS8vlos/s1600/13.JPG"&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 400px; DISPLAY: block; HEIGHT: 300px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5518523788256568354" border="0" alt="" src="http://4.bp.blogspot.com/_0awGwIWdbAQ/TJW8JaOTZCI/AAAAAAAAAmo/cEF1MS8vlos/s400/13.JPG" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;a href="http://3.bp.blogspot.com/_0awGwIWdbAQ/TJW8JLATFeI/AAAAAAAAAmg/qP-f-EEKTfw/s1600/12.JPG"&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 400px; DISPLAY: block; HEIGHT: 300px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5518523784171296226" border="0" alt="" src="http://3.bp.blogspot.com/_0awGwIWdbAQ/TJW8JLATFeI/AAAAAAAAAmg/qP-f-EEKTfw/s400/12.JPG" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;a href="http://2.bp.blogspot.com/_0awGwIWdbAQ/TJW8ImI0kAI/AAAAAAAAAmY/lzRgU2uDdbM/s1600/11.JPG"&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 400px; DISPLAY: block; HEIGHT: 300px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5518523774274932738" border="0" alt="" src="http://2.bp.blogspot.com/_0awGwIWdbAQ/TJW8ImI0kAI/AAAAAAAAAmY/lzRgU2uDdbM/s400/11.JPG" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;a href="http://2.bp.blogspot.com/_0awGwIWdbAQ/TJW8CUxN3RI/AAAAAAAAAmQ/IyZJz5TycSE/s1600/10.JPG"&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 400px; DISPLAY: block; HEIGHT: 111px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5518523666533309714" border="0" alt="" src="http://2.bp.blogspot.com/_0awGwIWdbAQ/TJW8CUxN3RI/AAAAAAAAAmQ/IyZJz5TycSE/s400/10.JPG" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;a href="http://3.bp.blogspot.com/_0awGwIWdbAQ/TJW8CDC7YxI/AAAAAAAAAmI/iZfxQP7s8Ik/s1600/9.JPG"&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 400px; DISPLAY: block; HEIGHT: 109px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5518523661775758098" border="0" alt="" src="http://3.bp.blogspot.com/_0awGwIWdbAQ/TJW8CDC7YxI/AAAAAAAAAmI/iZfxQP7s8Ik/s400/9.JPG" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;a href="http://3.bp.blogspot.com/_0awGwIWdbAQ/TJW8BtRNfAI/AAAAAAAAAmA/QGdsPtnhZyc/s1600/8.JPG"&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 400px; DISPLAY: block; HEIGHT: 306px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5518523655930084354" border="0" alt="" src="http://3.bp.blogspot.com/_0awGwIWdbAQ/TJW8BtRNfAI/AAAAAAAAAmA/QGdsPtnhZyc/s400/8.JPG" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;a href="http://2.bp.blogspot.com/_0awGwIWdbAQ/TJW8BVd9vzI/AAAAAAAAAl4/Mlh3AIATV7Q/s1600/7.JPG"&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 400px; DISPLAY: block; HEIGHT: 307px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5518523649541127986" border="0" alt="" src="http://2.bp.blogspot.com/_0awGwIWdbAQ/TJW8BVd9vzI/AAAAAAAAAl4/Mlh3AIATV7Q/s400/7.JPG" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;a href="http://4.bp.blogspot.com/_0awGwIWdbAQ/TJW8BLXcJSI/AAAAAAAAAlw/UerQgPfVz4E/s1600/6.JPG"&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 400px; DISPLAY: block; HEIGHT: 302px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5518523646829405474" border="0" alt="" src="http://4.bp.blogspot.com/_0awGwIWdbAQ/TJW8BLXcJSI/AAAAAAAAAlw/UerQgPfVz4E/s400/6.JPG" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;a href="http://4.bp.blogspot.com/_0awGwIWdbAQ/TJW76Ra71XI/AAAAAAAAAlo/rqRjN83IewI/s1600/5.JPG"&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 400px; DISPLAY: block; HEIGHT: 308px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5518523528195593586" border="0" alt="" src="http://4.bp.blogspot.com/_0awGwIWdbAQ/TJW76Ra71XI/AAAAAAAAAlo/rqRjN83IewI/s400/5.JPG" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;a href="http://4.bp.blogspot.com/_0awGwIWdbAQ/TJW76KlATvI/AAAAAAAAAlg/Fgy_1k8rw3g/s1600/4.JPG"&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 400px; DISPLAY: block; HEIGHT: 308px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5518523526358781682" border="0" alt="" src="http://4.bp.blogspot.com/_0awGwIWdbAQ/TJW76KlATvI/AAAAAAAAAlg/Fgy_1k8rw3g/s400/4.JPG" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;a href="http://2.bp.blogspot.com/_0awGwIWdbAQ/TJW75lN0B9I/AAAAAAAAAlY/nLTQxgvC5Lo/s1600/3.JPG"&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 400px; DISPLAY: block; HEIGHT: 370px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5518523516329396178" border="0" alt="" src="http://2.bp.blogspot.com/_0awGwIWdbAQ/TJW75lN0B9I/AAAAAAAAAlY/nLTQxgvC5Lo/s400/3.JPG" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;a href="http://1.bp.blogspot.com/_0awGwIWdbAQ/TJW75eCsnBI/AAAAAAAAAlQ/giOoRHwkciI/s1600/2.JPG"&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 400px; DISPLAY: block; HEIGHT: 367px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5518523514403724306" border="0" alt="" src="http://1.bp.blogspot.com/_0awGwIWdbAQ/TJW75eCsnBI/AAAAAAAAAlQ/giOoRHwkciI/s400/2.JPG" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;a href="http://1.bp.blogspot.com/_0awGwIWdbAQ/TJW75ARVU8I/AAAAAAAAAlI/v1AqOHTpwn4/s1600/1.JPG"&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 400px; DISPLAY: block; HEIGHT: 371px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5518523506412049346" border="0" alt="" src="http://1.bp.blogspot.com/_0awGwIWdbAQ/TJW75ARVU8I/AAAAAAAAAlI/v1AqOHTpwn4/s400/1.JPG" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;Database Connection String :&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.connectionstrings.com/sql-server-2005"&gt;http://www.connectionstrings.com/sql-server-2005&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8777320242835817445-228839775850867545?l=jefferychinet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jefferychinet.blogspot.com/feeds/228839775850867545/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jefferychinet.blogspot.com/2010/07/install-ms-sql-server-2008-on-2k3.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/228839775850867545'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/228839775850867545'/><link rel='alternate' type='text/html' href='http://jefferychinet.blogspot.com/2010/07/install-ms-sql-server-2008-on-2k3.html' title='Install MS Sql Server 2008 on 2k3 Server'/><author><name>Jeffery Chi</name><uri>http://www.blogger.com/profile/01777274222273910460</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_0awGwIWdbAQ/SrWo52s_aPI/AAAAAAAAAe0/sz5rSKavJMs/S220/airforcewing.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_0awGwIWdbAQ/TJW9Bwz-qUI/AAAAAAAAApI/Lv73_DonC8A/s72-c/28.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8777320242835817445.post-1092911511986968567</id><published>2010-07-25T14:39:00.001-07:00</published><updated>2010-11-09T22:42:02.571-08:00</updated><title type='text'>ANZ Bank New Zealand Forward Load Tool Project</title><content type='html'>&lt;a href="http://1.bp.blogspot.com/_0awGwIWdbAQ/TE3zikgXtOI/AAAAAAAAAkc/LTQvrSPasgk/s1600/branding.jpg"&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 230px; DISPLAY: block; HEIGHT: 72px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5498318495329793250" border="0" alt="" src="http://1.bp.blogspot.com/_0awGwIWdbAQ/TE3zikgXtOI/AAAAAAAAAkc/LTQvrSPasgk/s400/branding.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;Forward Load Tool&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt;ASP.NET Web Form&lt;/div&gt;&lt;div&gt;.NET Framework 4&lt;/div&gt;&lt;div&gt;JQuery&lt;/div&gt;&lt;div&gt;DataSet &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8777320242835817445-1092911511986968567?l=jefferychinet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jefferychinet.blogspot.com/feeds/1092911511986968567/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jefferychinet.blogspot.com/2010/07/anz-bank-new-zealand-forward-load-tool.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/1092911511986968567'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/1092911511986968567'/><link rel='alternate' type='text/html' href='http://jefferychinet.blogspot.com/2010/07/anz-bank-new-zealand-forward-load-tool.html' title='ANZ Bank New Zealand Forward Load Tool Project'/><author><name>Jeffery Chi</name><uri>http://www.blogger.com/profile/01777274222273910460</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_0awGwIWdbAQ/SrWo52s_aPI/AAAAAAAAAe0/sz5rSKavJMs/S220/airforcewing.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_0awGwIWdbAQ/TE3zikgXtOI/AAAAAAAAAkc/LTQvrSPasgk/s72-c/branding.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8777320242835817445.post-5790230292134637699</id><published>2010-07-25T14:38:00.000-07:00</published><updated>2010-07-26T13:42:58.036-07:00</updated><title type='text'>ANZ Bank New Zealand Projects</title><content type='html'>&lt;div align="left"&gt;&lt;a href="http://4.bp.blogspot.com/_0awGwIWdbAQ/TE3zQcoLaKI/AAAAAAAAAkU/4_tIHSD_nJA/s1600/branding.jpg"&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 230px; DISPLAY: block; HEIGHT: 72px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5498318183977412770" border="0" alt="" src="http://4.bp.blogspot.com/_0awGwIWdbAQ/TE3zQcoLaKI/AAAAAAAAAkU/4_tIHSD_nJA/s400/branding.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;APLAF&lt;br /&gt;&lt;br /&gt;Personal Loan Form Application:&lt;br /&gt;&lt;br /&gt;MVP&lt;br /&gt;&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/magazine/cc188690.aspx"&gt;http://msdn.microsoft.com/en-us/magazine/cc188690.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://aspnetmvp.codeplex.com/"&gt;http://aspnetmvp.codeplex.com/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Ninject Inversion Control&lt;br /&gt;&lt;br /&gt;MS SQL Server 2008&lt;br /&gt;&lt;br /&gt;Visual Studio 2010&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8777320242835817445-5790230292134637699?l=jefferychinet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jefferychinet.blogspot.com/feeds/5790230292134637699/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jefferychinet.blogspot.com/2010/07/anz-bank-new-zealand-projects.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/5790230292134637699'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/5790230292134637699'/><link rel='alternate' type='text/html' href='http://jefferychinet.blogspot.com/2010/07/anz-bank-new-zealand-projects.html' title='ANZ Bank New Zealand Projects'/><author><name>Jeffery Chi</name><uri>http://www.blogger.com/profile/01777274222273910460</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_0awGwIWdbAQ/SrWo52s_aPI/AAAAAAAAAe0/sz5rSKavJMs/S220/airforcewing.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_0awGwIWdbAQ/TE3zQcoLaKI/AAAAAAAAAkU/4_tIHSD_nJA/s72-c/branding.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8777320242835817445.post-1280030749193136627</id><published>2010-07-21T22:10:00.000-07:00</published><updated>2010-07-21T22:11:35.744-07:00</updated><title type='text'>Cross Page Postbacks on a GridView</title><content type='html'>Cross Page Postbacks on a GridView&lt;br /&gt;&lt;a href="http://www.codeproject.com/kb/aspnet/GridViewCrossPagePostBack.aspx"&gt;http://www.codeproject.com/kb/aspnet/GridViewCrossPagePostBack.aspx&lt;/a&gt;&lt;br /&gt;HyperLinkField Class&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.hyperlinkfield.aspx"&gt;http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.hyperlinkfield.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://forums.asp.net/p/1092755/3985600.aspx#3985600"&gt;http://forums.asp.net/p/1092755/3985600.aspx#3985600&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8777320242835817445-1280030749193136627?l=jefferychinet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jefferychinet.blogspot.com/feeds/1280030749193136627/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jefferychinet.blogspot.com/2010/07/cross-page-postbacks-on-gridview.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/1280030749193136627'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/1280030749193136627'/><link rel='alternate' type='text/html' href='http://jefferychinet.blogspot.com/2010/07/cross-page-postbacks-on-gridview.html' title='Cross Page Postbacks on a GridView'/><author><name>Jeffery Chi</name><uri>http://www.blogger.com/profile/01777274222273910460</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_0awGwIWdbAQ/SrWo52s_aPI/AAAAAAAAAe0/sz5rSKavJMs/S220/airforcewing.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8777320242835817445.post-8106427111882846755</id><published>2010-07-20T13:44:00.000-07:00</published><updated>2010-09-18T23:22:21.683-07:00</updated><title type='text'>MS Exam 70433 Chapter 1 Data Retrieval - Query Data</title><content type='html'>Lesson 1: Querying Data&lt;br /&gt;&lt;br /&gt;If you want to exclude rows that have exact duplications of the data, you can use 'select distinct'.&lt;br /&gt;&lt;br /&gt;If you want to view only colors and not see that there are NULL rows in the preceding sample, you can use the following code:&lt;br /&gt;&lt;br /&gt;select distinct color from production.product where color is not NULL&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Note working with null values&lt;br /&gt;&lt;br /&gt;A null value is the absence of data in a column, when ANSI_NULLS setting is set to ON, the default configuration, you cannot equate values to NULL. If you try, the server retunrs 'unknown'. For example, in the previous code, if you replace 'is no' with &lt;&gt;, the query would not return any rows in a default configuration. if you executed the following commands together, you would get the same result set as the previous sample code:&lt;br /&gt;&lt;br /&gt;set ansi_nulls off;&lt;br /&gt;&lt;br /&gt;select distinct color from production.product where color &lt;&gt; null;&lt;br /&gt;&lt;br /&gt;The where clause can include a variety of search conditions that can include boolean operators and predicates such as LIKE, BETWEEN, EXISTS, IS NULL, IS NO NULL and CONTAINS.&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;The 'CONTAINS' clauses is available only when you create a full text index on the column being compared.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Boolean operators, which include AND, OR, and NOT can be used to define more than one criterion in a WHERE clause.&lt;br /&gt;&lt;br /&gt;select * from production.product where color ='silver' and listprice &gt;200&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Defining a WHERE Clause&lt;br /&gt;&lt;br /&gt;Where clauses typically increases query performance by limiting the amount of data that needs to be sent back to the client application.&lt;br /&gt;&lt;br /&gt;The where clause can include a variety of search conditions that can include Boolean operators can predicates such as &lt;span style="color: rgb(255, 0, 0);"&gt;LIKE&lt;/span&gt;, &lt;span style="color: rgb(255, 0, 0);"&gt;BETWEEN&lt;/span&gt;, &lt;span style="color: rgb(255, 0, 0);"&gt;EXISTS&lt;/span&gt;, &lt;span style="color: rgb(255, 0, 0);"&gt;IS NULL&lt;/span&gt;,&lt;span style="color: rgb(255, 0, 0);"&gt; IS NOT NULL&lt;/span&gt; and &lt;span style="color: rgb(255, 0, 0);"&gt;CONTAINS&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Boolean operators, which include AND, OR and NOT, can be used to define more than one criterion in a WHERE clause.&lt;br /&gt;&lt;br /&gt;select * from production.product where color ='silver' and (listprice &gt; 200 or listprice = 0)&lt;br /&gt;&lt;br /&gt;(if the parentheses were not added, the query would return silver products with a price over $200 and all colors of products with a list price of $0 &lt;span style="color: rgb(255, 0, 0);"&gt;because of the order in which the conditions are evaluated&lt;/span&gt;, which is based on the boolean order of operations)&lt;br /&gt;(The CONTAINS clause in available only when you create a full text index on the column being compared.)&lt;br /&gt;&lt;br /&gt;[&lt;span style="color: rgb(255, 0, 0);"&gt;when the database engine parses and compiles a query, conditions that include Boolean operators are evaluated int he following order&lt;/span&gt;]&lt;br /&gt;NOT, AND, OR.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;The order of operations is important to understand because misunderstanding this&lt;br /&gt;can cause the query to return an unintended result set. You can use parenthese&lt;br /&gt;to control the order of the operations.&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;Using AND operator typically results in a smaller result set, thus &lt;span style="color: rgb(255, 0, 0);"&gt;improving&lt;/span&gt; performance.&lt;br /&gt;The &lt;span style="color: rgb(255, 0, 0);"&gt;NOT operator typically hurts performance&lt;/span&gt; because the &lt;span style="color: rgb(255, 0, 0);"&gt;query optimizer cannot use indexes for the WHERE clause when a NOT operator is specified !!&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;For indexes to be utilized when an OR operator is specified, all columns referenced by the OR condition must be included in an index or none of the indexes are used.&lt;span style="color: rgb(255, 0, 0);"&gt; (why ???)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The LIKE clause allows you to match a character string found in a column to a specified pattern in the WHERE clause.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Percent (%) : Replaces any number of characters (including 0 characters) in the string.&lt;/li&gt;&lt;li&gt;Underscore (_) : Replaces exactly one character in the string. For example, _at would match &lt;em&gt;cat&lt;/em&gt; and &lt;em&gt;hat&lt;/em&gt;, but it wourl not match &lt;em&gt;that&lt;/em&gt; or &lt;em&gt;at&lt;/em&gt;.&lt;/li&gt;&lt;li&gt;Square Brackets ([]) : Replaces any one character within a set or a range of characters. A set is frequently displayed as a stright list of characters, for example &lt;em&gt;[abcd] ; &lt;/em&gt;but the characters can be separated by commas to add clarity, for example [a,b,c,d]. A range is separated by a dash, for example , [a-d]. &lt;/li&gt;&lt;li&gt;Caret (^) Any character not within a set or range of characters. . For example , &lt;em&gt;[^a-d]&lt;/em&gt; would be equal to &lt;em&gt;[e-z]&lt;/em&gt;&lt;/li&gt;&lt;/ul&gt;&lt;em&gt;&lt;blockquote&gt;&lt;p&gt;&lt;em&gt;Note: Neither leading wildcard characters nor NOT logic allow the query&lt;br /&gt;optimizer to use indexes to optimize the search.&lt;/em&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;/p&gt;&lt;br /&gt;&lt;table border="2"&gt;&lt;caption&gt;Using square&lt;br /&gt;brackets to search for wildcard characters&lt;/caption&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;like clause&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;Searches for&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;&lt;b&gt;like "5%"&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;5 followed by any string of 0 or more&lt;br /&gt;characters &lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;&lt;b&gt;like "5[%]"&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;5% &lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;&lt;b&gt;like "_n"&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;an, in, on, and so forth &lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;&lt;b&gt;like "[_]n"&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;_n &lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;&lt;b&gt;like "[a-cdf]"&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;a, b, c, d, or f &lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;&lt;b&gt;like "[-acdf]"&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;-, a, c, d, or f &lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;&lt;b&gt;like "[ [ ]"&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;[ &lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;&lt;b&gt;like "[ ] ]"&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;] &lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&lt;a href="http://manuals.sybase.com/onlinebooks/group-as/asg1250e/sqlug/@Generic__BookTextView/6988;pt=7086"&gt;http://manuals.sybase.com/onlinebooks/group-as/asg1250e/sqlug/@Generic__BookTextView/6988;pt=7086&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;Neither leading wildcard characters nor NOT logic allow the query optimizer to use indexes to optimize the search. They should be avoided.&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt; &lt;/p&gt;&lt;/blockquote&gt;&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;"INCLUSIVE BETWEEN" : between clause is inclusive of the outer values specified in the range.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;&lt;br /&gt;&lt;div class="csharpcode"&gt;&lt;br /&gt;&lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;select&lt;/span&gt; &lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;    EmployeeID, &lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;    Title &lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;&lt;span class="kwrd"&gt;from&lt;/span&gt; &lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;    HumanResources.Employee &lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;&lt;span class="kwrd"&gt;where&lt;/span&gt; &lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;    Title &lt;span class="kwrd"&gt;like&lt;/span&gt; &lt;span class="str"&gt;'[C-E]%'&lt;/span&gt; &lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;&lt;span class="kwrd"&gt;order&lt;/span&gt; &lt;span class="kwrd"&gt;by&lt;/span&gt; &lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;    Title&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;    &lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;select&lt;/span&gt; * &lt;span class="kwrd"&gt;from&lt;/span&gt; HumanResources.Employee  &lt;span class="kwrd"&gt;where&lt;/span&gt; Title &lt;span class="kwrd"&gt;between&lt;/span&gt; &lt;span class="str"&gt;'C'&lt;/span&gt; &lt;span class="kwrd"&gt;and&lt;/span&gt; &lt;span class="str"&gt;'E'&lt;/span&gt; &lt;span class="kwrd"&gt;order&lt;/span&gt; &lt;span class="kwrd"&gt;by&lt;/span&gt; Title&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8777320242835817445-8106427111882846755?l=jefferychinet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jefferychinet.blogspot.com/feeds/8106427111882846755/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jefferychinet.blogspot.com/2010/07/ms-exam-70433.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/8106427111882846755'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/8106427111882846755'/><link rel='alternate' type='text/html' href='http://jefferychinet.blogspot.com/2010/07/ms-exam-70433.html' title='MS Exam 70433 Chapter 1 Data Retrieval - Query Data'/><author><name>Jeffery Chi</name><uri>http://www.blogger.com/profile/01777274222273910460</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_0awGwIWdbAQ/SrWo52s_aPI/AAAAAAAAAe0/sz5rSKavJMs/S220/airforcewing.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8777320242835817445.post-3386375123522190071</id><published>2010-07-19T19:03:00.000-07:00</published><updated>2010-07-19T19:04:00.679-07:00</updated><title type='text'>MS SQL with C#</title><content type='html'>&lt;a href="http://msdn.microsoft.com/en-us/library/ms131092.aspx"&gt;http://msdn.microsoft.com/en-us/library/ms131092.aspx&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8777320242835817445-3386375123522190071?l=jefferychinet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jefferychinet.blogspot.com/feeds/3386375123522190071/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jefferychinet.blogspot.com/2010/07/ms-sql-with-c.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/3386375123522190071'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/3386375123522190071'/><link rel='alternate' type='text/html' href='http://jefferychinet.blogspot.com/2010/07/ms-sql-with-c.html' title='MS SQL with C#'/><author><name>Jeffery Chi</name><uri>http://www.blogger.com/profile/01777274222273910460</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_0awGwIWdbAQ/SrWo52s_aPI/AAAAAAAAAe0/sz5rSKavJMs/S220/airforcewing.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8777320242835817445.post-2062466620362012794</id><published>2010-07-19T15:02:00.001-07:00</published><updated>2010-07-19T15:04:55.819-07:00</updated><title type='text'>Microsoft.Practices.ServiceLocation.ServiceLocator</title><content type='html'>&lt;a href="http://msdn.microsoft.com/en-us/library/ff648582.aspx"&gt;http://msdn.microsoft.com/en-us/library/ff648582.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://visualstudiogallery.msdn.microsoft.com/en-us/25e4b5e9-65e4-4950-967d-5f1e6a9dcbeb"&gt;http://visualstudiogallery.msdn.microsoft.com/en-us/25e4b5e9-65e4-4950-967d-5f1e6a9dcbeb&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ff648752.aspx"&gt;http://msdn.microsoft.com/en-us/library/ff648752.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://webclientguidance.codeplex.com/"&gt;http://webclientguidance.codeplex.com/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://visualstudiogallery.msdn.microsoft.com/en-us/8fc2c9d6-5282-404b-9c58-e72b326b1e26"&gt;http://visualstudiogallery.msdn.microsoft.com/en-us/8fc2c9d6-5282-404b-9c58-e72b326b1e26&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8777320242835817445-2062466620362012794?l=jefferychinet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jefferychinet.blogspot.com/feeds/2062466620362012794/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jefferychinet.blogspot.com/2010/07/microsoftpracticesservicelocationservic.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/2062466620362012794'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/2062466620362012794'/><link rel='alternate' type='text/html' href='http://jefferychinet.blogspot.com/2010/07/microsoftpracticesservicelocationservic.html' title='Microsoft.Practices.ServiceLocation.ServiceLocator'/><author><name>Jeffery Chi</name><uri>http://www.blogger.com/profile/01777274222273910460</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_0awGwIWdbAQ/SrWo52s_aPI/AAAAAAAAAe0/sz5rSKavJMs/S220/airforcewing.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8777320242835817445.post-8499653893437705654</id><published>2010-07-18T18:56:00.001-07:00</published><updated>2010-07-18T18:56:29.573-07:00</updated><title type='text'>AI</title><content type='html'>&lt;a href="http://www.codeproject.com/KB/recipes/NeuralNetwork_1.aspx"&gt;http://www.codeproject.com/KB/recipes/NeuralNetwork_1.aspx&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8777320242835817445-8499653893437705654?l=jefferychinet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jefferychinet.blogspot.com/feeds/8499653893437705654/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jefferychinet.blogspot.com/2010/07/ai.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/8499653893437705654'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/8499653893437705654'/><link rel='alternate' type='text/html' href='http://jefferychinet.blogspot.com/2010/07/ai.html' title='AI'/><author><name>Jeffery Chi</name><uri>http://www.blogger.com/profile/01777274222273910460</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_0awGwIWdbAQ/SrWo52s_aPI/AAAAAAAAAe0/sz5rSKavJMs/S220/airforcewing.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8777320242835817445.post-1252982957503311236</id><published>2010-07-18T18:21:00.001-07:00</published><updated>2010-07-18T18:27:43.989-07:00</updated><title type='text'>Install Active Directory on Windows Server 2003</title><content type='html'>For testing purpose, I need to install active directory on one of my windows server 2003.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_0awGwIWdbAQ/TEOo9QGTSoI/AAAAAAAAAiE/ZKWUAwCggMk/s1600/1.JPG"&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 400px; DISPLAY: block; HEIGHT: 304px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5495421740569021058" border="0" alt="" src="http://2.bp.blogspot.com/_0awGwIWdbAQ/TEOo9QGTSoI/AAAAAAAAAiE/ZKWUAwCggMk/s400/1.JPG" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_0awGwIWdbAQ/TEOo97gxldI/AAAAAAAAAiM/_lLYfm4JZPA/s1600/2.JPG"&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 400px; DISPLAY: block; HEIGHT: 303px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5495421752222782930" border="0" alt="" src="http://2.bp.blogspot.com/_0awGwIWdbAQ/TEOo97gxldI/AAAAAAAAAiM/_lLYfm4JZPA/s400/2.JPG" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_0awGwIWdbAQ/TEOo-BmAr1I/AAAAAAAAAiU/ZYzk3w5Nmhw/s1600/3.JPG"&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 400px; DISPLAY: block; HEIGHT: 304px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5495421753855356754" border="0" alt="" src="http://2.bp.blogspot.com/_0awGwIWdbAQ/TEOo-BmAr1I/AAAAAAAAAiU/ZYzk3w5Nmhw/s400/3.JPG" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_0awGwIWdbAQ/TEOo-WYj-eI/AAAAAAAAAic/pApcL3LvOp0/s1600/4.JPG"&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 400px; DISPLAY: block; HEIGHT: 302px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5495421759436093922" border="0" alt="" src="http://2.bp.blogspot.com/_0awGwIWdbAQ/TEOo-WYj-eI/AAAAAAAAAic/pApcL3LvOp0/s400/4.JPG" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_0awGwIWdbAQ/TEOo-gPTnNI/AAAAAAAAAik/NB4vt3JFqKw/s1600/5.JPG"&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 400px; DISPLAY: block; HEIGHT: 306px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5495421762081627346" border="0" alt="" src="http://3.bp.blogspot.com/_0awGwIWdbAQ/TEOo-gPTnNI/AAAAAAAAAik/NB4vt3JFqKw/s400/5.JPG" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_0awGwIWdbAQ/TEOpStkmDxI/AAAAAAAAAjU/K3X4WCkTbLE/s1600/6.JPG"&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 400px; DISPLAY: block; HEIGHT: 302px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5495422109257961234" border="0" alt="" src="http://2.bp.blogspot.com/_0awGwIWdbAQ/TEOpStkmDxI/AAAAAAAAAjU/K3X4WCkTbLE/s400/6.JPG" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_0awGwIWdbAQ/TEOpTAEkfOI/AAAAAAAAAjc/Dkv8_QY4xAM/s1600/7.JPG"&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 400px; DISPLAY: block; HEIGHT: 303px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5495422114223914210" border="0" alt="" src="http://2.bp.blogspot.com/_0awGwIWdbAQ/TEOpTAEkfOI/AAAAAAAAAjc/Dkv8_QY4xAM/s400/7.JPG" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_0awGwIWdbAQ/TEOpTvdhlhI/AAAAAAAAAjk/Gq3V6CFQQvI/s1600/8.JPG"&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 400px; DISPLAY: block; HEIGHT: 307px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5495422126945048082" border="0" alt="" src="http://1.bp.blogspot.com/_0awGwIWdbAQ/TEOpTvdhlhI/AAAAAAAAAjk/Gq3V6CFQQvI/s400/8.JPG" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_0awGwIWdbAQ/TEOpUCIToEI/AAAAAAAAAjs/HZ6SzYYcKwg/s1600/9.JPG"&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 400px; DISPLAY: block; HEIGHT: 307px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5495422131956326466" border="0" alt="" src="http://1.bp.blogspot.com/_0awGwIWdbAQ/TEOpUCIToEI/AAAAAAAAAjs/HZ6SzYYcKwg/s400/9.JPG" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_0awGwIWdbAQ/TEOpUa4ILtI/AAAAAAAAAj0/lnpWnWfif7U/s1600/10.JPG"&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 400px; DISPLAY: block; HEIGHT: 303px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5495422138599354066" border="0" alt="" src="http://3.bp.blogspot.com/_0awGwIWdbAQ/TEOpUa4ILtI/AAAAAAAAAj0/lnpWnWfif7U/s400/10.JPG" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_0awGwIWdbAQ/TEOpbPBWF5I/AAAAAAAAAj8/dBaKOeG6bM4/s1600/11.JPG"&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 400px; DISPLAY: block; HEIGHT: 306px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5495422255675873170" border="0" alt="" src="http://4.bp.blogspot.com/_0awGwIWdbAQ/TEOpbPBWF5I/AAAAAAAAAj8/dBaKOeG6bM4/s400/11.JPG" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_0awGwIWdbAQ/TEOpbQWYAWI/AAAAAAAAAkE/QL8g_Z0TgHM/s1600/12.JPG"&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 400px; DISPLAY: block; HEIGHT: 301px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5495422256032514402" border="0" alt="" src="http://3.bp.blogspot.com/_0awGwIWdbAQ/TEOpbQWYAWI/AAAAAAAAAkE/QL8g_Z0TgHM/s400/12.JPG" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://technet.microsoft.com/en-us/library/aa998088(EXCHG.65).aspx"&gt;http://technet.microsoft.com/en-us/library/aa998088(EXCHG.65).aspx&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8777320242835817445-1252982957503311236?l=jefferychinet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jefferychinet.blogspot.com/feeds/1252982957503311236/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jefferychinet.blogspot.com/2010/07/install-active-directory-on-windows.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/1252982957503311236'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/1252982957503311236'/><link rel='alternate' type='text/html' href='http://jefferychinet.blogspot.com/2010/07/install-active-directory-on-windows.html' title='Install Active Directory on Windows Server 2003'/><author><name>Jeffery Chi</name><uri>http://www.blogger.com/profile/01777274222273910460</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_0awGwIWdbAQ/SrWo52s_aPI/AAAAAAAAAe0/sz5rSKavJMs/S220/airforcewing.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_0awGwIWdbAQ/TEOo9QGTSoI/AAAAAAAAAiE/ZKWUAwCggMk/s72-c/1.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8777320242835817445.post-3333721107291843237</id><published>2010-07-18T16:14:00.001-07:00</published><updated>2010-07-18T16:14:30.332-07:00</updated><title type='text'>http://yuml.me/</title><content type='html'>&lt;a href="http://yuml.me/"&gt;http://yuml.me/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8777320242835817445-3333721107291843237?l=jefferychinet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jefferychinet.blogspot.com/feeds/3333721107291843237/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jefferychinet.blogspot.com/2010/07/httpyumlme.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/3333721107291843237'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/3333721107291843237'/><link rel='alternate' type='text/html' href='http://jefferychinet.blogspot.com/2010/07/httpyumlme.html' title='http://yuml.me/'/><author><name>Jeffery Chi</name><uri>http://www.blogger.com/profile/01777274222273910460</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_0awGwIWdbAQ/SrWo52s_aPI/AAAAAAAAAe0/sz5rSKavJMs/S220/airforcewing.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8777320242835817445.post-7188199639569597684</id><published>2010-07-18T14:43:00.001-07:00</published><updated>2010-07-18T14:43:55.428-07:00</updated><title type='text'>MCTS Self-Paced Training Kit (Exam 70-433)</title><content type='html'>http://avaxhome.ws/ebooks/0735626391.html&lt;br /&gt;&lt;br /&gt;Free ebook&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8777320242835817445-7188199639569597684?l=jefferychinet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jefferychinet.blogspot.com/feeds/7188199639569597684/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jefferychinet.blogspot.com/2010/07/mcts-self-paced-training-kit-exam-70.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/7188199639569597684'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/7188199639569597684'/><link rel='alternate' type='text/html' href='http://jefferychinet.blogspot.com/2010/07/mcts-self-paced-training-kit-exam-70.html' title='MCTS Self-Paced Training Kit (Exam 70-433)'/><author><name>Jeffery Chi</name><uri>http://www.blogger.com/profile/01777274222273910460</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_0awGwIWdbAQ/SrWo52s_aPI/AAAAAAAAAe0/sz5rSKavJMs/S220/airforcewing.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8777320242835817445.post-6244951021851455436</id><published>2010-07-11T18:59:00.000-07:00</published><updated>2010-07-11T19:11:49.609-07:00</updated><title type='text'>SOLID</title><content type='html'>SRP : Single Responsbility Principle&lt;br /&gt;&lt;ul&gt;&lt;li&gt; There should never be more than one reason for a class to change.&lt;/li&gt;&lt;/ul&gt;OCP : Open Closed Principle&lt;br /&gt;&lt;ul&gt;&lt;li&gt; Software Entities (Classes, Modules, Functions, etc) should be Open for Extension, Closed for Modification. &lt;/li&gt;&lt;/ul&gt;LSP : Liskov's Substitution Principle&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Functions that use References to Base Classes must be able to use Objects of derived classes without knowing it&lt;/li&gt;&lt;/ul&gt;ISP : Interface Substitution Principle&lt;br /&gt;&lt;ul&gt;&lt;li&gt; Clients should not be forced to depend upon interfaces that they do not use. &lt;/li&gt;&lt;/ul&gt;DIP : Dependency Inversion Principle&lt;br /&gt;&lt;ul&gt;&lt;li&gt; High level modules  should not depend upon Love Level Modules,. Both should depend on Abstractions.&lt;/li&gt;&lt;li&gt;Abstractions should not dependupon details. Details shold depend upon Abstractions&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8777320242835817445-6244951021851455436?l=jefferychinet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jefferychinet.blogspot.com/feeds/6244951021851455436/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jefferychinet.blogspot.com/2010/07/solid.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/6244951021851455436'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/6244951021851455436'/><link rel='alternate' type='text/html' href='http://jefferychinet.blogspot.com/2010/07/solid.html' title='SOLID'/><author><name>Jeffery Chi</name><uri>http://www.blogger.com/profile/01777274222273910460</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_0awGwIWdbAQ/SrWo52s_aPI/AAAAAAAAAe0/sz5rSKavJMs/S220/airforcewing.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8777320242835817445.post-4951512414640675225</id><published>2010-07-07T19:13:00.001-07:00</published><updated>2010-07-07T19:17:18.310-07:00</updated><title type='text'>TSQL Rename Table Column</title><content type='html'>&lt;p&gt;Run the following Tsql Script to rename the table column :&lt;/p&gt;&lt;p&gt;/*Rename table column*/&lt;br /&gt;EXEC sp_rename&lt;br /&gt;@objname = 'tblLoanApplication.decCustomerReceiveInHand',&lt;br /&gt;@newname = 'decCustomerWillReceiveInHand',&lt;br /&gt;@objtype = 'COLUMN'&lt;/p&gt;&lt;p&gt;/*Rename table*/&lt;br /&gt;EXEC sp_rename 'OldTableName', 'NewTableName' &lt;/p&gt;&lt;p&gt;Here is an article from Microsoft about system stored procedure "sp_rename":&lt;/p&gt;&lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms188351.aspx"&gt;http://msdn.microsoft.com/en-us/library/ms188351.aspx&lt;/a&gt;&lt;/p&gt;&lt;p&gt;(Here is a list of database engine stored procedures)&lt;/p&gt;&lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms176007.aspx"&gt;http://msdn.microsoft.com/en-us/library/ms176007.aspx&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8777320242835817445-4951512414640675225?l=jefferychinet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jefferychinet.blogspot.com/feeds/4951512414640675225/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jefferychinet.blogspot.com/2010/07/tsql-rename-table-column.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/4951512414640675225'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/4951512414640675225'/><link rel='alternate' type='text/html' href='http://jefferychinet.blogspot.com/2010/07/tsql-rename-table-column.html' title='TSQL Rename Table Column'/><author><name>Jeffery Chi</name><uri>http://www.blogger.com/profile/01777274222273910460</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_0awGwIWdbAQ/SrWo52s_aPI/AAAAAAAAAe0/sz5rSKavJMs/S220/airforcewing.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8777320242835817445.post-7671562619634820152</id><published>2010-07-07T15:28:00.000-07:00</published><updated>2010-07-07T15:33:30.839-07:00</updated><title type='text'>TSQL one-to-one relationship</title><content type='html'>I also want to find out how to implement one-to-one relationship in MS SQL SERVER.&lt;br /&gt;&lt;br /&gt;Here is an excellent article on how to do this :&lt;br /&gt;&lt;br /&gt;&lt;a href="http://stackoverflow.com/questions/2137750/how-to-identify-one-to-one-one-to-relationship-using-information-schema-or-sy"&gt;http://stackoverflow.com/questions/2137750/how-to-identify-one-to-one-one-to-relationship-using-information-schema-or-sy&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;/*&lt;br /&gt;InheritedTable&lt;br /&gt;*/&lt;br /&gt;CREATE TABLE [dbo].[InheritedTable]&lt;br /&gt;(&lt;br /&gt;[InheritedId] [int] NOT NULL,&lt;br /&gt;CONSTRAINT [PK_InheritedTable] PRIMARY KEY CLUSTERED&lt;br /&gt;(&lt;br /&gt;[InheritedId] ASC&lt;br /&gt;)&lt;br /&gt;WITH&lt;br /&gt;(&lt;br /&gt;PAD_INDEX = OFF,&lt;br /&gt;STATISTICS_NORECOMPUTE = OFF,&lt;br /&gt;IGNORE_DUP_KEY = OFF,&lt;br /&gt;ALLOW_ROW_LOCKS = ON,&lt;br /&gt;ALLOW_PAGE_LOCKS = ON&lt;br /&gt;) ON [PRIMARY]&lt;br /&gt;)&lt;br /&gt;ON [PRIMARY]&lt;br /&gt;/*&lt;br /&gt;BaseTable&lt;br /&gt;*/&lt;br /&gt;CREATE TABLE [dbo].[BaseTable]&lt;br /&gt;(&lt;br /&gt;[BaseId] [int] NOT NULL,&lt;br /&gt;CONSTRAINT [PK_BaseTable] PRIMARY KEY CLUSTERED&lt;br /&gt;(&lt;br /&gt;[BaseId] ASC&lt;br /&gt;)&lt;br /&gt;WITH&lt;br /&gt;(&lt;br /&gt;PAD_INDEX = OFF,&lt;br /&gt;STATISTICS_NORECOMPUTE = OFF,&lt;br /&gt;IGNORE_DUP_KEY = OFF,&lt;br /&gt;ALLOW_ROW_LOCKS = ON,&lt;br /&gt;ALLOW_PAGE_LOCKS = ON&lt;br /&gt;) ON [PRIMARY]&lt;br /&gt;)&lt;br /&gt;ON [PRIMARY]&lt;br /&gt;/*&lt;br /&gt;Add relatinship between baseTable and InheritedTable&lt;br /&gt;*/&lt;br /&gt;ALTER TABLE&lt;br /&gt;[dbo].[BaseTable]&lt;br /&gt;WITH CHECK ADD&lt;br /&gt;CONSTRAINT [FK_BaseTable_InheritedTable]&lt;br /&gt;FOREIGN KEY&lt;br /&gt;(&lt;br /&gt;[BaseId]&lt;br /&gt;)&lt;br /&gt;REFERENCES&lt;br /&gt;[dbo].[InheritedTable]&lt;br /&gt;(&lt;br /&gt;[InheritedId]&lt;br /&gt;)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8777320242835817445-7671562619634820152?l=jefferychinet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jefferychinet.blogspot.com/feeds/7671562619634820152/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jefferychinet.blogspot.com/2010/07/tsql-one-to-one-relationship.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/7671562619634820152'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/7671562619634820152'/><link rel='alternate' type='text/html' href='http://jefferychinet.blogspot.com/2010/07/tsql-one-to-one-relationship.html' title='TSQL one-to-one relationship'/><author><name>Jeffery Chi</name><uri>http://www.blogger.com/profile/01777274222273910460</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_0awGwIWdbAQ/SrWo52s_aPI/AAAAAAAAAe0/sz5rSKavJMs/S220/airforcewing.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8777320242835817445.post-8955597066759694508</id><published>2010-07-05T18:12:00.001-07:00</published><updated>2010-07-05T19:04:16.847-07:00</updated><title type='text'>Jquery and unit testing</title><content type='html'>&lt;a href="http://api.jquery.com/jQuery.noConflict/"&gt;http://api.jquery.com/jQuery.noConflict/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://fireunit.org/"&gt;http://fireunit.org/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://docs.jquery.com/QUnit"&gt;http://docs.jquery.com/QUnit&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Microsoft naming standards :&lt;br /&gt;&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms229042.aspx"&gt;http://msdn.microsoft.com/en-us/library/ms229042.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Style sheet reset&lt;br /&gt;&lt;br /&gt;&lt;a href="http://meyerweb.com/eric/tools/css/reset/"&gt;http://meyerweb.com/eric/tools/css/reset/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;On applying oop concepts to css&lt;br /&gt;&lt;br /&gt;&lt;a href="http://jeffcroft.com/blog/2009/may/20/applying-oop-concepts-css/"&gt;http://jeffcroft.com/blog/2009/may/20/applying-oop-concepts-css/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Database third normalisation&lt;br /&gt;&lt;br /&gt;&lt;a href="http://databases.about.com/od/specificproducts/a/3nf.htm"&gt;http://databases.about.com/od/specificproducts/a/3nf.htm&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Microsoft anti-cross site scripting library :&lt;br /&gt;&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/aa973813.aspx"&gt;http://msdn.microsoft.com/en-us/library/aa973813.aspx&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8777320242835817445-8955597066759694508?l=jefferychinet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jefferychinet.blogspot.com/feeds/8955597066759694508/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jefferychinet.blogspot.com/2010/07/jquery-and-unit-testing.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/8955597066759694508'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/8955597066759694508'/><link rel='alternate' type='text/html' href='http://jefferychinet.blogspot.com/2010/07/jquery-and-unit-testing.html' title='Jquery and unit testing'/><author><name>Jeffery Chi</name><uri>http://www.blogger.com/profile/01777274222273910460</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_0awGwIWdbAQ/SrWo52s_aPI/AAAAAAAAAe0/sz5rSKavJMs/S220/airforcewing.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8777320242835817445.post-1980141266969760084</id><published>2010-06-28T14:11:00.000-07:00</published><updated>2010-06-28T16:23:50.493-07:00</updated><title type='text'>Mocking with Rhino Mocks</title><content type='html'>&lt;p&gt;&lt;a href="http://www.dimecasts.net/Content/WatchEpisode/12"&gt;http://www.dimecasts.net/Content/WatchEpisode/12&lt;/a&gt;&lt;/p&gt;&lt;p&gt;(Introduction to Mocking with Rhino Mocks)&lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8777320242835817445-1980141266969760084?l=jefferychinet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jefferychinet.blogspot.com/feeds/1980141266969760084/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jefferychinet.blogspot.com/2010/06/mocking-with-rhino-mocks.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/1980141266969760084'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/1980141266969760084'/><link rel='alternate' type='text/html' href='http://jefferychinet.blogspot.com/2010/06/mocking-with-rhino-mocks.html' title='Mocking with Rhino Mocks'/><author><name>Jeffery Chi</name><uri>http://www.blogger.com/profile/01777274222273910460</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_0awGwIWdbAQ/SrWo52s_aPI/AAAAAAAAAe0/sz5rSKavJMs/S220/airforcewing.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8777320242835817445.post-8802890372175481914</id><published>2010-06-23T17:38:00.000-07:00</published><updated>2010-06-23T18:01:13.943-07:00</updated><title type='text'>SharePoint WSP Builder</title><content type='html'>Some articles about WSPBuilder, it gives you a start from somewhere :&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.michaelbowersox.com/2009/01/18/intro-to-wspbuilder/"&gt;http://www.michaelbowersox.com/2009/01/18/intro-to-wspbuilder/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.datasprings.com/Resources/ArticlesInformation/Sharepoint2007CustomWebParts.aspx"&gt;http://www.datasprings.com/Resources/ArticlesInformation/Sharepoint2007CustomWebParts.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://blogs.msdn.com/b/wriju/archive/2008/07/01/how-to-find-public-key-token-for-a-net-dll-or-assembly.aspx"&gt;http://blogs.msdn.com/b/wriju/archive/2008/07/01/how-to-find-public-key-token-for-a-net-dll-or-assembly.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://oidatsmyleg.wordpress.com/2009/07/23/wrap-a-user-control-inside-a-web-part-using-wspbuilder/"&gt;http://oidatsmyleg.wordpress.com/2009/07/23/wrap-a-user-control-inside-a-web-part-using-wspbuilder/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8777320242835817445-8802890372175481914?l=jefferychinet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jefferychinet.blogspot.com/feeds/8802890372175481914/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jefferychinet.blogspot.com/2010/06/sharepoint-wsp-builder.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/8802890372175481914'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/8802890372175481914'/><link rel='alternate' type='text/html' href='http://jefferychinet.blogspot.com/2010/06/sharepoint-wsp-builder.html' title='SharePoint WSP Builder'/><author><name>Jeffery Chi</name><uri>http://www.blogger.com/profile/01777274222273910460</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_0awGwIWdbAQ/SrWo52s_aPI/AAAAAAAAAe0/sz5rSKavJMs/S220/airforcewing.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8777320242835817445.post-8128758267483667220</id><published>2010-06-03T06:21:00.000-07:00</published><updated>2010-06-03T06:37:52.405-07:00</updated><title type='text'>Programs</title><content type='html'>&lt;span class="Apple-style-span"   style="  ;font-family:'Times New Roman';font-size:medium;"&gt;Source code can be turned into an executable program in two ways:&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="  ;font-family:'Times New Roman';font-size:medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;ol&gt;&lt;li&gt;&lt;span class="Apple-style-span"   style="  ;font-family:'Times New Roman';font-size:medium;"&gt;Interpreters translate the source code into computer instructions, and the computer acts on those instructions immediately.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span"   style="  ;font-family:'Times New Roman';font-size:medium;"&gt;Alternatively, compilers translate source code into a program, which you can run at a later time. While interpreters are easier to work with, most serious programming is done with compilers because compiled code runs much faster&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'Times New Roman';"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'Times New Roman';"&gt;&lt;span class="Apple-style-span"  style=" ;font-size:medium;"&gt;Old-fashioned programs forced the user to proceed step-by-step through a series of screens. Modern event-driven programs present all the choices at once and respond to the user's actions.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'Times New Roman';"&gt;&lt;span class="Apple-style-span"  style=" ;font-size:medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'Times New Roman';"&gt;&lt;span class="Apple-style-span"  style=" ;font-size:medium;"&gt;Object-oriented programming attempts to respond to these needs, providing techniques for managing enormous complexity, achieving reuse of software components, and coupling data with the tasks that manipulate that data.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'Times New Roman';"&gt;&lt;span class="Apple-style-span"  style=" ;font-size:medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'Times New Roman';"&gt;&lt;span class="Apple-style-span"  style=" ;font-size:medium;"&gt;The essence of object-oriented programming is to treat data and the procedures that act upon the data as a single "object"--a self-contained entity with an identity and certain characteristics of its own&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'Times New Roman';"&gt;&lt;span class="Apple-style-span"  style=" ;font-size:medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'Times New Roman';"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;Four pillars of object-oriented development:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;ol&gt;&lt;li&gt;&lt;span class="Apple-style-span"   style="  ;font-family:'Times New Roman';font-size:medium;"&gt;Encapsulation, &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span"   style="  ;font-family:'Times New Roman';font-size:medium;"&gt;Data hiding, &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span"   style="  ;font-family:'Times New Roman';font-size:medium;"&gt;Inheritance, &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span"   style="  ;font-family:'Times New Roman';font-size:medium;"&gt;Polymorphism. &lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'Times New Roman';"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'Times New Roman';"&gt;&lt;span class="Apple-style-span"  style=" ;font-size:medium;"&gt;The property of being a self-contained unit is called encapsulation. With encapsulation, we can accomplish data hiding. Data hiding is the highly valued characteristic that an object can be used without the user knowing or caring how it works internally. Just as you can use a refrigerator without knowing how the compressor works, you can use a well-designed object without knowing about its internal data members.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'Times New Roman';"&gt;&lt;span class="Apple-style-span"  style=" ;font-size:medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'Times New Roman';"&gt;&lt;span class="Apple-style-span"  style=" ;font-size:medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8777320242835817445-8128758267483667220?l=jefferychinet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jefferychinet.blogspot.com/feeds/8128758267483667220/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jefferychinet.blogspot.com/2010/06/programs.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/8128758267483667220'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/8128758267483667220'/><link rel='alternate' type='text/html' href='http://jefferychinet.blogspot.com/2010/06/programs.html' title='Programs'/><author><name>Jeffery Chi</name><uri>http://www.blogger.com/profile/01777274222273910460</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_0awGwIWdbAQ/SrWo52s_aPI/AAAAAAAAAe0/sz5rSKavJMs/S220/airforcewing.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8777320242835817445.post-3553202763987860836</id><published>2010-06-03T01:04:00.000-07:00</published><updated>2010-06-03T01:13:37.181-07:00</updated><title type='text'>TortoiseSVN Manual</title><content type='html'>http://www.poedit.net/download.php&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8777320242835817445-3553202763987860836?l=jefferychinet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jefferychinet.blogspot.com/feeds/3553202763987860836/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jefferychinet.blogspot.com/2010/06/tortoisesvn-manual.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/3553202763987860836'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/3553202763987860836'/><link rel='alternate' type='text/html' href='http://jefferychinet.blogspot.com/2010/06/tortoisesvn-manual.html' title='TortoiseSVN Manual'/><author><name>Jeffery Chi</name><uri>http://www.blogger.com/profile/01777274222273910460</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_0awGwIWdbAQ/SrWo52s_aPI/AAAAAAAAAe0/sz5rSKavJMs/S220/airforcewing.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8777320242835817445.post-2516277851009454238</id><published>2010-06-03T00:47:00.000-07:00</published><updated>2010-06-03T00:49:05.662-07:00</updated><title type='text'>TO DO LIST</title><content type='html'>WCF&lt;br /&gt;&lt;br /&gt;WPF&lt;br /&gt;&lt;br /&gt;SILVERLIGHT&lt;br /&gt;&lt;br /&gt;MOSS 2010&lt;br /&gt;&lt;br /&gt;.NET FRAMEWORK 4&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8777320242835817445-2516277851009454238?l=jefferychinet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jefferychinet.blogspot.com/feeds/2516277851009454238/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jefferychinet.blogspot.com/2010/06/to-do-list.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/2516277851009454238'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/2516277851009454238'/><link rel='alternate' type='text/html' href='http://jefferychinet.blogspot.com/2010/06/to-do-list.html' title='TO DO LIST'/><author><name>Jeffery Chi</name><uri>http://www.blogger.com/profile/01777274222273910460</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_0awGwIWdbAQ/SrWo52s_aPI/AAAAAAAAAe0/sz5rSKavJMs/S220/airforcewing.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8777320242835817445.post-3970498331948256820</id><published>2010-06-03T00:41:00.000-07:00</published><updated>2010-06-03T00:44:43.835-07:00</updated><title type='text'>NZ Sharepoing User Group</title><content type='html'>http://www.sharepointusergroup.net.nz/wellington/default.aspx&lt;br /&gt;&lt;br /&gt;http://www.chakkaradeep.com/&lt;br /&gt;&lt;br /&gt;(Sharepoing conference)&lt;br /&gt;http://www.sharepointconference.co.nz/&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;http://www.dot.net.nz/default.aspx&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8777320242835817445-3970498331948256820?l=jefferychinet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jefferychinet.blogspot.com/feeds/3970498331948256820/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jefferychinet.blogspot.com/2010/06/nz-sharepoing-user-group.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/3970498331948256820'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/3970498331948256820'/><link rel='alternate' type='text/html' href='http://jefferychinet.blogspot.com/2010/06/nz-sharepoing-user-group.html' title='NZ Sharepoing User Group'/><author><name>Jeffery Chi</name><uri>http://www.blogger.com/profile/01777274222273910460</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_0awGwIWdbAQ/SrWo52s_aPI/AAAAAAAAAe0/sz5rSKavJMs/S220/airforcewing.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8777320242835817445.post-2338336632602393488</id><published>2010-05-26T20:22:00.000-07:00</published><updated>2010-05-26T20:24:01.484-07:00</updated><title type='text'>Moss Screen Sho0t</title><content type='html'>&lt;a href="http://1.bp.blogspot.com/_0awGwIWdbAQ/S_3lwafgSUI/AAAAAAAAAh8/mq1tkRUYg6M/s1600/sp_sdk_fetch_lists.JPG"&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 400px; DISPLAY: block; HEIGHT: 250px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5475785341860333890" border="0" alt="" src="http://1.bp.blogspot.com/_0awGwIWdbAQ/S_3lwafgSUI/AAAAAAAAAh8/mq1tkRUYg6M/s400/sp_sdk_fetch_lists.JPG" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;&lt;a href="http://4.bp.blogspot.com/_0awGwIWdbAQ/S_3lwKvwnnI/AAAAAAAAAh0/1U2CLe_0zGo/s1600/sp_sdk_admin_functions.JPG"&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 141px; DISPLAY: block; HEIGHT: 400px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5475785337633545842" border="0" alt="" src="http://4.bp.blogspot.com/_0awGwIWdbAQ/S_3lwKvwnnI/AAAAAAAAAh0/1U2CLe_0zGo/s400/sp_sdk_admin_functions.JPG" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;a href="http://3.bp.blogspot.com/_0awGwIWdbAQ/S_3lvvVxOXI/AAAAAAAAAhs/tri5P0tEq2w/s1600/sp_3.JPG"&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 400px; DISPLAY: block; HEIGHT: 374px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5475785330276776306" border="0" alt="" src="http://3.bp.blogspot.com/_0awGwIWdbAQ/S_3lvvVxOXI/AAAAAAAAAhs/tri5P0tEq2w/s400/sp_3.JPG" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;a href="http://4.bp.blogspot.com/_0awGwIWdbAQ/S_3lvCj4R4I/AAAAAAAAAhk/dCOjaPHD1zc/s1600/sp_2.JPG"&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 400px; DISPLAY: block; HEIGHT: 305px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5475785318256363394" border="0" alt="" src="http://4.bp.blogspot.com/_0awGwIWdbAQ/S_3lvCj4R4I/AAAAAAAAAhk/dCOjaPHD1zc/s400/sp_2.JPG" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;a href="http://1.bp.blogspot.com/_0awGwIWdbAQ/S_3luiHDLCI/AAAAAAAAAhc/RYD38QCry7g/s1600/sp_1.JPG"&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 400px; DISPLAY: block; HEIGHT: 281px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5475785309545507874" border="0" alt="" src="http://1.bp.blogspot.com/_0awGwIWdbAQ/S_3luiHDLCI/AAAAAAAAAhc/RYD38QCry7g/s400/sp_1.JPG" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8777320242835817445-2338336632602393488?l=jefferychinet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jefferychinet.blogspot.com/feeds/2338336632602393488/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jefferychinet.blogspot.com/2010/05/moss-screen-sho0t.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/2338336632602393488'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/2338336632602393488'/><link rel='alternate' type='text/html' href='http://jefferychinet.blogspot.com/2010/05/moss-screen-sho0t.html' title='Moss Screen Sho0t'/><author><name>Jeffery Chi</name><uri>http://www.blogger.com/profile/01777274222273910460</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_0awGwIWdbAQ/SrWo52s_aPI/AAAAAAAAAe0/sz5rSKavJMs/S220/airforcewing.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_0awGwIWdbAQ/S_3lwafgSUI/AAAAAAAAAh8/mq1tkRUYg6M/s72-c/sp_sdk_fetch_lists.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8777320242835817445.post-3696905395815944696</id><published>2010-05-26T17:53:00.000-07:00</published><updated>2010-05-26T18:15:33.782-07:00</updated><title type='text'>Style sheet position</title><content type='html'>&lt;a href="http://www.positioniseverything.net/"&gt;http://www.positioniseverything.net/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://browsershots.org/"&gt;http://browsershots.org/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8777320242835817445-3696905395815944696?l=jefferychinet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jefferychinet.blogspot.com/feeds/3696905395815944696/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jefferychinet.blogspot.com/2010/05/style-sheet-position.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/3696905395815944696'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/3696905395815944696'/><link rel='alternate' type='text/html' href='http://jefferychinet.blogspot.com/2010/05/style-sheet-position.html' title='Style sheet position'/><author><name>Jeffery Chi</name><uri>http://www.blogger.com/profile/01777274222273910460</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_0awGwIWdbAQ/SrWo52s_aPI/AAAAAAAAAe0/sz5rSKavJMs/S220/airforcewing.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8777320242835817445.post-3932046707222639559</id><published>2010-05-26T17:45:00.000-07:00</published><updated>2010-05-26T17:46:02.947-07:00</updated><title type='text'>Good sharepoint blog</title><content type='html'>&lt;a href="http://www.chakkaradeep.com/"&gt;http://www.chakkaradeep.com/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8777320242835817445-3932046707222639559?l=jefferychinet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jefferychinet.blogspot.com/feeds/3932046707222639559/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jefferychinet.blogspot.com/2010/05/good-sharepoint-blog.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/3932046707222639559'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/3932046707222639559'/><link rel='alternate' type='text/html' href='http://jefferychinet.blogspot.com/2010/05/good-sharepoint-blog.html' title='Good sharepoint blog'/><author><name>Jeffery Chi</name><uri>http://www.blogger.com/profile/01777274222273910460</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_0awGwIWdbAQ/SrWo52s_aPI/AAAAAAAAAe0/sz5rSKavJMs/S220/airforcewing.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8777320242835817445.post-3215357450771776384</id><published>2010-05-26T00:44:00.001-07:00</published><updated>2010-05-26T00:49:38.822-07:00</updated><title type='text'>Deploy SharePoint solution</title><content type='html'>Remind myself how to do this :&lt;br /&gt;&lt;br /&gt;Step 1 : Create web application in sharepoint "Central Administration"&lt;br /&gt;&lt;br /&gt;Step 2: Build WSP using "wsp builder"&lt;br /&gt;&lt;br /&gt;Step 3: Deploy WSP&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;@echo off&lt;br /&gt;echo.&lt;br /&gt;echo (1 of 3) Installing TEST.SharePoint.Careers...&lt;br /&gt;call add_deploy_wsp.bat&lt;br /&gt;echo.&lt;br /&gt;echo (2 of 3) Installing TEST.SharePoint....&lt;br /&gt;cd ..\TEST.SharePoint\&lt;br /&gt;call add_deploy_wsp.bat&lt;br /&gt;echo.&lt;br /&gt;echo (3 of 3) Performing iisreset...&lt;br /&gt;iisreset&lt;br /&gt;pause&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;&lt;br /&gt;@echo off&lt;br /&gt;&lt;br /&gt;set stsadm="C:\Program Files\Common Files\microsoft shared\Web Server Extensions\12\BIN\"&lt;br /&gt;set siteurl="http://Testcecareers"&lt;br /&gt;&lt;br /&gt;echo.&lt;br /&gt;echo stsadm: %stsadm%&lt;br /&gt;echo siteurl: %siteurl%&lt;br /&gt;echo.&lt;br /&gt;&lt;br /&gt;echo retracting old solution...&lt;br /&gt;%stsadm%stsadm -o retractsolution -name TEST.SharePoint.Careers.wsp -local -url %siteurl%&lt;br /&gt;&lt;br /&gt;echo removing old solution...&lt;br /&gt;%stsadm%stsadm -o deletesolution -name TEST.SharePoint.Careers.wsp&lt;br /&gt;&lt;br /&gt;echo adding new solution...&lt;br /&gt;%stsadm%stsadm -o addsolution -filename TEST.SharePoint.Careers.wsp&lt;br /&gt;&lt;br /&gt;echo deploying new solution...&lt;br /&gt;%stsadm%stsadm -o deploysolution -name TEST.SharePoint.Careers.wsp -allowGacDeployment -local -url %siteurl%&lt;br /&gt;&lt;br /&gt;pause&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;Step 4 : Create site&lt;br /&gt;&lt;br /&gt;Create_sitecollection.bat&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;@echo off&lt;br /&gt;set stsadm="C:\Program Files\Common Files\microsoft shared\Web Server Extensions\12\BIN\"&lt;br /&gt;set siteurl="http://Testcecareers"&lt;br /&gt;set owneremail="administrator@Test.govt.nz"&lt;br /&gt;echo.&lt;br /&gt;echo stsadm: %stsadm%&lt;br /&gt;echo siteurl: %siteurl%&lt;br /&gt;echo owneremail: %owneremail%&lt;br /&gt;echo.&lt;br /&gt;echo Deleting old site collection...&lt;br /&gt;%stsadm%\stsadm.exe -o deletesite -url %siteurl%&lt;br /&gt;::-sitetemplate refers to the folder in which the template file is stored. in this case AirForceCareers the number refers to the actual definition&lt;br /&gt;echo Creating new site collection...&lt;br /&gt;%stsadm%\stsadm.exe -o createsite -url %siteurl% -ownerlogin Administrator -ownername Administrator -owneremail %owneremail% -sitetemplate TestCareers#0&lt;br /&gt;pause&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8777320242835817445-3215357450771776384?l=jefferychinet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jefferychinet.blogspot.com/feeds/3215357450771776384/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jefferychinet.blogspot.com/2010/05/deploy-sharepoint-solution.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/3215357450771776384'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/3215357450771776384'/><link rel='alternate' type='text/html' href='http://jefferychinet.blogspot.com/2010/05/deploy-sharepoint-solution.html' title='Deploy SharePoint solution'/><author><name>Jeffery Chi</name><uri>http://www.blogger.com/profile/01777274222273910460</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_0awGwIWdbAQ/SrWo52s_aPI/AAAAAAAAAe0/sz5rSKavJMs/S220/airforcewing.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8777320242835817445.post-3252335980073926276</id><published>2010-05-25T14:37:00.000-07:00</published><updated>2010-05-25T14:40:16.057-07:00</updated><title type='text'>cannot open backup device operating system error 5 error not found</title><content type='html'>I was trying to restore a .bak file when I logined as a domain user.  Then I run into this error "cannot open backup device operating system error 5 error not found".&lt;br /&gt;&lt;br /&gt;After some search on the net,  "added NETWORK SERVICE to the folder" solved the problem.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8777320242835817445-3252335980073926276?l=jefferychinet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jefferychinet.blogspot.com/feeds/3252335980073926276/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jefferychinet.blogspot.com/2010/05/cannot-open-backup-device-operating.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/3252335980073926276'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/3252335980073926276'/><link rel='alternate' type='text/html' href='http://jefferychinet.blogspot.com/2010/05/cannot-open-backup-device-operating.html' title='cannot open backup device operating system error 5 error not found'/><author><name>Jeffery Chi</name><uri>http://www.blogger.com/profile/01777274222273910460</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_0awGwIWdbAQ/SrWo52s_aPI/AAAAAAAAAe0/sz5rSKavJMs/S220/airforcewing.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8777320242835817445.post-5660419920069470375</id><published>2010-05-23T19:30:00.000-07:00</published><updated>2010-05-23T19:31:15.079-07:00</updated><title type='text'>AjaxLoad</title><content type='html'>&lt;a href="http://ajaxload.info/"&gt;http://ajaxload.info&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8777320242835817445-5660419920069470375?l=jefferychinet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jefferychinet.blogspot.com/feeds/5660419920069470375/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jefferychinet.blogspot.com/2010/05/ajaxload.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/5660419920069470375'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/5660419920069470375'/><link rel='alternate' type='text/html' href='http://jefferychinet.blogspot.com/2010/05/ajaxload.html' title='AjaxLoad'/><author><name>Jeffery Chi</name><uri>http://www.blogger.com/profile/01777274222273910460</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_0awGwIWdbAQ/SrWo52s_aPI/AAAAAAAAAe0/sz5rSKavJMs/S220/airforcewing.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8777320242835817445.post-4804748805867370126</id><published>2010-05-23T07:07:00.000-07:00</published><updated>2010-05-23T07:28:03.271-07:00</updated><title type='text'>MOSS Development 5</title><content type='html'>http://geekswithblogs.net/mcassell/archive/2007/08/22/Accessing-Sharepoint-Data-through-Web-Services.aspx&lt;br /&gt;&lt;br /&gt;http://www.codeguru.com/csharp/csharp/cs_network/internetweb/article.php/c8805&lt;br /&gt;&lt;br /&gt;http://www.c-sharpcorner.com/UploadFile/mahesh/WSSInNet01302007093018AM/WSSInNet.aspx&lt;br /&gt;&lt;br /&gt;http://msdn.microsoft.com/en-us/library/ms479390%28office.12%29.aspx&lt;br /&gt;&lt;br /&gt;http://www.developer.com/tech/article.php/3104621/SharePoint-and-Web-Services.htm&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8777320242835817445-4804748805867370126?l=jefferychinet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jefferychinet.blogspot.com/feeds/4804748805867370126/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jefferychinet.blogspot.com/2010/05/moss-development-5.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/4804748805867370126'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/4804748805867370126'/><link rel='alternate' type='text/html' href='http://jefferychinet.blogspot.com/2010/05/moss-development-5.html' title='MOSS Development 5'/><author><name>Jeffery Chi</name><uri>http://www.blogger.com/profile/01777274222273910460</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_0awGwIWdbAQ/SrWo52s_aPI/AAAAAAAAAe0/sz5rSKavJMs/S220/airforcewing.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8777320242835817445.post-5070604501049902656</id><published>2010-05-23T04:25:00.000-07:00</published><updated>2010-05-23T05:38:29.175-07:00</updated><title type='text'>MOSS Development 4</title><content type='html'>&lt;span style="color: rgb(153, 0, 0); font-weight: bold;"&gt;Feature&lt;/span&gt;&lt;br /&gt;Microsoft also added capabilities to the Feature framework to deploy certain custom code solutions such as event receivers, document converters, and custom workflow templates.&lt;br /&gt;&lt;br /&gt;This activation and deactivation of a Feature provides developers and site administrators with the capability to toggle functionality on or off with ease via the browser interface.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;All SharePoint Features live in a special folder within the SharePoint 12 folder — specifically, in&lt;br /&gt;[..]\12\TEMPLATE\FEATURES . The FEATURES folder contains folders for each Feature that has been deployed to the server. After a clean Office SharePoint Server (MOSS) 2007 installation, the FEATURES folder will contain more than 130 folders, each signifying a Feature that is part of the out - of - the - box (OOTB) MOSS 2007 installation.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;To create a new Feature, create a new folder in the FEATURES folder such as MyFirstFeature . Every Feature must have &lt;span style="color: rgb(204, 0, 0); font-weight: bold;"&gt;a definition file containing all the information that SharePoint needs to know about the Feature.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;The following Collaborative Application Markup Language (CAML)&lt;br /&gt;&lt;pre class="csharpcode"&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt; ?xml version="1.0" encoding="utf-8"? &lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt; Feature xmlns="http://schemas.microsoft.com/sharepoint/" Id="32DECDEF-C37C-4AC3-BA65-D49639668E7C"&lt;br /&gt;Title="My First Feature"&lt;br /&gt;Description="The simplest Feature ever."&lt;br /&gt;Hidden="FALSE"&lt;br /&gt;Scope="Web"&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt; /Feature &lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;Once the definition has been created and saved into a new folder within the FEATURES folder, SharePoint must then be made aware of the Feature. This is done by installing the Feature using STSADM.EXE and the installfeature operation:&lt;br /&gt;stsadm.exe – o installfeature – name MyFirstFeature&lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 0, 0); font-weight: bold;"&gt;Feature Scope&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Web (SharePoint site) --Applies to a specific SharePoint site .&lt;br /&gt;&lt;br /&gt;Site (site collection) -- Applies to a SharePoint site collection and all SharePoint sites within the&lt;br /&gt;site collection .&lt;br /&gt;&lt;br /&gt;WebApplication --Applies to a SharePoint extended Web application, all site collections within&lt;br /&gt;the Web application, and all sites within those site collections .&lt;br /&gt;&lt;br /&gt;Farm -- Applies to a SharePoint farm, all SharePoint extended Web applications, all&lt;br /&gt;site collections, and all SharePoint sites within the SharePoint farm .&lt;br /&gt;&lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;&lt;br /&gt;Element Manifests&lt;br /&gt;&lt;br /&gt;Element manifests, another type of XML file found in a Feature ’ s folder, contains CAML that defines site elements. The SharePoint Feature schema contains many different types of site elements.&lt;br /&gt;&lt;br /&gt;Once an element manifest file has been created, it needs to be associated with the Feature. To do this, create a  ElementManifests  node that contains  ElementManifest  nodes containing a reference to the element manifest files in the Feature&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;&lt;br /&gt;&lt;pre class="csharpcode"&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt; ?xml version=”1.0” encoding=”utf-8”? &lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt; Feature xmlns=”http://schemas.microsoft.com/sharepoint/”&lt;br /&gt;Id=”32DECDEF-C37C-4ac3-BA65-D49639668E7C”&lt;br /&gt;Title=”My First Feature”&lt;br /&gt;Description=”The simplest Feature ever.”&lt;br /&gt;Hidden=”FALSE”&lt;br /&gt;Scope=”Web” &lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt; ElementManifests &lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt; ElementManifest Location=”elements.xml”/ &lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt; /ElementManifests &lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt; /Feature &lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;hr /&gt;Feature Receivers&lt;br /&gt;&lt;br /&gt;Microsoft anticipated such as scenario and added the capability for developers to write event&lt;br /&gt;handlers for certain events within an assembly.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;FeatureInstalled&lt;br /&gt;FeatureActivated&lt;br /&gt;FeatureDeactivating&lt;br /&gt;FeatureUninstalling&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;developers must create a new class that inherits from &lt;span style="color: rgb(51, 51, 255);"&gt;Microsoft.SharePoint.SPFeatureReceiver &lt;/span&gt;and implements all four events&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;&lt;br /&gt;&lt;pre class="csharpcode"&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System;&lt;br /&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; Microsoft.SharePoint;&lt;br /&gt;&lt;span class="kwrd"&gt;namespace&lt;/span&gt; WROX&lt;br /&gt;{&lt;br /&gt;&lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;class&lt;/span&gt; MyFirstFeatureReceiver : SPFeatureReceiver&lt;br /&gt;{&lt;br /&gt;    &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;override&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; FeatureActivated (SPFeatureReceiverProperties properties)&lt;br /&gt;    {&lt;br /&gt;    SPWeb site = properties.Feature.Parent &lt;span class="kwrd"&gt;as&lt;/span&gt; SPWeb;&lt;br /&gt;    &lt;span class="rem"&gt;// save current site’s title&lt;/span&gt;&lt;br /&gt;    site.Properties[&lt;span class="str"&gt;"SiteTitle"&lt;/span&gt;] = site.Title;&lt;br /&gt;    site.Properties.Update();&lt;br /&gt;    &lt;span class="rem"&gt;// change the site title&lt;/span&gt;&lt;br /&gt;    site.Title = DateTime.Now.ToString();&lt;br /&gt;    site.Update();&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;override&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; FeatureDeactivating (SPFeatureReceiverProperties properties)&lt;br /&gt;    {&lt;br /&gt;    SPWeb site = properties.Feature.Parent &lt;span class="kwrd"&gt;as&lt;/span&gt; SPWeb;&lt;br /&gt;    &lt;span class="rem"&gt;// reset the site’s title&lt;/span&gt;&lt;br /&gt;    site.Title = site.Properties[&lt;span class="str"&gt;"SiteTitle"&lt;/span&gt;].ToString();&lt;br /&gt;    site.Update();&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;override&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; FeatureInstalled (SPFeatureReceiverProperties properties)&lt;br /&gt;    {&lt;br /&gt;    &lt;span class="rem"&gt;// do nothing&lt;/span&gt;&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;override&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; FeatureUninstalling (SPFeatureReceiverProperties properties)&lt;br /&gt;    {&lt;br /&gt;    &lt;span class="rem"&gt;// do nothing&lt;/span&gt;&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;&lt;br /&gt;Once the assembly containing the Feature receiver has been compiled and deployed to the GAC, the F&lt;span style="color: rgb(204, 0, 0);"&gt;eature must be configured to call the event handlers in the Feature receiver class.&lt;/span&gt; To do this, add two new attributes to the &lt;&gt; node in the feature.xml definition file: ReceiverAssembly , which contains the assembly ’ s strong name (aka its four - part name) and the ReceiverClass , which contains a fully qualified name to the Feature receiver,&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;&lt;br /&gt;&lt;pre class="csharpcode"&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt; ?xml version=”1.0” encoding=”utf-8”? &lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt; Feature xmlns=”http://schemas.microsoft.com/sharepoint/”&lt;br /&gt;Id=”32DECDEF-C37C-4ac3-BA65-D49639668E7C”&lt;br /&gt;Title=”My First Feature”&lt;br /&gt;Description=”The simplest Feature ever.”&lt;br /&gt;Hidden=”FALSE”&lt;br /&gt;Scope=”Web”&lt;br /&gt;ReceiverAssembly=”MyFirstFeature, Version=1.0.0.0, Culture=neutral,&lt;br /&gt;PublicKeyToken=c591e70cfdf9ce4f”&lt;br /&gt;ReceiverClass=”WROX.MyFirstFeatureReceiver” &lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt; /Feature &lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;&lt;br /&gt;Features can only be installed in one of three ways: using STSADM.EXE , using WSS solution&lt;br /&gt;packages (covered later in the chapter), or via the SharePoint API.&lt;br /&gt;&lt;br /&gt;STSADM.EXE operation installfeature / uninstallfeature&lt;br /&gt;&lt;br /&gt;stsadm.exe -o activatefeature -name myfirstfeature -url http://wss1&lt;br /&gt;&lt;br /&gt;Another capability at the disposal of SharePoint developers and administrators is the&lt;span style="color: rgb(153, 0, 0);"&gt; visibility of a Feature. &lt;/span&gt;Within the Feature definition file, feature.xml , the &lt; hidden=" ”"&gt; attribute can be used to hide or show a Feature in the browser interface. By default, all Features are visible ( Hidden=FALSE ). When would a Feature need to be hidden? Consider a Feature that added functionality or a site element to a site collection; its activation state should not be delegated to site owners; instead, SharePoint farm administrators should be the ones required to activate or deactivate this special Feature for a site collection.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 0, 0);"&gt;Feature Dependencies and Stapling Features&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;&lt;br /&gt;&lt;pre class="csharpcode"&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt; ?xml version=”1.0” encoding=”utf-8”? &lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt; Feature xmlns=”http://schemas.microsoft.com/sharepoint/”&lt;br /&gt;Id=”32DECDEF-C37C-4ac3-BA65-D49639668E7C”&lt;br /&gt;Title=”My First Feature”&lt;br /&gt;Description=”The simplest Feature ever.”&lt;br /&gt;Hidden=”FALSE”&lt;br /&gt;Scope=”Web” &lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt; ElementManifests &lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt; ElementManifest Location=”elements.xml”/ &lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt; /ElementManifests &lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt; ActivationDependencies &lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt; ActivationDependency FeatureId=”00BFEA71-7E6D-4186-9BA8-C047AC750105” / &lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt; /ActivationDependencies &lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt; /Feature &lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;&lt;br /&gt;Once a Feature has been stapled to a site template, any future sites&lt;br /&gt;provisioned using the site template will automatically activate the stapled Feature. This enables&lt;br /&gt;developers to customize site templates without actually changing the site template itself; instead they&lt;br /&gt;can append functionality without touching the source files that make up the site template.&lt;br /&gt;&lt;br /&gt;&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;&lt;br /&gt;&lt;pre class="csharpcode"&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt; ?xml version=”1.0” encoding=”utf-8”? &lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt; Elements xmlns=”http://schemas.microsoft.com/sharepoint/” &lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt; FeatureSiteTemplateAssociation Id=”32DECDEF-C37C-4ac3-BA65-D49639668E7C”&lt;br /&gt;TemplateName=”STS#1” / &lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt; /Elements &lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;&lt;br /&gt;Creating Features Using Visual Studio&lt;br /&gt;&lt;br /&gt;When using Visual Studio to create projects, use either the VB.NET/C# Class Library (when creating a Feature that contains any compiled code) or the Empty Project template (when the Feature won ’ t contain any compiled code). With a project created, mimic the folder structure under the SharePoint 12 folder in the project.&lt;br /&gt;&lt;br /&gt;A WSS solution package contains two things: all the files required in the deployment and an instruction file telling SharePoint what to do with these files. Everything is packaged together into a Microsoft cabinet file with a file extension of *.WSP (for WSS solution package). This package is then added to the SharePoint farm ’ s solution store using STSADM.EXE .&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Assemblies&lt;/li&gt;&lt;li&gt;Anything to the SharePoint 12 folder&lt;/li&gt;&lt;li&gt;Custom Code Access Security policies CAS policies are typically stored in the [..]\12\&lt;br /&gt;CONFIG folder, but what is special about the WSS solution package deployment method is that developers include what additions to make to a CAS policy and SharePoint adds the changes to a copy of the currently used CAS policy&lt;/li&gt;&lt;li&gt;Web Part definitions and resource - Deployment of Web Parts can include many different&lt;br /&gt;files. Web Part definition files ( *.webpart ) can be deployed to a site collection ’ s Web Part&lt;br /&gt;Gallery (to deploy a Web Part to a specific site collection) or to the wpcatalog directory within a Web application ’ s webroot on the file system (to deploy the Web Part to all site collections within a SharePoint extended Web application).&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8777320242835817445-5070604501049902656?l=jefferychinet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jefferychinet.blogspot.com/feeds/5070604501049902656/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jefferychinet.blogspot.com/2010/05/moss-development-4.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/5070604501049902656'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/5070604501049902656'/><link rel='alternate' type='text/html' href='http://jefferychinet.blogspot.com/2010/05/moss-development-4.html' title='MOSS Development 4'/><author><name>Jeffery Chi</name><uri>http://www.blogger.com/profile/01777274222273910460</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_0awGwIWdbAQ/SrWo52s_aPI/AAAAAAAAAe0/sz5rSKavJMs/S220/airforcewing.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8777320242835817445.post-2809025790385274717</id><published>2010-05-23T04:00:00.001-07:00</published><updated>2010-05-23T04:24:20.012-07:00</updated><title type='text'>MOSS Development 3</title><content type='html'>&lt;ol&gt;&lt;li&gt;Collaboration — Document libraries/tasks/calendars, blogs, wikis, e - mail integration, project management “ lite, ” Office Outlook 2007 integration, offline documents, and lists.&lt;/li&gt;&lt;li&gt;Portal — Enterprise portal template, site directory, my sites, social networking, and privacycontrol .&lt;/li&gt;&lt;li&gt;Search — Enterprise scalability, contextual relevance, rich people and business data search&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Content Management — Integrated document management, records management, WCM with policies and workflow .&lt;/li&gt;&lt;li&gt;Business Forms — Rich and Web - forms - based front ends, line of business (LOB) actions, pluggable single sign - on (SSO) .&lt;/li&gt;&lt;li&gt;Business Intelligence — Server - based Office Excel 2007 spreadsheets and data visualization, report center, BI Web Parts, key performance indicators (KPIs)/dashboards .&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;Microsoft.SharePoint.Publishing.PublishingSite&lt;br /&gt;&lt;br /&gt;Provides access to Publishing Features on a SPSite object .&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Microsoft.SharePoint.Publishing.PublishingWeb&lt;br /&gt;&lt;br /&gt;Provides access to Publishing Features on a SPWeb object — e.g., accessing the pages collection,&lt;br /&gt;accessing other objects in the hierarchy, or executing queries directly .&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Microsoft.SharePoint.Publishing.PublishingPage&lt;br /&gt;&lt;br /&gt;Provides access to Publishing Features on a SPListItem object. A page is an extended SPList object.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Enumerating Publishing sites&lt;br /&gt;&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;&lt;br /&gt;&lt;pre class="csharpcode"&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System;&lt;br /&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.ComponentModel;&lt;br /&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Web;&lt;br /&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Web.UI;&lt;br /&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Web.UI.WebControls;&lt;br /&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; Microsoft.SharePoint;&lt;br /&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; Microsoft.SharePoint.Publishing;&lt;br /&gt;&lt;span class="kwrd"&gt;namespace&lt;/span&gt; EnumerateSites&lt;br /&gt;{&lt;br /&gt;  &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;class&lt;/span&gt; EnumerateSitesInSiteCollection : WebControl&lt;br /&gt;  {&lt;br /&gt;&lt;br /&gt;      &lt;span class="kwrd"&gt;protected&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; ListWebs (PublishingWeb pubWeb, HtmlTextWriter output)&lt;br /&gt;      {&lt;br /&gt;          output.Write(&lt;span class="kwrd"&gt;string&lt;/span&gt;.Format(&lt;span class="str"&gt;"&amp;lt; A href=\"{0}\"&amp;gt; {1} &amp;lt; /A &amp;gt;"&lt;/span&gt;, pubWeb.Url,pubWeb.Title));&lt;br /&gt;          &lt;span class="kwrd"&gt;foreach&lt;/span&gt; (PublishingWeb childPubWeb &lt;span class="kwrd"&gt;in&lt;/span&gt; pubWeb.GetPublishingWebs())&lt;br /&gt;          {&lt;br /&gt;              ListWebs(childPubWeb, output);&lt;br /&gt;          }&lt;br /&gt;      }&lt;br /&gt;&lt;br /&gt;      &lt;span class="kwrd"&gt;protected&lt;/span&gt; &lt;span class="kwrd"&gt;override&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; RenderContents (HtmlTextWriter output)&lt;br /&gt;      {&lt;br /&gt;          &lt;span class="kwrd"&gt;using&lt;/span&gt; (SPSite site = SPContext.Current.Site)&lt;br /&gt;          {&lt;br /&gt;              output.Write(&lt;span class="str"&gt;"&amp;lt; H1 &amp;gt; Sites in Site Collection &amp;lt; /H1 &amp;gt; &amp;lt; BR &amp;gt; "&lt;/span&gt;);&lt;br /&gt;              &lt;span class="kwrd"&gt;foreach&lt;/span&gt; (SPWeb site &lt;span class="kwrd"&gt;in&lt;/span&gt; site.AllWebs)&lt;br /&gt;              {&lt;br /&gt;                  &lt;span class="kwrd"&gt;if&lt;/span&gt; (PublishingWeb.IsPublishingWeb(site))&lt;br /&gt;                  {&lt;br /&gt;                      PublishingWeb publishingWeb = PublishingWeb.GetPublishingWeb(site);&lt;br /&gt;                      ListWebs(publishingWeb, output);&lt;br /&gt;                  }&lt;br /&gt;              }&lt;br /&gt;          }&lt;br /&gt;      }&lt;br /&gt;  }&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;Creating Publishing sites&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;&lt;br /&gt;&lt;pre class="csharpcode"&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; (SPWeb web = SPControl.GetContextWeb(Context))&lt;br /&gt;{&lt;br /&gt;  PublishingWeb pubWeb = PublishingWeb.GetPublishingWeb(web);&lt;br /&gt;  PublishingWeb newWeb = pubWeb.GetPublishingWebs().Add(“SiteName”);&lt;br /&gt;  newWeb.Title = “Display Name”;&lt;br /&gt;  newWeb.Description = “Description of Site”;&lt;br /&gt;  newWeb.Update();&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;Creating Publishing pages&lt;br /&gt;&lt;pre class="csharpcode"&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; (SPWeb web = SPControl.GetContextWeb(HttpContext.Current))&lt;br /&gt;{&lt;br /&gt;  PublishingWeb pubWeb = PublishingWeb.GetPublishingWeb(web);&lt;br /&gt;  PageLayout layout = &lt;span class="kwrd"&gt;null&lt;/span&gt;;&lt;br /&gt;  SPContentTypeId contentType = &lt;span class="kwrd"&gt;new&lt;/span&gt; SPContentTypeId();&lt;br /&gt;  PageLayout[] layouts = pubWeb.GetAvailablePageLayouts(contentType);&lt;br /&gt;  &lt;span class="kwrd"&gt;if&lt;/span&gt; (layouts != &lt;span class="kwrd"&gt;null&lt;/span&gt; &amp;amp; &amp;amp; layouts.Length &amp;gt; 0)&lt;br /&gt;  {&lt;br /&gt;      layout = layouts[0];&lt;br /&gt;      PublishingPage newPage;&lt;br /&gt;      newPage = pubWeb.GetPublishingPages().Add(&lt;span class="str"&gt;"SiteName"&lt;/span&gt;, layout);&lt;br /&gt;      newPage.Description = &lt;span class="str"&gt;"Description of site"&lt;/span&gt;;&lt;br /&gt;      newPage.ListItem[&lt;span class="str"&gt;"Page Content"&lt;/span&gt;] = &lt;span class="str"&gt;" Sample Content Here"&lt;/span&gt;;&lt;br /&gt;      newPage.Update();&lt;br /&gt;  }&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;Setting properties and publishing pages&lt;br /&gt;&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;&lt;br /&gt;&lt;pre class="csharpcode"&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; (SPWeb web = SPControl.GetContextWeb(HttpContext.Current)) &lt;br /&gt;{&lt;br /&gt;    PublishingWeb pubWeb = PublishingWeb.GetPublishingWeb(web);&lt;br /&gt;    PageLayout layout = &lt;span class="kwrd"&gt;null&lt;/span&gt;;&lt;br /&gt;    SPContentTypeId contentType = &lt;span class="kwrd"&gt;new&lt;/span&gt; SPContentTypeId();&lt;br /&gt;    PageLayout[] layouts = pubWeb.GetAvailablePageLayouts(contentType);&lt;br /&gt;    &lt;span class="kwrd"&gt;if&lt;/span&gt; (layouts != &lt;span class="kwrd"&gt;null&lt;/span&gt; &amp;amp; &amp;amp; layouts.Length &amp;gt; 0) &lt;br /&gt;    {&lt;br /&gt;        layout = layouts[0];&lt;br /&gt;        PublishingPage newPage;&lt;br /&gt;        newPage = pubWeb.GetPublishingPages().Add(&lt;span class="str"&gt;"SiteName"&lt;/span&gt;, layout);&lt;br /&gt;        newPage.Description = &lt;span class="str"&gt;"Description of site"&lt;/span&gt;;&lt;br /&gt;        newPage.ListItem[&lt;span class="str"&gt;"Page Content"&lt;/span&gt;] = &lt;span class="str"&gt;" Sample Content Here"&lt;/span&gt;;&lt;br /&gt;        newPage.Update();&lt;br /&gt;    }&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;hr/&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8777320242835817445-2809025790385274717?l=jefferychinet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jefferychinet.blogspot.com/feeds/2809025790385274717/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jefferychinet.blogspot.com/2010/05/moss-development-3.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/2809025790385274717'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/2809025790385274717'/><link rel='alternate' type='text/html' href='http://jefferychinet.blogspot.com/2010/05/moss-development-3.html' title='MOSS Development 3'/><author><name>Jeffery Chi</name><uri>http://www.blogger.com/profile/01777274222273910460</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_0awGwIWdbAQ/SrWo52s_aPI/AAAAAAAAAe0/sz5rSKavJMs/S220/airforcewing.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8777320242835817445.post-8295146165066674159</id><published>2010-05-21T02:10:00.001-07:00</published><updated>2010-05-23T04:00:17.193-07:00</updated><title type='text'>MOSS Development 2</title><content type='html'>There are essentially four different administration interfaces within a SharePoint environment:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 0, 0);"&gt;Central Administration &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;[This site is primarily used by farm administrators to manage all the servers in the SharePoint server farm, as well as the SharePoint services on those servers.],&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 0, 0);"&gt;Site Settings&lt;br /&gt;&lt;/span&gt;[Users can be assigned as the owners of site collections, with&lt;br /&gt;the authority to administer the site, but not granted rights to the Central Administration site.]&lt;br /&gt;[The Site Settings page is accessible from the Site Actions menu or by&lt;br /&gt;entering the URL http://[site URL]/_layouts/settings.aspx; security of a site, create new lists and libraries, customize the site ’ s navigation,&lt;br /&gt;manage the site columns and content types, and activate/deactivate site - scoped Features.]&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 0, 0);"&gt;List Settings&lt;/span&gt;&lt;br /&gt;[From the List Settings page, users can also configure the workflow&lt;br /&gt;settings, such as associating workflow templates previously deployed to the site collection with the&lt;br /&gt;list, and configure their startup options, such as automatically when new list items are created or&lt;br /&gt;updated, or manually. Users]&lt;br /&gt;,&lt;br /&gt;&lt;span style="color: rgb(204, 0, 0);"&gt;STSADM.EXE&lt;/span&gt;&lt;br /&gt;[Every&lt;br /&gt;WSS 3.0 install includes STSADM.EXE , which can be found in the following directory: c:\Program&lt;br /&gt;Files\Common Files\Microsoft Shared\web server extensions\12\bin\ . STSADM.EXE is&lt;br /&gt;based on the premise of operations.]&lt;br /&gt;&lt;br /&gt;stsadm.exe – help enumformtemplates&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 0, 0);"&gt;Master Pages&lt;/span&gt;&lt;br /&gt;All SharePoint sites are based on the same&lt;br /&gt;initial master page called default.master found in the [..]\12\TEMPLATE\GLOBAL directory&lt;br /&gt;This master page contains many content placeholders required in most master pages leveraged within SharePoint.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 0, 0);"&gt;Membership Provider Model&lt;/span&gt;&lt;br /&gt;Moreover, SharePoint provides an additional capability&lt;br /&gt;that enables multiple entry points into a single site collection via different URLs, each configured with&lt;br /&gt;a different authentication mechanism, such as Active Directory, forms - based authentication, or LDAP&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 0, 0);"&gt;Code Access Security&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Code access security (CAS), included with the .NET Framework, enables developers and administrators&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; to grant specific permissions and rights to managed code. Another type of security most people are&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; familiar with is user - based security, whereby code assumes the rights and permissions that the current&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; user has been assigned. Using CAS effectively enables administrators to restrict what managed code is&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; allowed to do, limiting the surface area of attack and vulnerability on a system.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;By default, new SharePoint Web applications are configured to run within a very low and restricted level of trust called &lt;span style="color: rgb(204, 0, 0); font-weight: bold;"&gt;WSS_Minimal&lt;/span&gt; . For example, some things are not possible out - of - the - box (OOTB), such as consuming a Web service that exists outside the current domain or connecting to a SQL Server database.&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Create a custom CAS policy that assigns the necessary permissions to the assembly(s) containing the managed code attempting to perform such an action.&lt;/li&gt;&lt;li&gt;Change the SharePoint Web application CAS policy from WSS_Minimal to WSS_Medium or Full (which is the least secure and most pervasive). This affects all assemblies within the Web application, not just the specific assembly needing elevated permissions.&lt;/li&gt;&lt;li&gt;Deploy the assembly containing the managed code attempting to perform such an action to&lt;br /&gt;the server ’ s GAC, thus granting the assembly full trust and making it globally available&lt;br /&gt;on the server.&lt;/li&gt;&lt;/ul&gt;&lt;span style="color: rgb(204, 0, 0);"&gt;Safe Mode Parser&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;While ASP.NET 2.0 sites generally live on the file system, SharePoint sites are virtualized within a content database. These virtualized files exist in one of two states: customized or uncustomized.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 0, 0);"&gt;Types of Pages&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;While SharePoint is built on top of ASP.NET 2.0, it has a unique concept of two types of pages: site pages and application pages .&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 0, 0); font-weight: bold;"&gt;Site pages&lt;/span&gt; are those types of pages that support customization or personalization, and thus can be themed and host Web Parts. These are also the types of pages that developers and designers can modify and edit within SharePoint Designer, because they are virtualized within the site ’ s logical architecture and live within the site collection ’ s content database either as customized or uncustomized pages.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 0, 0); font-weight: bold;"&gt;Application Pages&lt;/span&gt; live within the layouts virtual directory that exists within each SharePoint site. Applications pages, unlike site pages, cannot be customized or personalized, as these files do not live within a site ’ s content database. This explains why the layouts virtual directory is not seen within SharePoint Designer.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;When a new SharePoint site is provisioned, either when it is created as the top - level site within a new site collection or as a subsite within an existing site collection, most files start off in an uncustomized state. This means that&lt;span style="color: rgb(255, 0, 0);"&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;while the file lives within the logical structure of a SharePoint site and is seen from within SharePoint Designer&lt;/span&gt;&lt;/span&gt; (and thus, is in the content database),&lt;span style="color: rgb(204, 0, 0);"&gt; &lt;span style="font-weight: bold;"&gt;the entry in the content database simply points to the file it is &lt;span style="color: rgb(51, 51, 255);"&gt;based off of on the file system.&lt;/span&gt;&lt;/span&gt; &lt;/span&gt;This file is sometimes referred to as a &lt;span style="color: rgb(204, 0, 0); font-weight: bold;"&gt;template file or file definition&lt;/span&gt; because by itself it is not very usable.&lt;br /&gt;&lt;br /&gt;The most common way to customize a file is to open it in SharePoint Designer, make any changes, and then save the file. &lt;span style="color: rgb(204, 0, 0); font-weight: bold;"&gt;When someone saves a file in SharePoint Designer, the source of the updated file is saved to the content database.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Subsequent requests for the file result in the &lt;span style="color: rgb(51, 51, 255); font-weight: bold;"&gt;SPVirtualPathProvider&lt;/span&gt; (SharePoint ’ s custom&lt;br /&gt;virtual path provider) &lt;span style="color: rgb(204, 0, 0); font-weight: bold;"&gt;retrieving the source of the file from the content database&lt;/span&gt;, rather than the file system.&lt;br /&gt;&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/bb892189%28office.12%29.aspx"&gt;http://msdn.microsoft.com/en-us/library/bb892189%28office.12%29.aspx&lt;/a&gt; (to read)&lt;br /&gt;&lt;pre class="csharpcode"&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System;&lt;br /&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.IO;&lt;br /&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; Microsoft.SharePoint;&lt;br /&gt;&lt;span class="kwrd"&gt;namespace&lt;/span&gt; Listing2_a&lt;br /&gt;{&lt;br /&gt;&lt;span class="kwrd"&gt;class&lt;/span&gt; Program&lt;br /&gt;{&lt;br /&gt;  &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; Main (&lt;span class="kwrd"&gt;string&lt;/span&gt;[] args)&lt;br /&gt;  {&lt;br /&gt;  &lt;span class="kwrd"&gt;using&lt;/span&gt; (SPSite siteCollection = &lt;span class="kwrd"&gt;new&lt;/span&gt; SPSite(&lt;span class="str"&gt;"http://wss"&lt;/span&gt;))&lt;br /&gt;  {&lt;br /&gt;      &lt;span class="kwrd"&gt;using&lt;/span&gt; (SPWeb site = siteCollection.RootWeb)&lt;br /&gt;      {&lt;br /&gt;          MemoryStream fileStream = &lt;span class="kwrd"&gt;new&lt;/span&gt; MemoryStream();&lt;br /&gt;          StreamWriter fileWriter = &lt;span class="kwrd"&gt;new&lt;/span&gt; StreamWriter(fileStream);&lt;br /&gt;          &lt;span class="rem"&gt;// write the source of the page (include meta:progid so SharePoint    Designer understands this file&lt;/span&gt;&lt;br /&gt;          fileWriter.WriteLine(&lt;span class="str"&gt;"&amp;lt; %@ Page MasterPageFile=\"~masterurl/default.master\" meta:progid=\”SharePoint.WebPartPage.Document\" % &amp;gt;"&lt;/span&gt;);&lt;br /&gt;          fileWriter.WriteLine(&lt;span class="str"&gt;"&amp;lt; asp:Content runat=\"server\" ContentPlaceHolderID=\”PlaceHolderMain\"&amp;gt;"&lt;/span&gt;);&lt;br /&gt;          fileWriter.WriteLine(&lt;span class="str"&gt;"&amp;lt; h1 &amp;gt; WROX &amp;lt; /h1 &amp;gt; "&lt;/span&gt;);&lt;br /&gt;          fileWriter.WriteLine(&lt;span class="str"&gt;"&amp;lt; /asp:Content &amp;gt; "&lt;/span&gt;);&lt;br /&gt;          fileWriter.Flush();&lt;br /&gt;          &lt;span class="rem"&gt;// save the file to SharePoint&lt;/span&gt;&lt;br /&gt;          site.Files.Add(&lt;span class="str"&gt;"ApiGeneratedPage.aspx"&lt;/span&gt;, fileStream);&lt;br /&gt;          &lt;span class="rem"&gt;// cleanup&lt;/span&gt;&lt;br /&gt;          fileWriter.Close();&lt;br /&gt;          fileWriter.Dispose();&lt;br /&gt;          fileStream.Close();&lt;br /&gt;          fileStream.Dispose();&lt;br /&gt;      } &lt;span class="rem"&gt;// SPWeb using statement&lt;/span&gt;&lt;br /&gt;  } &lt;span class="rem"&gt;// SPSite using statement&lt;/span&gt;&lt;br /&gt;} &lt;span class="rem"&gt;// method “Main”&lt;/span&gt;&lt;br /&gt;}&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;&lt;br /&gt;&lt;pre class="csharpcode"&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System;&lt;br /&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; Microsoft.SharePoint;&lt;br /&gt;&lt;span class="kwrd"&gt;namespace&lt;/span&gt; Listing2_b&lt;br /&gt;{&lt;br /&gt;&lt;span class="kwrd"&gt;class&lt;/span&gt; Program&lt;br /&gt;{&lt;br /&gt;    &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; Main (&lt;span class="kwrd"&gt;string&lt;/span&gt;[] args)&lt;br /&gt;    {&lt;br /&gt;        &lt;span class="kwrd"&gt;using&lt;/span&gt; (SPSite siteCollection = &lt;span class="kwrd"&gt;new&lt;/span&gt; SPSite(&lt;span class="str"&gt;"http://wss"&lt;/span&gt;))&lt;br /&gt;        {&lt;br /&gt;            &lt;span class="kwrd"&gt;using&lt;/span&gt; (SPWeb site = siteCollection.RootWeb)&lt;br /&gt;            {&lt;br /&gt;                SPFile file = site.GetFile(“&lt;span class="kwrd"&gt;default&lt;/span&gt;.aspx”);&lt;br /&gt;                &lt;span class="rem"&gt;// if file is customized, revert to underlying template file&lt;/span&gt;&lt;br /&gt;                &lt;span class="kwrd"&gt;if&lt;/span&gt; (file.CustomizedPageStatus == SPCustomizedPageStatus.Customized)&lt;br /&gt;                file.RevertContentStream();&lt;br /&gt;            } &lt;span class="rem"&gt;// SPWeb using statement&lt;/span&gt;&lt;br /&gt;        } &lt;span class="rem"&gt;// SPSite using statement&lt;/span&gt;&lt;br /&gt;    } &lt;span class="rem"&gt;// method “Main”&lt;/span&gt;&lt;br /&gt;}&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 0, 0);"&gt;SharePoint Customization&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;As previously covered, when files are customized, they exist within the SharePoint site ’ s content database. While some may have originally been based on an underlying template, the source of the customized file still lives within the database.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 0, 0);"&gt;SharePoint Development&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;In order to keep files within a SharePoint site uncustomized, they must be created as physical files on the file system.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 0, 0); font-weight: bold;"&gt;Microsoft.SharePoint Namespace&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;The SharePoint API is how the provided tools and interfaces interact with SharePoint, including&lt;br /&gt;the browser - based interface, the included Web services, and the command - line utility STSADM.EXE .&lt;/span&gt;&lt;span style="color: rgb(204, 0, 0); font-weight: bold;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;The core of the SharePoint API is the Microsoft.SharePoint namespace, which is found in the&lt;br /&gt;Microsoft.SharePoint.dll assembly located in [..]\12\ISAPI .&lt;/span&gt;&lt;span style="color: rgb(204, 0, 0); font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;br /&gt;Microsoft.SharePoint namespace&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;SPSite &lt;/span&gt;=&gt; for site collections&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;SPWeb &lt;/span&gt;=&gt;for SharePoint sites.&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;SPList &lt;/span&gt;=&gt;for lists,&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;SPListItem &lt;/span&gt;=&gt;for items within lists,&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;SPDocumentLibrary &lt;/span&gt;=&gt;for documents within document libraries,&lt;/span&gt;&lt;span style="color: rgb(204, 0, 0); font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(204, 0, 0);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;SPQuery&lt;/span&gt;=&gt; for creating queries using Collaborative Markup Language (CAML),&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;SPGroup &lt;/span&gt;and &lt;span style="color: rgb(51, 51, 255);"&gt;SPUser &lt;/span&gt;=&gt;for SharePoint groups and users, respectively.&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(204, 0, 0); font-weight: bold;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Debugging assemblies deployed to the Global Assembly Cache (GAC) is a bit more challenging and requires some additional work. Before attaching the debugger to the application pool process, the debugger symbols ( *.PDB files) must be copied to a specific directory. To find the directory, select Start Run and enter the following:&lt;br /&gt;&lt;br /&gt;%systemroot%\Assembly\GAC&lt;/span&gt;&lt;span style="color: rgb(204, 0, 0); font-weight: bold;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8777320242835817445-8295146165066674159?l=jefferychinet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jefferychinet.blogspot.com/feeds/8295146165066674159/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jefferychinet.blogspot.com/2010/05/moss-development-2.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/8295146165066674159'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/8295146165066674159'/><link rel='alternate' type='text/html' href='http://jefferychinet.blogspot.com/2010/05/moss-development-2.html' title='MOSS Development 2'/><author><name>Jeffery Chi</name><uri>http://www.blogger.com/profile/01777274222273910460</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_0awGwIWdbAQ/SrWo52s_aPI/AAAAAAAAAe0/sz5rSKavJMs/S220/airforcewing.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8777320242835817445.post-2320860342805980576</id><published>2010-05-20T23:29:00.000-07:00</published><updated>2010-05-21T01:44:44.920-07:00</updated><title type='text'>MOSS Development 1</title><content type='html'>When installing SharePoint, all the application files are installed into a directory nested deep within the&lt;br /&gt;Program Files path: c:\Program Files\Common Files\Microsoft Shared\web server&lt;br /&gt;extensions\12&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Web applications are used&lt;br /&gt;as the HTTP entry point to a SharePoint site and define certain aspects that are shared across all&lt;br /&gt;SharePoint sites hosted within the Web application, such as HTTP handlers and modules, authentication&lt;br /&gt;configuration, and a list of which controls have been registered with SharePoint ’ s safe mode page parser.&lt;br /&gt;&lt;br /&gt;The location of sharepoint dlls are in&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\12\ISAPI&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;_vti_bin — This exposes SharePoint Web services and assemblies to SharePoint and&lt;br /&gt;non - SharePoint applications alike; this virtual directory points to the path c:\Program Files\Common Files\Microsoft Shared\web server extensions\12\ISAPI (sharepoint default features)&lt;/li&gt;&lt;li&gt;_controltemplates — This points to a shared folder within the SharePoint 12 directory structure that only contains (user defined)ASP.NET 2.0 user controls; this virtual directory points to the path c:\Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\CONTROLTEMPLATES .&lt;/li&gt;&lt;li&gt;_layouts — This points to a shared folder within the SharePoint 12 directory structure&lt;br /&gt;containing application pages, this virtual directory points to the path c:\Program Files\Common Files\Microsoft Shared\web server extensions\&lt;br /&gt;12\TEMPLATE\LAYOUTS &lt;/li&gt;&lt;li&gt;_wpresources — This points to a shared folder that contains resources used by Web Partsdeployed globally to the server; this virtual directory points to the path c:\Program Files\Common Files\Microsoft Shared\web server extensions\wpresources .&lt;/li&gt;&lt;li&gt;&lt;/li&gt;&lt;li&gt;&lt;/li&gt;&lt;li&gt;&lt;br /&gt;The SharePoint 12 folder contains everything necessary to run MOSS and WSS, including&lt;br /&gt;Features , images, Cascading Style Sheets (CSS), Web services, and all assemblies&lt;br /&gt;containing the compiled logic necessary for SharePoint to execute&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;SDK - Administration:&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;&lt;br /&gt;&lt;pre class="csharpcode"&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System;&lt;br /&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Collections.Generic;&lt;br /&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.ComponentModel;&lt;br /&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Data;&lt;br /&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Drawing;&lt;br /&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Linq;&lt;br /&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Text;&lt;br /&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Windows.Forms;&lt;br /&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; Microsoft.SharePoint;&lt;br /&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; Microsoft.SharePoint.Administration;&lt;br /&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;namespace&lt;/span&gt; WindowsFormsApplicationSharePoint&lt;br /&gt;{&lt;br /&gt;    &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;partial&lt;/span&gt; &lt;span class="kwrd"&gt;class&lt;/span&gt; Form1 : Form&lt;br /&gt;    {&lt;br /&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; Form1()&lt;br /&gt;        {&lt;br /&gt;            InitializeComponent();&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; button1_Click(&lt;span class="kwrd"&gt;object&lt;/span&gt; sender, EventArgs e)&lt;br /&gt;        {&lt;br /&gt;            SPWebApplication oWebApplication = SPWebApplication.Lookup(&lt;span class="kwrd"&gt;new&lt;/span&gt; Uri(&lt;span class="str"&gt;"http://one:34349"&lt;/span&gt;));&lt;br /&gt;            oWebApplication.MaximumFileSize = 100;&lt;br /&gt;            oWebApplication.AlertsMaximum = 1000;&lt;br /&gt;            oWebApplication.Update();&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;As previously stated, site collections are used for both administrative and management purposes.&lt;br /&gt;However, at their core, SharePoint site collections simply contain SharePoint sites. When a new site&lt;br /&gt;collection is created, the user is immediately directed to enter information such as the display name, the&lt;br /&gt;description, and the owner of the site. This site is called the top - level or root site within the site collection.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Developers can use the Microsoft.SharePoint.SPSite class to obtain a reference to an existing site&lt;br /&gt;collection, and Microsoft.SharePoint.SPWeb to obtain a reference to a site within a site collection.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#cc0000;"&gt;SPWebApplication Class&lt;/span&gt;&lt;br /&gt;Represents an Internet Information Services (IIS) load-balanced Web application that is installed on the server farm&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#990000;"&gt;SPSite Class&lt;/span&gt;&lt;br /&gt;Represents a collection of sites in a Web application, including a top-level Web site and all its subsites. Each SPSite object, or site collection, is represented within an SPSiteCollection object that consists of the collection of all site collections in the Web application&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;&lt;br /&gt;&lt;pre class="csharpcode"&gt;&lt;br /&gt; &lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; button3_Click(&lt;span class="kwrd"&gt;object&lt;/span&gt; sender, EventArgs e)&lt;br /&gt;        {&lt;br /&gt;            SPSite oSiteCollection = &lt;span class="kwrd"&gt;new&lt;/span&gt; SPSite(&lt;span class="str"&gt;"http://one:34349"&lt;/span&gt;);&lt;br /&gt;            SPWebCollection collWebsites = oSiteCollection.AllWebs;&lt;br /&gt;            StringBuilder sb = &lt;span class="kwrd"&gt;new&lt;/span&gt; StringBuilder();&lt;br /&gt;            sb.Append( &lt;span class="str"&gt;"Total Num of SPWebCollection : "&lt;/span&gt; + collWebsites.Count.ToString());&lt;br /&gt;            &lt;span class="kwrd"&gt;int&lt;/span&gt; i = 0;&lt;br /&gt;            &lt;span class="kwrd"&gt;foreach&lt;/span&gt; (SPWeb oWebsite &lt;span class="kwrd"&gt;in&lt;/span&gt; collWebsites)&lt;br /&gt;            {&lt;br /&gt;                i = i + 1;&lt;br /&gt;                sb.Append(&lt;span class="str"&gt;"\r\n Num + "&lt;/span&gt;+i.ToString()+&lt;span class="str"&gt;" SPWeb Description : "&lt;/span&gt; + oWebsite.Description);&lt;br /&gt;                SPListCollection collLists = oWebsite.Lists;&lt;br /&gt;                sb.Append(&lt;span class="str"&gt;"\r\n Num + "&lt;/span&gt; + i.ToString() + &lt;span class="str"&gt;" SPListCollection Count : "&lt;/span&gt; + collLists.Count.ToString());&lt;br /&gt;                &lt;span class="kwrd"&gt;foreach&lt;/span&gt; (SPList oList &lt;span class="kwrd"&gt;in&lt;/span&gt; collLists)&lt;br /&gt;                {&lt;br /&gt;                    &lt;span class="kwrd"&gt;int&lt;/span&gt; j = 0;&lt;br /&gt;                    &lt;span class="kwrd"&gt;if&lt;/span&gt; (oList.BaseType == SPBaseType.DocumentLibrary)&lt;br /&gt;                    {&lt;br /&gt;                        j = j + 1;&lt;br /&gt;                        &lt;br /&gt;                        sb.Append(&lt;span class="str"&gt;"\r\n  ------ "&lt;/span&gt; + &lt;span class="str"&gt;" SPList Name : "&lt;/span&gt; + oList.Description);&lt;br /&gt;                        &lt;span class="kwrd"&gt;try&lt;/span&gt;&lt;br /&gt;                        {&lt;br /&gt;                            &lt;span class="rem"&gt;//cast list item to document library&lt;/span&gt;&lt;br /&gt;                            SPDocumentLibrary oDocumentLibrary = (SPDocumentLibrary)oList;&lt;br /&gt;                            &lt;span class="kwrd"&gt;if&lt;/span&gt; (!oDocumentLibrary.IsCatalog &amp;amp;&amp;amp; oList.BaseTemplate != SPListTemplateType.XMLForm)&lt;br /&gt;                            {&lt;br /&gt;                                 SPListItemCollection collListItems = oDocumentLibrary.Items;&lt;br /&gt;                                 sb.Append(&lt;span class="str"&gt;"\r\n  -------- "&lt;/span&gt; + &lt;span class="str"&gt;" SPListItemCollection Count : "&lt;/span&gt; + collListItems.Count.ToString());&lt;br /&gt;&lt;br /&gt;                                 &lt;span class="kwrd"&gt;foreach&lt;/span&gt; (SPListItem oListItem &lt;span class="kwrd"&gt;in&lt;/span&gt; collListItems)&lt;br /&gt;                                 {&lt;br /&gt;                                     sb.Append(&lt;span class="str"&gt;"\r\n  ---------------- SPListe Name  "&lt;/span&gt; + oListItem.Name);&lt;br /&gt;                                 }&lt;br /&gt;&lt;br /&gt;                            }&lt;br /&gt;                        }&lt;br /&gt;                        &lt;span class="kwrd"&gt;catch&lt;/span&gt; (Exception ex)&lt;br /&gt;                        {&lt;br /&gt;                            MessageBox.Show(ex.ToString());&lt;br /&gt;                        }&lt;br /&gt;                    }&lt;br /&gt;                }&lt;br /&gt;                oWebsite.Dispose();&lt;br /&gt;            }&lt;br /&gt;            label1.Text = sb.ToString();&lt;br /&gt;        }&lt;/pre&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8777320242835817445-2320860342805980576?l=jefferychinet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jefferychinet.blogspot.com/feeds/2320860342805980576/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jefferychinet.blogspot.com/2010/05/moss-development-1.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/2320860342805980576'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/2320860342805980576'/><link rel='alternate' type='text/html' href='http://jefferychinet.blogspot.com/2010/05/moss-development-1.html' title='MOSS Development 1'/><author><name>Jeffery Chi</name><uri>http://www.blogger.com/profile/01777274222273910460</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_0awGwIWdbAQ/SrWo52s_aPI/AAAAAAAAAe0/sz5rSKavJMs/S220/airforcewing.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8777320242835817445.post-6890515496614824651</id><published>2010-05-19T00:51:00.000-07:00</published><updated>2010-05-19T02:06:19.003-07:00</updated><title type='text'>MOSS 2007 administration</title><content type='html'>asp.net has the ability to ensure that pages are not compiled into a dynamic link library before wss 3 can use them, instead, the page is parsed and the allowed conrols in the control tree are rendered on the page.&lt;br /&gt;&lt;br /&gt;web parts : a custom control assembly that uses a web part description file in either the wss (.dwp) or the asp.net 2 format (.webpart)&lt;br /&gt;the web part description file can be stored and referenced on any computer; it contains xml data that describs an instance of the web part, the web part .net assembly is a dll that must be installed and registered on each wss computer the uses the web part.&lt;br /&gt;&lt;br /&gt;Metadata : it provides context for data so taht it can be interpreted and understodd when it comes time to use it. Metadata also supports the ability to intelligently index and quickly search large databases by automating the classificiation and organization of like kinds of information.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Versioning :&lt;br /&gt;1) major / minor versioning, only major versions can be published. Minor versions can be viewed by thos who have the right to view the monior versions of the document or list item, but these versions cannot be published, nor can they be viewed by those who have only rader access to this list.&lt;br /&gt;&lt;br /&gt;2) Simple versioning, each version is a full copy of the document and the versions are numbered sequentially.&lt;br /&gt;&lt;br /&gt;Check out :&lt;br /&gt;Draft (minor version):&lt;br /&gt;Published (major version):&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Versioning : it allows user to tell the system which changes are minor chagnes and which changes are major chagnes to a document.&lt;br /&gt;&lt;br /&gt;Auditing is the process of tracking which user made a change to a document, regardless of the importance of that change.&lt;br /&gt;&lt;br /&gt;__________________________________________________________________&lt;br /&gt;&lt;br /&gt;- Content and metadata for crawled content is held in sql content databases&lt;br /&gt;- The binaries for the program are held on the file server - by default in c:\program files\office sharepoint server\bin&lt;br /&gt;- The content indexes are helf on the file serve - by default, in c:\program files\office sharepoint server \data&lt;br /&gt;-The web application files are held on the file server - by default, in c:\intpub\wwwroot\wss\virtualdirectories&lt;br /&gt;-The configuration information for the web application is held in the metabase.&lt;br /&gt;- The farm configuration information is held in the sql configdb database&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Backup and disk space:&lt;br /&gt;&lt;br /&gt;-1 gb of data will need 1 gb of disk space&lt;br /&gt;-another 1gb of free disk space is needed for sql maintenance utilities to run propertly, need 100% free disk space relative to the size of your largest database.&lt;br /&gt;-you'll be indexing this data, so assume your index is 20 % percent the size of the content being indexed, actual figures ranging from as little as 10% up to as high as 40%. In this example, assume you need one search server and two query servers, which means you'ill need 400mb of disk space because the index will be held twice, once of the search server and once on the query server.&lt;br /&gt;- your farm will need to be backed up, in this example, consumes another 1.2 gb of disk space.&lt;br /&gt;You will need 3.8 gb of disk space for every 1gb of data.&lt;br /&gt;&lt;br /&gt;__________________________________________________________&lt;br /&gt;&lt;br /&gt;pluggable authentication&lt;br /&gt;&lt;br /&gt;single sign o authentication,replacing default sso in sharepoint 2007 invoves implementing the microsoft.sharepoint.portal.singlesinon.issoprovider interface.&lt;br /&gt;&lt;br /&gt;Although all the binary code is installed on each server, the Topology manager ensures that each server has "turn on" or "turn off" thos portions of the code that are reuiqred or nto needed for the server to fulfill its assigned duties in the farm.&lt;br /&gt;&lt;br /&gt;MOSS logical architecture can by physically deployed to a single machine serving as all three tiers environment, or on any number of machines serving one or more of the tiers cooperatively.&lt;br /&gt;&lt;br /&gt;(p.81)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8777320242835817445-6890515496614824651?l=jefferychinet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jefferychinet.blogspot.com/feeds/6890515496614824651/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jefferychinet.blogspot.com/2010/05/moss-2007-administration.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/6890515496614824651'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/6890515496614824651'/><link rel='alternate' type='text/html' href='http://jefferychinet.blogspot.com/2010/05/moss-2007-administration.html' title='MOSS 2007 administration'/><author><name>Jeffery Chi</name><uri>http://www.blogger.com/profile/01777274222273910460</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_0awGwIWdbAQ/SrWo52s_aPI/AAAAAAAAAe0/sz5rSKavJMs/S220/airforcewing.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8777320242835817445.post-5965472827844956097</id><published>2010-05-17T21:03:00.000-07:00</published><updated>2010-05-17T21:04:20.745-07:00</updated><title type='text'>http://www.greydc.govt.nz/ is alive !</title><content type='html'>&lt;a href="http://www.greydc.govt.nz/"&gt;http://www.greydc.govt.nz/&lt;/a&gt;  is alive today ! Another one of my EPIServer projects is in production ..... happy happy ...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8777320242835817445-5965472827844956097?l=jefferychinet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jefferychinet.blogspot.com/feeds/5965472827844956097/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jefferychinet.blogspot.com/2010/05/httpwwwgreydcgovtnz-is-alive.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/5965472827844956097'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/5965472827844956097'/><link rel='alternate' type='text/html' href='http://jefferychinet.blogspot.com/2010/05/httpwwwgreydcgovtnz-is-alive.html' title='http://www.greydc.govt.nz/ is alive !'/><author><name>Jeffery Chi</name><uri>http://www.blogger.com/profile/01777274222273910460</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_0awGwIWdbAQ/SrWo52s_aPI/AAAAAAAAAe0/sz5rSKavJMs/S220/airforcewing.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8777320242835817445.post-6342958230017517973</id><published>2010-05-03T18:46:00.000-07:00</published><updated>2010-05-03T18:47:20.589-07:00</updated><title type='text'>Firebug repository</title><content type='html'>Firebug repository&lt;br /&gt;&lt;a href="http://getfirebug.com/releases/firebug/1.5X/"&gt;http://getfirebug.com/releases/firebug/1.5X/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8777320242835817445-6342958230017517973?l=jefferychinet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jefferychinet.blogspot.com/feeds/6342958230017517973/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jefferychinet.blogspot.com/2010/05/firebug-repository.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/6342958230017517973'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/6342958230017517973'/><link rel='alternate' type='text/html' href='http://jefferychinet.blogspot.com/2010/05/firebug-repository.html' title='Firebug repository'/><author><name>Jeffery Chi</name><uri>http://www.blogger.com/profile/01777274222273910460</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_0awGwIWdbAQ/SrWo52s_aPI/AAAAAAAAAe0/sz5rSKavJMs/S220/airforcewing.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8777320242835817445.post-721134390112704196</id><published>2010-04-25T14:48:00.000-07:00</published><updated>2010-04-25T14:50:30.551-07:00</updated><title type='text'>JQuery + URL Plugin</title><content type='html'>I need to use Jquery to do some URL value changing in my current project.&lt;br /&gt;&lt;br /&gt;Found some libraries that do that :&lt;br /&gt;&lt;br /&gt;&lt;a href="http://plugins.jquery.com/project/query-object"&gt;http://plugins.jquery.com/project/query-object&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.oakcitygraphics.com/jquery/jqURL/jqURLdemo.html?var1=1&amp;amp;var2=2&amp;amp;var3=3"&gt;http://www.oakcitygraphics.com/jquery/jqURL/jqURLdemo.html?var1=1&amp;amp;var2=2&amp;amp;var3=3&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This one is not Jquery Library :&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.htmlgoodies.com/beyond/javascript/article.php/11877_3755006_3"&gt;http://www.htmlgoodies.com/beyond/javascript/article.php/11877_3755006_3&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8777320242835817445-721134390112704196?l=jefferychinet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jefferychinet.blogspot.com/feeds/721134390112704196/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jefferychinet.blogspot.com/2010/04/jquery-url-plugin.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/721134390112704196'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/721134390112704196'/><link rel='alternate' type='text/html' href='http://jefferychinet.blogspot.com/2010/04/jquery-url-plugin.html' title='JQuery + URL Plugin'/><author><name>Jeffery Chi</name><uri>http://www.blogger.com/profile/01777274222273910460</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_0awGwIWdbAQ/SrWo52s_aPI/AAAAAAAAAe0/sz5rSKavJMs/S220/airforcewing.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8777320242835817445.post-574120097163363780</id><published>2010-04-15T18:04:00.000-07:00</published><updated>2010-04-15T21:25:09.664-07:00</updated><title type='text'>.NET Framework Reflection</title><content type='html'>&lt;a href="http://msdn.microsoft.com/en-us/magazine/cc163759.aspx"&gt;http://msdn.microsoft.com/en-us/magazine/cc163759.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;(Applied Reflection: Creating a dynamic Web service to simplify code)&lt;br /&gt;&lt;a href="http://www.crowsprogramming.com/archives/66"&gt;http://www.crowsprogramming.com/archives/66&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8777320242835817445-574120097163363780?l=jefferychinet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jefferychinet.blogspot.com/feeds/574120097163363780/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jefferychinet.blogspot.com/2010/04/net-framework-reflection.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/574120097163363780'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/574120097163363780'/><link rel='alternate' type='text/html' href='http://jefferychinet.blogspot.com/2010/04/net-framework-reflection.html' title='.NET Framework Reflection'/><author><name>Jeffery Chi</name><uri>http://www.blogger.com/profile/01777274222273910460</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_0awGwIWdbAQ/SrWo52s_aPI/AAAAAAAAAe0/sz5rSKavJMs/S220/airforcewing.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8777320242835817445.post-204604883883578659</id><published>2010-04-14T20:28:00.001-07:00</published><updated>2010-04-14T20:28:40.913-07:00</updated><title type='text'>Http Handler CompressionModule</title><content type='html'>&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;&lt;br /&gt;&lt;pre class="csharpcode"&gt;&lt;br /&gt;&lt;span class="preproc"&gt;#region&lt;/span&gt; Using&lt;br /&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System;&lt;br /&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.IO;&lt;br /&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.IO.Compression;&lt;br /&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Net;&lt;br /&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Web;&lt;br /&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Web.UI;&lt;br /&gt;&lt;br /&gt;&lt;span class="preproc"&gt;#endregion&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;namespace&lt;/span&gt; Cff.SaferTrader.Web&lt;br /&gt;{&lt;br /&gt;    &lt;span class="rem"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span class="rem"&gt;/// Compresses the output using standard gzip/deflate.&lt;/span&gt;&lt;br /&gt;    &lt;span class="rem"&gt;/// Ported from http://blog.madskristensen.dk/post/HTTP-compression-of-WebResourceaxd-and-pages-in-ASPNET.aspx&lt;/span&gt;&lt;br /&gt;    &lt;span class="rem"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;sealed&lt;/span&gt; &lt;span class="kwrd"&gt;class&lt;/span&gt; CompressionModule : IHttpModule&lt;br /&gt;    {&lt;br /&gt;        &lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;const&lt;/span&gt; &lt;span class="kwrd"&gt;string&lt;/span&gt; DEFLATE = &lt;span class="str"&gt;"deflate"&lt;/span&gt;;&lt;br /&gt;        &lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;const&lt;/span&gt; &lt;span class="kwrd"&gt;string&lt;/span&gt; GZIP = &lt;span class="str"&gt;"gzip"&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;        &lt;span class="rem"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="rem"&gt;/// Compress the page when the request is not an AJAX request and the response is not an excel file&lt;/span&gt;&lt;br /&gt;        &lt;span class="rem"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; context_PreSendRequestContent(&lt;span class="kwrd"&gt;object&lt;/span&gt; sender, EventArgs e)&lt;br /&gt;        {&lt;br /&gt;            HttpApplication application = (HttpApplication)sender;&lt;br /&gt;            &lt;span class="kwrd"&gt;if&lt;/span&gt; (application.Context.CurrentHandler &lt;span class="kwrd"&gt;is&lt;/span&gt; Page&lt;br /&gt;                &amp;amp;&amp;amp; application.Request[&lt;span class="str"&gt;"HTTP_X_MICROSOFTAJAX"&lt;/span&gt;] == &lt;span class="kwrd"&gt;null&lt;/span&gt;&lt;br /&gt;                &amp;amp;&amp;amp; !application.Response.ContentType.Equals(&lt;span class="str"&gt;"application/xls"&lt;/span&gt;)&lt;br /&gt;                &amp;amp;&amp;amp; !application.Response.ContentType.Equals(&lt;span class="str"&gt;"application/xlsx"&lt;/span&gt;))&lt;br /&gt;            {&lt;br /&gt;                &lt;span class="kwrd"&gt;if&lt;/span&gt; (IsEncodingAccepted(DEFLATE))&lt;br /&gt;                {&lt;br /&gt;                    application.Response.Filter = &lt;span class="kwrd"&gt;new&lt;/span&gt; DeflateStream(application.Response.Filter, CompressionMode.Compress);&lt;br /&gt;                    SetEncoding(DEFLATE);&lt;br /&gt;                }&lt;br /&gt;                &lt;span class="kwrd"&gt;else&lt;/span&gt; &lt;span class="kwrd"&gt;if&lt;/span&gt; (IsEncodingAccepted(GZIP))&lt;br /&gt;                {&lt;br /&gt;                    application.Response.Filter = &lt;span class="kwrd"&gt;new&lt;/span&gt; GZipStream(application.Response.Filter, CompressionMode.Compress);&lt;br /&gt;                    SetEncoding(GZIP);&lt;br /&gt;                }&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;bool&lt;/span&gt; IsEncodingAccepted(&lt;span class="kwrd"&gt;string&lt;/span&gt; encoding)&lt;br /&gt;        {&lt;br /&gt;            &lt;span class="kwrd"&gt;bool&lt;/span&gt; isEncodingAccepted = &lt;span class="kwrd"&gt;false&lt;/span&gt;;&lt;br /&gt;            HttpContext context = HttpContext.Current;&lt;br /&gt;            &lt;span class="kwrd"&gt;if&lt;/span&gt; (context != &lt;span class="kwrd"&gt;null&lt;/span&gt;)&lt;br /&gt;            {&lt;br /&gt;                isEncodingAccepted = context.Request.Headers[&lt;span class="str"&gt;"Accept-encoding"&lt;/span&gt;] != &lt;span class="kwrd"&gt;null&lt;/span&gt; &amp;amp;&amp;amp;&lt;br /&gt;                   context.Request.Headers[&lt;span class="str"&gt;"Accept-encoding"&lt;/span&gt;].Contains(encoding);&lt;br /&gt;            }&lt;br /&gt;            &lt;span class="kwrd"&gt;return&lt;/span&gt; isEncodingAccepted;&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; SetEncoding(&lt;span class="kwrd"&gt;string&lt;/span&gt; encoding)&lt;br /&gt;        {&lt;br /&gt;            HttpContext.Current.Response.AppendHeader(&lt;span class="str"&gt;"Content-encoding"&lt;/span&gt;, encoding);&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span class="rem"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="rem"&gt;/// Compress WebResource.axd&lt;/span&gt;&lt;br /&gt;        &lt;span class="rem"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; context_BeginRequest(&lt;span class="kwrd"&gt;object&lt;/span&gt; sender, EventArgs e)&lt;br /&gt;        {&lt;br /&gt;            var app = (HttpApplication) sender;&lt;br /&gt;            &lt;span class="kwrd"&gt;if&lt;/span&gt; (app.Request.Path.Contains(&lt;span class="str"&gt;"WebResource.axd"&lt;/span&gt;))&lt;br /&gt;            {&lt;br /&gt;                SetCachingHeaders(app);&lt;br /&gt;&lt;br /&gt;                &lt;span class="kwrd"&gt;if&lt;/span&gt; (IsBrowserSupported() &amp;amp;&amp;amp; app.Context.Request.QueryString[&lt;span class="str"&gt;"c"&lt;/span&gt;] == &lt;span class="kwrd"&gt;null&lt;/span&gt; &amp;amp;&amp;amp;&lt;br /&gt;                    (IsEncodingAccepted(DEFLATE) || IsEncodingAccepted(GZIP)))&lt;br /&gt;                    app.CompleteRequest();&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;        &lt;br /&gt;        &lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; context_EndRequest(&lt;span class="kwrd"&gt;object&lt;/span&gt; sender, EventArgs e)&lt;br /&gt;        {&lt;br /&gt;            &lt;span class="kwrd"&gt;if&lt;/span&gt; (!IsBrowserSupported() || (!IsEncodingAccepted(DEFLATE) &amp;amp;&amp;amp; !IsEncodingAccepted(GZIP)))&lt;br /&gt;                &lt;span class="kwrd"&gt;return&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;            var app = (HttpApplication) sender;&lt;br /&gt;            &lt;span class="kwrd"&gt;string&lt;/span&gt; key = app.Request.QueryString.ToString();&lt;br /&gt;            &lt;span class="kwrd"&gt;if&lt;/span&gt; (app.Request.Path.Contains(&lt;span class="str"&gt;"WebResource.axd"&lt;/span&gt;) &amp;amp;&amp;amp; app.Context.Request.QueryString[&lt;span class="str"&gt;"c"&lt;/span&gt;] == &lt;span class="kwrd"&gt;null&lt;/span&gt;)&lt;br /&gt;            {&lt;br /&gt;                &lt;span class="kwrd"&gt;if&lt;/span&gt; (app.Application[key] == &lt;span class="kwrd"&gt;null&lt;/span&gt;)&lt;br /&gt;                {&lt;br /&gt;                    AddCompressedBytesToCache(app, key);&lt;br /&gt;                }&lt;br /&gt;&lt;br /&gt;                SetEncoding((&lt;span class="kwrd"&gt;string&lt;/span&gt;)app.Application[key + &lt;span class="str"&gt;"enc"&lt;/span&gt;]);&lt;br /&gt;                app.Context.Response.ContentType = &lt;span class="str"&gt;"text/javascript"&lt;/span&gt;;&lt;br /&gt;                app.Context.Response.BinaryWrite((&lt;span class="kwrd"&gt;byte&lt;/span&gt;[]) app.Application[key]);&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span class="rem"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="rem"&gt;/// Sets the caching headers and monitors the If-None-Match request header,&lt;/span&gt;&lt;br /&gt;        &lt;span class="rem"&gt;/// to save bandwidth and CPU time.&lt;/span&gt;&lt;br /&gt;        &lt;span class="rem"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; SetCachingHeaders(HttpApplication app)&lt;br /&gt;        {&lt;br /&gt;            &lt;span class="kwrd"&gt;string&lt;/span&gt; etag = &lt;span class="str"&gt;"\""&lt;/span&gt; + app.Context.Request.QueryString.ToString().GetHashCode() + &lt;span class="str"&gt;"\""&lt;/span&gt;;&lt;br /&gt;            &lt;span class="kwrd"&gt;string&lt;/span&gt; incomingEtag = app.Request.Headers[&lt;span class="str"&gt;"If-None-Match"&lt;/span&gt;];&lt;br /&gt;&lt;br /&gt;            app.Response.Cache.VaryByHeaders[&lt;span class="str"&gt;"Accept-Encoding"&lt;/span&gt;] = &lt;span class="kwrd"&gt;true&lt;/span&gt;;&lt;br /&gt;            app.Response.Cache.SetExpires(DateTime.Now.AddDays(30));&lt;br /&gt;            app.Response.Cache.SetCacheability(HttpCacheability.Public);&lt;br /&gt;            app.Response.Cache.SetLastModified(DateTime.Now.AddDays(-30));&lt;br /&gt;            app.Response.Cache.SetETag(etag);&lt;br /&gt;&lt;br /&gt;            &lt;span class="kwrd"&gt;if&lt;/span&gt; (String.Compare(incomingEtag, etag, StringComparison.OrdinalIgnoreCase) == 0)&lt;br /&gt;            {&lt;br /&gt;                app.Response.StatusCode = (&lt;span class="kwrd"&gt;int&lt;/span&gt;) HttpStatusCode.NotModified;&lt;br /&gt;                app.Response.End();&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span class="rem"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="rem"&gt;/// Check if the browser is Internet Explorer 6 that have a known bug with compression&lt;/span&gt;&lt;br /&gt;        &lt;span class="rem"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="rem"&gt;/// &amp;lt;returns&amp;gt;&amp;lt;/returns&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;bool&lt;/span&gt; IsBrowserSupported()&lt;br /&gt;        {&lt;br /&gt;            &lt;span class="rem"&gt;// Because of bug in Internet Explorer 6&lt;/span&gt;&lt;br /&gt;            HttpContext context = HttpContext.Current;&lt;br /&gt;            &lt;span class="kwrd"&gt;return&lt;/span&gt; !(context.Request.UserAgent != &lt;span class="kwrd"&gt;null&lt;/span&gt; &amp;amp;&amp;amp; context.Request.UserAgent.Contains(&lt;span class="str"&gt;"MSIE 6"&lt;/span&gt;));&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span class="rem"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="rem"&gt;/// Adds a compressed byte array into the application items.&lt;/span&gt;&lt;br /&gt;        &lt;span class="rem"&gt;/// &amp;lt;remarks&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="rem"&gt;/// This is done for performance reasons so it doesn't have to&lt;/span&gt;&lt;br /&gt;        &lt;span class="rem"&gt;/// create an HTTP request every time it serves the WebResource.axd.&lt;/span&gt;&lt;br /&gt;        &lt;span class="rem"&gt;/// &amp;lt;/remarks&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="rem"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; AddCompressedBytesToCache(HttpApplication app, &lt;span class="kwrd"&gt;string&lt;/span&gt; key)&lt;br /&gt;        {&lt;br /&gt;            var request = (HttpWebRequest) WebRequest.Create(app.Context.Request.Url.OriginalString + &lt;span class="str"&gt;"&amp;amp;c=1"&lt;/span&gt;);&lt;br /&gt;            &lt;span class="kwrd"&gt;using&lt;/span&gt; (var response = request.GetResponse() &lt;span class="kwrd"&gt;as&lt;/span&gt; HttpWebResponse)&lt;br /&gt;            {&lt;br /&gt;                &lt;span class="kwrd"&gt;if&lt;/span&gt; (response != &lt;span class="kwrd"&gt;null&lt;/span&gt;)&lt;br /&gt;                {&lt;br /&gt;                    &lt;br /&gt;                    Stream responseStream = response.GetResponseStream();&lt;br /&gt;                    &lt;span class="kwrd"&gt;using&lt;/span&gt; (MemoryStream ms = CompressResponse(responseStream, app, key))&lt;br /&gt;                    {&lt;br /&gt;                        &lt;span class="kwrd"&gt;byte&lt;/span&gt;[] buffer = ms.ToArray();&lt;br /&gt;                        &lt;span class="kwrd"&gt;if&lt;/span&gt; (buffer.Length == 0)&lt;br /&gt;                        {&lt;br /&gt;                            buffer = &lt;span class="kwrd"&gt;new&lt;/span&gt;[] { &lt;span class="kwrd"&gt;byte&lt;/span&gt;.MinValue };&lt;br /&gt;                        }&lt;br /&gt;                        app.Application.Add(key, buffer);&lt;br /&gt;                    }&lt;br /&gt;                }&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span class="rem"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="rem"&gt;/// Compresses the response stream if the browser allows it.&lt;/span&gt;&lt;br /&gt;        &lt;span class="rem"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; MemoryStream CompressResponse(Stream responseStream, HttpApplication app, &lt;span class="kwrd"&gt;string&lt;/span&gt; key)&lt;br /&gt;        {&lt;br /&gt;            var dataStream = &lt;span class="kwrd"&gt;new&lt;/span&gt; MemoryStream();&lt;br /&gt;            StreamCopy(responseStream, dataStream);&lt;br /&gt;            responseStream.Dispose();&lt;br /&gt;&lt;br /&gt;            &lt;span class="kwrd"&gt;byte&lt;/span&gt;[] buffer = dataStream.ToArray();&lt;br /&gt;            dataStream.Dispose();&lt;br /&gt;&lt;br /&gt;            var ms = &lt;span class="kwrd"&gt;new&lt;/span&gt; MemoryStream();&lt;br /&gt;            Stream compress = &lt;span class="kwrd"&gt;null&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;            &lt;span class="kwrd"&gt;if&lt;/span&gt; (IsEncodingAccepted(DEFLATE))&lt;br /&gt;            {&lt;br /&gt;                compress = &lt;span class="kwrd"&gt;new&lt;/span&gt; DeflateStream(ms, CompressionMode.Compress);&lt;br /&gt;                app.Application.Add(key + &lt;span class="str"&gt;"enc"&lt;/span&gt;, DEFLATE);&lt;br /&gt;            }&lt;br /&gt;            &lt;span class="kwrd"&gt;else&lt;/span&gt; &lt;span class="kwrd"&gt;if&lt;/span&gt; (IsEncodingAccepted(GZIP))&lt;br /&gt;            {&lt;br /&gt;                compress = &lt;span class="kwrd"&gt;new&lt;/span&gt; GZipStream(ms, CompressionMode.Compress);&lt;br /&gt;                app.Application.Add(key + &lt;span class="str"&gt;"enc"&lt;/span&gt;, GZIP);&lt;br /&gt;            }&lt;br /&gt;&lt;br /&gt;            &lt;span class="kwrd"&gt;if&lt;/span&gt; (compress != &lt;span class="kwrd"&gt;null&lt;/span&gt;)&lt;br /&gt;            {&lt;br /&gt;                compress.Write(buffer, 0, buffer.Length);&lt;br /&gt;                compress.Dispose();&lt;br /&gt;            }&lt;br /&gt;            &lt;span class="kwrd"&gt;return&lt;/span&gt; ms;&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span class="rem"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="rem"&gt;/// Copies one stream into another.&lt;/span&gt;&lt;br /&gt;        &lt;span class="rem"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; StreamCopy(Stream input, Stream output)&lt;br /&gt;        {&lt;br /&gt;            var buffer = &lt;span class="kwrd"&gt;new&lt;/span&gt; &lt;span class="kwrd"&gt;byte&lt;/span&gt;[2048];&lt;br /&gt;            &lt;span class="kwrd"&gt;int&lt;/span&gt; read;&lt;br /&gt;            &lt;span class="kwrd"&gt;do&lt;/span&gt;&lt;br /&gt;            {&lt;br /&gt;                read = input.Read(buffer, 0, buffer.Length);&lt;br /&gt;                output.Write(buffer, 0, read);&lt;br /&gt;            } &lt;span class="kwrd"&gt;while&lt;/span&gt; (read &amp;gt; 0);&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span class="preproc"&gt;#region&lt;/span&gt; IHttpModule Members&lt;br /&gt;&lt;br /&gt;        &lt;span class="rem"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="rem"&gt;/// Disposes of the resources (other than memory) used by the module &lt;/span&gt;&lt;br /&gt;        &lt;span class="rem"&gt;/// that implements &amp;lt;see cref="T:System.Web.IHttpModule"&amp;gt;&amp;lt;/see&amp;gt;.&lt;/span&gt;&lt;br /&gt;        &lt;span class="rem"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;void&lt;/span&gt; IHttpModule.Dispose()&lt;br /&gt;        {&lt;br /&gt;            &lt;span class="rem"&gt;// Nothing to dispose; &lt;/span&gt;&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span class="rem"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="rem"&gt;/// Initializes a module and prepares it to handle requests.&lt;/span&gt;&lt;br /&gt;        &lt;span class="rem"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="rem"&gt;/// &amp;lt;param name="context"&amp;gt;An &amp;lt;see cref="T:System.Web.HttpApplication"&amp;gt;&amp;lt;/see&amp;gt; &lt;/span&gt;&lt;br /&gt;        &lt;span class="rem"&gt;/// that provides access to the methods, properties, and events common to &lt;/span&gt;&lt;br /&gt;        &lt;span class="rem"&gt;/// all application objects within an ASP.NET application.&lt;/span&gt;&lt;br /&gt;        &lt;span class="rem"&gt;/// &amp;lt;/param&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;void&lt;/span&gt; IHttpModule.Init(HttpApplication context)&lt;br /&gt;        {&lt;br /&gt;            &lt;span class="rem"&gt;// For WebResource.axd compression&lt;/span&gt;&lt;br /&gt;            context.BeginRequest += context_BeginRequest;&lt;br /&gt;            context.EndRequest += context_EndRequest;&lt;br /&gt;            context.PreSendRequestContent += context_PreSendRequestContent;&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span class="preproc"&gt;#endregion&lt;/span&gt;&lt;br /&gt;    }&lt;br /&gt;}&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8777320242835817445-204604883883578659?l=jefferychinet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jefferychinet.blogspot.com/feeds/204604883883578659/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jefferychinet.blogspot.com/2010/04/http-handler-compressionmodule.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/204604883883578659'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/204604883883578659'/><link rel='alternate' type='text/html' href='http://jefferychinet.blogspot.com/2010/04/http-handler-compressionmodule.html' title='Http Handler CompressionModule'/><author><name>Jeffery Chi</name><uri>http://www.blogger.com/profile/01777274222273910460</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_0awGwIWdbAQ/SrWo52s_aPI/AAAAAAAAAe0/sz5rSKavJMs/S220/airforcewing.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8777320242835817445.post-1532353315569516513</id><published>2010-04-13T00:55:00.000-07:00</published><updated>2010-04-13T00:59:54.133-07:00</updated><title type='text'>.NET Framework Reflection Assemblies and Modules Multi files Assembly</title><content type='html'>Download sources code of producing (&lt;a href="http://airforcewing.com/downloads/MultifilesAssembly.zip"&gt;Multi file assembly&lt;/a&gt;)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8777320242835817445-1532353315569516513?l=jefferychinet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jefferychinet.blogspot.com/feeds/1532353315569516513/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jefferychinet.blogspot.com/2010/04/net-framework-reflection-assemblies-and.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/1532353315569516513'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/1532353315569516513'/><link rel='alternate' type='text/html' href='http://jefferychinet.blogspot.com/2010/04/net-framework-reflection-assemblies-and.html' title='.NET Framework Reflection Assemblies and Modules Multi files Assembly'/><author><name>Jeffery Chi</name><uri>http://www.blogger.com/profile/01777274222273910460</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_0awGwIWdbAQ/SrWo52s_aPI/AAAAAAAAAe0/sz5rSKavJMs/S220/airforcewing.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8777320242835817445.post-1569150012880559463</id><published>2010-04-06T17:36:00.000-07:00</published><updated>2010-04-06T17:37:13.896-07:00</updated><title type='text'>Use as infinite loops</title><content type='html'>&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;&lt;br /&gt;&lt;pre class="csharpcode"&gt;&lt;br /&gt;        private void PRSDK_EnumerateDevices(ref List&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;string&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt; names)&lt;br /&gt;        {&lt;br /&gt;            UInt32 err = (UInt32)prError.prOK;&lt;br /&gt;            UInt32 bufSize = 0;&lt;br /&gt;            prType.prDeviceList pGetDevList = new prType.prDeviceList();&lt;br /&gt;&lt;br /&gt;            for (; ; )&lt;br /&gt;            {&lt;br /&gt;                /* Enumerate camera devices by PS-ReC SDK */&lt;br /&gt;                err = prAPI.PR_GetDeviceList(ref bufSize, ref pGetDevList);&lt;br /&gt;                if (err == (UInt32)prError.prOK)&lt;br /&gt;                {&lt;br /&gt;                    break;&lt;br /&gt;                }&lt;br /&gt;                if ((err &amp;amp; (UInt32)prError.prERROR_ERRORID_MASK) != (UInt32)prError.prINSUFFICIENT_BUFFER)&lt;br /&gt;                {&lt;br /&gt;                    HandleError("PR_GetDeviceList", err);&lt;br /&gt;                    return;&lt;br /&gt;                }&lt;br /&gt;            }&lt;br /&gt;&lt;br /&gt;            if (pGetDevList.NumList &lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt; 0)&lt;br /&gt;            {&lt;br /&gt;                for (int i = 0; i &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt; (pGetDevList.NumList); i++)&lt;br /&gt;                {&lt;br /&gt;                    // Create a SDKInfo structure for each DeviceInfo object in the device list&lt;br /&gt;                    SDKInfo pDeviceInfo = new SDKInfo();&lt;br /&gt;                    pDeviceInfo.SelectedSDK = SDKType.PRSDK;&lt;br /&gt;                    pDeviceInfo.PRSDK_Src = pGetDevList.DeviceInfo[i];&lt;br /&gt;&lt;br /&gt;                    // Add the SDKInfo object to the devices arraylist&lt;br /&gt;                    names.Add(pDeviceInfo.PRSDK_Src.ModelName);&lt;br /&gt;                    devices.Add(pDeviceInfo);&lt;br /&gt;                }&lt;br /&gt;            }&lt;br /&gt;&lt;br /&gt;        }&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8777320242835817445-1569150012880559463?l=jefferychinet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jefferychinet.blogspot.com/feeds/1569150012880559463/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jefferychinet.blogspot.com/2010/04/use-as-infinite-loops.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/1569150012880559463'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/1569150012880559463'/><link rel='alternate' type='text/html' href='http://jefferychinet.blogspot.com/2010/04/use-as-infinite-loops.html' title='Use as infinite loops'/><author><name>Jeffery Chi</name><uri>http://www.blogger.com/profile/01777274222273910460</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_0awGwIWdbAQ/SrWo52s_aPI/AAAAAAAAAe0/sz5rSKavJMs/S220/airforcewing.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8777320242835817445.post-7279905593744162409</id><published>2010-04-06T16:15:00.000-07:00</published><updated>2010-04-06T16:18:38.053-07:00</updated><title type='text'>Stream Buffer</title><content type='html'>Just to remind myself about Reading Stream, Buffer&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.yoda.arachsys.com/csharp/readbinary.html"&gt;http://www.yoda.arachsys.com/csharp/readbinary.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;/// &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;summary&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;/// Reads data from a stream until the end is reached. The&lt;br /&gt;&lt;br /&gt;/// data is returned as a byte array. An IOException is&lt;br /&gt;&lt;br /&gt;/// thrown if any of the underlying IO calls fail.&lt;br /&gt;&lt;br /&gt;/// &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;summary&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;/// &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;param&lt;/span&gt; &lt;span class="attr"&gt;name&lt;/span&gt;&lt;span class="kwrd"&gt;="stream"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;The stream to read data from&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;param&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;public static byte[] ReadFully (Stream stream)&lt;br /&gt;&lt;br /&gt;{&lt;br /&gt;&lt;br /&gt;    byte[] buffer = new byte[32768];&lt;br /&gt;&lt;br /&gt;    using (MemoryStream ms = new MemoryStream())&lt;br /&gt;&lt;br /&gt;    {&lt;br /&gt;&lt;br /&gt;        while (true)&lt;br /&gt;&lt;br /&gt;        {&lt;br /&gt;&lt;br /&gt;            int read = stream.Read (buffer, 0, buffer.Length);&lt;br /&gt;&lt;br /&gt;            if (read &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;= 0)&lt;br /&gt;&lt;br /&gt;                return ms.ToArray();&lt;br /&gt;&lt;br /&gt;            ms.Write (buffer, 0, read);&lt;br /&gt;&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;}&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8777320242835817445-7279905593744162409?l=jefferychinet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jefferychinet.blogspot.com/feeds/7279905593744162409/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jefferychinet.blogspot.com/2010/04/stream-buffer.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/7279905593744162409'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/7279905593744162409'/><link rel='alternate' type='text/html' href='http://jefferychinet.blogspot.com/2010/04/stream-buffer.html' title='Stream Buffer'/><author><name>Jeffery Chi</name><uri>http://www.blogger.com/profile/01777274222273910460</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_0awGwIWdbAQ/SrWo52s_aPI/AAAAAAAAAe0/sz5rSKavJMs/S220/airforcewing.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8777320242835817445.post-344413910212788271</id><published>2010-04-06T16:12:00.000-07:00</published><updated>2010-04-06T16:13:47.215-07:00</updated><title type='text'>WSS SharePoint site Remove 'View All Site Content' on home page</title><content type='html'>Here is an excellent article about how to do that :&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.crsw.com/mark/Lists/Posts/Post.aspx?ID=36"&gt;http://www.crsw.com/mark/Lists/Posts/Post.aspx?ID=36&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8777320242835817445-344413910212788271?l=jefferychinet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jefferychinet.blogspot.com/feeds/344413910212788271/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jefferychinet.blogspot.com/2010/04/wss-sharepoint-site-remove-view-all.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/344413910212788271'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/344413910212788271'/><link rel='alternate' type='text/html' href='http://jefferychinet.blogspot.com/2010/04/wss-sharepoint-site-remove-view-all.html' title='WSS SharePoint site Remove &apos;View All Site Content&apos; on home page'/><author><name>Jeffery Chi</name><uri>http://www.blogger.com/profile/01777274222273910460</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_0awGwIWdbAQ/SrWo52s_aPI/AAAAAAAAAe0/sz5rSKavJMs/S220/airforcewing.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8777320242835817445.post-2500519325144463526</id><published>2010-04-06T00:07:00.001-07:00</published><updated>2010-04-06T14:11:35.429-07:00</updated><title type='text'>Click Once Application</title><content type='html'>&lt;a href="http://4.bp.blogspot.com/_0awGwIWdbAQ/S7reKMuLwiI/AAAAAAAAAhU/uMfil4Eu56k/s1600/click_once_installation.JPG"&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 400px; DISPLAY: block; HEIGHT: 198px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5456918165307769378" border="0" alt="" src="http://4.bp.blogspot.com/_0awGwIWdbAQ/S7reKMuLwiI/AAAAAAAAAhU/uMfil4Eu56k/s400/click_once_installation.JPG" /&gt;&lt;/a&gt;&lt;br /&gt;Windows XP, Windows Server 2003 - clean install (and upgrades from Windows 2000 and Windows 98)&lt;br /&gt;Roaming-enabled stores =&lt;br /&gt;&lt;systemdrive&gt;\Documents and Settings\&lt;user&gt;\Application Data&lt;br /&gt;Nonroaming stores =&lt;br /&gt;&lt;systemdrive&gt;\Documents and Settings\&lt;user&gt;\Local Settings\Application Data&lt;br /&gt;&lt;br /&gt;IsolatedStorageFileStream :&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre class="csharpcode"&gt;&lt;br /&gt;  &lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; RecordDateTimeInstalled()&lt;br /&gt;        {&lt;br /&gt;            &lt;span class="rem"&gt;//IsolatedStorageFile isoFile = IsolatedStorageFile.GetStore(IsolatedStorageScope.User IsolatedStorageScope.Assembly IsolatedStorageScope.Domain,typeof(System.Security.Policy.Url),typeof(System.Security.Policy.Url));&lt;/span&gt;&lt;br /&gt;            &lt;span class="rem"&gt;//using (IsolatedStorageFile isoFile = IsolatedStorageFile.GetUserStoreForApplication())&lt;/span&gt;&lt;br /&gt;            &lt;span class="kwrd"&gt;using&lt;/span&gt; (IsolatedStorageFile isoFile = IsolatedStorageFile.GetStore(IsolatedStorageScope.User  IsolatedStorageScope.Assembly  IsolatedStorageScope.Domain, &lt;span class="kwrd"&gt;typeof&lt;/span&gt;(System.Security.Policy.Url), &lt;span class="kwrd"&gt;typeof&lt;/span&gt;(System.Security.Policy.Url)))&lt;br /&gt;            {&lt;br /&gt;                &lt;span class="kwrd"&gt;if&lt;/span&gt; (isoFile.GetDirectoryNames(&lt;span class="str"&gt;"jefferycxl"&lt;/span&gt;).Length == 0)&lt;br /&gt;                {&lt;br /&gt;                    isoFile.CreateDirectory(&lt;span class="str"&gt;"jefferycxl"&lt;/span&gt;);&lt;br /&gt;                }&lt;br /&gt;                &lt;span class="kwrd"&gt;using&lt;/span&gt; (IsolatedStorageFileStream strm1 = &lt;span class="kwrd"&gt;new&lt;/span&gt; IsolatedStorageFileStream(&lt;span class="str"&gt;@"jefferycxl\AFWTEST.Desktop.Data"&lt;/span&gt;, FileMode.Create, isoFile))&lt;br /&gt;                {&lt;br /&gt;                    BinaryFormatter bf1 = &lt;span class="kwrd"&gt;new&lt;/span&gt; BinaryFormatter();&lt;br /&gt;                    bf1.Serialize(strm1, DateTime.Now);&lt;br /&gt;                }&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;string&lt;/span&gt; ReadInstalledRecored()&lt;br /&gt;        {&lt;br /&gt;            &lt;span class="kwrd"&gt;string&lt;/span&gt; s = &lt;span class="kwrd"&gt;string&lt;/span&gt;.Empty;&lt;br /&gt;            DateTime dt = DateTime.MinValue;&lt;br /&gt;            &lt;span class="rem"&gt;//using (IsolatedStorageFile store = IsolatedStorageFile.GetUserStoreForApplication())&lt;/span&gt;&lt;br /&gt;            &lt;span class="kwrd"&gt;using&lt;/span&gt;(IsolatedStorageFile store = IsolatedStorageFile.GetStore(IsolatedStorageScope.User  IsolatedStorageScope.Assembly  IsolatedStorageScope.Domain, &lt;span class="kwrd"&gt;typeof&lt;/span&gt;(System.Security.Policy.Url), &lt;span class="kwrd"&gt;typeof&lt;/span&gt;(System.Security.Policy.Url)))&lt;br /&gt;            {&lt;br /&gt;                &lt;span class="kwrd"&gt;using&lt;/span&gt; (IsolatedStorageFileStream source = &lt;span class="kwrd"&gt;new&lt;/span&gt; IsolatedStorageFileStream(&lt;span class="str"&gt;@"jefferycxl\AFWTEST.Desktop.Data"&lt;/span&gt;, FileMode.Open, store))&lt;br /&gt;                {&lt;br /&gt;                    BinaryFormatter bf = &lt;span class="kwrd"&gt;new&lt;/span&gt; BinaryFormatter();&lt;br /&gt;                    dt = Convert.ToDateTime(bf.Deserialize(source));&lt;br /&gt;                    s = dt.ToString() + &lt;span class="str"&gt;"Is the source file readable?"&lt;/span&gt; +  (source.CanRead ? &lt;span class="str"&gt;"true"&lt;/span&gt; : &lt;span class="str"&gt;"false"&lt;/span&gt;) +  &lt;span class="str"&gt;" Current Data Size : "&lt;/span&gt; + store.CurrentSize.ToString() + &lt;span class="str"&gt;" Maximum Size : "&lt;/span&gt; + store.MaximumSize.ToString() + &lt;span class="str"&gt;" Scope : "&lt;/span&gt; + store.Scope.ToString();&lt;br /&gt;                }&lt;br /&gt;            }&lt;br /&gt;            &lt;span class="kwrd"&gt;return&lt;/span&gt; s;&lt;br /&gt;        }&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8777320242835817445-2500519325144463526?l=jefferychinet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jefferychinet.blogspot.com/feeds/2500519325144463526/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jefferychinet.blogspot.com/2010/04/click-once-application.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/2500519325144463526'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/2500519325144463526'/><link rel='alternate' type='text/html' href='http://jefferychinet.blogspot.com/2010/04/click-once-application.html' title='Click Once Application'/><author><name>Jeffery Chi</name><uri>http://www.blogger.com/profile/01777274222273910460</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_0awGwIWdbAQ/SrWo52s_aPI/AAAAAAAAAe0/sz5rSKavJMs/S220/airforcewing.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_0awGwIWdbAQ/S7reKMuLwiI/AAAAAAAAAhU/uMfil4Eu56k/s72-c/click_once_installation.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8777320242835817445.post-8994386360282451226</id><published>2010-04-04T02:46:00.000-07:00</published><updated>2010-04-04T04:01:50.260-07:00</updated><title type='text'>Open XML SDK</title><content type='html'>&lt;a href="http://msdn.microsoft.com/en-us/library/documentformat.openxml.openxmlelement_members(v=office.14).aspx"&gt;http://msdn.microsoft.com/en-us/library/documentformat.openxml.openxmlelement_members(v=office.14).aspx&lt;/a&gt; &lt;br /&gt;&lt;br /&gt;&lt;a href="http://blogs.msdn.com/brian_jones/default.aspx"&gt;http://blogs.msdn.com/brian_jones/default.aspx&lt;/a&gt; &lt;br /&gt;&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/library/bb508943.aspx#XL2007OpenXMLInsertingValueIntoCell_CodeIt"&gt;http://msdn.microsoft.com/library/bb508943.aspx#XL2007OpenXMLInsertingValueIntoCell_CodeIt&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8777320242835817445-8994386360282451226?l=jefferychinet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jefferychinet.blogspot.com/feeds/8994386360282451226/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jefferychinet.blogspot.com/2010/04/open-xml-sdk.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/8994386360282451226'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/8994386360282451226'/><link rel='alternate' type='text/html' href='http://jefferychinet.blogspot.com/2010/04/open-xml-sdk.html' title='Open XML SDK'/><author><name>Jeffery Chi</name><uri>http://www.blogger.com/profile/01777274222273910460</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_0awGwIWdbAQ/SrWo52s_aPI/AAAAAAAAAe0/sz5rSKavJMs/S220/airforcewing.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8777320242835817445.post-1084782472368968350</id><published>2010-04-03T20:23:00.000-07:00</published><updated>2010-04-03T20:29:19.063-07:00</updated><title type='text'>JQuery</title><content type='html'>&lt;pre class="csharpcode"&gt;&lt;br /&gt;$(&lt;span class="str"&gt;"p:even"&lt;/span&gt;);&lt;br /&gt;This selector selects all even &amp;lt;p&amp;gt; elements.&lt;br /&gt;$(&lt;span class="str"&gt;"tr:nth-child(1)"&lt;/span&gt;);&lt;br /&gt;This selector selects the first row of each table.&lt;br /&gt;$(&lt;span class="str"&gt;"body &amp;gt; div"&lt;/span&gt;);&lt;br /&gt;This selector selects direct &amp;lt;div&amp;gt; children of &amp;lt;body&amp;gt;.&lt;br /&gt;$(&lt;span class="str"&gt;"a[href$=pdf]"&lt;/span&gt;);&lt;br /&gt;This selector selects links to PDF files.&lt;br /&gt;$(&lt;span class="str"&gt;"body &amp;gt; div:has(a)"&lt;/span&gt;)&lt;br /&gt;This selector selects direct &amp;lt;div&amp;gt; children of &amp;lt;body&amp;gt;-containing links.&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8777320242835817445-1084782472368968350?l=jefferychinet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jefferychinet.blogspot.com/feeds/1084782472368968350/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jefferychinet.blogspot.com/2010/04/jquery.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/1084782472368968350'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/1084782472368968350'/><link rel='alternate' type='text/html' href='http://jefferychinet.blogspot.com/2010/04/jquery.html' title='JQuery'/><author><name>Jeffery Chi</name><uri>http://www.blogger.com/profile/01777274222273910460</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_0awGwIWdbAQ/SrWo52s_aPI/AAAAAAAAAe0/sz5rSKavJMs/S220/airforcewing.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8777320242835817445.post-7802669995303729420</id><published>2010-03-30T18:24:00.000-07:00</published><updated>2010-03-30T18:25:34.327-07:00</updated><title type='text'>Microsoft US - Open XML Developer</title><content type='html'>&lt;a href="https://openxmldeveloper.org/"&gt;https://openxmldeveloper.org/&lt;/a&gt; &lt;br /&gt;&lt;br /&gt;Join me on this site and explore open xml !&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8777320242835817445-7802669995303729420?l=jefferychinet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jefferychinet.blogspot.com/feeds/7802669995303729420/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jefferychinet.blogspot.com/2010/03/microsoft-us-open-xml-developer.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/7802669995303729420'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/7802669995303729420'/><link rel='alternate' type='text/html' href='http://jefferychinet.blogspot.com/2010/03/microsoft-us-open-xml-developer.html' title='Microsoft US - Open XML Developer'/><author><name>Jeffery Chi</name><uri>http://www.blogger.com/profile/01777274222273910460</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_0awGwIWdbAQ/SrWo52s_aPI/AAAAAAAAAe0/sz5rSKavJMs/S220/airforcewing.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8777320242835817445.post-1539601094693390351</id><published>2010-03-30T15:44:00.001-07:00</published><updated>2010-03-30T15:44:34.220-07:00</updated><title type='text'>Basic Heap vs. Stack</title><content type='html'>&lt;a href="http://www.c-sharpcorner.com/UploadFile/rmcochran/csharp_memory01122006130034PM/csharp_memory.ASPx"&gt;http://www.c-sharpcorner.com/UploadFile/rmcochran/csharp_memory01122006130034PM/csharp_memory.ASPx&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8777320242835817445-1539601094693390351?l=jefferychinet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jefferychinet.blogspot.com/feeds/1539601094693390351/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jefferychinet.blogspot.com/2010/03/basic-heap-vs-stack.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/1539601094693390351'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/1539601094693390351'/><link rel='alternate' type='text/html' href='http://jefferychinet.blogspot.com/2010/03/basic-heap-vs-stack.html' title='Basic Heap vs. Stack'/><author><name>Jeffery Chi</name><uri>http://www.blogger.com/profile/01777274222273910460</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_0awGwIWdbAQ/SrWo52s_aPI/AAAAAAAAAe0/sz5rSKavJMs/S220/airforcewing.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8777320242835817445.post-6460402005643766429</id><published>2010-03-30T15:31:00.001-07:00</published><updated>2010-03-30T15:31:50.883-07:00</updated><title type='text'>SharePoint + CAML</title><content type='html'>&lt;a href="http://msdn.microsoft.com/en-us/library/dd588092(v=office.11).aspx"&gt;http://msdn.microsoft.com/en-us/library/dd588092(v=office.11).aspx&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8777320242835817445-6460402005643766429?l=jefferychinet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jefferychinet.blogspot.com/feeds/6460402005643766429/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jefferychinet.blogspot.com/2010/03/sharepoint-caml.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/6460402005643766429'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/6460402005643766429'/><link rel='alternate' type='text/html' href='http://jefferychinet.blogspot.com/2010/03/sharepoint-caml.html' title='SharePoint + CAML'/><author><name>Jeffery Chi</name><uri>http://www.blogger.com/profile/01777274222273910460</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_0awGwIWdbAQ/SrWo52s_aPI/AAAAAAAAAe0/sz5rSKavJMs/S220/airforcewing.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8777320242835817445.post-7828803830649422190</id><published>2010-03-29T20:45:00.000-07:00</published><updated>2010-03-29T20:46:54.046-07:00</updated><title type='text'>ASP.NET Export DataTable To CSV file</title><content type='html'>&lt;pre class="csharpcode"&gt;Piece of code from microsoft demo project, just to remind myself.&lt;br /&gt;  &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; ExportCSV(DataTable data, &lt;span class="kwrd"&gt;string&lt;/span&gt; fileName)&lt;br /&gt;  {&lt;br /&gt;&lt;br /&gt;    HttpContext context = HttpContext.Current;&lt;br /&gt;&lt;br /&gt;    context.Response.Clear();&lt;br /&gt;    context.Response.ContentType = &lt;span class="str"&gt;"text/csv"&lt;/span&gt;;&lt;br /&gt;    context.Response.AddHeader(&lt;span class="str"&gt;"Content-Disposition"&lt;/span&gt;, &lt;span class="str"&gt;"attachment; filename="&lt;/span&gt; + fileName + &lt;span class="str"&gt;".csv"&lt;/span&gt;);&lt;br /&gt;&lt;br /&gt;    &lt;span class="rem"&gt;//rite column header names&lt;/span&gt;&lt;br /&gt;    &lt;span class="kwrd"&gt;for&lt;/span&gt; (&lt;span class="kwrd"&gt;int&lt;/span&gt; i = 0; i &amp;lt; data.Columns.Count - 1; i++)&lt;br /&gt;    {&lt;br /&gt;      &lt;span class="kwrd"&gt;if&lt;/span&gt; (i &amp;gt; 0)&lt;br /&gt;      {&lt;br /&gt;        context.Response.Write(&lt;span class="str"&gt;","&lt;/span&gt;);&lt;br /&gt;      }&lt;br /&gt;      context.Response.Write(data.Columns[i].ColumnName);&lt;br /&gt;    }&lt;br /&gt;    context.Response.Write(Environment.NewLine);&lt;br /&gt;&lt;br /&gt;    &lt;span class="rem"&gt;//Write data&lt;/span&gt;&lt;br /&gt;    &lt;span class="kwrd"&gt;foreach&lt;/span&gt; (DataRow row &lt;span class="kwrd"&gt;in&lt;/span&gt; data.Rows)&lt;br /&gt;    {&lt;br /&gt;&lt;br /&gt;      &lt;span class="kwrd"&gt;for&lt;/span&gt; (&lt;span class="kwrd"&gt;int&lt;/span&gt; i = 0; i &amp;lt; data.Columns.Count - 1; i++)&lt;br /&gt;      {&lt;br /&gt;        &lt;span class="kwrd"&gt;if&lt;/span&gt; (i &amp;gt; 0)&lt;br /&gt;        {&lt;br /&gt;          context.Response.Write(&lt;span class="str"&gt;","&lt;/span&gt;);&lt;br /&gt;        }&lt;br /&gt;        context.Response.Write(data.Columns[i].ColumnName);&lt;br /&gt;      }&lt;br /&gt;      context.Response.Write(Environment.NewLine);&lt;br /&gt;    }&lt;br /&gt;    context.Response.End();&lt;br /&gt;&lt;br /&gt;  }&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8777320242835817445-7828803830649422190?l=jefferychinet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jefferychinet.blogspot.com/feeds/7828803830649422190/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jefferychinet.blogspot.com/2010/03/aspnet-export-datatable-to-csv-file.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/7828803830649422190'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/7828803830649422190'/><link rel='alternate' type='text/html' href='http://jefferychinet.blogspot.com/2010/03/aspnet-export-datatable-to-csv-file.html' title='ASP.NET Export DataTable To CSV file'/><author><name>Jeffery Chi</name><uri>http://www.blogger.com/profile/01777274222273910460</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_0awGwIWdbAQ/SrWo52s_aPI/AAAAAAAAAe0/sz5rSKavJMs/S220/airforcewing.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8777320242835817445.post-5922582522731377305</id><published>2010-03-29T19:47:00.001-07:00</published><updated>2010-03-29T19:47:37.070-07:00</updated><title type='text'>ADO.NET part 2</title><content type='html'>&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;&lt;br /&gt;&lt;pre class="csharpcode"&gt;&lt;br /&gt;OleDb - access SQL Server 6.5 (and earlier versions), SyBase, DB2/400, and Microsoft Access.&lt;br /&gt;&lt;br /&gt;Odbc - general-purpose data access to many data sources. This provider &lt;span class="kwrd"&gt;is&lt;/span&gt; typically used when no newer provider &lt;span class="kwrd"&gt;is&lt;/span&gt; available.&lt;br /&gt;&lt;span class="rem"&gt;//excel database&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;SQL Server - lasses are tuned &lt;span class="kwrd"&gt;for&lt;/span&gt; SQL Server 7.0 and later data access. SQL Server 6.5 and earlier must use the OleDb provider&lt;br /&gt;&lt;br /&gt;Oracle - This provider &lt;span class="kwrd"&gt;is&lt;/span&gt; similar to the OleDb provider but provides better performance.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;base&lt;/span&gt; classes :&lt;br /&gt;&lt;br /&gt;DbConnection&lt;br /&gt;DbCommand&lt;br /&gt;DbDataReader&lt;br /&gt;DbTransaction&lt;br /&gt;DbParameter&lt;br /&gt;DbParameterCollection&lt;br /&gt;DbDataAdapter&lt;br /&gt;DbCommandBuilder&lt;br /&gt;DbConnectionStringBuilder&lt;br /&gt;DBDataPermission&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;sqlclient classes ;&lt;br /&gt;&lt;br /&gt;SqlConnection&lt;br /&gt;SqlCommand&lt;br /&gt;SqlDataReader&lt;br /&gt;SqlTransaction&lt;br /&gt;SqlParameter&lt;br /&gt;SqlParameterCollection&lt;br /&gt;SqlDataAdapter&lt;br /&gt;SqlCommandBuilder&lt;br /&gt;SqlConnectionStringBuilder&lt;br /&gt;SqlPermission&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;You can close the connection by executing the Close method or by executing the Dispose method. It’s common to create a “&lt;span class="kwrd"&gt;using&lt;/span&gt;” block to force the Dispose method to execute,&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; (connection)&lt;br /&gt;{ connection.Open();&lt;br /&gt;&lt;span class="rem"&gt;//cool commands here... &lt;/span&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;Driver={Microsoft Text Driver (*.txt; *.csv)};DBQ=C:\\Sample\\MySampleFolder;&lt;br /&gt;&lt;br /&gt;Driver={Microsoft Access Driver (*.mdb)};DBQ=C:\\program files\\mySampleApp\\northwind.mdb&lt;br /&gt;&lt;br /&gt;&lt;span class="rem"&gt;//oracle database&lt;/span&gt;&lt;br /&gt;Driver={Microsoft ODBC &lt;span class="kwrd"&gt;for&lt;/span&gt; Oracle};Server=ORACLE8i7;UID=john;PWD=s3$W%1Xz&lt;br /&gt;&lt;br /&gt;Driver={Microsoft Excel Driver (*.xls)}; DBQ=C:\\Samples\\MyBook.xls&lt;br /&gt;&lt;br /&gt;Working with Sample OLEDB Connection Strings This connection &lt;span class="kwrd"&gt;string&lt;/span&gt; uses the settings stored &lt;span class="kwrd"&gt;in&lt;/span&gt; the MyAppData.udl file. (The .udl extension stands &lt;span class="kwrd"&gt;for&lt;/span&gt; universal data link.)&lt;br /&gt;FILE NAME=C:\Program Files\MyApp\MyAppData.udl&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Encrypt - A setting &lt;span class="kwrd"&gt;in&lt;/span&gt; which, &lt;span class="kwrd"&gt;if&lt;/span&gt; Encrypt &lt;span class="kwrd"&gt;is&lt;/span&gt; set to &lt;span class="kwrd"&gt;true&lt;/span&gt; and SQL Server has a certificate installed, all communication between the client and server &lt;span class="kwrd"&gt;is&lt;/span&gt; SSL-encrypted.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Integrated Security, trusted_connection - A secure connection to SQL Server, &lt;span class="kwrd"&gt;in&lt;/span&gt; which authentication &lt;span class="kwrd"&gt;is&lt;/span&gt; via the user’s domain account. Can be set to&lt;br /&gt;&lt;span class="kwrd"&gt;true&lt;/span&gt;, &lt;span class="kwrd"&gt;false&lt;/span&gt;, or sspi. The &lt;span class="kwrd"&gt;default&lt;/span&gt; &lt;span class="kwrd"&gt;is&lt;/span&gt; &lt;span class="kwrd"&gt;false&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Working with Connection Pools Creating and opening a connection to a data store can be a time-consuming and resource-intensive proposition, especially on Web-based systems, &lt;span class="kwrd"&gt;if&lt;/span&gt; you require separate connections to the data store on a user-by-user basis. It’s easy to get into a situation &lt;span class="kwrd"&gt;where&lt;/span&gt; every user has one or more open connections to the database and the database server &lt;span class="kwrd"&gt;is&lt;/span&gt; consuming too many resources just managing connections. Ideally, the data store should be spending most of its time delivering data and &lt;span class="kwrd"&gt;as&lt;/span&gt; little time &lt;span class="kwrd"&gt;as&lt;/span&gt; possible maintaining connections. This &lt;span class="kwrd"&gt;is&lt;/span&gt; &lt;span class="kwrd"&gt;where&lt;/span&gt; connection pooling can help.&lt;br /&gt;&lt;br /&gt;Where Is the Pool Located? Connection pooling &lt;span class="kwrd"&gt;is&lt;/span&gt; a client-side technology, which means that the connection pool exists on the machine that initiates the DbConnection &lt;span class="kwrd"&gt;object&lt;/span&gt;’s Open statement. The database server has no idea that there might be one or more connection pools involved &lt;span class="kwrd"&gt;in&lt;/span&gt; your application.&lt;br /&gt;When Is the Pool Created? A connection pool group &lt;span class="kwrd"&gt;is&lt;/span&gt; an &lt;span class="kwrd"&gt;object&lt;/span&gt; that manages the connection pools &lt;span class="kwrd"&gt;for&lt;/span&gt; a specific ADO.NET provider. When the first connection &lt;span class="kwrd"&gt;is&lt;/span&gt; instantiated, a connection pool group &lt;span class="kwrd"&gt;is&lt;/span&gt; created, but the first connection pool &lt;span class="kwrd"&gt;is&lt;/span&gt; not created until the first connection &lt;span class="kwrd"&gt;is&lt;/span&gt; opened.&lt;br /&gt;Do Connections Stay &lt;span class="kwrd"&gt;in&lt;/span&gt; the Pool? A connection &lt;span class="kwrd"&gt;is&lt;/span&gt; removed from the pool of available connections &lt;span class="kwrd"&gt;for&lt;/span&gt; use and then returned to the pool of available connections. When a connection &lt;span class="kwrd"&gt;is&lt;/span&gt; returned to the connection pool, it has a &lt;span class="kwrd"&gt;default&lt;/span&gt; idle lifetime of four to eight minutes, which &lt;span class="kwrd"&gt;is&lt;/span&gt; an intentionally random time span to ensure that idle connections are not held indefinitely. You can set the connection &lt;span class="kwrd"&gt;string&lt;/span&gt;’s Min Pool Size to one or greater when you want to make sure that at least one connection &lt;span class="kwrd"&gt;is&lt;/span&gt; available when your application &lt;span class="kwrd"&gt;is&lt;/span&gt; idle &lt;span class="kwrd"&gt;for&lt;/span&gt; &lt;span class="kwrd"&gt;long&lt;/span&gt; periods.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="rem"&gt;//C#&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;protected&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; Button10_Click(&lt;span class="kwrd"&gt;object&lt;/span&gt; sender, EventArgs e)&lt;br /&gt;{ Label lbl = GetLabel(275, 20); ConnectionStringSettings pubs =&lt;br /&gt;ConfigurationManager.ConnectionStrings[&lt;span class="str"&gt;"PubsDataMars"&lt;/span&gt;];&lt;br /&gt;DbConnection connection = &lt;span class="kwrd"&gt;new&lt;/span&gt; SqlConnection(pubs.ConnectionString);&lt;br /&gt;DbCommand cmd = connection.CreateCommand();&lt;br /&gt;cmd.CommandType = CommandType.Text;&lt;br /&gt;cmd.CommandText = &lt;span class="str"&gt;"SELECT au_id, au_lname, au_fname FROM Authors"&lt;/span&gt;;&lt;br /&gt;connection.Open();&lt;br /&gt;DbDataReader rdr = cmd.ExecuteReader();&lt;br /&gt;&lt;span class="kwrd"&gt;while&lt;/span&gt; (rdr.Read())&lt;br /&gt;{&lt;br /&gt;DbCommand salesCmd = connection.CreateCommand();&lt;br /&gt;salesCmd.CommandType = CommandType.Text;&lt;br /&gt;salesCmd.CommandText =&lt;br /&gt;&lt;span class="str"&gt;"SELECT SUM(royaltyper) FROM titleauthor WHERE (au_id = @auId)"&lt;/span&gt;;&lt;br /&gt;DbParameter parm = salesCmd.CreateParameter();&lt;br /&gt;parm.ParameterName = &lt;span class="str"&gt;"@auId"&lt;/span&gt;;&lt;br /&gt;parm.Value = (&lt;span class="kwrd"&gt;string&lt;/span&gt;)rdr[&lt;span class="str"&gt;"au_id"&lt;/span&gt;];&lt;br /&gt;salesCmd.Parameters.Add(parm);&lt;br /&gt;&lt;span class="kwrd"&gt;object&lt;/span&gt; qtyRoyalties = salesCmd.ExecuteScalar();&lt;br /&gt;lbl.Text += (&lt;span class="kwrd"&gt;string&lt;/span&gt;)rdr[&lt;span class="str"&gt;"au_lname"&lt;/span&gt;] + &lt;span class="str"&gt;", "&lt;/span&gt; + (&lt;span class="kwrd"&gt;string&lt;/span&gt;)rdr[&lt;span class="str"&gt;"au_fname"&lt;/span&gt;]&lt;br /&gt;+ &lt;span class="str"&gt;": "&lt;/span&gt; + &lt;span class="kwrd"&gt;string&lt;/span&gt;.Format(&lt;span class="str"&gt;"{0:C}"&lt;/span&gt;,qtyRoyalties) + &lt;span class="str"&gt;"&amp;lt;br /&amp;gt;"&lt;/span&gt;;&lt;br /&gt;}&lt;br /&gt;connection.Close();&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="rem"&gt;//C#&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;protected&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; Button11_Click(&lt;span class="kwrd"&gt;object&lt;/span&gt; sender, EventArgs e) { ConnectionStringSettings pubs = ConfigurationManager.ConnectionStrings[&lt;span class="str"&gt;"PubsData"&lt;/span&gt;]; DbConnection connection = &lt;span class="kwrd"&gt;new&lt;/span&gt; SqlConnection(pubs.ConnectionString); ConnectionStringSettings bulkCopy = ConfigurationManager.ConnectionStrings[&lt;span class="str"&gt;"PubsData"&lt;/span&gt;]; SqlConnection bulkCopyConnection =&lt;br /&gt;&lt;span class="kwrd"&gt;new&lt;/span&gt; SqlConnection(bulkCopy.ConnectionString);&lt;br /&gt;DbCommand cmd = connection.CreateCommand();&lt;br /&gt;cmd.CommandType = CommandType.Text;&lt;br /&gt;cmd.CommandText = &lt;span class="str"&gt;"SELECT stor_name FROM Stores"&lt;/span&gt;;&lt;br /&gt;connection.Open();&lt;br /&gt;bulkCopyConnection.Open();&lt;br /&gt;&lt;span class="rem"&gt;//make sure that table exists and is empty&lt;/span&gt;&lt;br /&gt;&lt;span class="rem"&gt;//in case button is clicked more that once&lt;/span&gt;&lt;br /&gt;SqlCommand cleanup = bulkCopyConnection.CreateCommand();&lt;br /&gt;cleanup.CommandText =&lt;br /&gt;&lt;span class="str"&gt;"IF EXISTS ( SELECT * FROM sys.objects "&lt;/span&gt;&lt;br /&gt;+&lt;br /&gt;&lt;span class="str"&gt;" WHERE object_id = OBJECT_ID('dbo.StoreList') "&lt;/span&gt;&lt;br /&gt;+&lt;br /&gt;&lt;span class="str"&gt;" AND type in ('U')) "&lt;/span&gt;&lt;br /&gt;+&lt;br /&gt;&lt;span class="str"&gt;"DROP TABLE dbo.StoreList "&lt;/span&gt;&lt;br /&gt;+ &lt;span class="str"&gt;"CREATE TABLE dbo.StoreList(stor_name varchar(40) NOT NULL )"&lt;/span&gt;;&lt;br /&gt;cleanup.ExecuteNonQuery();&lt;br /&gt;&lt;span class="rem"&gt;//do the bulkcopy&lt;/span&gt;&lt;br /&gt;DbDataReader rdr = cmd.ExecuteReader();&lt;br /&gt;SqlBulkCopy bc = &lt;span class="kwrd"&gt;new&lt;/span&gt; SqlBulkCopy(bulkCopyConnection);&lt;br /&gt;bc.DestinationTableName = &lt;span class="str"&gt;"StoreList"&lt;/span&gt;;&lt;br /&gt;bc.WriteToServer(rdr);&lt;br /&gt;connection.Close();&lt;br /&gt;bulkCopyConnection.Close();&lt;br /&gt;Label lbl = GetLabel(275, 20);&lt;br /&gt;lbl.Text = &lt;span class="str"&gt;"Done with bulk copy"&lt;/span&gt;;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span class="rem"&gt;//C#&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;protected&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; Button13_Click(&lt;span class="kwrd"&gt;object&lt;/span&gt; sender, EventArgs e) { ConnectionStringSettings pubs =&lt;br /&gt;ConfigurationManager.ConnectionStrings[&lt;span class="str"&gt;"PubsData"&lt;/span&gt;];&lt;br /&gt;DbConnection connection = &lt;span class="kwrd"&gt;new&lt;/span&gt; SqlConnection(pubs.ConnectionString);&lt;br /&gt;SqlCommand cmd = (SqlCommand)connection.CreateCommand();&lt;br /&gt;cmd.CommandType = CommandType.Text;&lt;br /&gt;cmd.CommandText = &lt;span class="str"&gt;"SELECT * FROM Publishers"&lt;/span&gt;;&lt;br /&gt;SqlDataAdapter da = &lt;span class="kwrd"&gt;new&lt;/span&gt; SqlDataAdapter(cmd);&lt;br /&gt;DataSet pubsDataSet = &lt;span class="kwrd"&gt;new&lt;/span&gt; DataSet(&lt;span class="str"&gt;"Pubs"&lt;/span&gt;);&lt;br /&gt;SqlCommandBuilder bldr = &lt;span class="kwrd"&gt;new&lt;/span&gt; SqlCommandBuilder(da);&lt;br /&gt;da.Fill(pubsDataSet, &lt;span class="str"&gt;"publishers"&lt;/span&gt;);&lt;br /&gt;&lt;span class="rem"&gt;//Modify data here - added time to assure change&lt;/span&gt;&lt;br /&gt;pubsDataSet.Tables[&lt;span class="str"&gt;"publishers"&lt;/span&gt;].Rows[0][&lt;span class="str"&gt;"pub_name"&lt;/span&gt;]&lt;br /&gt;= &lt;span class="str"&gt;"Hello"&lt;/span&gt; + DateTime.Now.ToLongTimeString();&lt;br /&gt;&lt;span class="rem"&gt;//Add a row - use seconds in id&lt;/span&gt;&lt;br /&gt;pubsDataSet.Tables[&lt;span class="str"&gt;"publishers"&lt;/span&gt;].Rows.Add(&lt;br /&gt;&lt;span class="str"&gt;"99"&lt;/span&gt; + DateTime.Now.Second.ToString(),&lt;br /&gt;&lt;span class="str"&gt;"Tailspin Toys"&lt;/span&gt;, &lt;span class="str"&gt;"Paris"&lt;/span&gt;, &lt;span class="kwrd"&gt;null&lt;/span&gt;, &lt;span class="str"&gt;"France"&lt;/span&gt;);&lt;br /&gt;da.Update(pubsDataSet, &lt;span class="str"&gt;"publishers"&lt;/span&gt;);&lt;br /&gt;Label lbl = GetLabel(275, 20);&lt;br /&gt;lbl.Text = &lt;span class="str"&gt;"Update Complete"&lt;/span&gt;;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span class="rem"&gt;//C#&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;public&lt;/span&gt; SqlDataAdapter da = &lt;span class="kwrd"&gt;new&lt;/span&gt; SqlDataAdapter(); &lt;span class="kwrd"&gt;public&lt;/span&gt; System.Text.StringBuilder sb = &lt;span class="kwrd"&gt;new&lt;/span&gt; System.Text.StringBuilder();&lt;br /&gt;&lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; rowUpdated(&lt;span class="kwrd"&gt;object&lt;/span&gt; sender, SqlRowUpdatedEventArgs e) { sb.Append(&lt;span class="str"&gt;"Rows: "&lt;/span&gt; + e.RecordsAffected.ToString() + &lt;span class="str"&gt;"\r\n"&lt;/span&gt;); }&lt;br /&gt;&lt;span class="kwrd"&gt;protected&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; Button14_Click(&lt;span class="kwrd"&gt;object&lt;/span&gt; sender, EventArgs e)&lt;br /&gt;{ &lt;span class="rem"&gt;//event subscription is normally placed in constructor but is here //to encapsulate the sample da.RowUpdated += new SqlRowUpdatedEventHandler(rowUpdated);ConnectionStringSettings pubs =&lt;/span&gt;&lt;br /&gt;ConfigurationManager.ConnectionStrings[&lt;span class="str"&gt;"PubsData"&lt;/span&gt;];&lt;br /&gt;DbConnection connection = &lt;span class="kwrd"&gt;new&lt;/span&gt; SqlConnection(pubs.ConnectionString);&lt;br /&gt;SqlCommand cmd = (SqlCommand)connection.CreateCommand();&lt;br /&gt;cmd.CommandType = CommandType.Text;&lt;br /&gt;cmd.CommandText = &lt;span class="str"&gt;"SELECT * FROM Publishers"&lt;/span&gt;;&lt;br /&gt;da.SelectCommand = cmd;&lt;br /&gt;DataSet pubsDataSet = &lt;span class="kwrd"&gt;new&lt;/span&gt; DataSet(&lt;span class="str"&gt;"Pubs"&lt;/span&gt;);&lt;br /&gt;SqlCommandBuilder bldr = &lt;span class="kwrd"&gt;new&lt;/span&gt; SqlCommandBuilder(da);&lt;br /&gt;da.Fill(pubsDataSet, &lt;span class="str"&gt;"publishers"&lt;/span&gt;);&lt;br /&gt;&lt;span class="rem"&gt;//Modify data here&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;foreach&lt;/span&gt; (DataRow dr &lt;span class="kwrd"&gt;in&lt;/span&gt; pubsDataSet.Tables[&lt;span class="str"&gt;"publishers"&lt;/span&gt;].Rows)&lt;br /&gt;{&lt;br /&gt;dr[&lt;span class="str"&gt;"pub_name"&lt;/span&gt;] = &lt;span class="str"&gt;"Updated Toys "&lt;/span&gt;&lt;br /&gt;+ DateTime.Now.Minute.ToString()&lt;br /&gt;+ DateTime.Now.Second.ToString();&lt;br /&gt;}&lt;br /&gt;da.UpdateBatchSize = 3;&lt;br /&gt;da.Update(pubsDataSet, &lt;span class="str"&gt;"publishers"&lt;/span&gt;);&lt;br /&gt;&lt;span class="rem"&gt;//if event subscription is in the contructor, no need to&lt;/span&gt;&lt;br /&gt;&lt;span class="rem"&gt;//remove it here....&lt;/span&gt;&lt;br /&gt;da.RowUpdated -= &lt;span class="kwrd"&gt;new&lt;/span&gt; SqlRowUpdatedEventHandler(rowUpdated);&lt;br /&gt;Label lbl = GetLabel(275, 20);&lt;br /&gt;lbl.Text = sb.ToString();&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span class="rem"&gt;//C#&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;protected&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; Button7_Click(&lt;span class="kwrd"&gt;object&lt;/span&gt; sender, EventArgs e)&lt;br /&gt;{ OleDbDataAdapter da = &lt;span class="kwrd"&gt;new&lt;/span&gt; OleDbDataAdapter(); DataSet ds = &lt;span class="kwrd"&gt;new&lt;/span&gt; DataSet(); &lt;span class="rem"&gt;// set reference to adodb.dll and // add using ADODB ADODB.Connection adoCn = new ADODB.Connection(); ADODB.Recordset adoRs = new ADODB.Recordset(); adoCn.Open(&lt;/span&gt;&lt;br /&gt;&lt;span class="str"&gt;"Provider=Microsoft.Jet.OLEDB.4.0;"&lt;/span&gt;&lt;br /&gt;+&lt;br /&gt;&lt;span class="str"&gt;"Data Source="&lt;/span&gt;&lt;br /&gt;+&lt;br /&gt;MapPath(&lt;span class="str"&gt;"App_Data/Northwind.mdb"&lt;/span&gt;) + &lt;span class="str"&gt;";"&lt;/span&gt;&lt;br /&gt;+&lt;br /&gt;&lt;span class="str"&gt;"Persist Security Info=False"&lt;/span&gt;, &lt;span class="str"&gt;""&lt;/span&gt;, &lt;span class="str"&gt;""&lt;/span&gt;, -1);&lt;br /&gt;adoRs.Open(&lt;span class="str"&gt;"SELECT * FROM Customers"&lt;/span&gt;, adoCn, ADODB.CursorTypeEnum.adOpenForwardOnly, ADODB.LockTypeEnum.adLockReadOnly, 1);&lt;br /&gt;da.Fill(ds, adoRs, &lt;span class="str"&gt;"Customers"&lt;/span&gt;);&lt;br /&gt;adoCn.Close();&lt;br /&gt;GridView gv = GetGridView(275, 20);&lt;br /&gt;gv.DataSource = ds;&lt;br /&gt;gv.DataMember = &lt;span class="str"&gt;"Customers"&lt;/span&gt;;&lt;br /&gt;gv.DataBind();&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span class="rem"&gt;//C#&lt;/span&gt;&lt;br /&gt;DataTable providersList = &lt;span class="kwrd"&gt;null&lt;/span&gt;;&lt;br /&gt;&lt;span class="kwrd"&gt;protected&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; Button16_Click(&lt;span class="kwrd"&gt;object&lt;/span&gt; sender, EventArgs e)&lt;br /&gt;{ providersList = DbProviderFactories.GetFactoryClasses(); GridView gv = GetGridView(275, 20); gv.Width = 400; gv.DataSource = providersList;gv.DataBind();&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span class="rem"&gt;//Enumerating Data Source&lt;/span&gt;&lt;br /&gt;&lt;span class="rem"&gt;//C#&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;protected&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; Button17_Click(&lt;span class="kwrd"&gt;object&lt;/span&gt; sender, EventArgs e)&lt;br /&gt;{&lt;br /&gt;DbProviderFactory factory =&lt;br /&gt;DbProviderFactories.GetFactory(&lt;span class="str"&gt;"System.Data.SqlClient"&lt;/span&gt;);&lt;br /&gt;&lt;span class="rem"&gt;//get SQL Server instances&lt;/span&gt;&lt;br /&gt;DataTable sources =&lt;br /&gt;factory.CreateDataSourceEnumerator().GetDataSources();&lt;br /&gt;GridView gv = GetGridView(275, 20);&lt;br /&gt;gv.DataSource = sources;&lt;br /&gt;gv.DataBind();&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="rem"&gt;//C#&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;protected&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; Button18_Click(&lt;span class="kwrd"&gt;object&lt;/span&gt; sender, EventArgs e)&lt;br /&gt;{ Label errLabel = GetLabel(275, 20); GridView errGrid = GetGridView(275, 100); ConnectionStringSettings pubs =&lt;br /&gt;ConfigurationManager.ConnectionStrings[&lt;span class="str"&gt;"PubsData"&lt;/span&gt;];&lt;br /&gt;SqlConnection connection = &lt;span class="kwrd"&gt;new&lt;/span&gt; SqlConnection(pubs.ConnectionString);&lt;br /&gt;&lt;br /&gt;&lt;span class="rem"&gt;//attach to event handler&lt;/span&gt;&lt;br /&gt;connection.InfoMessage +=&lt;span class="kwrd"&gt;new&lt;/span&gt; SqlInfoMessageEventHandler(connection_InfoMessage);&lt;br /&gt;DbCommand cmd = connection.CreateCommand();&lt;br /&gt;cmd.CommandType = CommandType.Text;&lt;br /&gt;cmd.CommandText = &lt;span class="str"&gt;"SELECT job_id, job_desc FROM Jobs;"&lt;/span&gt;&lt;br /&gt;+&lt;br /&gt;&lt;span class="str"&gt;"Print 'Hello Everyone';"&lt;/span&gt;&lt;br /&gt;+&lt;br /&gt;&lt;span class="str"&gt;"Raiserror('Info Error Occured', 10,1 )"&lt;/span&gt;&lt;br /&gt;+&lt;br /&gt;&lt;span class="str"&gt;"Print GetDate()"&lt;/span&gt;;&lt;br /&gt;connection.Open();&lt;br /&gt;DbDataReader rdr = cmd.ExecuteReader();&lt;br /&gt;DataTable publishers = &lt;span class="kwrd"&gt;new&lt;/span&gt; DataTable();&lt;br /&gt;publishers.Load(rdr, LoadOption.Upsert);&lt;br /&gt;connection.Close();&lt;br /&gt;GridView gv = GetGridView(275, 200);&lt;br /&gt;gv.DataSource = publishers;&lt;br /&gt;gv.DataBind();&lt;br /&gt;errLabel.Text = errMessage;&lt;br /&gt;errGrid.DataSource = errCollection;&lt;br /&gt;errGrid.DataBind();&lt;br /&gt;}&lt;br /&gt;&lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;string&lt;/span&gt; errMessage = &lt;span class="kwrd"&gt;string&lt;/span&gt;.Empty;&lt;span class="kwrd"&gt;private&lt;/span&gt; List&amp;lt;SqlError&amp;gt; errCollection = &lt;span class="kwrd"&gt;new&lt;/span&gt; List&amp;lt;SqlError&amp;gt;();&lt;br /&gt;&lt;span class="kwrd"&gt;void&lt;/span&gt; connection_InfoMessage(&lt;span class="kwrd"&gt;object&lt;/span&gt; sender, SqlInfoMessageEventArgs e)&lt;br /&gt;{ errMessage += &lt;span class="str"&gt;"Message: "&lt;/span&gt; + e.Message + &lt;span class="str"&gt;"&amp;lt;br /&amp;gt;"&lt;/span&gt;; &lt;span class="kwrd"&gt;foreach&lt;/span&gt;(SqlError err &lt;span class="kwrd"&gt;in&lt;/span&gt; e.Errors) errCollection.Add(err);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="rem"&gt;//C#&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;protected&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; Button20_Click(&lt;span class="kwrd"&gt;object&lt;/span&gt; sender, EventArgs e)&lt;br /&gt;{ Label lbl = GetLabel(275, 20);ConnectionStringSettings cnSetting =&lt;br /&gt;ConfigurationManager.ConnectionStrings[&lt;span class="str"&gt;"PubsData"&lt;/span&gt;];&lt;br /&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; (SqlConnection cn = &lt;span class="kwrd"&gt;new&lt;/span&gt; SqlConnection())&lt;br /&gt;{&lt;br /&gt;cn.ConnectionString = cnSetting.ConnectionString;&lt;br /&gt;cn.Open();&lt;br /&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; (SqlTransaction tran = cn.BeginTransaction())&lt;br /&gt;{&lt;br /&gt;&lt;span class="kwrd"&gt;try&lt;/span&gt;&lt;br /&gt;{&lt;br /&gt;&lt;span class="rem"&gt;//work code here&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; (SqlCommand cmd = cn.CreateCommand())&lt;br /&gt;{&lt;br /&gt;cmd.Transaction = tran;&lt;br /&gt;cmd.CommandText = &lt;span class="str"&gt;"UPDATE jobs SET min_lvl=min_lvl * 1.1"&lt;/span&gt;;&lt;br /&gt;&lt;span class="kwrd"&gt;int&lt;/span&gt; count = (&lt;span class="kwrd"&gt;int&lt;/span&gt;)cmd.ExecuteNonQuery();&lt;br /&gt;lbl.Text = &lt;span class="str"&gt;"Count = "&lt;/span&gt; + count.ToString(); }&lt;span class="rem"&gt;//if we made it this far, commit tran.Commit();&lt;/span&gt;&lt;br /&gt;}&lt;br /&gt;&lt;span class="kwrd"&gt;catch&lt;/span&gt; (Exception xcp)&lt;br /&gt;{&lt;br /&gt;tran.Rollback();&lt;br /&gt;&lt;span class="rem"&gt;//cleanup code&lt;/span&gt;&lt;br /&gt;lbl.Text = xcp.Message;&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;Synchronous vs. Asynchronous Access&lt;br /&gt;Commands are normally executed synchronously, which causes the command to “block” program execution until the command has completed. Blocking execution keeps the program from continuing until the command has finished executing. This simplifies the writing of the code because the developer simply thinks about code execution &lt;span class="kwrd"&gt;in&lt;/span&gt; a rather procedural, step-by-step fashion, &lt;span class="kwrd"&gt;as&lt;/span&gt; shown &lt;span class="kwrd"&gt;in&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Asynchronous command execution does not block program execution because it takes place on a &lt;span class="kwrd"&gt;new&lt;/span&gt; thread, which &lt;span class="kwrd"&gt;is&lt;/span&gt; another path of execution &lt;span class="kwrd"&gt;for&lt;/span&gt; your code. This means the original thread can &lt;span class="kwrd"&gt;continue&lt;/span&gt; executing &lt;span class="kwrd"&gt;while&lt;/span&gt; the &lt;span class="kwrd"&gt;new&lt;/span&gt; thread &lt;span class="kwrd"&gt;is&lt;/span&gt; waiting &lt;span class="kwrd"&gt;for&lt;/span&gt; its command to complete,&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8777320242835817445-5922582522731377305?l=jefferychinet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jefferychinet.blogspot.com/feeds/5922582522731377305/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jefferychinet.blogspot.com/2010/03/adonet-part-2.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/5922582522731377305'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/5922582522731377305'/><link rel='alternate' type='text/html' href='http://jefferychinet.blogspot.com/2010/03/adonet-part-2.html' title='ADO.NET part 2'/><author><name>Jeffery Chi</name><uri>http://www.blogger.com/profile/01777274222273910460</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_0awGwIWdbAQ/SrWo52s_aPI/AAAAAAAAAe0/sz5rSKavJMs/S220/airforcewing.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8777320242835817445.post-20783427700040045</id><published>2010-03-29T19:44:00.001-07:00</published><updated>2010-03-29T19:45:34.650-07:00</updated><title type='text'>My first SharePoint internet site</title><content type='html'>&lt;a href="http://emis.projects.intergen.net.nz/default.aspx"&gt;http://emis.projects.intergen.net.nz/default.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;is my first sharepoint wss internet site . simple configuration.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8777320242835817445-20783427700040045?l=jefferychinet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jefferychinet.blogspot.com/feeds/20783427700040045/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jefferychinet.blogspot.com/2010/03/my-first-sharepoint-internet-site.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/20783427700040045'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/20783427700040045'/><link rel='alternate' type='text/html' href='http://jefferychinet.blogspot.com/2010/03/my-first-sharepoint-internet-site.html' title='My first SharePoint internet site'/><author><name>Jeffery Chi</name><uri>http://www.blogger.com/profile/01777274222273910460</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_0awGwIWdbAQ/SrWo52s_aPI/AAAAAAAAAe0/sz5rSKavJMs/S220/airforcewing.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8777320242835817445.post-2764968931913930122</id><published>2010-03-28T18:16:00.000-07:00</published><updated>2010-03-28T18:17:07.271-07:00</updated><title type='text'>ADO.NET Disconnected Classes</title><content type='html'>&lt;pre class="csharpcode"&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;private&lt;/span&gt; DataTable GetDataTable()&lt;br /&gt;{&lt;br /&gt;    &lt;span class="rem"&gt;//Create the DataTable named "employee" DataTable employee = new DataTable("Employee");&lt;/span&gt;&lt;br /&gt;    &lt;span class="rem"&gt;//Add the DataColumn using all properties&lt;/span&gt;&lt;br /&gt;    DataColumn eid = &lt;span class="kwrd"&gt;new&lt;/span&gt; DataColumn(&lt;span class="str"&gt;"Eid"&lt;/span&gt;);&lt;br /&gt;    eid.DataType = &lt;span class="kwrd"&gt;typeof&lt;/span&gt;(&lt;span class="kwrd"&gt;string&lt;/span&gt;);&lt;br /&gt;    eid.MaxLength = 10;&lt;br /&gt;    eid.Unique = &lt;span class="kwrd"&gt;true&lt;/span&gt;;&lt;br /&gt;    eid.AllowDBNull = &lt;span class="kwrd"&gt;false&lt;/span&gt;;&lt;br /&gt;    eid.Caption = &lt;span class="str"&gt;"EID"&lt;/span&gt;;&lt;br /&gt;    employee.Columns.Add(eid);&lt;br /&gt;    &lt;span class="rem"&gt;//Add the DataColumn using defaults&lt;/span&gt;&lt;br /&gt;    DataColumn firstName = &lt;span class="kwrd"&gt;new&lt;/span&gt; DataColumn(&lt;span class="str"&gt;"FirstName"&lt;/span&gt;);&lt;br /&gt;    firstName.MaxLength = 35;&lt;br /&gt;    firstName.AllowDBNull = &lt;span class="kwrd"&gt;false&lt;/span&gt;;&lt;br /&gt;    employee.Columns.Add(firstName);&lt;br /&gt;    DataColumn lastName = &lt;span class="kwrd"&gt;new&lt;/span&gt; DataColumn(&lt;span class="str"&gt;"LastName"&lt;/span&gt;);&lt;br /&gt;    lastName.AllowDBNull = &lt;span class="kwrd"&gt;false&lt;/span&gt;;&lt;br /&gt;    employee.Columns.Add(lastName);&lt;br /&gt;    &lt;span class="rem"&gt;//Add the decimal DataColumn using defaults&lt;/span&gt;&lt;br /&gt;    DataColumn salary = &lt;span class="kwrd"&gt;new&lt;/span&gt; DataColumn(&lt;span class="str"&gt;"Salary"&lt;/span&gt;, &lt;span class="kwrd"&gt;typeof&lt;/span&gt;(&lt;span class="kwrd"&gt;decimal&lt;/span&gt;));&lt;br /&gt;    salary.DefaultValue = 0.00m;&lt;br /&gt;    employee.Columns.Add(salary);&lt;br /&gt;    &lt;span class="rem"&gt;//Derived column using expression&lt;/span&gt;&lt;br /&gt;    DataColumn lastNameFirstName = &lt;span class="kwrd"&gt;new&lt;/span&gt; DataColumn(&lt;span class="str"&gt;"LastName and FirstName"&lt;/span&gt;);&lt;br /&gt;    lastNameFirstName.DataType = &lt;span class="kwrd"&gt;typeof&lt;/span&gt;(&lt;span class="kwrd"&gt;string&lt;/span&gt;);&lt;br /&gt;    lastNameFirstName.MaxLength = 70;&lt;br /&gt;    lastNameFirstName.Expression = &lt;span class="str"&gt;"lastName + ', ' + firstName"&lt;/span&gt;;&lt;br /&gt;    employee.Columns.Add(lastNameFirstName);&lt;br /&gt;    &lt;span class="kwrd"&gt;return&lt;/span&gt; employee;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="rem"&gt;/*&lt;/span&gt;&lt;br /&gt;&lt;span class="rem"&gt;¦ DataType String&lt;/span&gt;&lt;br /&gt;&lt;span class="rem"&gt;¦&lt;/span&gt;&lt;br /&gt;&lt;span class="rem"&gt;MaxLength –1, which means that no maximum length check is performed&lt;/span&gt;&lt;br /&gt;&lt;span class="rem"&gt;¦&lt;/span&gt;&lt;br /&gt;&lt;span class="rem"&gt;Unique False, which allows duplicate values&lt;/span&gt;&lt;br /&gt;&lt;span class="rem"&gt;¦&lt;/span&gt;&lt;br /&gt;&lt;span class="rem"&gt;AllowDBNull True, which means that the DataColumn does not need to have a value&lt;/span&gt;&lt;br /&gt;&lt;span class="rem"&gt;¦&lt;/span&gt;&lt;br /&gt;&lt;span class="rem"&gt;Caption The DataColumn object, which is the ColumnName property value&lt;/span&gt;&lt;br /&gt;&lt;span class="rem"&gt;*/&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="rem"&gt;//C#&lt;/span&gt;&lt;br /&gt;&lt;span class="rem"&gt;//Set the Primary Key&lt;/span&gt;&lt;br /&gt;employee.PrimaryKey = &lt;span class="kwrd"&gt;new&lt;/span&gt; DataColumn[] {eid};&lt;br /&gt;&lt;br /&gt;&lt;span class="rem"&gt;//C#&lt;/span&gt;&lt;br /&gt;&lt;span class="rem"&gt;//Add New DataRow by creating the DataRow first &lt;/span&gt;&lt;br /&gt;DataRow newemployee = employee.NewRow();&lt;br /&gt;newemployee[&lt;span class="str"&gt;"Eid"&lt;/span&gt;] = &lt;span class="str"&gt;"123456789A"&lt;/span&gt;;&lt;br /&gt;newemployee[&lt;span class="str"&gt;"FirstName"&lt;/span&gt;] = &lt;span class="str"&gt;"Nancy"&lt;/span&gt;;&lt;br /&gt;newemployee[&lt;span class="str"&gt;"LastName"&lt;/span&gt;] = &lt;span class="str"&gt;"Davolio"&lt;/span&gt;;&lt;br /&gt;newemployee[&lt;span class="str"&gt;"Salary"&lt;/span&gt;] = 10.00m;&lt;br /&gt;employee.Rows.Add(newemployee);&lt;br /&gt;&lt;span class="rem"&gt;//Add New DataRow by simply adding the values &lt;/span&gt;&lt;br /&gt;employee.Rows.Add(&lt;span class="str"&gt;"987654321X"&lt;/span&gt;, &lt;span class="str"&gt;"Andrew"&lt;/span&gt;, &lt;span class="str"&gt;"Fuller"&lt;/span&gt;, 15.00m);&lt;br /&gt;&lt;span class="rem"&gt;//Load DataRow, replacing existing contents, if existing&lt;/span&gt;&lt;br /&gt;employee.LoadDataRow(&lt;br /&gt;&lt;span class="kwrd"&gt;new&lt;/span&gt; &lt;span class="kwrd"&gt;object&lt;/span&gt;[] { &lt;span class="str"&gt;"987654321X"&lt;/span&gt;, &lt;span class="str"&gt;"Janet"&lt;/span&gt;, &lt;span class="str"&gt;"Leverling"&lt;/span&gt;, 20.00m },&lt;br /&gt;LoadOption.OverwriteChanges);&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The DataRow can hold up to three versions, or copies, of the data: Original, Current, and Proposed. When the DataRow &lt;span class="kwrd"&gt;is&lt;/span&gt; created, it contains a single copy of the data, which &lt;span class="kwrd"&gt;is&lt;/span&gt; the Current version. When the DataRow &lt;span class="kwrd"&gt;is&lt;/span&gt; placed into edit mode by executing its BeginEdit method, changes to the data are placed &lt;span class="kwrd"&gt;in&lt;/span&gt; a second version of the data, called the Proposed version. When the EndEdit method &lt;span class="kwrd"&gt;is&lt;/span&gt; executed, the Current version becomes the Original version, the Proposed version becomes the Current version, and the Proposed version no longer exists. After EndEdit has completed its execution, there are two versions of the DataRow data: Original and Current. If the BeginEdit method &lt;span class="kwrd"&gt;is&lt;/span&gt; called again, the Current version of the data &lt;span class="kwrd"&gt;is&lt;/span&gt; copied to a third version of the data, which &lt;span class="kwrd"&gt;is&lt;/span&gt; the Proposed version. Calling EndEdit again causes the Proposed version to become the Current version and the Proposed version to no longer exist.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="rem"&gt;//C#&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;string&lt;/span&gt; GetDataRowInfo(DataRow row, &lt;span class="kwrd"&gt;string&lt;/span&gt; columnName) {&lt;br /&gt;&lt;span class="kwrd"&gt;string&lt;/span&gt; retVal = &lt;span class="kwrd"&gt;string&lt;/span&gt;.Format(&lt;br /&gt;&lt;span class="str"&gt;"RowState: {0}&amp;lt;br /&amp;gt;"&lt;/span&gt;,&lt;br /&gt;row.RowState);&lt;br /&gt;&lt;span class="kwrd"&gt;foreach&lt;/span&gt; (&lt;span class="kwrd"&gt;string&lt;/span&gt; versionString &lt;span class="kwrd"&gt;in&lt;/span&gt;&lt;br /&gt;Enum.GetNames(&lt;span class="kwrd"&gt;typeof&lt;/span&gt;(DataRowVersion)))&lt;br /&gt;{&lt;br /&gt;DataRowVersion version = (&lt;br /&gt;DataRowVersion)Enum.Parse(&lt;br /&gt;&lt;span class="kwrd"&gt;typeof&lt;/span&gt;(DataRowVersion), versionString);&lt;br /&gt;&lt;span class="kwrd"&gt;if&lt;/span&gt; (row.HasVersion(version))&lt;br /&gt;{&lt;br /&gt;retVal += &lt;span class="kwrd"&gt;string&lt;/span&gt;.Format(&lt;br /&gt;&lt;span class="str"&gt;"Version: {0} Value: {1}&amp;lt;br /&amp;gt;"&lt;/span&gt;,&lt;br /&gt;version, row[columnName, version]);&lt;br /&gt;}&lt;br /&gt;&lt;span class="kwrd"&gt;else&lt;/span&gt;&lt;br /&gt;{&lt;br /&gt;retVal += &lt;span class="kwrd"&gt;string&lt;/span&gt;.Format(&lt;br /&gt;&lt;span class="str"&gt;"Version: {0} does not exist.&amp;lt;br /&amp;gt;"&lt;/span&gt;,&lt;br /&gt;version);&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;span class="kwrd"&gt;return&lt;/span&gt; retVal;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;DataTable copy = employee.Copy( );&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;You often require a copy of the DataTable schema without the data. You can accomplish &lt;span class="kwrd"&gt;this&lt;/span&gt; by invoking the Clone method on the DataTable. Use &lt;span class="kwrd"&gt;this&lt;/span&gt; method when an empty copy of the DataTable &lt;span class="kwrd"&gt;is&lt;/span&gt; required and to which DataRow objects will be added at a later time. The following code shows the Clone method:&lt;br /&gt;&lt;span class="str"&gt;'VB&lt;br /&gt;Dim clone as DataTable = employee.Clone( )&lt;br /&gt;//C#&lt;br /&gt;DataTable clone = employee.Clone( );&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;DataTable employee = GetDataTable(); employee.WriteXml(Server.MapPath("employee.xml")); Response.Redirect("employee.xml");&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;//C#&lt;br /&gt;protected void Button7_Click(object sender, EventArgs e)&lt;br /&gt;{&lt;br /&gt;    DataTable employee = GetDataTable();&lt;br /&gt;    employee.TableName = "Person";&lt;br /&gt;    employee.Columns["Eid"].ColumnMapping = MappingType.Attribute;&lt;br /&gt;    employee.Columns["FirstName"].ColumnMapping = MappingType.Attribute;&lt;br /&gt;    employee.Columns["LastName"].ColumnMapping = MappingType.Attribute;&lt;br /&gt;    employee.Columns["Salary"].ColumnMapping = MappingType.Attribute;&lt;br /&gt;    employee.Columns["LastName and FirstName"].ColumnMapping =&lt;br /&gt;    MappingType.Hidden;&lt;br /&gt;    employee.WriteXml(Server.MapPath("PersonWithSchema.xml"), XmlWriteMode.WriteSchema);&lt;br /&gt;    Response.Redirect("PersonWithSchema.xml");&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;?xml version="1.0" standalone="yes"?&amp;gt; &amp;lt;NewDataSet&amp;gt; &amp;lt;xs:schema id="NewDataSet" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"&amp;gt; &amp;lt;xs:element name="NewDataSet" msdata:IsDataSet="true" msdata:MainDataTable="Person" msdata:UseCurrentLocale="true"&amp;gt; &amp;lt;xs:complexType&amp;gt; &amp;lt;xs:choice minOccurs="0" maxOccurs="unbounded"&amp;gt; &amp;lt;xs:element name="Person"&amp;gt; &amp;lt;xs:complexType&amp;gt; &amp;lt;xs:attribute name="Eid" msdata:Caption="EID" use="required"&amp;gt;&amp;lt;xs:simpleType&amp;gt; &amp;lt;xs:restriction base="xs:string"&amp;gt; &amp;lt;xs:maxLength value="10" /&amp;gt; &amp;lt;/xs:restriction&amp;gt;&lt;br /&gt;&amp;lt;/xs:simpleType&amp;gt; &amp;lt;/xs:attribute&amp;gt; &amp;lt;xs:attribute name="FirstName" use="required"&amp;gt;&lt;br /&gt;&amp;lt;xs:simpleType&amp;gt; &amp;lt;xs:restriction base="xs:string"&amp;gt; &amp;lt;xs:maxLength value="35" /&amp;gt; &amp;lt;/xs:restriction&amp;gt;&lt;br /&gt;&amp;lt;/xs:simpleType&amp;gt; &amp;lt;/xs:attribute&amp;gt; &amp;lt;xs:attribute name="LastName" type="xs:string" use="required" /&amp;gt; &amp;lt;xs:attribute name="Salary" type="xs:decimal" default="0.00" /&amp;gt; &amp;lt;xs:attribute name="LastName_x0020_and_x0020_FirstName"&lt;br /&gt;msdata:ReadOnly="true" msdata:Expression="lastName + '&lt;/span&gt;, &lt;span class="str"&gt;' + firstName" use="prohibited"&amp;gt;&lt;br /&gt;&amp;lt;xs:simpleType&amp;gt;&lt;br /&gt;&amp;lt;xs:restriction base="xs:string"&amp;gt;&lt;br /&gt;&amp;lt;xs:maxLength value="70" /&amp;gt;&lt;br /&gt;&amp;lt;/xs:restriction&amp;gt;&lt;br /&gt;&amp;lt;/xs:simpleType&amp;gt;&lt;br /&gt;&amp;lt;/xs:attribute&amp;gt;&lt;br /&gt;&amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;&amp;lt;/xs:element&amp;gt;&lt;br /&gt;&amp;lt;/xs:choice&amp;gt;&lt;br /&gt;&amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;&amp;lt;xs:unique name="Constraint1" msdata:PrimaryKey="true"&amp;gt;&lt;br /&gt;&amp;lt;xs:selector xpath=".//Person" /&amp;gt;&lt;br /&gt;&amp;lt;xs:field xpath="@Eid" /&amp;gt;&lt;br /&gt;&amp;lt;/xs:unique&amp;gt;&lt;br /&gt;&amp;lt;/xs:element&amp;gt;&lt;br /&gt;&amp;lt;/xs:schema&amp;gt;&lt;br /&gt;&amp;lt;Person Eid="123456789A" FirstName="Nancy" LastName="Davolio"&lt;br /&gt;Salary="10.00" /&amp;gt; &amp;lt;Person Eid="987654321X" FirstName="Janet" LastName="Leverling" Salary="20.00" /&amp;gt; &amp;lt;/NewDataSet&amp;gt;&lt;br /&gt;&lt;br /&gt;The DataView object provides a window into a DataTable that can be sorted and filtered using the Sort, RowFilter, and RowStateFilter properties. A DataTable can have many DataView objects assigned to it, allowing the data to be viewed in many different ways without requiring the data to be reread from the database.&lt;br /&gt;&lt;br /&gt;//C#&lt;br /&gt;view.RowFilter = "LastName like '&lt;/span&gt;A%' and Salary &amp;gt; 15&lt;span class="str"&gt;";&lt;br /&gt;The RowStateFilter provides a filter based on the DataRow object’s RowState property. This filter provides an extremely easy way to retrieve specific version information within the DataTable using one of the DataViewRowState enumeration values, which are as follows:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;private DataSet GetDataSet()&lt;br /&gt;{&lt;br /&gt;DataSet companyData = new DataSet("&lt;/span&gt;CompanyList&lt;span class="str"&gt;");&lt;br /&gt;DataTable company = companyData.Tables.Add("&lt;/span&gt;company&lt;span class="str"&gt;");&lt;br /&gt;company.Columns.Add("&lt;/span&gt;Id&lt;span class="str"&gt;", typeof(Guid));&lt;br /&gt;company.Columns.Add("&lt;/span&gt;CompanyName&lt;span class="str"&gt;", typeof(string));&lt;br /&gt;company.PrimaryKey = new DataColumn[] { company.Columns["&lt;/span&gt;Id&lt;span class="str"&gt;"] };&lt;br /&gt;DataTable employee = companyData.Tables.Add("&lt;/span&gt;employee&lt;span class="str"&gt;");&lt;br /&gt;employee.Columns.Add("&lt;/span&gt;Id&lt;span class="str"&gt;", typeof(Guid));&lt;br /&gt;employee.Columns.Add("&lt;/span&gt;companyId&lt;span class="str"&gt;", typeof(Guid));&lt;br /&gt;employee.Columns.Add("&lt;/span&gt;LastName&lt;span class="str"&gt;", typeof(string));&lt;br /&gt;employee.Columns.Add("&lt;/span&gt;FirstName&lt;span class="str"&gt;", typeof(string));&lt;br /&gt;employee.Columns.Add("&lt;/span&gt;Salary&lt;span class="str"&gt;", typeof(decimal));&lt;br /&gt;employee.PrimaryKey = new DataColumn[] { employee.Columns["&lt;/span&gt;Id&lt;span class="str"&gt;"] };&lt;br /&gt;companyData.Relations.Add(&lt;br /&gt;"&lt;/span&gt;Company_Employee&lt;span class="str"&gt;",&lt;br /&gt;company.Columns["&lt;/span&gt;Id&lt;span class="str"&gt;"],&lt;br /&gt;employee.Columns["&lt;/span&gt;CompanyId&lt;span class="str"&gt;"]);&lt;br /&gt;return companyData;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;The first DataTable in the DataSet is rendered when you issue the DataBind method on the control, but you can be more specific about the Data-Table to use by assigning the name of the DataTable to the DataMember property of the data-bound control.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;You can provide an XML Schema Definition (XSD) file to generate the typed DataSet class. You can use the DataSet Editor to graphically create and modify an XSD file, which, in turn, can be used to generate the typed DataSet class.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Cascading Updates and Deletes There are many scenarios where you want the deletion of a parent DataRow object to force the deletion of child DataRow objects. You can accomplish this by setting the DeleteRule on the ForeignKeyConstraint to Cascade (default). The following is a list of the Rule enumeration members:&lt;br /&gt;&lt;br /&gt;The XML document is well formed and its root node is called CompanyList, which you can change by changing the DataSetName property.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;//C#&lt;br /&gt;protected void Button5_Click(object sender, EventArgs e)&lt;br /&gt;{ //get dataset and populate//get the dataset and populateDataSet&lt;br /&gt;companyList = GetDataSet();&lt;br /&gt;PopulateDataSet(companyList);&lt;br /&gt;//format xml&lt;br /&gt;companyList.Relations["&lt;/span&gt;Company_Employee&lt;span class="str"&gt;"].Nested = true;&lt;br /&gt;foreach (DataTable dt in companyList.Tables)&lt;br /&gt;{&lt;br /&gt;foreach (DataColumn dc in dt.Columns)&lt;br /&gt;{&lt;br /&gt;dc.ColumnMapping = MappingType.Attribute;&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;//write to xml file&lt;br /&gt;companyList.WriteXml(MapPath("&lt;/span&gt;CompanyListNested.xml&lt;span class="str"&gt;"));&lt;br /&gt;//display file&lt;br /&gt;Response.Redirect("&lt;/span&gt;CompanyListNested.xml&lt;span class="str"&gt;");&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;companyList.WriteXml( MapPath("&lt;/span&gt;CompanyListNestedWithSchema.xml&lt;span class="str"&gt;"), XmlWriteMode.WriteSchema);&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Instead of embedding the schema in the XML file, you can create a separate XSD file to load before loading the data. You can use the DataSet object’s WriteXmlSchema method to extract the XML schema definition to a separate file,&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;companyList.WriteXmlSchema( MapPath("&lt;/span&gt;CompanyListSchema.xsd&lt;span class="str"&gt;"));&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;//C#&lt;br /&gt;protected void Button8_Click(object sender, EventArgs e)&lt;br /&gt;{ //get the dataset and populate DataSet companyList = GetDataSet(); DataTable company = companyList.Tables["&lt;/span&gt;company&lt;span class="str"&gt;"]; company.Rows.Add(Guid.NewGuid(), "&lt;/span&gt;UnchangedCompany&lt;span class="str"&gt;"); company.Rows.Add(Guid.NewGuid(), "&lt;/span&gt;ModifiedCompany&lt;span class="str"&gt;"); company.Rows.Add(Guid.NewGuid(), "&lt;/span&gt;DeletedCompany&lt;span class="str"&gt;"); companyList.AcceptChanges(); company.Rows[1]["&lt;/span&gt;CompanyName&lt;span class="str"&gt;"] = "&lt;/span&gt;ModifiedCompany1&lt;span class="str"&gt;"; company.Rows[2].Delete(); company.Rows.Add(Guid.NewGuid(), "&lt;/span&gt;AddedCompany&lt;span class="str"&gt;");&lt;br /&gt;//format xml&lt;br /&gt;companyList.Relations["&lt;/span&gt;Company_Employee&lt;span class="str"&gt;"].Nested = true;&lt;br /&gt;foreach (DataTable dt in companyList.Tables)&lt;br /&gt;{&lt;br /&gt;foreach (DataColumn dc in dt.Columns) { dc.ColumnMapping = MappingType.Attribute; }}&lt;br /&gt;    //write to xml diffgram file&lt;br /&gt;    companyList.WriteXml( MapPath("&lt;/span&gt;CompanyListDiffGram.xml&lt;span class="str"&gt;"), XmlWriteMode.DiffGram);&lt;br /&gt;    //display file&lt;br /&gt;    Response.Redirect("&lt;/span&gt;CompanyListDiffGram.xml&lt;span class="str"&gt;");&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;/*&lt;br /&gt;The DiffGram is mostly used in an environment where a user occasionally connects to a database to synchronize a disconnected DataSet object with the current information that is contained in the database. When the user is not connected to the database, the DataSet object is stored locally as a DiffGram to ensure that you still have the original data, because the original data is needed when it’s time to send your changes back to the database.&lt;br /&gt;*/&lt;br /&gt;&lt;br /&gt;//C#&lt;br /&gt;protected void Button9_Click(object sender, EventArgs e)&lt;br /&gt;{ //add grids to form GridView gvCompany = GetGridView(275, 20); GridView gvEmployee = GetGridView(275, 125);&lt;br /&gt;//get the dataset and populate schema&lt;br /&gt;DataSet companyList = new DataSet();&lt;br /&gt;companyList.ReadXmlSchema(MapPath("&lt;/span&gt;CompanyListSchema.xsd&lt;span class="str"&gt;"));&lt;br /&gt;//populate from file&lt;br /&gt;companyList.ReadXml(MapPath("&lt;/span&gt;CompanyListNested.xml&lt;span class="str"&gt;"));&lt;br /&gt;//display&lt;br /&gt;gvCompany.DataSource = companyList;&lt;br /&gt;gvCompany.DataMember = "&lt;/span&gt;Company&lt;span class="str"&gt;";&lt;br /&gt;gvEmployee.DataSource = companyList;&lt;br /&gt;gvEmployee.DataMember = "&lt;/span&gt;Employee&lt;span class="str"&gt;";&lt;br /&gt;gvCompany.DataBind();&lt;br /&gt;gvEmployee.DataBind();&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;//C#&lt;br /&gt;//Added the following using statements to the top of the file using System.Runtime.Serialization.Formatters.Binary; using System.IO;&lt;br /&gt;protected void Button10_Click(object sender, EventArgs e)&lt;br /&gt;{ //get dataset and populate//get the dataset and populateDataSet&lt;br /&gt;    companyList = GetDataSet();&lt;br /&gt;    PopulateDataSet(companyList);&lt;br /&gt;//set output to binary else this will be xml&lt;br /&gt;    companyList.RemotingFormat = SerializationFormat.Binary;&lt;br /&gt;//write to binary file&lt;br /&gt;    using (FileStream fs = new FileStream(MapPath("&lt;/span&gt;CompanyList.bin&lt;span class="str"&gt;"), FileMode.Create))&lt;br /&gt;    {&lt;br /&gt;        BinaryFormatter fmt = new BinaryFormatter();&lt;br /&gt;        fmt.Serialize(fs, companyList);&lt;br /&gt;    }&lt;br /&gt;    //feedback&lt;br /&gt;    Label lbl = GetLabel(275, 20);&lt;br /&gt;    lbl.Text = "&lt;/span&gt;File Saved.&lt;span class="str"&gt;";&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;//C#&lt;br /&gt;protected void Button12_Click(object sender, EventArgs e)&lt;br /&gt;{ //add grids to form GridView gvcompany = GetGridView(275, 20); GridView gvemployee = GetGridView(275, 125);&lt;br /&gt;//get the dataset&lt;br /&gt;DataSet original = GetDataSet();&lt;br /&gt;//add AdventureWorks&lt;br /&gt;original.Tables["&lt;/span&gt;Company&lt;span class="str"&gt;"].Rows.Add(&lt;br /&gt;Guid.NewGuid(), "&lt;/span&gt;AdventureWorks&lt;span class="str"&gt;");&lt;br /&gt;//copy the dataset&lt;br /&gt;DataSet copy = original.Copy();&lt;br /&gt;&lt;br /&gt;//modify the copy&lt;br /&gt;DataRow aw = copy.Tables["&lt;/span&gt;Company&lt;span class="str"&gt;"].Rows[0];&lt;br /&gt;aw["&lt;/span&gt;CompanyName&lt;span class="str"&gt;"] = "&lt;/span&gt;AdventureWorks Changed&lt;span class="str"&gt;";&lt;br /&gt;Guid empId;&lt;br /&gt;empId = Guid.NewGuid();&lt;br /&gt;copy.Tables["&lt;/span&gt;Employee&lt;span class="str"&gt;"].Rows.Add(empId, aw["&lt;/span&gt;Id&lt;span class="str"&gt;"],&lt;br /&gt;"&lt;/span&gt;MarkLast&lt;span class="str"&gt;", "&lt;/span&gt;MarkFirst&lt;span class="str"&gt;", 90.00m);&lt;br /&gt;empId = Guid.NewGuid();&lt;br /&gt;copy.Tables["&lt;/span&gt;employee&lt;span class="str"&gt;"].Rows.Add(empId, aw["&lt;/span&gt;Id&lt;span class="str"&gt;"],&lt;br /&gt;"&lt;/span&gt;SueLast&lt;span class="str"&gt;", "&lt;/span&gt;SueFirst&lt;span class="str"&gt;", 41.00m);&lt;br /&gt;//merge changes back to the original&lt;br /&gt;original.Merge(copy, false, MissingSchemaAction.AddWithKey);&lt;br /&gt;//display&lt;br /&gt;gvcompany.DataSource = original;&lt;br /&gt;gvcompany.DataMember = "&lt;/span&gt;Company&lt;span class="str"&gt;";&lt;br /&gt;gvemployee.DataSource = original;&lt;br /&gt;gvemployee.DataMember = "&lt;/span&gt;Employee";&lt;br /&gt;gvcompany.DataBind();&lt;br /&gt;gvemployee.DataBind();&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8777320242835817445-2764968931913930122?l=jefferychinet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jefferychinet.blogspot.com/feeds/2764968931913930122/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jefferychinet.blogspot.com/2010/03/adonet-disconnected-classes.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/2764968931913930122'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/2764968931913930122'/><link rel='alternate' type='text/html' href='http://jefferychinet.blogspot.com/2010/03/adonet-disconnected-classes.html' title='ADO.NET Disconnected Classes'/><author><name>Jeffery Chi</name><uri>http://www.blogger.com/profile/01777274222273910460</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_0awGwIWdbAQ/SrWo52s_aPI/AAAAAAAAAe0/sz5rSKavJMs/S220/airforcewing.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8777320242835817445.post-924562499503034506</id><published>2010-03-28T03:56:00.000-07:00</published><updated>2010-03-28T20:33:03.689-07:00</updated><title type='text'>Greymouth District Council Website Sign off</title><content type='html'>My client has signed off &lt;a href="http://greydcepi.preview.intergen.net.nz/"&gt;http://greydcepi.preview.intergen.net.nz/&lt;/a&gt; , one step forward to go live !&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://greydcepi.preprod.intergen.net.nz/"&gt;http://greydcepi.preprod.intergen.net.nz/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8777320242835817445-924562499503034506?l=jefferychinet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jefferychinet.blogspot.com/feeds/924562499503034506/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jefferychinet.blogspot.com/2010/03/greymouth-district-council-website-sign.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/924562499503034506'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/924562499503034506'/><link rel='alternate' type='text/html' href='http://jefferychinet.blogspot.com/2010/03/greymouth-district-council-website-sign.html' title='Greymouth District Council Website Sign off'/><author><name>Jeffery Chi</name><uri>http://www.blogger.com/profile/01777274222273910460</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_0awGwIWdbAQ/SrWo52s_aPI/AAAAAAAAAe0/sz5rSKavJMs/S220/airforcewing.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8777320242835817445.post-7224453170795596169</id><published>2010-03-24T14:12:00.001-07:00</published><updated>2010-03-24T14:12:53.203-07:00</updated><title type='text'>Some SharePoint Code</title><content type='html'>&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;&lt;br /&gt;&lt;pre class="csharpcode"&gt;&lt;br /&gt; &lt;span class="rem"&gt;// open the root site &lt;/span&gt;&lt;br /&gt;          &lt;span class="kwrd"&gt;using&lt;/span&gt; (SPWeb spWeb = spSite.OpenWeb())&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt; &lt;span class="rem"&gt;// get the list from the site&lt;/span&gt;&lt;br /&gt;        SPList spList = spWeb.Lists[paramList];&lt;br /&gt;        &lt;br /&gt;        &lt;br /&gt;         &lt;span class="kwrd"&gt;string&lt;/span&gt; line = fileRdr.ReadLine();&lt;br /&gt;            &lt;span class="kwrd"&gt;string&lt;/span&gt;[] fieldNames = line.Split(splitArray);&lt;br /&gt;&lt;br /&gt;            &lt;span class="rem"&gt;// get an array of field from the list - this assumes the field names match&lt;/span&gt;&lt;br /&gt;            &lt;span class="rem"&gt;// we need the field Id when inserting rows&lt;/span&gt;&lt;br /&gt;            SPField[] spFields = &lt;span class="kwrd"&gt;new&lt;/span&gt; SPField[fieldNames.Length];&lt;br /&gt;            &lt;span class="kwrd"&gt;for&lt;/span&gt; (&lt;span class="kwrd"&gt;int&lt;/span&gt; looper = 0; looper &amp;lt; fieldNames.Length; looper++)&lt;br /&gt;            {&lt;br /&gt;              &lt;span class="kwrd"&gt;string&lt;/span&gt; strName = fieldNames[looper];&lt;br /&gt;              SPField field = spList.Fields.GetField(strName);&lt;br /&gt;              spFields[looper] = field;&lt;br /&gt;            }&lt;br /&gt;            &lt;br /&gt;            &lt;br /&gt;SPTreeView&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;  SPWeb web = SPContext.Current.Web;&lt;br /&gt;  &lt;br /&gt;   SPList uploadDocumentList = web.Lists[UploadedDocuments];&lt;br /&gt;   &lt;br /&gt;    &lt;span class="kwrd"&gt;foreach&lt;/span&gt; (SPListItem item &lt;span class="kwrd"&gt;in&lt;/span&gt; uploadDocumentList.Items)&lt;br /&gt;            {&lt;br /&gt;              dropDownList.Items.Add(&lt;br /&gt;               &lt;span class="kwrd"&gt;new&lt;/span&gt; ListItem(item.DisplayName, item.ID.ToString()));&lt;br /&gt;            }&lt;br /&gt;            &lt;br /&gt;            &lt;br /&gt;            &lt;br /&gt;              SPDocumentLibrary workingDocumentLibrary =&lt;br /&gt;            (SPDocumentLibrary)workingDocumentList;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;SPWeb web = SPContext.Current.Web;&lt;br /&gt;      SPList taskList = web.Lists[TaskList];&lt;br /&gt;      SPListItem task = taskList.Items.Add();&lt;br /&gt;      task[&lt;span class="str"&gt;"Title"&lt;/span&gt;] = &lt;span class="str"&gt;"Please review the file "&lt;/span&gt; + copiedFile.File.Name;&lt;br /&gt;      task[&lt;span class="str"&gt;"Status"&lt;/span&gt;] = &lt;span class="str"&gt;"Not Started"&lt;/span&gt;;&lt;br /&gt;      &lt;span class="kwrd"&gt;if&lt;/span&gt; (!String.IsNullOrEmpty(AssignedUser))&lt;br /&gt;      {&lt;br /&gt;        SPUser user = web.AllUsers[AssignedUser];&lt;br /&gt;        task[&lt;span class="str"&gt;"Assigned To"&lt;/span&gt;] = user;&lt;br /&gt;      }&lt;br /&gt;&lt;br /&gt;      task[&lt;span class="str"&gt;"Start Date"&lt;/span&gt;] = DateTime.Now;&lt;br /&gt;      task[&lt;span class="str"&gt;"Due Date"&lt;/span&gt;] = DateTime.Now.AddDays(7);&lt;br /&gt;      task[&lt;span class="str"&gt;"Description"&lt;/span&gt;] = &lt;span class="str"&gt;"A document was uploaded. Can you please review it."&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;      SPFieldUrlValue url = &lt;span class="kwrd"&gt;new&lt;/span&gt; SPFieldUrlValue();&lt;br /&gt;      url.Description = copiedFile.DisplayName;&lt;br /&gt;      url.Url = web.Url + &lt;span class="str"&gt;"/"&lt;/span&gt; + copiedFile.Url;&lt;br /&gt;      task[&lt;span class="str"&gt;"Document"&lt;/span&gt;] = url;&lt;br /&gt;&lt;br /&gt;      task.Update();&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8777320242835817445-7224453170795596169?l=jefferychinet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jefferychinet.blogspot.com/feeds/7224453170795596169/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jefferychinet.blogspot.com/2010/03/some-sharepoint-code.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/7224453170795596169'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/7224453170795596169'/><link rel='alternate' type='text/html' href='http://jefferychinet.blogspot.com/2010/03/some-sharepoint-code.html' title='Some SharePoint Code'/><author><name>Jeffery Chi</name><uri>http://www.blogger.com/profile/01777274222273910460</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_0awGwIWdbAQ/SrWo52s_aPI/AAAAAAAAAe0/sz5rSKavJMs/S220/airforcewing.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8777320242835817445.post-1504168430119108958</id><published>2010-03-23T21:36:00.000-07:00</published><updated>2010-03-23T21:37:15.607-07:00</updated><title type='text'>.NET Framework type of the day SortedList</title><content type='html'>It is like hashTable with sort functionality :&lt;br /&gt;&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.collections.sortedlist.aspx"&gt;http://msdn.microsoft.com/en-us/library/system.collections.sortedlist.aspx&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8777320242835817445-1504168430119108958?l=jefferychinet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jefferychinet.blogspot.com/feeds/1504168430119108958/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jefferychinet.blogspot.com/2010/03/net-framework-type-of-day-sortedlist.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/1504168430119108958'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/1504168430119108958'/><link rel='alternate' type='text/html' href='http://jefferychinet.blogspot.com/2010/03/net-framework-type-of-day-sortedlist.html' title='.NET Framework type of the day SortedList'/><author><name>Jeffery Chi</name><uri>http://www.blogger.com/profile/01777274222273910460</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_0awGwIWdbAQ/SrWo52s_aPI/AAAAAAAAAe0/sz5rSKavJMs/S220/airforcewing.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8777320242835817445.post-2728958366150922594</id><published>2010-03-23T18:39:00.001-07:00</published><updated>2010-03-23T18:39:51.434-07:00</updated><title type='text'>CFF Project Excel Export Tool</title><content type='html'>&lt;a href="http://www.codeproject.com/KB/office/excelxmllibrary.aspx"&gt;http://www.codeproject.com/KB/office/excelxmllibrary.aspx&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8777320242835817445-2728958366150922594?l=jefferychinet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jefferychinet.blogspot.com/feeds/2728958366150922594/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jefferychinet.blogspot.com/2010/03/cff-project-excel-export-tool.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/2728958366150922594'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/2728958366150922594'/><link rel='alternate' type='text/html' href='http://jefferychinet.blogspot.com/2010/03/cff-project-excel-export-tool.html' title='CFF Project Excel Export Tool'/><author><name>Jeffery Chi</name><uri>http://www.blogger.com/profile/01777274222273910460</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_0awGwIWdbAQ/SrWo52s_aPI/AAAAAAAAAe0/sz5rSKavJMs/S220/airforcewing.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8777320242835817445.post-1970009110426751091</id><published>2010-03-23T03:02:00.000-07:00</published><updated>2010-03-23T03:04:06.489-07:00</updated><title type='text'>SharePoint 2007Access Folders</title><content type='html'>&lt;pre class="csharpcode"&gt;&lt;br /&gt; &lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; DisplayAllFolders()&lt;br /&gt;        {&lt;br /&gt;            SPSite oSiteCollection = SPContext.Current.Site;&lt;br /&gt;            SPWebCollection collWebsites = oSiteCollection.AllWebs;&lt;br /&gt;            &lt;span class="kwrd"&gt;string&lt;/span&gt; s = &lt;span class="kwrd"&gt;string&lt;/span&gt;.Empty;&lt;br /&gt;            &lt;span class="kwrd"&gt;foreach&lt;/span&gt; (SPWeb oWebsite &lt;span class="kwrd"&gt;in&lt;/span&gt; collWebsites)&lt;br /&gt;            {&lt;br /&gt;                SPFolderCollection collFolders = oWebsite.Folders;&lt;br /&gt;&lt;br /&gt;                &lt;span class="kwrd"&gt;foreach&lt;/span&gt; (SPFolder oFolder &lt;span class="kwrd"&gt;in&lt;/span&gt; collFolders)&lt;br /&gt;                {&lt;br /&gt;                    SPFileCollection collFiles = oFolder.Files;&lt;br /&gt;&lt;br /&gt;                    &lt;span class="kwrd"&gt;long&lt;/span&gt; lngTotalFileSize = 0;&lt;br /&gt;&lt;br /&gt;                    &lt;span class="kwrd"&gt;for&lt;/span&gt; (&lt;span class="kwrd"&gt;int&lt;/span&gt; intIndex = 0; intIndex &amp;lt; collFiles.Count; intIndex++)&lt;br /&gt;                    {&lt;br /&gt;                        lngTotalFileSize += collFiles[intIndex].Length;&lt;br /&gt;                    }&lt;br /&gt;&lt;br /&gt;                    s = s+ &lt;span class="str"&gt;" Web: "&lt;/span&gt; +&lt;br /&gt;                        SPEncode.HtmlEncode(oWebsite.Name)&lt;br /&gt;                        + &lt;span class="str"&gt;" Folder: "&lt;/span&gt; +&lt;br /&gt;                        SPEncode.HtmlEncode(oFolder.Name) + &lt;span class="str"&gt;" Number: "&lt;/span&gt;&lt;br /&gt;                        + oFolder.Files.Count +&lt;br /&gt;                        &lt;span class="str"&gt;" Size: "&lt;/span&gt; + lngTotalFileSize + &lt;span class="str"&gt;"&amp;lt;BR&amp;gt;"&lt;/span&gt;;&lt;br /&gt;                }&lt;br /&gt;                oWebsite.Dispose();&lt;br /&gt;            }&lt;br /&gt;            Response.Write(s);&lt;br /&gt;        }&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8777320242835817445-1970009110426751091?l=jefferychinet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jefferychinet.blogspot.com/feeds/1970009110426751091/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jefferychinet.blogspot.com/2010/03/sharepoint-2007access-folders.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/1970009110426751091'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/1970009110426751091'/><link rel='alternate' type='text/html' href='http://jefferychinet.blogspot.com/2010/03/sharepoint-2007access-folders.html' title='SharePoint 2007Access Folders'/><author><name>Jeffery Chi</name><uri>http://www.blogger.com/profile/01777274222273910460</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_0awGwIWdbAQ/SrWo52s_aPI/AAAAAAAAAe0/sz5rSKavJMs/S220/airforcewing.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8777320242835817445.post-4762292544170171602</id><published>2010-03-22T17:22:00.000-07:00</published><updated>2010-03-22T17:25:55.418-07:00</updated><title type='text'>SharePoint SDK</title><content type='html'>&lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.splist.aspx"&gt;http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.splist.aspx&lt;/a&gt;&lt;br /&gt;Represents a list on a SharePoint Web site.&lt;br /&gt;SPList Class (Microsoft.SharePoint)&lt;br /&gt;&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.splistitem.aspx"&gt;http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.splistitem.aspx&lt;/a&gt;&lt;br /&gt;Represents an item or row in a list.&lt;br /&gt;SPListItem Class (Microsoft.SharePoint)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;SPWeb rootWeb = SPContext.Current.Site.RootWeb;&lt;br /&gt;if (rootWeb.ListExists(Lists.ContactUsTopics))&lt;br /&gt;{&lt;br /&gt;drpdownTopics.Items.Clear();&lt;br /&gt;SPList contactmeTopicsList = rootWeb.Lists[Lists.ContactUsTopics];&lt;br /&gt;foreach (SPListItem topic in contactmeTopicsList.Items)&lt;br /&gt;{&lt;br /&gt;drpdownTopics.Items.Add(topic.Title);&lt;br /&gt;}&lt;br /&gt;drpdownTopics.SelectedIndex = 0;&lt;br /&gt;}&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8777320242835817445-4762292544170171602?l=jefferychinet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jefferychinet.blogspot.com/feeds/4762292544170171602/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jefferychinet.blogspot.com/2010/03/sharepoint-sdk_22.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/4762292544170171602'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/4762292544170171602'/><link rel='alternate' type='text/html' href='http://jefferychinet.blogspot.com/2010/03/sharepoint-sdk_22.html' title='SharePoint SDK'/><author><name>Jeffery Chi</name><uri>http://www.blogger.com/profile/01777274222273910460</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_0awGwIWdbAQ/SrWo52s_aPI/AAAAAAAAAe0/sz5rSKavJMs/S220/airforcewing.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8777320242835817445.post-2034555500074798525</id><published>2010-03-22T13:04:00.000-07:00</published><updated>2010-03-22T13:06:28.417-07:00</updated><title type='text'>Problem with configuring VSeWSS 1.3 CTP w/ VS 2008</title><content type='html'>1. Created a new application pool "VSeWSS" with default settings&lt;br /&gt;2. Install VSeWSS 1.3 using the app pool "VSeWSS"8. Deploy webpart - works!Windows 2008, VS2008&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://social.msdn.microsoft.com/Forums/en-US/sharepointdevelopment/thread/3a11085b-9dd3-4879-83be-fd44f0da1a0e"&gt;http://social.msdn.microsoft.com/Forums/en-US/sharepointdevelopment/thread/3a11085b-9dd3-4879-83be-fd44f0da1a0e&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://blogs.msdn.com/steve_fox/archive/2009/03/18/vsewss-1-3-post-install-configuration.aspx"&gt;http://blogs.msdn.com/steve_fox/archive/2009/03/18/vsewss-1-3-post-install-configuration.aspx&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8777320242835817445-2034555500074798525?l=jefferychinet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jefferychinet.blogspot.com/feeds/2034555500074798525/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jefferychinet.blogspot.com/2010/03/problem-with-configuring-vsewss-13-ctp.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/2034555500074798525'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/2034555500074798525'/><link rel='alternate' type='text/html' href='http://jefferychinet.blogspot.com/2010/03/problem-with-configuring-vsewss-13-ctp.html' title='Problem with configuring VSeWSS 1.3 CTP w/ VS 2008'/><author><name>Jeffery Chi</name><uri>http://www.blogger.com/profile/01777274222273910460</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_0awGwIWdbAQ/SrWo52s_aPI/AAAAAAAAAe0/sz5rSKavJMs/S220/airforcewing.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8777320242835817445.post-9046239424392902304</id><published>2010-03-20T05:56:00.000-07:00</published><updated>2010-03-20T07:23:49.839-07:00</updated><title type='text'>C# + MVP  + Unit Testing</title><content type='html'>Here are basic resources required to carry on unit test :&lt;br /&gt;&lt;br /&gt;1) Rhino Mocks : &lt;span style="text-decoration: underline;"&gt; http://www.ayende.com/projects/rhino-mocks/downloads.aspx&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;2) Nunit :  http://nunit.org/?p=download&lt;br /&gt;&lt;br /&gt;3) TestDriven http://www.testdriven.net/&lt;br /&gt;&lt;br /&gt;4) WatiN Auto UI Testing http://watin.sourceforge.net/&lt;br /&gt;&lt;br /&gt;Here is my sample code&lt;br /&gt;&lt;a href="http://airforcewing.com/downloads/jefferyProjects_1.zip"&gt;http://airforcewing.com/downloads/jefferyProjects_1.zip&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8777320242835817445-9046239424392902304?l=jefferychinet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jefferychinet.blogspot.com/feeds/9046239424392902304/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jefferychinet.blogspot.com/2010/03/c-mvp-unit-testing.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/9046239424392902304'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/9046239424392902304'/><link rel='alternate' type='text/html' href='http://jefferychinet.blogspot.com/2010/03/c-mvp-unit-testing.html' title='C# + MVP  + Unit Testing'/><author><name>Jeffery Chi</name><uri>http://www.blogger.com/profile/01777274222273910460</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_0awGwIWdbAQ/SrWo52s_aPI/AAAAAAAAAe0/sz5rSKavJMs/S220/airforcewing.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8777320242835817445.post-541830910737683913</id><published>2010-03-20T05:46:00.000-07:00</published><updated>2010-03-20T05:52:47.462-07:00</updated><title type='text'>C# + Why to use using Statement</title><content type='html'>When you are using an object that encapsulates any resource, you have to make sure that when you are done with the object, the object's Dispose  method is called. This can be done more easily using the using statement in C#. The using statement simplifies the code that you have to write to create and then finally clean up the object. The using statement obtains the resource specified, executes the statements and finally calls the Dispose method of the object to clean up the object.&lt;br /&gt;&lt;br /&gt;using (TextWriter w = File.CreateText("log.txt")){    w.WriteLine("This is line one");}&lt;br /&gt;&lt;br /&gt;Here is an excellent article :&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.codeproject.com/KB/cs/tinguusingstatement.aspx"&gt;http://www.codeproject.com/KB/cs/tinguusingstatement.aspx&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8777320242835817445-541830910737683913?l=jefferychinet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jefferychinet.blogspot.com/feeds/541830910737683913/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jefferychinet.blogspot.com/2010/03/c-why-to-use-using-statement.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/541830910737683913'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/541830910737683913'/><link rel='alternate' type='text/html' href='http://jefferychinet.blogspot.com/2010/03/c-why-to-use-using-statement.html' title='C# + Why to use using Statement'/><author><name>Jeffery Chi</name><uri>http://www.blogger.com/profile/01777274222273910460</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_0awGwIWdbAQ/SrWo52s_aPI/AAAAAAAAAe0/sz5rSKavJMs/S220/airforcewing.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8777320242835817445.post-3635426667777527633</id><published>2010-03-18T01:26:00.000-07:00</published><updated>2010-06-22T15:37:00.591-07:00</updated><title type='text'>SharePoint Development Resources</title><content type='html'>SharePoint 2007&lt;br /&gt;&lt;a href="http://www.microsoft.com/click/sharepointdeveloper"&gt;http://www.microsoft.com/click/sharepointdeveloper&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Labs&lt;br /&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=B885DCE8-C93F-48AA-B798-4422FEBCC200&amp;amp;displaylang=en"&gt;http://www.microsoft.com/downloads/details.aspx?FamilyId=B885DCE8-C93F-48AA-B798-4422FEBCC200&amp;amp;displaylang=en&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Blog Post&lt;br /&gt;&lt;a href="http://blogs.msdn.com/pandrew/archive/2008/06/11/mssharepointdeveloper-content.aspx"&gt;http://blogs.msdn.com/pandrew/archive/2008/06/11/mssharepointdeveloper-content.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Video Series&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/sharepoint/ee663870.aspx"&gt;http://msdn.microsoft.com/en-us/sharepoint/ee663870.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Tools&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/bb530302.aspx"&gt;http://msdn.microsoft.com/en-us/library/bb530302.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;SharePoint 2010&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/sharepoint/ee514561.aspx"&gt;http://msdn.microsoft.com/en-us/sharepoint/ee514561.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/sharepoint/ee513147.aspx"&gt;http://msdn.microsoft.com/en-us/sharepoint/ee513147.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Stripped down master page&lt;br /&gt;&lt;a href="http://www.heathersolomon.com/blog/articles/BaseMasterPages.aspx"&gt;http://www.heathersolomon.com/blog/articles/BaseMasterPages.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://sharepointers.blogspot.com/2008/04/creating-and-deploying-custom-master.html"&gt;http://sharepointers.blogspot.com/2008/04/creating-and-deploying-custom-master.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/aa660698.aspx"&gt;http://msdn.microsoft.com/en-us/library/aa660698.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Very useful visual stuido add in&lt;br /&gt;&lt;a href="http://stsdev.codeplex.com/"&gt;http://stsdev.codeplex.com/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.codeplex.com/wspbuilder"&gt;http://www.codeplex.com/wspbuilder&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://spvisualdev.codeplex.com/"&gt;http://spvisualdev.codeplex.com/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://ulsviewer.codeplex.com/"&gt;http://ulsviewer.codeplex.com/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://code.msdn.microsoft.com/ULSViewer/Release/ProjectReleases.aspx?ReleaseId=3308"&gt;http://code.msdn.microsoft.com/ULSViewer/Release/ProjectReleases.aspx?ReleaseId=3308&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;How to create customised master page template&lt;br /&gt;&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/bb727372.aspx"&gt;http://msdn.microsoft.com/en-us/library/bb727372.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;What is onet.xml&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms474369.aspx"&gt;http://msdn.microsoft.com/en-us/library/ms474369.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Here is my sample project of sharePoint using sharePoint SDK&lt;br /&gt;&lt;br /&gt;&lt;a href="http://airforcewing.com/downloads/SharePointMedical_2.zip"&gt;http://airforcewing.com/downloads/SharePointMedical_2.zip&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8777320242835817445-3635426667777527633?l=jefferychinet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jefferychinet.blogspot.com/feeds/3635426667777527633/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jefferychinet.blogspot.com/2010/03/sharepoint-development-resources.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/3635426667777527633'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/3635426667777527633'/><link rel='alternate' type='text/html' href='http://jefferychinet.blogspot.com/2010/03/sharepoint-development-resources.html' title='SharePoint Development Resources'/><author><name>Jeffery Chi</name><uri>http://www.blogger.com/profile/01777274222273910460</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_0awGwIWdbAQ/SrWo52s_aPI/AAAAAAAAAe0/sz5rSKavJMs/S220/airforcewing.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8777320242835817445.post-8281536151438833122</id><published>2010-03-16T17:55:00.001-07:00</published><updated>2010-03-16T17:58:48.693-07:00</updated><title type='text'>SharePoint Web Part</title><content type='html'>One of senior sharepoint developer at work produced this codeplex package on the&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://spjquerywebparts.codeplex.com/"&gt;http://spjquerywebparts.codeplex.com&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8777320242835817445-8281536151438833122?l=jefferychinet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jefferychinet.blogspot.com/feeds/8281536151438833122/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jefferychinet.blogspot.com/2010/03/sharepoint-web-part.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/8281536151438833122'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/8281536151438833122'/><link rel='alternate' type='text/html' href='http://jefferychinet.blogspot.com/2010/03/sharepoint-web-part.html' title='SharePoint Web Part'/><author><name>Jeffery Chi</name><uri>http://www.blogger.com/profile/01777274222273910460</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_0awGwIWdbAQ/SrWo52s_aPI/AAAAAAAAAe0/sz5rSKavJMs/S220/airforcewing.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8777320242835817445.post-5512340407814104825</id><published>2010-03-16T16:35:00.000-07:00</published><updated>2010-03-16T17:12:20.368-07:00</updated><title type='text'>SharePoint DisableLoopbackCheck</title><content type='html'>One of  the problem I had with setting up SharePoint site is, If I create a site with different host name and try to visit it on the same hosting machine.  It will always ask me to provide login details, but nomatter what I enter in the login pop, I will nevery be able to see the site.&lt;br /&gt;&lt;br /&gt;This is caused by "DisableLoopbackCheck " issue, which can be fixed by following the instruction below :&lt;br /&gt;&lt;br /&gt;&lt;a href="http://support.microsoft.com/kb/896861#letmefixit"&gt;http://support.microsoft.com/kb/896861#letmefixit&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8777320242835817445-5512340407814104825?l=jefferychinet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jefferychinet.blogspot.com/feeds/5512340407814104825/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jefferychinet.blogspot.com/2010/03/sharepoint-disableloopbackcheck.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/5512340407814104825'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/5512340407814104825'/><link rel='alternate' type='text/html' href='http://jefferychinet.blogspot.com/2010/03/sharepoint-disableloopbackcheck.html' title='SharePoint DisableLoopbackCheck'/><author><name>Jeffery Chi</name><uri>http://www.blogger.com/profile/01777274222273910460</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_0awGwIWdbAQ/SrWo52s_aPI/AAAAAAAAAe0/sz5rSKavJMs/S220/airforcewing.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8777320242835817445.post-3906432416665664657</id><published>2010-03-16T14:12:00.000-07:00</published><updated>2010-03-16T16:33:34.284-07:00</updated><title type='text'>ASP.NET output Javascript</title><content type='html'>&lt;a href="http://dotnetslackers.com/articles/aspnet/JavaScript_with_ASP_NET_2_0_Pages_Part1.aspx"&gt;http://dotnetslackers.com/articles/aspnet/JavaScript_with_ASP_NET_2_0_Pages_Part1.aspx&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8777320242835817445-3906432416665664657?l=jefferychinet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jefferychinet.blogspot.com/feeds/3906432416665664657/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jefferychinet.blogspot.com/2010/03/aspnet-output-javascript.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/3906432416665664657'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/3906432416665664657'/><link rel='alternate' type='text/html' href='http://jefferychinet.blogspot.com/2010/03/aspnet-output-javascript.html' title='ASP.NET output Javascript'/><author><name>Jeffery Chi</name><uri>http://www.blogger.com/profile/01777274222273910460</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_0awGwIWdbAQ/SrWo52s_aPI/AAAAAAAAAe0/sz5rSKavJMs/S220/airforcewing.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8777320242835817445.post-2111311740813767806</id><published>2010-03-15T17:59:00.001-07:00</published><updated>2010-03-15T18:00:54.957-07:00</updated><title type='text'>Integration of SVN to visual studio 2008</title><content type='html'>Here is a free svn plugin can be used in visual studio 2008&lt;br /&gt;&lt;br /&gt;&lt;a href="http://blogs.open.collab.net/svn/2008/07/ankhsvn-20-fina.html"&gt;http://blogs.open.collab.net/svn/2008/07/ankhsvn-20-fina.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;(This one is not free, but it supposes to be good ! )&lt;br /&gt;&lt;a href="http://www.visualsvn.com/"&gt;http://www.visualsvn.com/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8777320242835817445-2111311740813767806?l=jefferychinet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jefferychinet.blogspot.com/feeds/2111311740813767806/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jefferychinet.blogspot.com/2010/03/integration-of-svn-to-visual-studio.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/2111311740813767806'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/2111311740813767806'/><link rel='alternate' type='text/html' href='http://jefferychinet.blogspot.com/2010/03/integration-of-svn-to-visual-studio.html' title='Integration of SVN to visual studio 2008'/><author><name>Jeffery Chi</name><uri>http://www.blogger.com/profile/01777274222273910460</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_0awGwIWdbAQ/SrWo52s_aPI/AAAAAAAAAe0/sz5rSKavJMs/S220/airforcewing.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8777320242835817445.post-2057653967830563999</id><published>2010-03-15T00:55:00.000-07:00</published><updated>2010-03-15T00:58:13.253-07:00</updated><title type='text'>C# string format</title><content type='html'>&lt;a href="http://www.dijksterhuis.org/formatting-strings-stringformat/"&gt;http://www.dijksterhuis.org/formatting-strings-stringformat/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.csharp-examples.net/string-format-int/"&gt;http://www.csharp-examples.net/string-format-int/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Add zeroes before number&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8777320242835817445-2057653967830563999?l=jefferychinet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jefferychinet.blogspot.com/feeds/2057653967830563999/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jefferychinet.blogspot.com/2010/03/c-string-format.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/2057653967830563999'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/2057653967830563999'/><link rel='alternate' type='text/html' href='http://jefferychinet.blogspot.com/2010/03/c-string-format.html' title='C# string format'/><author><name>Jeffery Chi</name><uri>http://www.blogger.com/profile/01777274222273910460</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_0awGwIWdbAQ/SrWo52s_aPI/AAAAAAAAAe0/sz5rSKavJMs/S220/airforcewing.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8777320242835817445.post-1910221362819769201</id><published>2010-03-15T00:21:00.001-07:00</published><updated>2010-03-15T00:21:48.701-07:00</updated><title type='text'>System.Web.UI.WebControls.BoundField - changing dataformatstring at runtime fails</title><content type='html'>&lt;a href="https://connect.microsoft.com/VisualStudio/feedback/details/333263/system-web-ui-webcontrols-boundfield-changing-dataformatstring-at-runtime-fails"&gt;https://connect.microsoft.com/VisualStudio/feedback/details/333263/system-web-ui-webcontrols-boundfield-changing-dataformatstring-at-runtime-fails&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8777320242835817445-1910221362819769201?l=jefferychinet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jefferychinet.blogspot.com/feeds/1910221362819769201/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jefferychinet.blogspot.com/2010/03/systemwebuiwebcontrolsboundfield.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/1910221362819769201'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/1910221362819769201'/><link rel='alternate' type='text/html' href='http://jefferychinet.blogspot.com/2010/03/systemwebuiwebcontrolsboundfield.html' title='System.Web.UI.WebControls.BoundField - changing dataformatstring at runtime fails'/><author><name>Jeffery Chi</name><uri>http://www.blogger.com/profile/01777274222273910460</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_0awGwIWdbAQ/SrWo52s_aPI/AAAAAAAAAe0/sz5rSKavJMs/S220/airforcewing.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8777320242835817445.post-4835113196922350841</id><published>2010-03-13T23:26:00.000-08:00</published><updated>2010-03-13T23:27:00.132-08:00</updated><title type='text'>HttpContext..::.User Property</title><content type='html'>The User property provides programmatic access to the properties and methods of the IPrincipal interface. Because ASP.NET pages contain a default reference to the System.Web namespace (which contains the HttpContext class), you can reference the members of HttpContext on an .aspx page without using the fully qualified class reference to HttpContext. For example, you can use User.Identity.Name to get the name of the user on whose behalf the current process is running. However, if you want to use the members of IPrincipal from an ASP.NET code-behind module, you must include a reference to the System.Web namespace in the module and a fully qualified reference to both the currently active request/response context and the class in System.Web that you want to use. For example, in a code-behind page you must specify the fully qualified name HttpContext.Current.User.Identity.Name.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8777320242835817445-4835113196922350841?l=jefferychinet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jefferychinet.blogspot.com/feeds/4835113196922350841/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jefferychinet.blogspot.com/2010/03/httpcontextuser-property.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/4835113196922350841'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/4835113196922350841'/><link rel='alternate' type='text/html' href='http://jefferychinet.blogspot.com/2010/03/httpcontextuser-property.html' title='HttpContext..::.User Property'/><author><name>Jeffery Chi</name><uri>http://www.blogger.com/profile/01777274222273910460</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_0awGwIWdbAQ/SrWo52s_aPI/AAAAAAAAAe0/sz5rSKavJMs/S220/airforcewing.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8777320242835817445.post-2742916164776440100</id><published>2010-03-13T03:19:00.001-08:00</published><updated>2010-03-13T23:32:45.318-08:00</updated><title type='text'>MVP Architects</title><content type='html'>Now I am working on some enterprise level application, I finally have chance to access to program arachitect.&lt;br /&gt;&lt;br /&gt;Here are some resources from Microsoft:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/cc540671.aspx"&gt;http://msdn.microsoft.com/en-us/library/cc540671.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/cc304760.aspx"&gt;http://msdn.microsoft.com/en-us/library/cc304760.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/magazine/cc188690.aspx"&gt;http://msdn.microsoft.com/en-us/magazine/cc188690.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Unit Testing&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.nmock.org/cheatsheet.html"&gt;http://www.nmock.org/cheatsheet.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.c-sharpcorner.com/UploadFile/markuskalina/NUnitP1MK12052005043822AM/NUnitP1MK.aspx"&gt;http://www.c-sharpcorner.com/UploadFile/markuskalina/NUnitP1MK12052005043822AM/NUnitP1MK.aspx&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8777320242835817445-2742916164776440100?l=jefferychinet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jefferychinet.blogspot.com/feeds/2742916164776440100/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jefferychinet.blogspot.com/2010/03/mvp-architects.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/2742916164776440100'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/2742916164776440100'/><link rel='alternate' type='text/html' href='http://jefferychinet.blogspot.com/2010/03/mvp-architects.html' title='MVP Architects'/><author><name>Jeffery Chi</name><uri>http://www.blogger.com/profile/01777274222273910460</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_0awGwIWdbAQ/SrWo52s_aPI/AAAAAAAAAe0/sz5rSKavJMs/S220/airforcewing.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8777320242835817445.post-7198778341013643760</id><published>2010-03-13T02:36:00.000-08:00</published><updated>2010-03-13T02:59:53.420-08:00</updated><title type='text'>ASP.NET Browser Auto Testing, Unit Testing</title><content type='html'>In CFF project, for the first time, I have experienced the power of auto web browser testing tool.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://watin.sourceforge.net/"&gt;http://watin.sourceforge.net/&lt;/a&gt;&lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;In this project,we also used NUNIT testing tool for unit testing.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.nunit.org/"&gt;http://www.nunit.org/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Here are some articles teach you how to use it.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://tangent-studios.com/programming/csharp/NUnit2Tut/NUnitV2Tut.htm"&gt;http://tangent-studios.com/programming/csharp/NUnit2Tut/NUnitV2Tut.htm&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.c-sharpcorner.com/UploadFile/markuskalina/NUnitP1MK12052005043822AM/NUnitP1MK.aspx"&gt;http://www.c-sharpcorner.com/UploadFile/markuskalina/NUnitP1MK12052005043822AM/NUnitP1MK.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.c-sharpcorner.com/UploadFile/markuskalina/NUnitP2MK12052005022324AM/NUnitP2MK.aspx"&gt;http://www.c-sharpcorner.com/UploadFile/markuskalina/NUnitP2MK12052005022324AM/NUnitP2MK.aspx&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8777320242835817445-7198778341013643760?l=jefferychinet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jefferychinet.blogspot.com/feeds/7198778341013643760/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jefferychinet.blogspot.com/2010/03/aspnet-auto-testing.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/7198778341013643760'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/7198778341013643760'/><link rel='alternate' type='text/html' href='http://jefferychinet.blogspot.com/2010/03/aspnet-auto-testing.html' title='ASP.NET Browser Auto Testing, Unit Testing'/><author><name>Jeffery Chi</name><uri>http://www.blogger.com/profile/01777274222273910460</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_0awGwIWdbAQ/SrWo52s_aPI/AAAAAAAAAe0/sz5rSKavJMs/S220/airforcewing.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8777320242835817445.post-6019403866269441266</id><published>2010-03-13T01:18:00.000-08:00</published><updated>2010-03-13T02:36:17.501-08:00</updated><title type='text'>CFF Projects</title><content type='html'>string name;&lt;br /&gt;System.ArgumentOutOfRangeException(name)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;System.Colleciton.Generic.Dictionary.ContainKey()&lt;br /&gt;&lt;br /&gt;&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;&lt;br /&gt;&lt;pre class="csharpcode"&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System;&lt;br /&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Collections.Generic;&lt;br /&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;class&lt;/span&gt; Example&lt;br /&gt;{&lt;br /&gt;    &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; Main()&lt;br /&gt;    {&lt;br /&gt;        &lt;span class="rem"&gt;// Create a new dictionary of strings, with string keys.&lt;/span&gt;&lt;br /&gt;        &lt;span class="rem"&gt;//&lt;/span&gt;&lt;br /&gt;        Dictionary&amp;lt;&lt;span class="kwrd"&gt;string&lt;/span&gt;, &lt;span class="kwrd"&gt;string&lt;/span&gt;&amp;gt; openWith = &lt;br /&gt;            &lt;span class="kwrd"&gt;new&lt;/span&gt; Dictionary&amp;lt;&lt;span class="kwrd"&gt;string&lt;/span&gt;, &lt;span class="kwrd"&gt;string&lt;/span&gt;&amp;gt;();&lt;br /&gt;&lt;br /&gt;        &lt;span class="rem"&gt;// Add some elements to the dictionary. There are no &lt;/span&gt;&lt;br /&gt;        &lt;span class="rem"&gt;// duplicate keys, but some of the values are duplicates.&lt;/span&gt;&lt;br /&gt;        openWith.Add(&lt;span class="str"&gt;"txt"&lt;/span&gt;, &lt;span class="str"&gt;"notepad.exe"&lt;/span&gt;);&lt;br /&gt;        openWith.Add(&lt;span class="str"&gt;"bmp"&lt;/span&gt;, &lt;span class="str"&gt;"paint.exe"&lt;/span&gt;);&lt;br /&gt;        openWith.Add(&lt;span class="str"&gt;"dib"&lt;/span&gt;, &lt;span class="str"&gt;"paint.exe"&lt;/span&gt;);&lt;br /&gt;        openWith.Add(&lt;span class="str"&gt;"rtf"&lt;/span&gt;, &lt;span class="str"&gt;"wordpad.exe"&lt;/span&gt;);&lt;br /&gt;&lt;br /&gt;        &lt;span class="rem"&gt;// The Add method throws an exception if the new key is &lt;/span&gt;&lt;br /&gt;        &lt;span class="rem"&gt;// already in the dictionary.&lt;/span&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;try&lt;/span&gt;&lt;br /&gt;        {&lt;br /&gt;            openWith.Add(&lt;span class="str"&gt;"txt"&lt;/span&gt;, &lt;span class="str"&gt;"winword.exe"&lt;/span&gt;);&lt;br /&gt;        }&lt;br /&gt;        &lt;span class="kwrd"&gt;catch&lt;/span&gt; (ArgumentException)&lt;br /&gt;        {&lt;br /&gt;            Console.WriteLine(&lt;span class="str"&gt;"An element with Key = \"txt\" already exists."&lt;/span&gt;);&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span class="rem"&gt;// The Item property is another name for the indexer, so you &lt;/span&gt;&lt;br /&gt;        &lt;span class="rem"&gt;// can omit its name when accessing elements. &lt;/span&gt;&lt;br /&gt;        Console.WriteLine(&lt;span class="str"&gt;"For key = \"rtf\", value = {0}."&lt;/span&gt;, &lt;br /&gt;            openWith[&lt;span class="str"&gt;"rtf"&lt;/span&gt;]);&lt;br /&gt;&lt;br /&gt;        &lt;span class="rem"&gt;// The indexer can be used to change the value associated&lt;/span&gt;&lt;br /&gt;        &lt;span class="rem"&gt;// with a key.&lt;/span&gt;&lt;br /&gt;        openWith[&lt;span class="str"&gt;"rtf"&lt;/span&gt;] = &lt;span class="str"&gt;"winword.exe"&lt;/span&gt;;&lt;br /&gt;        Console.WriteLine(&lt;span class="str"&gt;"For key = \"rtf\", value = {0}."&lt;/span&gt;, &lt;br /&gt;            openWith[&lt;span class="str"&gt;"rtf"&lt;/span&gt;]);&lt;br /&gt;&lt;br /&gt;        &lt;span class="rem"&gt;// If a key does not exist, setting the indexer for that key&lt;/span&gt;&lt;br /&gt;        &lt;span class="rem"&gt;// adds a new key/value pair.&lt;/span&gt;&lt;br /&gt;        openWith[&lt;span class="str"&gt;"doc"&lt;/span&gt;] = &lt;span class="str"&gt;"winword.exe"&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;        &lt;span class="rem"&gt;// The indexer throws an exception if the requested key is&lt;/span&gt;&lt;br /&gt;        &lt;span class="rem"&gt;// not in the dictionary.&lt;/span&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;try&lt;/span&gt;&lt;br /&gt;        {&lt;br /&gt;            Console.WriteLine(&lt;span class="str"&gt;"For key = \"tif\", value = {0}."&lt;/span&gt;, &lt;br /&gt;                openWith[&lt;span class="str"&gt;"tif"&lt;/span&gt;]);&lt;br /&gt;        }&lt;br /&gt;        &lt;span class="kwrd"&gt;catch&lt;/span&gt; (KeyNotFoundException)&lt;br /&gt;        {&lt;br /&gt;            Console.WriteLine(&lt;span class="str"&gt;"Key = \"tif\" is not found."&lt;/span&gt;);&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span class="rem"&gt;// When a program often has to try keys that turn out not to&lt;/span&gt;&lt;br /&gt;        &lt;span class="rem"&gt;// be in the dictionary, TryGetValue can be a more efficient &lt;/span&gt;&lt;br /&gt;        &lt;span class="rem"&gt;// way to retrieve values.&lt;/span&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;string&lt;/span&gt; &lt;span class="kwrd"&gt;value&lt;/span&gt; = &lt;span class="str"&gt;""&lt;/span&gt;;&lt;br /&gt;        &lt;span class="kwrd"&gt;if&lt;/span&gt; (openWith.TryGetValue(&lt;span class="str"&gt;"tif"&lt;/span&gt;, &lt;span class="kwrd"&gt;out&lt;/span&gt; &lt;span class="kwrd"&gt;value&lt;/span&gt;))&lt;br /&gt;        {&lt;br /&gt;            Console.WriteLine(&lt;span class="str"&gt;"For key = \"tif\", value = {0}."&lt;/span&gt;, &lt;span class="kwrd"&gt;value&lt;/span&gt;);&lt;br /&gt;        }&lt;br /&gt;        &lt;span class="kwrd"&gt;else&lt;/span&gt;&lt;br /&gt;        {&lt;br /&gt;            Console.WriteLine(&lt;span class="str"&gt;"Key = \"tif\" is not found."&lt;/span&gt;);&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span class="rem"&gt;// ContainsKey can be used to test keys before inserting &lt;/span&gt;&lt;br /&gt;        &lt;span class="rem"&gt;// them.&lt;/span&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;if&lt;/span&gt; (!openWith.ContainsKey(&lt;span class="str"&gt;"ht"&lt;/span&gt;))&lt;br /&gt;        {&lt;br /&gt;            openWith.Add(&lt;span class="str"&gt;"ht"&lt;/span&gt;, &lt;span class="str"&gt;"hypertrm.exe"&lt;/span&gt;);&lt;br /&gt;            Console.WriteLine(&lt;span class="str"&gt;"Value added for key = \"ht\": {0}"&lt;/span&gt;, &lt;br /&gt;                openWith[&lt;span class="str"&gt;"ht"&lt;/span&gt;]);&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span class="rem"&gt;// When you use foreach to enumerate dictionary elements,&lt;/span&gt;&lt;br /&gt;        &lt;span class="rem"&gt;// the elements are retrieved as KeyValuePair objects.&lt;/span&gt;&lt;br /&gt;        Console.WriteLine();&lt;br /&gt;        &lt;span class="kwrd"&gt;foreach&lt;/span&gt;( KeyValuePair&amp;lt;&lt;span class="kwrd"&gt;string&lt;/span&gt;, &lt;span class="kwrd"&gt;string&lt;/span&gt;&amp;gt; kvp &lt;span class="kwrd"&gt;in&lt;/span&gt; openWith )&lt;br /&gt;        {&lt;br /&gt;            Console.WriteLine(&lt;span class="str"&gt;"Key = {0}, Value = {1}"&lt;/span&gt;, &lt;br /&gt;                kvp.Key, kvp.Value);&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span class="rem"&gt;// To get the values alone, use the Values property.&lt;/span&gt;&lt;br /&gt;        Dictionary&amp;lt;&lt;span class="kwrd"&gt;string&lt;/span&gt;, &lt;span class="kwrd"&gt;string&lt;/span&gt;&amp;gt;.ValueCollection valueColl =&lt;br /&gt;            openWith.Values;&lt;br /&gt;&lt;br /&gt;        &lt;span class="rem"&gt;// The elements of the ValueCollection are strongly typed&lt;/span&gt;&lt;br /&gt;        &lt;span class="rem"&gt;// with the type that was specified for dictionary values.&lt;/span&gt;&lt;br /&gt;        Console.WriteLine();&lt;br /&gt;        &lt;span class="kwrd"&gt;foreach&lt;/span&gt;( &lt;span class="kwrd"&gt;string&lt;/span&gt; s &lt;span class="kwrd"&gt;in&lt;/span&gt; valueColl )&lt;br /&gt;        {&lt;br /&gt;            Console.WriteLine(&lt;span class="str"&gt;"Value = {0}"&lt;/span&gt;, s);&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span class="rem"&gt;// To get the keys alone, use the Keys property.&lt;/span&gt;&lt;br /&gt;        Dictionary&amp;lt;&lt;span class="kwrd"&gt;string&lt;/span&gt;, &lt;span class="kwrd"&gt;string&lt;/span&gt;&amp;gt;.KeyCollection keyColl =&lt;br /&gt;            openWith.Keys;&lt;br /&gt;&lt;br /&gt;        &lt;span class="rem"&gt;// The elements of the KeyCollection are strongly typed&lt;/span&gt;&lt;br /&gt;        &lt;span class="rem"&gt;// with the type that was specified for dictionary keys.&lt;/span&gt;&lt;br /&gt;        Console.WriteLine();&lt;br /&gt;        &lt;span class="kwrd"&gt;foreach&lt;/span&gt;( &lt;span class="kwrd"&gt;string&lt;/span&gt; s &lt;span class="kwrd"&gt;in&lt;/span&gt; keyColl )&lt;br /&gt;        {&lt;br /&gt;            Console.WriteLine(&lt;span class="str"&gt;"Key = {0}"&lt;/span&gt;, s);&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span class="rem"&gt;// Use the Remove method to remove a key/value pair.&lt;/span&gt;&lt;br /&gt;        Console.WriteLine(&lt;span class="str"&gt;"\nRemove(\"doc\")"&lt;/span&gt;);&lt;br /&gt;        openWith.Remove(&lt;span class="str"&gt;"doc"&lt;/span&gt;);&lt;br /&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;if&lt;/span&gt; (!openWith.ContainsKey(&lt;span class="str"&gt;"doc"&lt;/span&gt;))&lt;br /&gt;        {&lt;br /&gt;            Console.WriteLine(&lt;span class="str"&gt;"Key \"doc\" is not found."&lt;/span&gt;);&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span class="rem"&gt;/* This code example produces the following output:&lt;/span&gt;&lt;br /&gt;&lt;span class="rem"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="rem"&gt;An element with Key = "txt" already exists.&lt;/span&gt;&lt;br /&gt;&lt;span class="rem"&gt;For key = "rtf", value = wordpad.exe.&lt;/span&gt;&lt;br /&gt;&lt;span class="rem"&gt;For key = "rtf", value = winword.exe.&lt;/span&gt;&lt;br /&gt;&lt;span class="rem"&gt;Key = "tif" is not found.&lt;/span&gt;&lt;br /&gt;&lt;span class="rem"&gt;Key = "tif" is not found.&lt;/span&gt;&lt;br /&gt;&lt;span class="rem"&gt;Value added for key = "ht": hypertrm.exe&lt;/span&gt;&lt;br /&gt;&lt;span class="rem"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="rem"&gt;Key = txt, Value = notepad.exe&lt;/span&gt;&lt;br /&gt;&lt;span class="rem"&gt;Key = bmp, Value = paint.exe&lt;/span&gt;&lt;br /&gt;&lt;span class="rem"&gt;Key = dib, Value = paint.exe&lt;/span&gt;&lt;br /&gt;&lt;span class="rem"&gt;Key = rtf, Value = winword.exe&lt;/span&gt;&lt;br /&gt;&lt;span class="rem"&gt;Key = doc, Value = winword.exe&lt;/span&gt;&lt;br /&gt;&lt;span class="rem"&gt;Key = ht, Value = hypertrm.exe&lt;/span&gt;&lt;br /&gt;&lt;span class="rem"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="rem"&gt;Value = notepad.exe&lt;/span&gt;&lt;br /&gt;&lt;span class="rem"&gt;Value = paint.exe&lt;/span&gt;&lt;br /&gt;&lt;span class="rem"&gt;Value = paint.exe&lt;/span&gt;&lt;br /&gt;&lt;span class="rem"&gt;Value = winword.exe&lt;/span&gt;&lt;br /&gt;&lt;span class="rem"&gt;Value = winword.exe&lt;/span&gt;&lt;br /&gt;&lt;span class="rem"&gt;Value = hypertrm.exe&lt;/span&gt;&lt;br /&gt;&lt;span class="rem"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="rem"&gt;Key = txt&lt;/span&gt;&lt;br /&gt;&lt;span class="rem"&gt;Key = bmp&lt;/span&gt;&lt;br /&gt;&lt;span class="rem"&gt;Key = dib&lt;/span&gt;&lt;br /&gt;&lt;span class="rem"&gt;Key = rtf&lt;/span&gt;&lt;br /&gt;&lt;span class="rem"&gt;Key = doc&lt;/span&gt;&lt;br /&gt;&lt;span class="rem"&gt;Key = ht&lt;/span&gt;&lt;br /&gt;&lt;span class="rem"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="rem"&gt;Remove("doc")&lt;/span&gt;&lt;br /&gt;&lt;span class="rem"&gt;Key "doc" is not found.&lt;/span&gt;&lt;br /&gt;&lt;span class="rem"&gt; */&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;hr&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8777320242835817445-6019403866269441266?l=jefferychinet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jefferychinet.blogspot.com/feeds/6019403866269441266/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jefferychinet.blogspot.com/2010/03/cff-projects.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/6019403866269441266'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/6019403866269441266'/><link rel='alternate' type='text/html' href='http://jefferychinet.blogspot.com/2010/03/cff-projects.html' title='CFF Projects'/><author><name>Jeffery Chi</name><uri>http://www.blogger.com/profile/01777274222273910460</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_0awGwIWdbAQ/SrWo52s_aPI/AAAAAAAAAe0/sz5rSKavJMs/S220/airforcewing.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8777320242835817445.post-572659315575774403</id><published>2010-03-13T00:13:00.001-08:00</published><updated>2010-03-13T01:15:11.420-08:00</updated><title type='text'>SharePoint Development 13.03.2007</title><content type='html'>http://msdn.microsoft.com/en-us/library/e59b22c5(VS.80).aspx&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The extern modifier is used to declare a method that is implemented externally. A common use of the extern modifier is with the DllImport attribute when using Interop services to call into unmanaged code; in this case, the method must also be declared as static, as shown in the following example:&lt;br /&gt;&lt;br /&gt;[DllImport("advapi32.dll", CharSet = CharSet.Unicode)]&lt;br /&gt;internal static extern ulong GetTraceLoggerHandle([In] IntPtr Buffer);&lt;br /&gt;&lt;br /&gt;unsafe&lt;br /&gt;The unsafe keyword denotes an unsafe context, which is required for any operation involving pointers.&lt;br /&gt;&lt;br /&gt;You can use the unsafe modifier in the declaration of a type or a member. The entire textual extent of the type or member is therefore considered an unsafe context. For example, the following is a method declared with the unsafe modifier:&lt;br /&gt;&lt;br /&gt;internal unsafe delegate uint EtwProc(WMIDPREQUESTCODE requestCode, IntPtr requestContext, uint* bufferSize, IntPtr buffer);&lt;br /&gt;&lt;br /&gt;[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 0x20)]&lt;br /&gt;internal string wzExeName;&lt;br /&gt;&lt;br /&gt;Platform Invoke Tutorial&lt;br /&gt;Platform Invocation Services (PInvoke) allows managed code to call unmanaged functions that are implemented in a DLL.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;hr/&gt;&lt;br /&gt;base &lt;br /&gt;&lt;hr/&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The base keyword is used to access members of the base class from within a derived class: &lt;br /&gt;&lt;br /&gt;Call a method on the base class that has been overridden by another method. &lt;br /&gt;Specify which base-class constructor should be called when creating instances of the derived class. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;&lt;br /&gt;&lt;pre class="csharpcode"&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System;&lt;br /&gt;   &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;class&lt;/span&gt; Person &lt;br /&gt;   {&lt;br /&gt;      &lt;span class="kwrd"&gt;protected&lt;/span&gt; &lt;span class="kwrd"&gt;string&lt;/span&gt; ssn = &lt;span class="str"&gt;"444-55-6666"&lt;/span&gt;;&lt;br /&gt;      &lt;span class="kwrd"&gt;protected&lt;/span&gt; &lt;span class="kwrd"&gt;string&lt;/span&gt; name = &lt;span class="str"&gt;"John L. Malgraine"&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;      &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;virtual&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; GetInfo() &lt;br /&gt;      {&lt;br /&gt;         Console.WriteLine(&lt;span class="str"&gt;"Name: {0}"&lt;/span&gt;, name);&lt;br /&gt;         Console.WriteLine(&lt;span class="str"&gt;"SSN: {0}"&lt;/span&gt;, ssn);&lt;br /&gt;      }&lt;br /&gt;   }&lt;br /&gt;   &lt;span class="kwrd"&gt;class&lt;/span&gt; Employee: Person &lt;br /&gt;   {&lt;br /&gt;      &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;string&lt;/span&gt; id = &lt;span class="str"&gt;"ABC567EFG"&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;      &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;override&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; GetInfo() &lt;br /&gt;      {&lt;br /&gt;         &lt;span class="rem"&gt;// Calling the base class GetInfo method:&lt;/span&gt;&lt;br /&gt;         &lt;span class="kwrd"&gt;base&lt;/span&gt;.GetInfo();&lt;br /&gt;         Console.WriteLine(&lt;span class="str"&gt;"Employee ID: {0}"&lt;/span&gt;, id);&lt;br /&gt;      }&lt;br /&gt;   }&lt;br /&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;class&lt;/span&gt; TestClass {&lt;br /&gt;   &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; Main() &lt;br /&gt;   {&lt;br /&gt;      Employee E = &lt;span class="kwrd"&gt;new&lt;/span&gt; Employee();&lt;br /&gt;      E.GetInfo();&lt;br /&gt;   }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="rem"&gt;// keywords_base2.cs&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System;&lt;br /&gt;&lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;class&lt;/span&gt; MyBase&lt;br /&gt;{&lt;br /&gt;   &lt;span class="kwrd"&gt;int&lt;/span&gt; num;&lt;br /&gt;&lt;br /&gt;   &lt;span class="kwrd"&gt;public&lt;/span&gt; MyBase() &lt;br /&gt;   {&lt;br /&gt;      Console.WriteLine(&lt;span class="str"&gt;"in MyBase()"&lt;/span&gt;);&lt;br /&gt;   }&lt;br /&gt;&lt;br /&gt;   &lt;span class="kwrd"&gt;public&lt;/span&gt; MyBase(&lt;span class="kwrd"&gt;int&lt;/span&gt; i )&lt;br /&gt;   {&lt;br /&gt;      num = i;&lt;br /&gt;      Console.WriteLine(&lt;span class="str"&gt;"in MyBase(int i)"&lt;/span&gt;);&lt;br /&gt;   }&lt;br /&gt;&lt;br /&gt;   &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;int&lt;/span&gt; GetNum()&lt;br /&gt;   {&lt;br /&gt;      &lt;span class="kwrd"&gt;return&lt;/span&gt; num;&lt;br /&gt;   }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;class&lt;/span&gt; MyDerived: MyBase&lt;br /&gt;{&lt;br /&gt;   &lt;span class="rem"&gt;// This constructor will call MyBase.MyBase()&lt;/span&gt;&lt;br /&gt;   &lt;span class="kwrd"&gt;public&lt;/span&gt; MyDerived() : &lt;span class="kwrd"&gt;base&lt;/span&gt;()&lt;br /&gt;   {&lt;br /&gt;   }&lt;br /&gt;&lt;br /&gt;    &lt;span class="rem"&gt;// This constructor will call MyBase.MyBase(int i)&lt;/span&gt;&lt;br /&gt;   &lt;span class="kwrd"&gt;public&lt;/span&gt; MyDerived(&lt;span class="kwrd"&gt;int&lt;/span&gt; i) : &lt;span class="kwrd"&gt;base&lt;/span&gt;(i)&lt;br /&gt;   {&lt;br /&gt;   }&lt;br /&gt;&lt;br /&gt;   &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; Main() &lt;br /&gt;   {&lt;br /&gt;      MyDerived md = &lt;span class="kwrd"&gt;new&lt;/span&gt; MyDerived();&lt;br /&gt;      MyDerived md1 = &lt;span class="kwrd"&gt;new&lt;/span&gt; MyDerived(1);&lt;br /&gt;   }&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;hr/&gt;&lt;br /&gt;SharePoint - SharePoinPermission attributes&lt;br /&gt;&lt;br /&gt;&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;&lt;br /&gt;&lt;pre class="csharpcode"&gt;&lt;br /&gt; &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;override&lt;/span&gt; BaseFieldControl FieldRenderingControl&lt;br /&gt;        {&lt;br /&gt;            [SharePointPermission(SecurityAction.LinkDemand, ObjectModel = &lt;span class="kwrd"&gt;true&lt;/span&gt;)]&lt;br /&gt;            get&lt;br /&gt;            {&lt;br /&gt;                BaseFieldControl fieldControl = Activator.CreateInstance(&lt;span class="kwrd"&gt;typeof&lt;/span&gt;(BaseControl&amp;lt;T&amp;gt;)) &lt;span class="kwrd"&gt;as&lt;/span&gt; BaseControl&amp;lt;T&amp;gt;;&lt;br /&gt;&lt;br /&gt;                &lt;span class="kwrd"&gt;if&lt;/span&gt; (fieldControl != &lt;span class="kwrd"&gt;null&lt;/span&gt;)&lt;br /&gt;                {&lt;br /&gt;                    fieldControl.TemplateName = InternalName;&lt;br /&gt;&lt;br /&gt;                    &lt;span class="kwrd"&gt;return&lt;/span&gt; fieldControl;&lt;br /&gt;                }&lt;br /&gt;&lt;br /&gt;                &lt;span class="kwrd"&gt;return&lt;/span&gt; &lt;span class="kwrd"&gt;null&lt;/span&gt;;&lt;br /&gt;            }&lt;br /&gt;        }&lt;/pre&gt;&lt;br /&gt;&lt;hr/&gt;&lt;br /&gt;&lt;br /&gt;The override modifier is required to extend or modify the abstract or virtual implementation of an inherited method, property, indexer, or event.&lt;br /&gt;&lt;br /&gt;The virtual keyword is used to modify a method, property, indexer or event declaration, and allow it to be overridden in a derived class. For example, this method can be overridden by any class that inherits it:&lt;br /&gt;&lt;hr&gt;&lt;br /&gt;&lt;br /&gt;readonly&lt;br /&gt;&lt;br /&gt;&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;&lt;br /&gt;&lt;pre class="csharpcode"&gt;&lt;br /&gt;&lt;span class="rem"&gt;// cs_readonly_keyword.cs&lt;/span&gt;&lt;br /&gt;&lt;span class="rem"&gt;// Readonly fields&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System;&lt;br /&gt;&lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;class&lt;/span&gt; ReadOnlyTest &lt;br /&gt;{&lt;br /&gt;   &lt;span class="kwrd"&gt;class&lt;/span&gt; MyClass &lt;br /&gt;   {&lt;br /&gt;      &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;int&lt;/span&gt; x;&lt;br /&gt;      &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;readonly&lt;/span&gt; &lt;span class="kwrd"&gt;int&lt;/span&gt; y = 25; &lt;span class="rem"&gt;// Initialize a readonly field&lt;/span&gt;&lt;br /&gt;      &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;readonly&lt;/span&gt; &lt;span class="kwrd"&gt;int&lt;/span&gt; z;&lt;br /&gt;&lt;br /&gt;      &lt;span class="kwrd"&gt;public&lt;/span&gt; MyClass() &lt;br /&gt;      {&lt;br /&gt;         z = 24;   &lt;span class="rem"&gt;// Initialize a readonly instance field&lt;/span&gt;&lt;br /&gt;      }&lt;br /&gt;&lt;br /&gt;      &lt;span class="kwrd"&gt;public&lt;/span&gt; MyClass(&lt;span class="kwrd"&gt;int&lt;/span&gt; p1, &lt;span class="kwrd"&gt;int&lt;/span&gt; p2, &lt;span class="kwrd"&gt;int&lt;/span&gt; p3) &lt;br /&gt;      {&lt;br /&gt;         x = p1; &lt;br /&gt;         y = p2; &lt;br /&gt;         z = p3;&lt;br /&gt;      }&lt;br /&gt;   }&lt;br /&gt;&lt;br /&gt;   &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; Main() &lt;br /&gt;   {&lt;br /&gt;      MyClass p1= &lt;span class="kwrd"&gt;new&lt;/span&gt; MyClass(11, 21, 32);   &lt;span class="rem"&gt;// OK&lt;/span&gt;&lt;br /&gt;      Console.WriteLine(&lt;span class="str"&gt;"p1: x={0}, y={1}, z={2}"&lt;/span&gt; , p1.x, p1.y, p1.z);   &lt;br /&gt;      MyClass p2 = &lt;span class="kwrd"&gt;new&lt;/span&gt; MyClass();&lt;br /&gt;      p2.x = 55;   &lt;span class="rem"&gt;// OK&lt;/span&gt;&lt;br /&gt;      Console.WriteLine(&lt;span class="str"&gt;"p2: x={0}, y={1}, z={2}"&lt;/span&gt; , p2.x, p2.y, p2.z);&lt;br /&gt;   }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;p1: x=11, y=21, z=32&lt;br /&gt;p2: x=55, y=25, z=24&lt;br /&gt;p2.y = 66;        // Error&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8777320242835817445-572659315575774403?l=jefferychinet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jefferychinet.blogspot.com/feeds/572659315575774403/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jefferychinet.blogspot.com/2010/03/sharepoint-development-13032007.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/572659315575774403'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/572659315575774403'/><link rel='alternate' type='text/html' href='http://jefferychinet.blogspot.com/2010/03/sharepoint-development-13032007.html' title='SharePoint Development 13.03.2007'/><author><name>Jeffery Chi</name><uri>http://www.blogger.com/profile/01777274222273910460</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_0awGwIWdbAQ/SrWo52s_aPI/AAAAAAAAAe0/sz5rSKavJMs/S220/airforcewing.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8777320242835817445.post-4769557679728905172</id><published>2010-03-10T13:03:00.000-08:00</published><updated>2010-03-10T13:04:34.322-08:00</updated><title type='text'>ASP.NET Detect Which Control Caused PostBack</title><content type='html'>&lt;pre class="csharpcode"&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System;&lt;br /&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Collections.Generic;&lt;br /&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Linq;&lt;br /&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Web;&lt;br /&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Web.Security;&lt;br /&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Web.SessionState;&lt;br /&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Web.SessionState;&lt;br /&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Web.UI;&lt;br /&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;namespace&lt;/span&gt; webappServerControls&lt;br /&gt;{&lt;br /&gt;    &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;class&lt;/span&gt; Global : HttpApplication&lt;br /&gt;    {&lt;br /&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; System.Web.UI.Control GetPostBackControl(System.Web.UI.Page page)&lt;br /&gt;        {&lt;br /&gt;            Control control = &lt;span class="kwrd"&gt;null&lt;/span&gt;;&lt;br /&gt;            &lt;span class="kwrd"&gt;string&lt;/span&gt; ctrlname = page.Request.Params[&lt;span class="str"&gt;"__EVENTTARGET"&lt;/span&gt;];&lt;br /&gt;            &lt;span class="kwrd"&gt;if&lt;/span&gt; (ctrlname != &lt;span class="kwrd"&gt;null&lt;/span&gt; &amp;amp;&amp;amp; ctrlname != String.Empty)&lt;br /&gt;            {&lt;br /&gt;                control = page.FindControl(ctrlname);&lt;br /&gt;            }&lt;br /&gt;            &lt;span class="rem"&gt;// if __EVENTTARGET is null, the control is a button type and we need to  &lt;/span&gt;&lt;br /&gt;            &lt;span class="rem"&gt;// iterate over the form collection to find it &lt;/span&gt;&lt;br /&gt;            &lt;span class="kwrd"&gt;else&lt;/span&gt;&lt;br /&gt;            {&lt;br /&gt;                &lt;span class="kwrd"&gt;string&lt;/span&gt; ctrlStr = String.Empty;&lt;br /&gt;                Control c = &lt;span class="kwrd"&gt;null&lt;/span&gt;;&lt;br /&gt;                &lt;span class="kwrd"&gt;foreach&lt;/span&gt; (&lt;span class="kwrd"&gt;string&lt;/span&gt; ctl &lt;span class="kwrd"&gt;in&lt;/span&gt; page.Request.Form)&lt;br /&gt;                { &lt;span class="rem"&gt;// handle ImageButton controls ... &lt;/span&gt;&lt;br /&gt;                    &lt;span class="kwrd"&gt;if&lt;/span&gt; (ctl.EndsWith(&lt;span class="str"&gt;".x"&lt;/span&gt;)  ctl.EndsWith(&lt;span class="str"&gt;".y"&lt;/span&gt;))&lt;br /&gt;                    {&lt;br /&gt;                        ctrlStr = ctl.Substring(0, ctl.Length - 2); c = page.FindControl(ctrlStr);&lt;br /&gt;                    }&lt;br /&gt;                    &lt;span class="kwrd"&gt;else&lt;/span&gt;&lt;br /&gt;                    {&lt;br /&gt;                        c = page.FindControl(ctl);&lt;br /&gt;                    }&lt;br /&gt;                    &lt;span class="kwrd"&gt;if&lt;/span&gt; (c &lt;span class="kwrd"&gt;is&lt;/span&gt; System.Web.UI.WebControls.Button  c &lt;span class="kwrd"&gt;is&lt;/span&gt; System.Web.UI.WebControls.ImageButton)&lt;br /&gt;                    {&lt;br /&gt;                        control = c; &lt;span class="kwrd"&gt;break&lt;/span&gt;;&lt;br /&gt;                    }&lt;br /&gt;                }&lt;br /&gt;            }&lt;br /&gt;            &lt;span class="kwrd"&gt;return&lt;/span&gt; control;&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;protected&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; Application_Start(&lt;span class="kwrd"&gt;object&lt;/span&gt; sender, EventArgs e)&lt;br /&gt;        {&lt;br /&gt;&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;protected&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; Session_Start(&lt;span class="kwrd"&gt;object&lt;/span&gt; sender, EventArgs e)&lt;br /&gt;        {&lt;br /&gt;&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;protected&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; Application_BeginRequest(&lt;span class="kwrd"&gt;object&lt;/span&gt; sender, EventArgs e)&lt;br /&gt;        {&lt;br /&gt;&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;protected&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; Application_AuthenticateRequest(&lt;span class="kwrd"&gt;object&lt;/span&gt; sender, EventArgs e)&lt;br /&gt;        {&lt;br /&gt;&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;protected&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; Application_Error(&lt;span class="kwrd"&gt;object&lt;/span&gt; sender, EventArgs e)&lt;br /&gt;        {&lt;br /&gt;&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;protected&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; Session_End(&lt;span class="kwrd"&gt;object&lt;/span&gt; sender, EventArgs e)&lt;br /&gt;        {&lt;br /&gt;&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;protected&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; Application_End(&lt;span class="kwrd"&gt;object&lt;/span&gt; sender, EventArgs e)&lt;br /&gt;        {&lt;br /&gt;&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;&lt;br /&gt;&lt;pre class="csharpcode"&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System;&lt;br /&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Collections.Generic;&lt;br /&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Linq;&lt;br /&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Web;&lt;br /&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Web.UI;&lt;br /&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Web.UI.WebControls;&lt;br /&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;namespace&lt;/span&gt; webappServerControls&lt;br /&gt;{&lt;br /&gt;    &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;partial&lt;/span&gt; &lt;span class="kwrd"&gt;class&lt;/span&gt; Default : System.Web.UI.Page&lt;br /&gt;    {&lt;br /&gt;        &lt;span class="kwrd"&gt;protected&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; Page_Load(&lt;span class="kwrd"&gt;object&lt;/span&gt; sender, EventArgs e)&lt;br /&gt;        {&lt;br /&gt;&lt;br /&gt;            &lt;span class="kwrd"&gt;if&lt;/span&gt;(IsPostBack)&lt;br /&gt;            {&lt;br /&gt;                Label1.Text=Global.GetPostBackControl(&lt;span class="kwrd"&gt;this&lt;/span&gt;).ID.ToString();&lt;br /&gt;            }&lt;br /&gt;&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;protected&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; Button2_Click(&lt;span class="kwrd"&gt;object&lt;/span&gt; sender, EventArgs e)&lt;br /&gt;        {&lt;br /&gt;            Response.Write(&lt;span class="str"&gt;"Content Page Response"&lt;/span&gt;);&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8777320242835817445-4769557679728905172?l=jefferychinet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jefferychinet.blogspot.com/feeds/4769557679728905172/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jefferychinet.blogspot.com/2010/03/aspnet-detect-which-control-caused.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/4769557679728905172'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/4769557679728905172'/><link rel='alternate' type='text/html' href='http://jefferychinet.blogspot.com/2010/03/aspnet-detect-which-control-caused.html' title='ASP.NET Detect Which Control Caused PostBack'/><author><name>Jeffery Chi</name><uri>http://www.blogger.com/profile/01777274222273910460</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_0awGwIWdbAQ/SrWo52s_aPI/AAAAAAAAAe0/sz5rSKavJMs/S220/airforcewing.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8777320242835817445.post-5625166237350629763</id><published>2010-03-09T21:19:00.000-08:00</published><updated>2010-11-11T20:06:34.374-08:00</updated><title type='text'>http://www.factor.co.nz/ Debtor Management</title><content type='html'>&lt;a href="http://www.factor.co.nz/"&gt;http://www.factor.co.nz/&lt;/a&gt; Debtor Management&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.factor.co.nz/index.asp?s1=DEBTOR%20MANAGEMENT"&gt;http://www.factor.co.nz/index.asp?s1=DEBTOR%20MANAGEMENT&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;CruiseControl.NET&lt;/b&gt; for Automated Continuous Integration server&lt;br /&gt;(&lt;a href="http://confluence.public.thoughtworks.org/display/CCNET/Welcome+to+CruiseControl.NET"&gt;cruiseControl.net&lt;/a&gt;)&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;SVN &lt;/span&gt;for Source Control&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Telerik&lt;/span&gt; datagrid&lt;br /&gt;(&lt;a href="http://www.telerik.com/"&gt;telerik&lt;/a&gt;)&lt;br /&gt;ASP.NET 3.5 MVP Application&lt;br /&gt;With MS Ajax, JQuery, Json&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8777320242835817445-5625166237350629763?l=jefferychinet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jefferychinet.blogspot.com/feeds/5625166237350629763/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jefferychinet.blogspot.com/2010/03/httpwwwfactorconz-debtor-management.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/5625166237350629763'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/5625166237350629763'/><link rel='alternate' type='text/html' href='http://jefferychinet.blogspot.com/2010/03/httpwwwfactorconz-debtor-management.html' title='http://www.factor.co.nz/ Debtor Management'/><author><name>Jeffery Chi</name><uri>http://www.blogger.com/profile/01777274222273910460</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_0awGwIWdbAQ/SrWo52s_aPI/AAAAAAAAAe0/sz5rSKavJMs/S220/airforcewing.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8777320242835817445.post-7812563412003913803</id><published>2010-03-08T12:04:00.000-08:00</published><updated>2010-03-08T12:05:04.566-08:00</updated><title type='text'>SharePoint SDK</title><content type='html'>http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spfile.aspx&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8777320242835817445-7812563412003913803?l=jefferychinet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jefferychinet.blogspot.com/feeds/7812563412003913803/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jefferychinet.blogspot.com/2010/03/sharepoint-sdk.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/7812563412003913803'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/7812563412003913803'/><link rel='alternate' type='text/html' href='http://jefferychinet.blogspot.com/2010/03/sharepoint-sdk.html' title='SharePoint SDK'/><author><name>Jeffery Chi</name><uri>http://www.blogger.com/profile/01777274222273910460</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_0awGwIWdbAQ/SrWo52s_aPI/AAAAAAAAAe0/sz5rSKavJMs/S220/airforcewing.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8777320242835817445.post-7830357130137053653</id><published>2010-03-07T11:57:00.000-08:00</published><updated>2010-03-07T12:00:28.061-08:00</updated><title type='text'>Recursive Program Folder Structure</title><content type='html'>Recursive Code Output TreeView.Node object for file structure :&lt;br/&gt;&lt;br /&gt;&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;&lt;br /&gt;&lt;pre class="csharpcode"&gt;&lt;br /&gt; &lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; PopulateTree()&lt;br /&gt;        {&lt;br /&gt;            DirectoryInfo rootFolder = &lt;span class="kwrd"&gt;new&lt;/span&gt; DirectoryInfo(Server.MapPath(VirtualImageRoot));&lt;br /&gt;&lt;br /&gt;            TreeNode root = AddNodeAndDescendents(rootFolder, &lt;span class="kwrd"&gt;null&lt;/span&gt;);&lt;br /&gt;            TreeView1.Nodes.Add(root);&lt;br /&gt;        }&lt;/pre&gt;&lt;br /&gt;&lt;pre class="csharpcode"&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;private&lt;/span&gt; TreeNode AddNodeAndDescendents(DirectoryInfo folder, TreeNode parentNode)&lt;br /&gt;        {&lt;br /&gt;            &lt;span class="kwrd"&gt;string&lt;/span&gt; virtualFolderPath = &lt;span class="kwrd"&gt;null&lt;/span&gt;;&lt;br /&gt;            &lt;span class="kwrd"&gt;if&lt;/span&gt; (parentNode == &lt;span class="kwrd"&gt;null&lt;/span&gt;)&lt;br /&gt;            {&lt;br /&gt;                virtualFolderPath = VirtualImageRoot;&lt;br /&gt;            }&lt;br /&gt;            &lt;span class="kwrd"&gt;else&lt;/span&gt;&lt;br /&gt;            {&lt;br /&gt;                virtualFolderPath = parentNode.Value + &lt;span class="str"&gt;"/"&lt;/span&gt; + folder.Name + &lt;span class="str"&gt;"/"&lt;/span&gt;;&lt;br /&gt;            }&lt;br /&gt;            TreeNode node = &lt;span class="kwrd"&gt;new&lt;/span&gt; TreeNode(folder.Name, virtualFolderPath);&lt;br /&gt;            DirectoryInfo[] subFolders = folder.GetDirectories();&lt;br /&gt;            &lt;span class="kwrd"&gt;foreach&lt;/span&gt; (DirectoryInfo subFolder &lt;span class="kwrd"&gt;in&lt;/span&gt; subFolders)&lt;br /&gt;            {&lt;br /&gt;                TreeNode child = AddNodeAndDescendents(subFolder, node);&lt;br /&gt;                node.ChildNodes.Add(child);&lt;br /&gt;            }&lt;br /&gt;            &lt;span class="kwrd"&gt;return&lt;/span&gt; node;&lt;br /&gt;        }&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8777320242835817445-7830357130137053653?l=jefferychinet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jefferychinet.blogspot.com/feeds/7830357130137053653/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jefferychinet.blogspot.com/2010/03/recursive-program-folder-structure.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/7830357130137053653'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/7830357130137053653'/><link rel='alternate' type='text/html' href='http://jefferychinet.blogspot.com/2010/03/recursive-program-folder-structure.html' title='Recursive Program Folder Structure'/><author><name>Jeffery Chi</name><uri>http://www.blogger.com/profile/01777274222273910460</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_0awGwIWdbAQ/SrWo52s_aPI/AAAAAAAAAe0/sz5rSKavJMs/S220/airforcewing.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8777320242835817445.post-3536830827565980264</id><published>2010-03-05T19:38:00.000-08:00</published><updated>2010-03-05T19:44:47.107-08:00</updated><title type='text'>EPI 5 Tips</title><content type='html'>I want to create an item in my navigation that points to the home page, but I do not want to modify my navigation menu code, which generates items below the selected home page node.&lt;br /&gt;&lt;br /&gt;The tip is :&lt;br /&gt;&lt;br /&gt;1. Create a page in CMS use the 'start page template'&lt;br /&gt;2. Go to tab 'Shortcut/External link' and choose 'Link type' to 'Shortcut to page in EPiServer CMS'.&lt;br /&gt;3. Choose 'home page' in 'Internal shortcut/Fetch data from'&lt;br /&gt;&lt;br /&gt;Then you will get a page that looks exactly like the home page with different title.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8777320242835817445-3536830827565980264?l=jefferychinet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jefferychinet.blogspot.com/feeds/3536830827565980264/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jefferychinet.blogspot.com/2010/03/epi-5-tips.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/3536830827565980264'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8777320242835817445/posts/default/3536830827565980264'/><link rel='alternate' type='text/html' href='http://jefferychinet.blogspot.com/2010/03/epi-5-tips.html' title='EPI 5 Tips'/><author><name>Jeffery Chi</name><uri>http://www.blogger.com/profile/01777274222273910460</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_0awGwIWdbAQ/SrWo52s_aPI/AAAAAAAAAe0/sz5rSKavJMs/S220/airforcewing.gif'/></author><thr:total>0</thr:total></entry></feed>
