<?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-2385961957160321240</id><updated>2012-01-04T07:22:08.550-08:00</updated><category term='SharePoint Outlook Connector'/><category term='SharePoint'/><category term='Normalization'/><category term='Virtulization Tips'/><category term='OOP Tips'/><category term='SPDataSource'/><category term='Cache Service on .Net'/><category term='DataFormWebPart'/><category term='ADO.Net'/><category term='SQL Server Performance Tricks'/><title type='text'>Serkant Samurkas</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://serkantsamurkas.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2385961957160321240/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://serkantsamurkas.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Serkant Samurkas</name><uri>http://www.blogger.com/profile/06631003389148279210</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_mLdFslV5DLc/SkKF_rkNlyI/AAAAAAAAAAM/jEbTIs7-lZA/S220/Serkant.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>39</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-2385961957160321240.post-2276248755865676653</id><published>2011-05-05T02:19:00.001-07:00</published><updated>2011-05-05T02:19:39.144-07:00</updated><title type='text'>SharePoint Conditional Field V1.1.4.3</title><content type='html'>SharePoint Conditional Field V1.1.4.3 beta version has been released http://spconditionalfield.codeplex.com/&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2385961957160321240-2276248755865676653?l=serkantsamurkas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://serkantsamurkas.blogspot.com/feeds/2276248755865676653/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://serkantsamurkas.blogspot.com/2011/05/sharepoint-conditional-field-v1143.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2385961957160321240/posts/default/2276248755865676653'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2385961957160321240/posts/default/2276248755865676653'/><link rel='alternate' type='text/html' href='http://serkantsamurkas.blogspot.com/2011/05/sharepoint-conditional-field-v1143.html' title='SharePoint Conditional Field V1.1.4.3'/><author><name>Serkant Samurkas</name><uri>http://www.blogger.com/profile/06631003389148279210</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_mLdFslV5DLc/SkKF_rkNlyI/AAAAAAAAAAM/jEbTIs7-lZA/S220/Serkant.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2385961957160321240.post-3958583155495812351</id><published>2010-12-14T01:59:00.000-08:00</published><updated>2010-12-14T02:00:25.701-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><title type='text'>How To: Customizing alert emails using IAlertNotifyHandler</title><content type='html'>Nice post about How To: Customizing alert emails using IAlertNotifyHandler.&lt;br /&gt;http://blogs.msdn.com/b/sharepointdeveloperdocs/archive/2007/12/14/how-to-customizing-alert-emails-using-ialertnotificationhandler.aspx&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2385961957160321240-3958583155495812351?l=serkantsamurkas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://serkantsamurkas.blogspot.com/feeds/3958583155495812351/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://serkantsamurkas.blogspot.com/2010/12/how-to-customizing-alert-emails-using.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2385961957160321240/posts/default/3958583155495812351'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2385961957160321240/posts/default/3958583155495812351'/><link rel='alternate' type='text/html' href='http://serkantsamurkas.blogspot.com/2010/12/how-to-customizing-alert-emails-using.html' title='How To: Customizing alert emails using IAlertNotifyHandler'/><author><name>Serkant Samurkas</name><uri>http://www.blogger.com/profile/06631003389148279210</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_mLdFslV5DLc/SkKF_rkNlyI/AAAAAAAAAAM/jEbTIs7-lZA/S220/Serkant.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2385961957160321240.post-3437424161789089540</id><published>2010-12-14T01:55:00.000-08:00</published><updated>2010-12-14T01:56:59.758-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><title type='text'>Customizing Alert Notifications and Alert Templates in Windows SharePoint Services 3.0</title><content type='html'>Nice post about how to customize alert notifications and alert templates in Windows SharePoint Services 3.0.&lt;br /&gt;&lt;br /&gt;http://blogs.msdn.com/b/sharepointdeveloperdocs/archive/2007/12/07/customizing-alert-notifications-and-alert-templates-in-windows-sharepoint-services-3-0.aspx&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2385961957160321240-3437424161789089540?l=serkantsamurkas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://serkantsamurkas.blogspot.com/feeds/3437424161789089540/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://serkantsamurkas.blogspot.com/2010/12/customizing-alert-notifications-and.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2385961957160321240/posts/default/3437424161789089540'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2385961957160321240/posts/default/3437424161789089540'/><link rel='alternate' type='text/html' href='http://serkantsamurkas.blogspot.com/2010/12/customizing-alert-notifications-and.html' title='Customizing Alert Notifications and Alert Templates in Windows SharePoint Services 3.0'/><author><name>Serkant Samurkas</name><uri>http://www.blogger.com/profile/06631003389148279210</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_mLdFslV5DLc/SkKF_rkNlyI/AAAAAAAAAAM/jEbTIs7-lZA/S220/Serkant.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2385961957160321240.post-188026237675371950</id><published>2010-11-10T10:12:00.001-08:00</published><updated>2010-11-10T10:12:49.341-08:00</updated><title type='text'>SharePoint Outlook Connector Advanced Alert System Integration</title><content type='html'>SharePoint Outlook Connector Advanced Alert System Integration&lt;br /&gt;http://www.sobiens.com/default/sharepoint-advanced-alerts-spoc-demo.aspx&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2385961957160321240-188026237675371950?l=serkantsamurkas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://serkantsamurkas.blogspot.com/feeds/188026237675371950/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://serkantsamurkas.blogspot.com/2010/11/sharepoint-outlook-connector-advanced.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2385961957160321240/posts/default/188026237675371950'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2385961957160321240/posts/default/188026237675371950'/><link rel='alternate' type='text/html' href='http://serkantsamurkas.blogspot.com/2010/11/sharepoint-outlook-connector-advanced.html' title='SharePoint Outlook Connector Advanced Alert System Integration'/><author><name>Serkant Samurkas</name><uri>http://www.blogger.com/profile/06631003389148279210</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_mLdFslV5DLc/SkKF_rkNlyI/AAAAAAAAAAM/jEbTIs7-lZA/S220/Serkant.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2385961957160321240.post-113238844250438011</id><published>2010-03-16T04:57:00.000-07:00</published><updated>2010-03-16T04:58:30.555-07:00</updated><title type='text'>Digital Signature Support in InfoPath 2010</title><content type='html'>Here is the improvement in InfoPath on Digital Signature from Gergely Kota.&lt;br /&gt;&lt;br /&gt;http://blogs.msdn.com/infopath/archive/2010/02/18/digital-signature-support-in-infopath-2010.aspx&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2385961957160321240-113238844250438011?l=serkantsamurkas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://serkantsamurkas.blogspot.com/feeds/113238844250438011/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://serkantsamurkas.blogspot.com/2010/03/digital-signature-support-in-infopath.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2385961957160321240/posts/default/113238844250438011'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2385961957160321240/posts/default/113238844250438011'/><link rel='alternate' type='text/html' href='http://serkantsamurkas.blogspot.com/2010/03/digital-signature-support-in-infopath.html' title='Digital Signature Support in InfoPath 2010'/><author><name>Serkant Samurkas</name><uri>http://www.blogger.com/profile/06631003389148279210</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_mLdFslV5DLc/SkKF_rkNlyI/AAAAAAAAAAM/jEbTIs7-lZA/S220/Serkant.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2385961957160321240.post-2659230992132348893</id><published>2010-03-16T03:52:00.000-07:00</published><updated>2010-03-16T03:53:33.244-07:00</updated><title type='text'>Building a SharePoint 2010 tag cloud search refiner</title><content type='html'>Nice blog from El Otro&lt;br /&gt;&lt;br /&gt;http://httpcode.com/blogs/PermaLink,guid,8b267ee2-e214-4187-8e8d-e3c4f092fc66.aspx&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2385961957160321240-2659230992132348893?l=serkantsamurkas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://serkantsamurkas.blogspot.com/feeds/2659230992132348893/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://serkantsamurkas.blogspot.com/2010/03/building-sharepoint-2010-tag-cloud.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2385961957160321240/posts/default/2659230992132348893'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2385961957160321240/posts/default/2659230992132348893'/><link rel='alternate' type='text/html' href='http://serkantsamurkas.blogspot.com/2010/03/building-sharepoint-2010-tag-cloud.html' title='Building a SharePoint 2010 tag cloud search refiner'/><author><name>Serkant Samurkas</name><uri>http://www.blogger.com/profile/06631003389148279210</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_mLdFslV5DLc/SkKF_rkNlyI/AAAAAAAAAAM/jEbTIs7-lZA/S220/Serkant.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2385961957160321240.post-5074397580480513469</id><published>2010-03-16T03:50:00.001-07:00</published><updated>2010-03-16T03:50:42.893-07:00</updated><title type='text'>myspace for outlook</title><content type='html'>What is MySpace for Outlook?&lt;br /&gt;It's a newly available add-in that puts MySpace inside of Outlook:&lt;br /&gt;&lt;br /&gt;Uses Microsoft's Social Connector to add the "People Pane," which shows a profile picture and other MySpace info for each contact who's also a friend&lt;br /&gt;Creates a special MySpace Contact List&lt;br /&gt;Shows your friends' status updates and other Stream activities&lt;br /&gt;Provides one-click access to your friends' profiles&lt;br /&gt;Enables you to easily email your friends&lt;br /&gt;&lt;br /&gt;http://www.myspace.com/msoutlook&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2385961957160321240-5074397580480513469?l=serkantsamurkas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://serkantsamurkas.blogspot.com/feeds/5074397580480513469/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://serkantsamurkas.blogspot.com/2010/03/myspace-for-outlook.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2385961957160321240/posts/default/5074397580480513469'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2385961957160321240/posts/default/5074397580480513469'/><link rel='alternate' type='text/html' href='http://serkantsamurkas.blogspot.com/2010/03/myspace-for-outlook.html' title='myspace for outlook'/><author><name>Serkant Samurkas</name><uri>http://www.blogger.com/profile/06631003389148279210</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_mLdFslV5DLc/SkKF_rkNlyI/AAAAAAAAAAM/jEbTIs7-lZA/S220/Serkant.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2385961957160321240.post-1643187034062834981</id><published>2010-03-16T03:47:00.000-07:00</published><updated>2010-03-16T03:48:39.305-07:00</updated><title type='text'>TWITTER ADD-IN FOR MICROSOFT OUTLOOK</title><content type='html'>TwInbox seamlessly integrates Twitter into Outlook. It is a perfect Twitter client for any Outlook user, from a Twitter newbie to a business professional.&lt;br /&gt;&lt;br /&gt;http://www.techhit.com/TwInbox/twitter_plugin_outlook.html&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2385961957160321240-1643187034062834981?l=serkantsamurkas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://serkantsamurkas.blogspot.com/feeds/1643187034062834981/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://serkantsamurkas.blogspot.com/2010/03/twitter-add-in-for-microsoft-outlook.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2385961957160321240/posts/default/1643187034062834981'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2385961957160321240/posts/default/1643187034062834981'/><link rel='alternate' type='text/html' href='http://serkantsamurkas.blogspot.com/2010/03/twitter-add-in-for-microsoft-outlook.html' title='TWITTER ADD-IN FOR MICROSOFT OUTLOOK'/><author><name>Serkant Samurkas</name><uri>http://www.blogger.com/profile/06631003389148279210</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_mLdFslV5DLc/SkKF_rkNlyI/AAAAAAAAAAM/jEbTIs7-lZA/S220/Serkant.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2385961957160321240.post-5618068475922991998</id><published>2010-03-16T03:12:00.000-07:00</published><updated>2010-03-16T03:13:05.165-07:00</updated><title type='text'>New Ajax Control SeaDragon</title><content type='html'>The Seadragon control can be used for interactively viewing images. Use your mouse to pan and zoom around the image.&lt;br /&gt;&lt;br /&gt;http://www.asp.net/ajax/ajaxcontroltoolkit/Samples/Seadragon/Seadragon.aspx&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2385961957160321240-5618068475922991998?l=serkantsamurkas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://serkantsamurkas.blogspot.com/feeds/5618068475922991998/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://serkantsamurkas.blogspot.com/2010/03/new-ajax-control-seadragon.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2385961957160321240/posts/default/5618068475922991998'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2385961957160321240/posts/default/5618068475922991998'/><link rel='alternate' type='text/html' href='http://serkantsamurkas.blogspot.com/2010/03/new-ajax-control-seadragon.html' title='New Ajax Control SeaDragon'/><author><name>Serkant Samurkas</name><uri>http://www.blogger.com/profile/06631003389148279210</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_mLdFslV5DLc/SkKF_rkNlyI/AAAAAAAAAAM/jEbTIs7-lZA/S220/Serkant.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2385961957160321240.post-6422456972633358524</id><published>2010-03-16T03:10:00.000-07:00</published><updated>2010-03-16T03:11:06.806-07:00</updated><title type='text'>ASP.NET ComboBox - Master / Detail with Unlimited Detail Levels</title><content type='html'>The ComboBox provides a built-in master / detail feature, which allows you to organize data from multiple data sources in the same ComboBox. To set up a detail ComboBox, add a new ComboBox control inside the Details section of the master ComboBox. &lt;br /&gt;&lt;br /&gt;http://www.obout.com/combobox/aspnet_master_detail_unlimited.aspx&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2385961957160321240-6422456972633358524?l=serkantsamurkas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://serkantsamurkas.blogspot.com/feeds/6422456972633358524/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://serkantsamurkas.blogspot.com/2010/03/aspnet-combobox-master-detail-with.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2385961957160321240/posts/default/6422456972633358524'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2385961957160321240/posts/default/6422456972633358524'/><link rel='alternate' type='text/html' href='http://serkantsamurkas.blogspot.com/2010/03/aspnet-combobox-master-detail-with.html' title='ASP.NET ComboBox - Master / Detail with Unlimited Detail Levels'/><author><name>Serkant Samurkas</name><uri>http://www.blogger.com/profile/06631003389148279210</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_mLdFslV5DLc/SkKF_rkNlyI/AAAAAAAAAAM/jEbTIs7-lZA/S220/Serkant.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2385961957160321240.post-2438433467666404884</id><published>2010-03-10T04:43:00.000-08:00</published><updated>2010-03-10T04:44:08.570-08:00</updated><title type='text'>Powershell articles from Ted</title><content type='html'>http://blog.tedpattison.net/Lists/Posts/Post.aspx?ID=3&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2385961957160321240-2438433467666404884?l=serkantsamurkas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://serkantsamurkas.blogspot.com/feeds/2438433467666404884/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://serkantsamurkas.blogspot.com/2010/03/powershell-articles-from-ted.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2385961957160321240/posts/default/2438433467666404884'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2385961957160321240/posts/default/2438433467666404884'/><link rel='alternate' type='text/html' href='http://serkantsamurkas.blogspot.com/2010/03/powershell-articles-from-ted.html' title='Powershell articles from Ted'/><author><name>Serkant Samurkas</name><uri>http://www.blogger.com/profile/06631003389148279210</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_mLdFslV5DLc/SkKF_rkNlyI/AAAAAAAAAAM/jEbTIs7-lZA/S220/Serkant.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2385961957160321240.post-6039763841002155275</id><published>2010-03-08T17:53:00.000-08:00</published><updated>2010-03-08T17:54:14.617-08:00</updated><title type='text'>SQL Reporting Services data from SharePoint lists</title><content type='html'>Nice post to create reports with SharePoint data in SharePoint 2007&lt;br /&gt;http://www.codeproject.com/KB/reporting-services/ReportFromSharePoint.aspx&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2385961957160321240-6039763841002155275?l=serkantsamurkas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://serkantsamurkas.blogspot.com/feeds/6039763841002155275/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://serkantsamurkas.blogspot.com/2010/03/sql-reporting-services-data-from.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2385961957160321240/posts/default/6039763841002155275'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2385961957160321240/posts/default/6039763841002155275'/><link rel='alternate' type='text/html' href='http://serkantsamurkas.blogspot.com/2010/03/sql-reporting-services-data-from.html' title='SQL Reporting Services data from SharePoint lists'/><author><name>Serkant Samurkas</name><uri>http://www.blogger.com/profile/06631003389148279210</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_mLdFslV5DLc/SkKF_rkNlyI/AAAAAAAAAAM/jEbTIs7-lZA/S220/Serkant.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2385961957160321240.post-9036918075517193705</id><published>2010-03-04T16:28:00.000-08:00</published><updated>2010-03-04T16:30:43.244-08:00</updated><title type='text'>Using the SharePoint Business Data Connectivity Designer in VS 2010</title><content type='html'>Nice web cast. Thanks to Boris and Beth.&lt;br /&gt;&lt;br /&gt;Boris shows off the new Business Data Connectivity designer in Visual Studio 2010 and how it allows you to describe data coming from multiple data sources and how to work with them in SharePoint. He builds a master/detail association across entities coming from separate data sources (a database and a service) and demonstrates how the entities can be displayed and edited.&lt;br /&gt;&lt;br /&gt;http://channel9.msdn.com/posts/funkyonex/Using-the-SharePoint-Business-Data-Connectivity-Designer-in-VS-2010/&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2385961957160321240-9036918075517193705?l=serkantsamurkas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://serkantsamurkas.blogspot.com/feeds/9036918075517193705/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://serkantsamurkas.blogspot.com/2010/03/using-sharepoint-business-data.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2385961957160321240/posts/default/9036918075517193705'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2385961957160321240/posts/default/9036918075517193705'/><link rel='alternate' type='text/html' href='http://serkantsamurkas.blogspot.com/2010/03/using-sharepoint-business-data.html' title='Using the SharePoint Business Data Connectivity Designer in VS 2010'/><author><name>Serkant Samurkas</name><uri>http://www.blogger.com/profile/06631003389148279210</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_mLdFslV5DLc/SkKF_rkNlyI/AAAAAAAAAAM/jEbTIs7-lZA/S220/Serkant.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2385961957160321240.post-1964553482301416084</id><published>2010-03-04T15:49:00.000-08:00</published><updated>2010-03-04T16:01:43.709-08:00</updated><title type='text'>Visual Web Part in SharePoint 2010</title><content type='html'>Visual Web Part in SharePoint 2010&lt;br /&gt;&lt;br /&gt;Before I explain what it is, I will remind what we were doing to have visual control in SharePoint 2007. We were creating our ascx controls in TEMPLATE\CONTROLTEMPLATES folder. To be able to use the control in our webpart, we were loading it in  CreateChildControls method with this.Page.LoadControl(_ascxPath); . _ascxPath is path for our control. You can see the following complete syntax.&lt;br /&gt;&lt;br /&gt;      protected override void CreateChildControls()&lt;br /&gt;        {&lt;br /&gt;            Control control = this.Page.LoadControl(_ascxPath);&lt;br /&gt;            Controls.Add(control);&lt;br /&gt;            base.CreateChildControls();&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;So what is new now. To be honest nothing has changed in strategy. But Visual studio made a great job including this future into Visual Studio. We do not need to think about deployment hassle and all other painfull operations. Now we can just simply add and change this future quickly.&lt;br /&gt;&lt;br /&gt;Here is the sample about How to create Visual Web Part in Visual Studio 2010.&lt;br /&gt;http://www.helloitsliam.com/archive/2009/10/20/sharepoint-2010-%E2%80%93-create-a-visual-web-part.aspx&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2385961957160321240-1964553482301416084?l=serkantsamurkas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://serkantsamurkas.blogspot.com/feeds/1964553482301416084/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://serkantsamurkas.blogspot.com/2010/03/visual-web-part-in-sharepoint-2010.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2385961957160321240/posts/default/1964553482301416084'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2385961957160321240/posts/default/1964553482301416084'/><link rel='alternate' type='text/html' href='http://serkantsamurkas.blogspot.com/2010/03/visual-web-part-in-sharepoint-2010.html' title='Visual Web Part in SharePoint 2010'/><author><name>Serkant Samurkas</name><uri>http://www.blogger.com/profile/06631003389148279210</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_mLdFslV5DLc/SkKF_rkNlyI/AAAAAAAAAAM/jEbTIs7-lZA/S220/Serkant.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2385961957160321240.post-8569372356974347396</id><published>2010-03-02T17:17:00.000-08:00</published><updated>2010-03-02T17:30:10.870-08:00</updated><title type='text'>Asp.Net 4.0 - Session State Compression</title><content type='html'>Using sessions sometimes may cause performance problems. To prevent these we usually split the IIS and State machine server. Additionally we would store session in SQL server. One of the new future in ASP.net 4 will definetly be our pain killer on this subject. It is very simple configuraation. When we configure the sessionstate in web.config, we will simply set compressionEnabled as true. Then ASP.NET will compress (and decompress) serialized session state by using the .NET Framework System.IO.Compression.GZipStream class. You can simply give it a go and see the difference via configuring SQL DB as a sessionstate server and checking the size of SessionItemLong field in ASPStatesTempSessions table. On text values we can see incredible difference, but if it is an image file the difference will not be that incredible.&lt;br /&gt;&lt;br /&gt; &lt;sessionState&lt;br /&gt;  mode="SqlServer"&lt;br /&gt;  sqlConnectionString="data source=dbserver;Initial Catalog=aspnetstate"&lt;br /&gt;  allowCustomSqlDatabase="true"&lt;br /&gt;  compressionEnabled="true"&lt;br /&gt;/&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2385961957160321240-8569372356974347396?l=serkantsamurkas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://serkantsamurkas.blogspot.com/feeds/8569372356974347396/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://serkantsamurkas.blogspot.com/2010/03/aspnet-40-session-state-compression.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2385961957160321240/posts/default/8569372356974347396'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2385961957160321240/posts/default/8569372356974347396'/><link rel='alternate' type='text/html' href='http://serkantsamurkas.blogspot.com/2010/03/aspnet-40-session-state-compression.html' title='Asp.Net 4.0 - Session State Compression'/><author><name>Serkant Samurkas</name><uri>http://www.blogger.com/profile/06631003389148279210</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_mLdFslV5DLc/SkKF_rkNlyI/AAAAAAAAAAM/jEbTIs7-lZA/S220/Serkant.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2385961957160321240.post-6736894123678027642</id><published>2010-03-02T16:20:00.000-08:00</published><updated>2010-03-02T16:22:30.712-08:00</updated><title type='text'>Getting started with LINQ to SharePoint in SharePoint 2010</title><content type='html'>Nice blog from Tobias Zimmergren, it clearly explains how to use LINQ to SharePoint in SharePoint 2010. I am now planing to integrate this into SharePoint Explorer in VS 2010.&lt;br /&gt;http://www.zimmergren.net/archive/2010/02/19/sp-2010-getting-started-with-linq-to-sharepoint-in-sharepoint-2010.aspx&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2385961957160321240-6736894123678027642?l=serkantsamurkas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://serkantsamurkas.blogspot.com/feeds/6736894123678027642/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://serkantsamurkas.blogspot.com/2010/03/getting-started-with-linq-to-sharepoint.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2385961957160321240/posts/default/6736894123678027642'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2385961957160321240/posts/default/6736894123678027642'/><link rel='alternate' type='text/html' href='http://serkantsamurkas.blogspot.com/2010/03/getting-started-with-linq-to-sharepoint.html' title='Getting started with LINQ to SharePoint in SharePoint 2010'/><author><name>Serkant Samurkas</name><uri>http://www.blogger.com/profile/06631003389148279210</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_mLdFslV5DLc/SkKF_rkNlyI/AAAAAAAAAAM/jEbTIs7-lZA/S220/Serkant.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2385961957160321240.post-6899916776610220900</id><published>2010-03-02T11:09:00.000-08:00</published><updated>2010-03-02T11:10:01.637-08:00</updated><title type='text'>Nice posts from MS CS Forum</title><content type='html'>Post1: Displaying advertisement depending on basket content&lt;br /&gt;&lt;br /&gt;Requirement:&lt;br /&gt;1. User has 1 of product 12345 in their basket&lt;br /&gt;2. They navigate to the cart page&lt;br /&gt;3. See advertisement which says to "buy 1 more to get free shipping" or "buy 1 more to get 10% off" (just examples). There would be discounts defined for these.&lt;br /&gt;&lt;br /&gt;Elegant solution of Ravi&lt;br /&gt;1. Create a user profile to store basket line items information.&lt;br /&gt;2. Whenever an item is added to the basket, we will update this user object.&lt;br /&gt;3. whenever a basket is converted into purhase order we will remove items from this profile,.&lt;br /&gt;4. Using marketing manager, set basketitems as target profile. Check my blog which explains how to set target profile.&lt;br /&gt;http://microsoftblog.co.in/commerceserver/targeting-on-other-profile-objects/&lt;br /&gt;5. Create advertisements or discounts based on that target expression.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2385961957160321240-6899916776610220900?l=serkantsamurkas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://serkantsamurkas.blogspot.com/feeds/6899916776610220900/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://serkantsamurkas.blogspot.com/2010/03/nice-posts-from-ms-cs-forum.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2385961957160321240/posts/default/6899916776610220900'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2385961957160321240/posts/default/6899916776610220900'/><link rel='alternate' type='text/html' href='http://serkantsamurkas.blogspot.com/2010/03/nice-posts-from-ms-cs-forum.html' title='Nice posts from MS CS Forum'/><author><name>Serkant Samurkas</name><uri>http://www.blogger.com/profile/06631003389148279210</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_mLdFslV5DLc/SkKF_rkNlyI/AAAAAAAAAAM/jEbTIs7-lZA/S220/Serkant.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2385961957160321240.post-4685062340959096305</id><published>2010-02-28T02:18:00.000-08:00</published><updated>2010-02-28T02:19:09.658-08:00</updated><title type='text'>Windows Mobile reloaded!</title><content type='html'>http://www.engadget.com/2010/02/15/windows-phone-7-series-hands-on-and-impressions/&lt;br /&gt;http://www.engadget.com/2010/02/15/windows-phone-7-series-is-official-and-microsoft-is-playing-to/&lt;br /&gt;http://www.escapistmagazine.com/articles/view/columns/pocket-gamer/7196-The-Pocket-Gamer-Report-Android-and-Windows-Mobile-7&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2385961957160321240-4685062340959096305?l=serkantsamurkas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://serkantsamurkas.blogspot.com/feeds/4685062340959096305/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://serkantsamurkas.blogspot.com/2010/02/windows-mobile-reloaded.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2385961957160321240/posts/default/4685062340959096305'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2385961957160321240/posts/default/4685062340959096305'/><link rel='alternate' type='text/html' href='http://serkantsamurkas.blogspot.com/2010/02/windows-mobile-reloaded.html' title='Windows Mobile reloaded!'/><author><name>Serkant Samurkas</name><uri>http://www.blogger.com/profile/06631003389148279210</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_mLdFslV5DLc/SkKF_rkNlyI/AAAAAAAAAAM/jEbTIs7-lZA/S220/Serkant.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2385961957160321240.post-2657876020189399299</id><published>2010-02-25T15:56:00.000-08:00</published><updated>2010-02-28T01:06:57.389-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint Outlook Connector'/><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><title type='text'>SharePoint Outlook Connector now works with SharePoint 2010</title><content type='html'>Finally I was able to make it working on SharePoint 2010. To be honest I did not have to do much things as most of the functionality worked pretty straightforward. &lt;br /&gt;&lt;br /&gt;It also supports saving email meta data to SharePoint lists and attaching documents from SharePoint explorer panel.&lt;br /&gt;&lt;br /&gt;Here is the link where you can download it.&lt;br /&gt;http://spoutlookconnector.codeplex.com/&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2385961957160321240-2657876020189399299?l=serkantsamurkas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://serkantsamurkas.blogspot.com/feeds/2657876020189399299/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://serkantsamurkas.blogspot.com/2010/02/sharepoint-outlook-connector-now-works.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2385961957160321240/posts/default/2657876020189399299'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2385961957160321240/posts/default/2657876020189399299'/><link rel='alternate' type='text/html' href='http://serkantsamurkas.blogspot.com/2010/02/sharepoint-outlook-connector-now-works.html' title='SharePoint Outlook Connector now works with SharePoint 2010'/><author><name>Serkant Samurkas</name><uri>http://www.blogger.com/profile/06631003389148279210</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_mLdFslV5DLc/SkKF_rkNlyI/AAAAAAAAAAM/jEbTIs7-lZA/S220/Serkant.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2385961957160321240.post-17133556396286757</id><published>2010-02-25T04:56:00.000-08:00</published><updated>2010-02-28T01:05:30.274-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DataFormWebPart'/><title type='text'>How to Add Current Item Field Values to DataFormWebPart as a parameter</title><content type='html'>How to Add Current Item Field Values to DataFormWebPart as a parameter&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;One of my colleague had to implement a page which should give master detail functionality. So the requirement was displaying related items in the display form page. So she placed two webparts one for current list item (master) and one for related items (details). As it was display form (DispForm.aspx) the only she had was ItemID which is in the querystring. But it was not enough, she wanted it to pass One of the current item field value to filter related Items List. There is no option in the DataFormWebPart to get that. Therefore she asked me if there is any workaround for this.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I did couple of investigation but could not find anything. Then I produced the following solution.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Basicly you place the following class into your project. That is a replacement for DataFormWebPart which allows you to set current Item Field Values as parameters.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;* Deploy this class with your DLL into GAC&lt;/div&gt;&lt;div&gt;* Add this as a safe control into web.config&lt;/div&gt;&lt;div&gt;* Open your page do the following modifications&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Place this to your page and change assembly, namespace with yours.&lt;/div&gt;&lt;div&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;; background:yellow"&gt;&lt;%&lt;/span&gt;&lt;span style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;; color:blue"&gt;@&lt;/span&gt;&lt;span style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;"&gt; &lt;span style="color:#A31515"&gt;Register&lt;/span&gt; &lt;span style="color:red"&gt;Tagprefix&lt;/span&gt;&lt;span style="color:blue"&gt;="ExWebPart"&lt;/span&gt; &lt;span style="color:red"&gt;Namespace&lt;/span&gt;&lt;span style="color:blue"&gt;="Sobiens.SharePoint.WebParts"&lt;/span&gt; &lt;span style="color:red"&gt;Assembly&lt;/span&gt;&lt;span style="color:blue"&gt;="Sobiens.SharePoint, Version=1.0.0.0, Culture=neutral, PublicKeyToken=e76709a445fee1d6"&lt;/span&gt; &lt;span style="background:yellow"&gt;%&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;div&gt;Goto DataFormWebPart tag and change it to &lt;span class="Apple-style-span" style="font-family: 'Courier New'; font-size: 13px; "&gt;&lt;&lt;span style="color:#A31515"&gt;ExWebPart&lt;/span&gt;&lt;span style="color:blue"&gt;:&lt;/span&gt;&lt;span style="color:#A31515"&gt;EnhancedDataFormWebPart&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;; mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin;mso-ansi-language: EN-GB;mso-fareast-language:EN-GB;mso-bidi-language:AR-SA"&gt;&lt;span style="color:#A31515"&gt; &lt;/span&gt;&lt;/span&gt;&lt;div&gt;&lt;span style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;; mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin;mso-ansi-language: EN-GB;mso-fareast-language:EN-GB;mso-bidi-language:AR-SA"&gt;&lt;span style="color:#A31515"&gt;Finally change your parameterbinding&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;; mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin;mso-ansi-language: EN-GB;mso-fareast-language:EN-GB;mso-bidi-language:AR-SA"&gt;&lt;span style="color:#A31515"&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;; color:blue"&gt;&lt;&lt;/span&gt;&lt;span style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;; color:#A31515"&gt;ParameterBinding&lt;/span&gt;&lt;span style="font-size:10.0pt;font-family: &amp;quot;Courier New&amp;quot;"&gt; &lt;span style="color:red"&gt;Name&lt;/span&gt;&lt;span style="color:blue"&gt;="Country"&lt;/span&gt; &lt;span style="color:red"&gt;Location&lt;/span&gt;&lt;span style="color:blue"&gt;="None"&lt;/span&gt; &lt;span style="color:red"&gt;DefaultValue&lt;/span&gt;&lt;span style="color:blue"&gt;="currentitemvalue(Country)"&lt;/span&gt; &lt;span style="color:blue"&gt;/&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"    style="font-family:'Courier New';font-size:100%;color:#A31515;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;This will set Parameter named Country to current item Country field's value.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"    style="font-family:'Courier New';font-size:100%;color:#A31515;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&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:'Courier New';font-size:100%;color:#A31515;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;Hope this helps.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;; mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin;mso-ansi-language: EN-GB;mso-fareast-language:EN-GB;mso-bidi-language:AR-SA"&gt;&lt;span style="color:#A31515"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;    public class EnhancedDataFormWebPart : DataFormWebPart&lt;/div&gt;&lt;div&gt;    {&lt;/div&gt;&lt;div&gt;        XmlDocument _ParameterBindingsXmlDocument = null;&lt;/div&gt;&lt;div&gt;        XmlDocument ParameterBindingsXmlDocument&lt;/div&gt;&lt;div&gt;        {&lt;/div&gt;&lt;div&gt;            get&lt;/div&gt;&lt;div&gt;            {&lt;/div&gt;&lt;div&gt;                if (_ParameterBindingsXmlDocument == null)&lt;/div&gt;&lt;div&gt;                {&lt;/div&gt;&lt;div&gt;                    _ParameterBindingsXmlDocument = new XmlDocument();&lt;/div&gt;&lt;div&gt;                    _ParameterBindingsXmlDocument.LoadXml("&lt;parameterbindings&gt;" + this.ParameterBindings + "&lt;/parameterbindings&gt;");&lt;/div&gt;&lt;div&gt;                }&lt;/div&gt;&lt;div&gt;                return _ParameterBindingsXmlDocument;&lt;/div&gt;&lt;div&gt;            }&lt;/div&gt;&lt;div&gt;        }&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;        XmlNode _ParameterBindingsXmlNode = null;&lt;/div&gt;&lt;div&gt;        XmlNode ParameterBindingsXmlNode&lt;/div&gt;&lt;div&gt;        {&lt;/div&gt;&lt;div&gt;            get&lt;/div&gt;&lt;div&gt;            {&lt;/div&gt;&lt;div&gt;                if (_ParameterBindingsXmlNode == null)&lt;/div&gt;&lt;div&gt;                {&lt;/div&gt;&lt;div&gt;                    _ParameterBindingsXmlNode = ParameterBindingsXmlDocument.SelectSingleNode("/ParameterBindings");&lt;/div&gt;&lt;div&gt;                }&lt;/div&gt;&lt;div&gt;                return _ParameterBindingsXmlNode;&lt;/div&gt;&lt;div&gt;            }&lt;/div&gt;&lt;div&gt;        }&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;        private void SetParameterBinding(string key, string value)&lt;/div&gt;&lt;div&gt;        {&lt;/div&gt;&lt;div&gt;            XmlNode node = ParameterBindingsXmlNode.SelectSingleNode("/ParameterBindings/ParameterBinding[@Name = '" + key + "']");&lt;/div&gt;&lt;div&gt;            if (node == null)&lt;/div&gt;&lt;div&gt;            {&lt;/div&gt;&lt;div&gt;                XmlNode parameterBindingNode = ParameterBindingsXmlDocument.CreateElement("ParameterBinding");&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;                XmlAttribute nameAtrribute = ParameterBindingsXmlDocument.CreateAttribute("Name");&lt;/div&gt;&lt;div&gt;                nameAtrribute.Value = key;&lt;/div&gt;&lt;div&gt;                XmlAttribute locationAttribute = ParameterBindingsXmlDocument.CreateAttribute("Location");&lt;/div&gt;&lt;div&gt;                locationAttribute.Value = "None";&lt;/div&gt;&lt;div&gt;                XmlAttribute defaultValueAttribute = ParameterBindingsXmlDocument.CreateAttribute("DefaultValue");&lt;/div&gt;&lt;div&gt;                defaultValueAttribute.Value = value;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;                parameterBindingNode.Attributes.Append(nameAtrribute);&lt;/div&gt;&lt;div&gt;                parameterBindingNode.Attributes.Append(locationAttribute);&lt;/div&gt;&lt;div&gt;                parameterBindingNode.Attributes.Append(defaultValueAttribute);&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;                ParameterBindingsXmlNode.AppendChild(parameterBindingNode);&lt;/div&gt;&lt;div&gt;            }&lt;/div&gt;&lt;div&gt;            else&lt;/div&gt;&lt;div&gt;            {&lt;/div&gt;&lt;div&gt;                node.Attributes["DefaultValue"].Value = value;&lt;/div&gt;&lt;div&gt;            }&lt;/div&gt;&lt;div&gt;        }&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;        private void ReplaceFormParameterBindings()&lt;/div&gt;&lt;div&gt;        {&lt;/div&gt;&lt;div&gt;            foreach (XmlNode node in ParameterBindingsXmlNode.ChildNodes)&lt;/div&gt;&lt;div&gt;            {&lt;/div&gt;&lt;div&gt;                string defaultValue=node.Attributes["DefaultValue"].Value;&lt;/div&gt;&lt;div&gt;                if (defaultValue.ToLower().StartsWith("currentitemvalue(") == true)&lt;/div&gt;&lt;div&gt;                {&lt;/div&gt;&lt;div&gt;                    int startIndex = defaultValue.IndexOf("(");&lt;/div&gt;&lt;div&gt;                    int lastIndex = defaultValue.IndexOf(")");&lt;/div&gt;&lt;div&gt;                    string fieldName = node.Attributes["DefaultValue"].Value.Substring(startIndex+1, lastIndex - startIndex-1);&lt;/div&gt;&lt;div&gt;                    if (SPContext.Current.Item[fieldName] != null)&lt;/div&gt;&lt;div&gt;                    {&lt;/div&gt;&lt;div&gt;                        node.Attributes["DefaultValue"].Value = SPContext.Current.Item[fieldName].ToString();&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;br /&gt;&lt;/div&gt;&lt;div&gt;        private void SetPropertiesAsParameterBindings()&lt;/div&gt;&lt;div&gt;        {&lt;/div&gt;&lt;div&gt;            ReplaceFormParameterBindings();&lt;/div&gt;&lt;div&gt;            this.ParameterBindings = ParameterBindingsXmlNode.InnerXml;&lt;/div&gt;&lt;div&gt;        }&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;        protected override void OnLoad(EventArgs e)&lt;/div&gt;&lt;div&gt;        {&lt;/div&gt;&lt;div&gt;            base.OnLoad(e);&lt;/div&gt;&lt;div&gt;            SetPropertiesAsParameterBindings();&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;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2385961957160321240-17133556396286757?l=serkantsamurkas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://serkantsamurkas.blogspot.com/feeds/17133556396286757/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://serkantsamurkas.blogspot.com/2010/02/how-to-add-current-item-field-values-to.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2385961957160321240/posts/default/17133556396286757'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2385961957160321240/posts/default/17133556396286757'/><link rel='alternate' type='text/html' href='http://serkantsamurkas.blogspot.com/2010/02/how-to-add-current-item-field-values-to.html' title='How to Add Current Item Field Values to DataFormWebPart as a parameter'/><author><name>Serkant Samurkas</name><uri>http://www.blogger.com/profile/06631003389148279210</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_mLdFslV5DLc/SkKF_rkNlyI/AAAAAAAAAAM/jEbTIs7-lZA/S220/Serkant.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2385961957160321240.post-7206818471074205502</id><published>2010-02-16T05:49:00.000-08:00</published><updated>2010-02-16T05:50:04.974-08:00</updated><title type='text'>FireFox's FireBug sometimes cause double postbacks</title><content type='html'>&lt;span class="Apple-style-span" style="font-size: 13px; color: rgb(51, 51, 51); "&gt;&lt;h3 class="post-title entry-title" style="margin-top: 0.25em; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 4px; padding-left: 0px; font-size: 18px; font-weight: normal; line-height: 1.4em; color: rgb(204, 102, 0); "&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 51, 51); line-height: 20px; font-size: 13px; "&gt;FireBug's double postback bug&lt;/span&gt;&lt;/h3&gt;&lt;div class="post-body entry-content" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0.75em; margin-left: 0px; line-height: 1.6em; "&gt;&lt;div&gt;"Thanks for the great responses here. In my case it turn out to be FireBug (version 1.05) with FireFox 2.0.0.20. Once I switched off the FireBug Add-in, the double posts stopped."&lt;/div&gt;&lt;div&gt;&lt;a href="http://forums.mozillazine.org/viewtopic.php?p=3022038" style="color: rgb(85, 136, 170); text-decoration: none; "&gt;http://forums.mozillazine.org/viewtopic.php?p=3022038&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://stackoverflow.com/questions/283011/firefox-sending-request-twice" style="color: rgb(85, 136, 170); text-decoration: none; "&gt;http://stackoverflow.com/questions/283011/firefox-sending-request-twice&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2385961957160321240-7206818471074205502?l=serkantsamurkas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://serkantsamurkas.blogspot.com/feeds/7206818471074205502/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://serkantsamurkas.blogspot.com/2010/02/firefoxs-firebug-sometimes-cause-double.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2385961957160321240/posts/default/7206818471074205502'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2385961957160321240/posts/default/7206818471074205502'/><link rel='alternate' type='text/html' href='http://serkantsamurkas.blogspot.com/2010/02/firefoxs-firebug-sometimes-cause-double.html' title='FireFox&apos;s FireBug sometimes cause double postbacks'/><author><name>Serkant Samurkas</name><uri>http://www.blogger.com/profile/06631003389148279210</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_mLdFslV5DLc/SkKF_rkNlyI/AAAAAAAAAAM/jEbTIs7-lZA/S220/Serkant.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2385961957160321240.post-6023564003252924234</id><published>2010-02-15T17:50:00.001-08:00</published><updated>2010-02-28T01:06:57.390-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint Outlook Connector'/><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><title type='text'>SharePointOutlookConnector</title><content type='html'>&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Segoe UI', 'Microsoft Sans Serif', Arial, Geneva, sans-serif; font-size: 13px; color: rgb(48, 51, 45); "&gt;SharePointOutlookConnector makes it easier for outlook users to upload emails to SP and attach SP documents to an email message . You'll no longer have to save your email to desktop and upload from SP UI or download SP documents to your drive and attach them to your email.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Segoe UI', 'Microsoft Sans Serif', Arial, Geneva, sans-serif; font-size: 13px; color: rgb(48, 51, 45); "&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;a href="http://spoutlookconnector.codeplex.com/"&gt;http://spoutlookconnector.codeplex.com/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2385961957160321240-6023564003252924234?l=serkantsamurkas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://serkantsamurkas.blogspot.com/feeds/6023564003252924234/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://serkantsamurkas.blogspot.com/2010/02/sharepointoutlookconnector.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2385961957160321240/posts/default/6023564003252924234'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2385961957160321240/posts/default/6023564003252924234'/><link rel='alternate' type='text/html' href='http://serkantsamurkas.blogspot.com/2010/02/sharepointoutlookconnector.html' title='SharePointOutlookConnector'/><author><name>Serkant Samurkas</name><uri>http://www.blogger.com/profile/06631003389148279210</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_mLdFslV5DLc/SkKF_rkNlyI/AAAAAAAAAAM/jEbTIs7-lZA/S220/Serkant.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2385961957160321240.post-6074456031163105255</id><published>2010-02-01T05:16:00.000-08:00</published><updated>2010-02-01T05:17:17.698-08:00</updated><title type='text'>A GridView CommandField of type Image causes a double submit.</title><content type='html'>&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana; font-size: 11px; "&gt;When clicking on a CommandField of type Image in a GridView, there are two submits. One is the onclick eventhandler and the other is the default submit of an input element of type image. In Beta2 and before there was no onclick event handler and so there was only one submit, this is only a problem since RTM.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana; font-size: 11px; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;a href="http://connect.microsoft.com/VisualStudio/feedback/details/105123/a-gridview-commandfield-of-type-image-causes-a-double-submit"&gt;http://connect.microsoft.com/VisualStudio/feedback/details/105123/a-gridview-commandfield-of-type-image-causes-a-double-submit&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2385961957160321240-6074456031163105255?l=serkantsamurkas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://serkantsamurkas.blogspot.com/feeds/6074456031163105255/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://serkantsamurkas.blogspot.com/2010/02/gridview-commandfield-of-type-image.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2385961957160321240/posts/default/6074456031163105255'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2385961957160321240/posts/default/6074456031163105255'/><link rel='alternate' type='text/html' href='http://serkantsamurkas.blogspot.com/2010/02/gridview-commandfield-of-type-image.html' title='A GridView CommandField of type Image causes a double submit.'/><author><name>Serkant Samurkas</name><uri>http://www.blogger.com/profile/06631003389148279210</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_mLdFslV5DLc/SkKF_rkNlyI/AAAAAAAAAAM/jEbTIs7-lZA/S220/Serkant.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2385961957160321240.post-2686846390132406086</id><published>2009-12-17T01:13:00.000-08:00</published><updated>2009-12-17T01:58:07.084-08:00</updated><title type='text'>Tutorial: Getting Started with TFS in VS2010</title><content type='html'>&lt;a href="http://blogs.msdn.com/jasonz/archive/2009/10/21/tutorial-getting-started-with-tfs-in-vs2010.aspx"&gt;http://blogs.msdn.com/jasonz/archive/2009/10/21/tutorial-getting-started-with-tfs-in-vs2010.aspx&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2385961957160321240-2686846390132406086?l=serkantsamurkas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://serkantsamurkas.blogspot.com/feeds/2686846390132406086/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://serkantsamurkas.blogspot.com/2009/12/tutorial-getting-started-with-tfs-in.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2385961957160321240/posts/default/2686846390132406086'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2385961957160321240/posts/default/2686846390132406086'/><link rel='alternate' type='text/html' href='http://serkantsamurkas.blogspot.com/2009/12/tutorial-getting-started-with-tfs-in.html' title='Tutorial: Getting Started with TFS in VS2010'/><author><name>Serkant Samurkas</name><uri>http://www.blogger.com/profile/06631003389148279210</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_mLdFslV5DLc/SkKF_rkNlyI/AAAAAAAAAAM/jEbTIs7-lZA/S220/Serkant.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2385961957160321240.post-4152661625026546490</id><published>2009-12-16T16:42:00.000-08:00</published><updated>2010-02-28T01:06:57.418-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><title type='text'>SharePoint Explorer in SharePoint 2010</title><content type='html'>&lt;span class="Apple-style-span" style="font-family: Verdana; font-size: 11px; color: rgb(85, 85, 85); line-height: 17px; "&gt;SharePoint Server Explorer is a new feature in Visual Studio 2010. You can navigate between all objects in SharePoint 2010 but you are limited to see their properties only. The way to extend this control is creating a new class which will inherit from IExplorerNodeTypeExtension.&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span"    style="font-family:Verdana;font-size:100%;color:#555555;"&gt;&lt;span class="Apple-style-span" style="font-size: 11px; line-height: 17px;"&gt;&lt;a href="http://www.chakkaradeep.com/post/SharePoint-2010-Extending-a-SharePoint-Node-in-Server-Explorer.aspx"&gt;http://www.chakkaradeep.com/post/SharePoint-2010-Extending-a-SharePoint-Node-in-Server-Explorer.aspx&lt;/a&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/2385961957160321240-4152661625026546490?l=serkantsamurkas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://serkantsamurkas.blogspot.com/feeds/4152661625026546490/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://serkantsamurkas.blogspot.com/2009/12/sharepoint-explorer-in-sharepoint-2010.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2385961957160321240/posts/default/4152661625026546490'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2385961957160321240/posts/default/4152661625026546490'/><link rel='alternate' type='text/html' href='http://serkantsamurkas.blogspot.com/2009/12/sharepoint-explorer-in-sharepoint-2010.html' title='SharePoint Explorer in SharePoint 2010'/><author><name>Serkant Samurkas</name><uri>http://www.blogger.com/profile/06631003389148279210</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_mLdFslV5DLc/SkKF_rkNlyI/AAAAAAAAAAM/jEbTIs7-lZA/S220/Serkant.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2385961957160321240.post-430224117800177289</id><published>2009-12-16T16:13:00.000-08:00</published><updated>2009-12-16T16:14:12.972-08:00</updated><title type='text'>Spec Explorer - advanced model-based specification and conformance testing tool</title><content type='html'>&lt;span class="Apple-style-span" style="font-family: 'Segoe UI', 'Lucida Grande', Verdana, Arial, Helvetica, sans-serif; border-collapse: collapse; color: rgb(51, 51, 51); font-size: 13px; line-height: 16px; "&gt;Spec Explorer 2010 is a tool that extends Visual Studio for modeling software behavior, analyzing that behavior by graphical visualization, model checking; and generating standalone test code from models. Behavior is modeled in two ways: by writing rule machines in C# (with dynamic data-defined state spaces) and by defining scenarios as action patterns in a regular-expression style. One of Spec Explorer’s major features is the ability to compose models written in these two styles. This technique enables users to slice out test cases from large state machines by defining relevant scenarios, thus tackling the notorious state-space explosion problem pervasive in model-based testing. Spec Explorer also supports combinatorial interaction testing with a rich set of features.&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span"    style="font-family:'Segoe UI', 'Lucida Grande', Verdana, Arial, Helvetica, sans-serif;font-size:100%;color:#333333;"&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; font-size: 13px; line-height: 16px;"&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:'Segoe UI', 'Lucida Grande', Verdana, Arial, Helvetica, sans-serif;font-size:100%;color:#333333;"&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; font-size: 13px; line-height: 16px;"&gt;&lt;a href="http://msdn.microsoft.com/en-us/devlabs/ee692301.aspx"&gt;http://msdn.microsoft.com/en-us/devlabs/ee692301.aspx&lt;/a&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/2385961957160321240-430224117800177289?l=serkantsamurkas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://serkantsamurkas.blogspot.com/feeds/430224117800177289/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://serkantsamurkas.blogspot.com/2009/12/spec-explorer-advanced-model-based.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2385961957160321240/posts/default/430224117800177289'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2385961957160321240/posts/default/430224117800177289'/><link rel='alternate' type='text/html' href='http://serkantsamurkas.blogspot.com/2009/12/spec-explorer-advanced-model-based.html' title='Spec Explorer - advanced model-based specification and conformance testing tool'/><author><name>Serkant Samurkas</name><uri>http://www.blogger.com/profile/06631003389148279210</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_mLdFslV5DLc/SkKF_rkNlyI/AAAAAAAAAAM/jEbTIs7-lZA/S220/Serkant.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2385961957160321240.post-8883542483051199287</id><published>2009-12-16T16:10:00.001-08:00</published><updated>2009-12-16T16:10:56.478-08:00</updated><title type='text'>Doloto - AJAX application optimization tool</title><content type='html'>&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Segoe UI', 'Lucida Grande', Verdana, Arial, Helvetica, sans-serif; border-collapse: collapse; color: rgb(51, 51, 51); font-size: 13px; line-height: 16px; "&gt;&lt;p style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-weight: inherit; font-style: inherit; font-family: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 12px; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;Doloto is an AJAX application optimization tool, especially useful for large and complex Web 2.0 applications that contain a lot of code, such as Bing Maps, Hotmail, etc. Doloto analyzes AJAX application workloads and automatically performs code splitting of existing large Web 2.0 applications. After being processed by Doloto, an application will initially transfer only the portion of code necessary for application initialization.&lt;/p&gt;&lt;p style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-weight: inherit; font-style: inherit; font-family: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 12px; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;The rest of the application's code is replaced by short stubs -- their actual function code is transferred lazily in the background or, at the latest, on-demand on first execution. Since code download is interleaved with application execution, users can start interacting with the Web application much sooner, without waiting for the code that implements extra, unused features.&lt;/p&gt;&lt;/span&gt;&lt;/div&gt;&lt;a href="http://msdn.microsoft.com/en-us/devlabs/ee423534.aspx"&gt;http://msdn.microsoft.com/en-us/devlabs/ee423534.aspx&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2385961957160321240-8883542483051199287?l=serkantsamurkas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://serkantsamurkas.blogspot.com/feeds/8883542483051199287/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://serkantsamurkas.blogspot.com/2009/12/doloto-ajax-application-optimization.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2385961957160321240/posts/default/8883542483051199287'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2385961957160321240/posts/default/8883542483051199287'/><link rel='alternate' type='text/html' href='http://serkantsamurkas.blogspot.com/2009/12/doloto-ajax-application-optimization.html' title='Doloto - AJAX application optimization tool'/><author><name>Serkant Samurkas</name><uri>http://www.blogger.com/profile/06631003389148279210</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_mLdFslV5DLc/SkKF_rkNlyI/AAAAAAAAAAM/jEbTIs7-lZA/S220/Serkant.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2385961957160321240.post-6010826100064753664</id><published>2009-12-14T01:01:00.000-08:00</published><updated>2009-12-14T01:10:02.739-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Virtulization Tips'/><title type='text'>How to Increase your VMware Hard Disk's size</title><content type='html'>&lt;span class="Apple-style-span"   style="  ;font-family:Arial, Helvetica, sans-serif;font-size:11px;"&gt;&lt;div&gt;Following command line works like a magic :)&lt;/div&gt;vmware-vdiskmanager -x 15GB "C:\VMs\Win2008VM\SharePoint2010.vmdk"&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2385961957160321240-6010826100064753664?l=serkantsamurkas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://serkantsamurkas.blogspot.com/feeds/6010826100064753664/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://serkantsamurkas.blogspot.com/2009/12/how-to-increase-your-vmware-hard-disks.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2385961957160321240/posts/default/6010826100064753664'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2385961957160321240/posts/default/6010826100064753664'/><link rel='alternate' type='text/html' href='http://serkantsamurkas.blogspot.com/2009/12/how-to-increase-your-vmware-hard-disks.html' title='How to Increase your VMware Hard Disk&apos;s size'/><author><name>Serkant Samurkas</name><uri>http://www.blogger.com/profile/06631003389148279210</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_mLdFslV5DLc/SkKF_rkNlyI/AAAAAAAAAAM/jEbTIs7-lZA/S220/Serkant.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2385961957160321240.post-3685559723233380148</id><published>2009-12-13T04:07:00.000-08:00</published><updated>2009-12-13T04:08:36.956-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Cache Service on .Net'/><title type='text'>Microsoft Project Code Named “Velocity” Community Technology Preview 3 (CTP3)</title><content type='html'>&lt;span class="Apple-style-span" style="font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 11px; "&gt;"Velocity" is a distributed in-memory application cache platform for developing scalable, high-performance applications. "Velocity" can be used to cache any common language runtime (CLR) object and provides access through simple APIs. The key aspects of "Velocity" are distributed cache performance, scalability, and availability.&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="font-family:Verdana, Arial, Helvetica, sans-serif;font-size:100%;"&gt;&lt;span class="Apple-style-span" style="font-size: 11px;"&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:Verdana, Arial, Helvetica, sans-serif;font-size:100%;"&gt;&lt;span class="Apple-style-span" style="font-size: 11px;"&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=B24C3708-EEFF-4055-A867-19B5851E7CD2&amp;amp;displaylang=en"&gt;http://www.microsoft.com/downloads/details.aspx?FamilyId=B24C3708-EEFF-4055-A867-19B5851E7CD2&amp;amp;displaylang=en&lt;/a&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/2385961957160321240-3685559723233380148?l=serkantsamurkas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://serkantsamurkas.blogspot.com/feeds/3685559723233380148/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://serkantsamurkas.blogspot.com/2009/12/microsoft-project-code-named-velocity.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2385961957160321240/posts/default/3685559723233380148'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2385961957160321240/posts/default/3685559723233380148'/><link rel='alternate' type='text/html' href='http://serkantsamurkas.blogspot.com/2009/12/microsoft-project-code-named-velocity.html' title='Microsoft Project Code Named “Velocity” Community Technology Preview 3 (CTP3)'/><author><name>Serkant Samurkas</name><uri>http://www.blogger.com/profile/06631003389148279210</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_mLdFslV5DLc/SkKF_rkNlyI/AAAAAAAAAAM/jEbTIs7-lZA/S220/Serkant.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2385961957160321240.post-1729445089804073809</id><published>2009-12-12T21:44:00.000-08:00</published><updated>2010-02-28T01:06:57.419-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><category scheme='http://www.blogger.com/atom/ns#' term='DataFormWebPart'/><title type='text'>How to add parameters from different sources to DataFormWebPart</title><content type='html'>Although DataFormWebPart supports several ways to get such as QueryString, Control values, CAML variable etc, There are some cases we need to assign parameters from codebehind. I am not going to show all the scenarios but I will give you hint how you can extend dataform webpart to allow taking parameter variables from different sources.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The first thing we need to do is, creating a new class which will inherit from DataFormWebPart.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;     using System;&lt;/div&gt;&lt;div&gt;     using System.Text;&lt;/div&gt;&lt;div&gt;     using Microsoft.SharePoint.WebPartPages;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;    public class EnhancedDataFormWebPart : DataFormWebPart&lt;/div&gt;&lt;div&gt;    {&lt;/div&gt;&lt;div&gt;    }&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The way we do is, replacing ParameterBindings string property inside of DataFormWebPart. This property is a xml string. We will load it as xml document and use following properties to make it accessible in our code.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;        XmlDocument _ParameterBindingsXmlDocument = null;&lt;/div&gt;&lt;div&gt;        XmlDocument ParameterBindingsXmlDocument&lt;/div&gt;&lt;div&gt;        {&lt;/div&gt;&lt;div&gt;            get&lt;/div&gt;&lt;div&gt;            {&lt;/div&gt;&lt;div&gt;                if (_ParameterBindingsXmlDocument == null)&lt;/div&gt;&lt;div&gt;                {&lt;/div&gt;&lt;div&gt;                    _ParameterBindingsXmlDocument = new XmlDocument();&lt;/div&gt;&lt;div&gt;                    _ParameterBindingsXmlDocument.LoadXml("&lt;parameterbindings&gt;" + this.ParameterBindings + "&lt;/parameterbindings&gt;");&lt;/div&gt;&lt;div&gt;                }&lt;/div&gt;&lt;div&gt;                return _ParameterBindingsXmlDocument;&lt;/div&gt;&lt;div&gt;            }&lt;/div&gt;&lt;div&gt;        }&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;        XmlNode _ParameterBindingsXmlNode = null;&lt;/div&gt;&lt;div&gt;        XmlNode ParameterBindingsXmlNode&lt;/div&gt;&lt;div&gt;        {&lt;/div&gt;&lt;div&gt;            get&lt;/div&gt;&lt;div&gt;            {&lt;/div&gt;&lt;div&gt;                if (_ParameterBindingsXmlNode == null)&lt;/div&gt;&lt;div&gt;                {&lt;/div&gt;&lt;div&gt;                    _ParameterBindingsXmlNode = ParameterBindingsXmlDocument.SelectSingleNode("/ParameterBindings");&lt;/div&gt;&lt;div&gt;                }&lt;/div&gt;&lt;div&gt;                return _ParameterBindingsXmlNode;&lt;/div&gt;&lt;div&gt;            }&lt;/div&gt;&lt;div&gt;        }&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Lets also add this helper class to be able to manipulate xml document.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;        private void SetParameterBinding(string key, string value)&lt;/div&gt;&lt;div&gt;        {&lt;/div&gt;&lt;div&gt;            XmlNode node = ParameterBindingsXmlNode.SelectSingleNode("/ParameterBindings/ParameterBinding[@Name = '" + key + "']");&lt;/div&gt;&lt;div&gt;            if (node == null)&lt;/div&gt;&lt;div&gt;            {&lt;/div&gt;&lt;div&gt;                XmlNode parameterBindingNode = ParameterBindingsXmlDocument.CreateElement("ParameterBinding");&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;                XmlAttribute nameAtrribute = ParameterBindingsXmlDocument.CreateAttribute("Name");&lt;/div&gt;&lt;div&gt;                nameAtrribute.Value = key;&lt;/div&gt;&lt;div&gt;                XmlAttribute locationAttribute = ParameterBindingsXmlDocument.CreateAttribute("Location");&lt;/div&gt;&lt;div&gt;                locationAttribute.Value="None";&lt;/div&gt;&lt;div&gt;                XmlAttribute defaultValueAttribute = ParameterBindingsXmlDocument.CreateAttribute("DefaultValue");&lt;/div&gt;&lt;div&gt;                defaultValueAttribute.Value = value;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;                parameterBindingNode.Attributes.Append(nameAtrribute);&lt;/div&gt;&lt;div&gt;                parameterBindingNode.Attributes.Append(locationAttribute);&lt;/div&gt;&lt;div&gt;                parameterBindingNode.Attributes.Append(defaultValueAttribute);&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;                ParameterBindingsXmlNode.AppendChild(parameterBindingNode);&lt;/div&gt;&lt;div&gt;            }&lt;/div&gt;&lt;div&gt;            else&lt;/div&gt;&lt;div&gt;            {&lt;/div&gt;&lt;div&gt;                node.Attributes["DefaultValue"].Value = value;&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;br /&gt;&lt;/div&gt;&lt;div&gt;Here is the key method we are going to use. This is where we set our custom properties. Via using this you can set your binding parameters from anywhere you like (web.config property, sql data etc)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;        private void SetPropertiesAsParameterBindings()&lt;/div&gt;&lt;div&gt;        {&lt;/div&gt;&lt;div&gt;            SetParameterBinding("WebPartTitle", this.Title);&lt;/div&gt;&lt;div&gt;            SetParameterBinding("WebPartTitleURL", this.TitleUrl);&lt;/div&gt;&lt;div&gt;            this.ParameterBindings = ParameterBindingsXmlNode.InnerXml;&lt;/div&gt;&lt;div&gt;        }&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Last thing we should do is calling this method on OnLoad method of the webpart.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;        protected override void OnLoad(EventArgs e)&lt;/div&gt;&lt;div&gt;        {&lt;/div&gt;&lt;div&gt;            base.OnLoad(e);&lt;/div&gt;&lt;div&gt;            SetPropertiesAsParameterBindings();&lt;/div&gt;&lt;div&gt;        } &lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Now it is time to replace DataFormWebPart with our EnhancedDataFormWebPart. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Add this line into your page and replace values with appropriate values from your solution.&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Here the webpart comes :)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&amp;lt;ExWebParts:EnhancedDataFormWebPart id="TasksDisplayDataFormWebPart" runat="server"&lt;br /&gt;FrameType="None" NoDefaultStyle="TRUE" ViewFlag="1" Title="Tasks"&lt;br /&gt;DisplayName="Tasks" __markuptype="vsattributemarkup"&lt;br /&gt;__WebPartId="{418745AA-67C6-481e-95F9-5C824AD0CE61}" WebPart="true"&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;DataSources&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;SharePointWebControls:SPDataSource runat="server" DataSourceMode="List"&lt;br /&gt;UseInternalName="true" selectcommand="&amp;lt;View/&amp;gt;" id="SPDataSource1"&amp;gt;&amp;lt;SelectParameters&amp;gt;&amp;lt;webpartpages:DataFormParameter Name="ListName" ParameterKey="ListName"&lt;br /&gt;PropertyName="ParameterValues" DefaultValue="Tasks"/&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/SelectParameters&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/SharePointWebControls:SPDataSource&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/DataSources&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;ParameterBindings&amp;gt;&lt;br /&gt;&amp;lt;ParameterBinding Name="ListName" Location="None" DefaultValue="Tasks" /&amp;gt;&lt;br /&gt;&amp;lt;ParameterBinding Name="dvt_apos" Location="Postback;Connection" /&amp;gt;&lt;br /&gt;&amp;lt;ParameterBinding Name="UserID" Location="CAMLVariable"&lt;br /&gt;DefaultValue="CurrentUserName" /&amp;gt;&lt;br /&gt;&amp;lt;ParameterBinding Name="Today" Location="CAMLVariable" DefaultValue="CurrentDate" /&amp;gt;&lt;br /&gt;&amp;lt;ParameterBinding Name="WebPartTitle" Location="None" DefaultValue="{Title}" /&amp;gt;&lt;br /&gt;&amp;lt;ParameterBinding Name="WebPartTitleURL" Location="None" DefaultValue="{TitleUrl}" /&amp;gt;&lt;br /&gt;&amp;lt;/ParameterBindings&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;datafields&amp;gt;@ID,ID;@ContentType,ContentType;@Title,Title;@Modified,Modified;@Created,Created;@Author,Author;@Editor,Editor;@_UIVersionString,_UIVersionString;@Attachments,Attachments;@LinkTitleNoMenu,LinkTitleNoMenu;@LinkTitle,LinkTitle;@FileRef,FileRef;@FileDirRef,FileDirRef;@FSObjType,FSObjType;@ProgId,ProgId;@ScopeId,ScopeId;@DocIcon,DocIcon;@MetaInfo,MetaInfo;@Priority,Priority;@Status,Status;@PercentComplete,PercentComplete;@AssignedTo,AssignedTo;@TaskGroup,TaskGroup;@Body,Body;@StartDate,StartDate;@DueDate,DueDate;&amp;lt;/datafields&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;XslLink&amp;gt;/Style Library/XSL Style Sheets/test.xsl&amp;lt;/XslLink&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/ExWebParts:EnhancedDataFormWebPart&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Last thing you need to do is adding following lines into Style Library/XSL Style Sheets as test.xsl file .&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;xsl:stylesheet xmlns:x="http://www.w3.org/2001/XMLSchema"&lt;br /&gt;xmlns:d="http://schemas.microsoft.com/sharepoint/dsp" version="1.0"&lt;br /&gt;exclude-result-prefixes="xsl msxsl ddwrt"&lt;br /&gt;xmlns:ddwrt="http://schemas.microsoft.com/WebParts/v2/DataView/runtime"&lt;br /&gt;xmlns:asp="http://schemas.microsoft.com/ASPNET/20"&lt;br /&gt;xmlns:__designer="http://schemas.microsoft.com/WebParts/v2/DataView/designer"&lt;br /&gt;xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&lt;br /&gt;xmlns:msxsl="urn:schemas-microsoft-com:xslt"&lt;br /&gt;xmlns:SharePoint="Microsoft.SharePoint.WebControls"&lt;br /&gt;xmlns:ddwrt2="urn:frontpage:internal"&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;xsl:output method="html" indent="no"/&amp;gt; &amp;lt;xsl:decimal-format NaN=""/&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;xsl:param name="dvt_apos"&amp;gt;'&amp;lt;/xsl:param&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;xsl:param name="WebPartTitle"&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/xsl:param&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;xsl:param name="WebPartTitleURL"&amp;gt;&amp;lt;/xsl:param&amp;gt; &amp;lt;xsl:variable&lt;br /&gt;name="dvt_1_automode"&amp;gt;0&amp;lt;/xsl:variable&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;xsl:template match="/"&amp;gt;&lt;br /&gt;WebPartTitleURL:&amp;lt;xsl:value-of select="$WebPartTitleURL"&amp;gt;&amp;lt;/xsl:value-of&amp;gt;&lt;br /&gt;WebPartTitle:&amp;lt;xsl:value-of select="$WebPartTitle"&amp;gt;&amp;lt;/xsl:value-of&amp;gt;&lt;br /&gt;&amp;lt;xsl:call-template name="dvt_1"/&amp;gt; &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;xsl:template name="dvt_1"&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;xsl:variable name="Rows" select="/dsQueryResponse/Rows/Row"/&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;xsl:if test="$dvt_1_automode = '1'" ddwrt:cf_ignore="1"&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/xsl:if&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;xsl:call-template name="dvt_1.body"&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;xsl:with-param name="Rows" select="$Rows"/&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/xsl:call-template&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/xsl:template&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;xsl:template name="dvt_1.body"&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;xsl:param name="Rows"/&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;xsl:for-each select="$Rows"&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;xsl:call-template name="dvt_1.rowview"/&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/xsl:template&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;xsl:template name="dvt_1.rowview"&amp;gt; Title: &amp;lt;xsl:value-of select="@Title"/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/xsl:template&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/xsl:stylesheet&amp;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/2385961957160321240-1729445089804073809?l=serkantsamurkas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://serkantsamurkas.blogspot.com/feeds/1729445089804073809/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://serkantsamurkas.blogspot.com/2009/12/how-to-add-parameters-from-different.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2385961957160321240/posts/default/1729445089804073809'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2385961957160321240/posts/default/1729445089804073809'/><link rel='alternate' type='text/html' href='http://serkantsamurkas.blogspot.com/2009/12/how-to-add-parameters-from-different.html' title='How to add parameters from different sources to DataFormWebPart'/><author><name>Serkant Samurkas</name><uri>http://www.blogger.com/profile/06631003389148279210</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_mLdFslV5DLc/SkKF_rkNlyI/AAAAAAAAAAM/jEbTIs7-lZA/S220/Serkant.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2385961957160321240.post-2842766269658901895</id><published>2009-11-24T15:21:00.000-08:00</published><updated>2009-12-14T01:10:14.997-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Virtulization Tips'/><title type='text'>Reduce VPCs size</title><content type='html'>&lt;span class="Apple-style-span"   style="  color: rgb(42, 42, 42); line-height: 16px; font-family:monospace;font-size:9px;"&gt;&lt;div&gt;This is a common issue we are all having. Creating seperate vhd files for each different environment such as SharePoint, Biztalk, Backend servers (Exchange, SQL etc). We still need to create different vhd files for these but instead of having 30 GB per environment, we are going to create one base vhd and inherit others from them( like an OOP ;) ). So lets take windows server 2008 as main operating system. We are going to create one vhd file and install Windows 2008 Server into that one. So lets name it as BaseWin2008.vhd .For the rest we are going to create them as using BaseWin2008.vhd file as  base file. So that new vhd will only save the difference. It is saving pretty GBs is not it :)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So here is the command to create a vhd from base vhd file. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;diskpart&lt;br /&gt;create vdisk file=C:\SharePoint2010.vhd parent=C:\BaseWin2008.vhd&lt;br /&gt;exit&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2385961957160321240-2842766269658901895?l=serkantsamurkas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://serkantsamurkas.blogspot.com/feeds/2842766269658901895/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://serkantsamurkas.blogspot.com/2009/11/reduce-vpcs-size.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2385961957160321240/posts/default/2842766269658901895'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2385961957160321240/posts/default/2842766269658901895'/><link rel='alternate' type='text/html' href='http://serkantsamurkas.blogspot.com/2009/11/reduce-vpcs-size.html' title='Reduce VPCs size'/><author><name>Serkant Samurkas</name><uri>http://www.blogger.com/profile/06631003389148279210</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_mLdFslV5DLc/SkKF_rkNlyI/AAAAAAAAAAM/jEbTIs7-lZA/S220/Serkant.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2385961957160321240.post-7197911263998277089</id><published>2009-11-24T10:24:00.000-08:00</published><updated>2009-12-14T01:10:26.491-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Virtulization Tips'/><title type='text'>Howto compact a vhd file</title><content type='html'>1. First of all, install &lt;a href="http://www.ccleaner.com/"&gt; cccleaner&lt;/a&gt;. This tool is very usefull. It will remove all unnecessary files from your drive.&lt;div&gt;2. Defrag your drive.&lt;/div&gt;&lt;div&gt;3. From the CD menu, select Capture ISO Image and browse to the Virtual PC additions directory, which is %ProgramFiles%\Microsoft Virtual PC\Virtual Machine Additions by default.&lt;br /&gt;Mount Virtual Disk Precompactor.iso. Click ok to allow it to prepare your drive to be able to compacted.&lt;br /&gt;4. Unmount the ISO from the CD menu.&lt;br /&gt;5. Finally execute the Virtual Disk Wizard from the File menu and compact your VHD file.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Do not forget to make it read only if you want to use it as a base disk.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2385961957160321240-7197911263998277089?l=serkantsamurkas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://serkantsamurkas.blogspot.com/feeds/7197911263998277089/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://serkantsamurkas.blogspot.com/2009/11/howto-compact-vhd-file.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2385961957160321240/posts/default/7197911263998277089'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2385961957160321240/posts/default/7197911263998277089'/><link rel='alternate' type='text/html' href='http://serkantsamurkas.blogspot.com/2009/11/howto-compact-vhd-file.html' title='Howto compact a vhd file'/><author><name>Serkant Samurkas</name><uri>http://www.blogger.com/profile/06631003389148279210</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_mLdFslV5DLc/SkKF_rkNlyI/AAAAAAAAAAM/jEbTIs7-lZA/S220/Serkant.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2385961957160321240.post-7797305868803016197</id><published>2009-11-19T15:16:00.000-08:00</published><updated>2009-12-13T02:06:12.371-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ADO.Net'/><title type='text'>ADO.NET Data Services v1.5 CTP2</title><content type='html'>This release (v1.5) will target the .NET Framework 3.5 SP1 &amp;amp; Silverlight 3 platforms and provide new client and server side features for data service developers.  In addition, the features included in this release (v1.5) will be part of the .NET Framework 4 release.&lt;br /&gt;http://blogs.msdn.com/astoriateam/archive/2009/08/31/ado-net-data-services-v1-5-ctp2-now-available-for-download.aspx&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2385961957160321240-7797305868803016197?l=serkantsamurkas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://serkantsamurkas.blogspot.com/feeds/7797305868803016197/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://serkantsamurkas.blogspot.com/2009/11/adonet-data-services-v15-ctp2.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2385961957160321240/posts/default/7797305868803016197'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2385961957160321240/posts/default/7797305868803016197'/><link rel='alternate' type='text/html' href='http://serkantsamurkas.blogspot.com/2009/11/adonet-data-services-v15-ctp2.html' title='ADO.NET Data Services v1.5 CTP2'/><author><name>Serkant Samurkas</name><uri>http://www.blogger.com/profile/06631003389148279210</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_mLdFslV5DLc/SkKF_rkNlyI/AAAAAAAAAAM/jEbTIs7-lZA/S220/Serkant.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2385961957160321240.post-8012805298535209402</id><published>2009-08-13T07:55:00.000-07:00</published><updated>2009-12-13T02:08:13.963-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OOP Tips'/><title type='text'>Creating Proxy Object with Using Generic</title><content type='html'>public class ObjectA : MarshalByRefObject&lt;br /&gt;   {&lt;br /&gt;       public void MethodA()&lt;br /&gt;       {&lt;br /&gt;           Console.WriteLine("MethodA is called.");&lt;br /&gt;       }&lt;br /&gt;   }&lt;br /&gt;&lt;br /&gt;   public class ObjectB : MarshalByRefObject&lt;br /&gt;   {&lt;br /&gt;       public void MethodB()&lt;br /&gt;       {&lt;br /&gt;           Console.WriteLine("MethoB is called");&lt;br /&gt;       }&lt;br /&gt;   }&lt;br /&gt;   public class GenericProxyManager&lt;tobject&gt; : RealProxy where TObject : new()&lt;br /&gt;   {&lt;br /&gt;       private TObject _objectInstance;&lt;br /&gt;&lt;br /&gt;       public GenericProxyManager(TObject objectInstance) : base(typeof(TObject))&lt;br /&gt;       {&lt;br /&gt;           this._objectInstance = objectInstance;&lt;br /&gt;       }&lt;br /&gt;&lt;br /&gt;       public static TObject GetProxyObject()&lt;br /&gt;       {&lt;br /&gt;           TObject objectInstance = new TObject();&lt;br /&gt;           GenericProxyManager&lt;tobject&gt; proxyObject = new GenericProxyManager&lt;tobject&gt;(objectInstance);&lt;br /&gt;           TObject transparentProxyObject = (TObject)proxyObject.GetTransparentProxy();&lt;br /&gt;           return transparentProxyObject;&lt;br /&gt;       }&lt;br /&gt;&lt;br /&gt;       public override IMessage Invoke(IMessage msg)&lt;br /&gt;       {&lt;br /&gt;           IMethodCallMessage message = (IMethodCallMessage)msg;&lt;br /&gt;          &lt;br /&gt;           // Unless you are sure the implementation covers only methods, you need to write some additional code for properties ( get/set )&lt;br /&gt;           if (message != null)&lt;br /&gt;           {&lt;br /&gt;               Console.WriteLine(message.MethodName + " has been handled before it called");&lt;br /&gt;               // Write necessary code here - this is before you invoke the method&lt;br /&gt;               object methodRetval = message.MethodBase.Invoke(_objectInstance, message.InArgs);&lt;br /&gt;               // Write necessary code here - this is after you invoke the method&lt;br /&gt;               ReturnMessage retVal = new ReturnMessage(methodRetval, null, 0, message.LogicalCallContext, message);&lt;br /&gt;               return retVal;&lt;br /&gt;           }&lt;br /&gt;           return null;&lt;br /&gt;       }&lt;br /&gt;   }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Lets execute the following code now&lt;br /&gt;           ObjectA obj = GenericProxyManager&lt;objecta&gt;.GetProxyObject();&lt;br /&gt;           obj.MethodA();&lt;br /&gt;&lt;br /&gt;           ObjectB obj2 = GenericProxyManager&lt;objectb&gt;.GetProxyObject();&lt;br /&gt;           obj2.MethodB();&lt;br /&gt;&lt;br /&gt;Result will be&lt;br /&gt;&lt;br /&gt;MethodA has been handled before it called&lt;br /&gt;MethodA is called.&lt;br /&gt;MethodB has been handled before it called&lt;br /&gt;MethoB is called&lt;/objectb&gt;&lt;/objecta&gt;&lt;/tobject&gt;&lt;/tobject&gt;&lt;/tobject&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2385961957160321240-8012805298535209402?l=serkantsamurkas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://serkantsamurkas.blogspot.com/feeds/8012805298535209402/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://serkantsamurkas.blogspot.com/2009/08/creating-proxy-object-with-using.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2385961957160321240/posts/default/8012805298535209402'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2385961957160321240/posts/default/8012805298535209402'/><link rel='alternate' type='text/html' href='http://serkantsamurkas.blogspot.com/2009/08/creating-proxy-object-with-using.html' title='Creating Proxy Object with Using Generic'/><author><name>Serkant Samurkas</name><uri>http://www.blogger.com/profile/06631003389148279210</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_mLdFslV5DLc/SkKF_rkNlyI/AAAAAAAAAAM/jEbTIs7-lZA/S220/Serkant.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2385961957160321240.post-8140651421207823188</id><published>2009-08-12T09:08:00.000-07:00</published><updated>2009-12-13T02:06:32.877-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Normalization'/><title type='text'>Database Normalization</title><content type='html'>Normalization is a process of certain rules to be applied while a database is being designed. The goal of this process is to prevent unnecesary data repeats and ensuring data dependencies and efficent use of data.&lt;br /&gt;&lt;br /&gt;So what are these rules? There are five known normalization forms. Lets explain these one by one;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;First Normal Form (1NF):&lt;br /&gt;&lt;/span&gt;One row can contain only one information for a specific data.&lt;br /&gt;&lt;br /&gt;Example;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;WRONG:&lt;/span&gt; We have a Cars table and this table has a column called FuelType as nvarchar(255) and we are storing the data as&lt;br /&gt;&lt;table border="1" cellpadding="0" cellspacing="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td colspan="2"&gt;Cars&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;CarID&lt;/td&gt;&lt;td&gt;FuelType&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;1&lt;/td&gt;&lt;td&gt;"Petrol, Diesel"&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;2&lt;/td&gt;&lt;td&gt;"Diesel"&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;3&lt;/td&gt;&lt;td&gt;"Electric, Diesel"&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;CORRECT:&lt;/span&gt; We need to create a new table called FuelTypes which will store all the fuel types and instead of using FuelType nvarchar(255) column, FuelTypeID int should be used and needs to be related to FuelTypes table.&lt;br /&gt;&lt;table border="1" cellpadding="0" cellspacing="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td colspan="2"&gt;FuelTypes&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;FuelTypeID&lt;/td&gt;&lt;td&gt;Name&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;1&lt;/td&gt;&lt;td&gt;"Petrol"&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;2&lt;/td&gt;&lt;td&gt;"Diesel"&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;3&lt;/td&gt;&lt;td&gt;"Electric"&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;table border="1" cellpadding="0" cellspacing="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td colspan="2"&gt;Cars&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;CarID&lt;/td&gt;&lt;td&gt;FuelTypeID&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;1&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;1&lt;/td&gt;&lt;td&gt;2&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;2&lt;/td&gt;&lt;td&gt;2&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;3&lt;/td&gt;&lt;td&gt;3&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;3&lt;/td&gt;&lt;td&gt;2&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;h3&gt;Second Normal Form (2NF)&lt;/h3&gt;A table that has a lookup column (which is primary key in other table) can not contain any information from that lookup table.&lt;br /&gt;&lt;br /&gt;Example;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;WRONG:&lt;/span&gt;&lt;br /&gt;&lt;table border="1" cellpadding="0" cellspacing="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td colspan="3"&gt;Services&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ServiceID&lt;/td&gt;&lt;td&gt;WorkerID&lt;/td&gt;&lt;td&gt;WorkerName&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;1&lt;/td&gt;&lt;td&gt;2&lt;/td&gt;&lt;td&gt;Serkant&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;2&lt;/td&gt;&lt;td&gt;3&lt;/td&gt;&lt;td&gt;Catherine&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;table border="1" cellpadding="0" cellspacing="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td colspan="2"&gt;Workers&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;WorkerID&lt;/td&gt;&lt;td&gt;WorkerName&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;2&lt;/td&gt;&lt;td&gt;Serkant&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;3&lt;/td&gt;&lt;td&gt;Catherine&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;CORRECT:&lt;/span&gt;&lt;br /&gt;&lt;table border="1" cellpadding="0" cellspacing="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td colspan="3"&gt;Services&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ServiceID&lt;/td&gt;&lt;td&gt;WorkerID&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;1&lt;/td&gt;&lt;td&gt;2&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;2&lt;/td&gt;&lt;td&gt;3&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;table border="1" cellpadding="0" cellspacing="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td colspan="2"&gt;Workers&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;WorkerID&lt;/td&gt;&lt;td&gt;WorkerName&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;2&lt;/td&gt;&lt;td&gt;Serkant&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;3&lt;/td&gt;&lt;td&gt;Catherine&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;h3&gt;Third Normal Form (3NF)&lt;/h3&gt;A table whose non-primary key fields are dependent only on the primary key and therefore have no dependence any other non-primary key field in the table.&lt;br /&gt;&lt;br /&gt;Example;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;WRONG:&lt;/span&gt;&lt;br /&gt;&lt;table border="1" cellpadding="0" cellspacing="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td colspan="3"&gt;Services&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ServiceID&lt;/td&gt;&lt;td&gt;WorkerName&lt;/td&gt;&lt;td&gt;WorkerPhone&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;1&lt;/td&gt;&lt;td&gt;Serkant&lt;/td&gt;&lt;td&gt;0777 777 7777&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;2&lt;/td&gt;&lt;td&gt;Daniel&lt;/td&gt;&lt;td&gt;0777 888 8888&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;CORRECT:&lt;/span&gt;&lt;br /&gt;&lt;table border="1" cellpadding="0" cellspacing="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td colspan="2"&gt;Services&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ServiceID&lt;/td&gt;&lt;td&gt;WorkerID&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;1&lt;/td&gt;&lt;td&gt;2&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;2&lt;/td&gt;&lt;td&gt;3&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;table border="1" cellpadding="0" cellspacing="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td colspan="3"&gt;Workers&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;WorkerID&lt;/td&gt;&lt;td&gt;WorkerName&lt;/td&gt;&lt;td&gt;WorkerPhone&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;2&lt;/td&gt;&lt;td&gt;Serkant&lt;/td&gt;&lt;td&gt;0777 777 7777&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;3&lt;/td&gt;&lt;td&gt;Daniel&lt;/td&gt;&lt;td&gt;0777 888 8888&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Fourth Normal Form (4NF)&lt;/h3&gt;&lt;br /&gt;A table can not contain two or more 1:n or n:m relationships that are not directly related.&lt;br /&gt;&lt;br /&gt;Example;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;WRONG:&lt;/span&gt;&lt;br /&gt;&lt;table border="1" cellpadding="0" cellspacing="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td colspan="3"&gt;Book Deliveries&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Bookstore&lt;/td&gt;&lt;td&gt;Book&lt;/td&gt;&lt;td&gt;Area&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Bookstore A&lt;/td&gt;&lt;td&gt;Book A&lt;/td&gt;&lt;td&gt;Area A&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Bookstore A&lt;/td&gt;&lt;td&gt;Book A&lt;/td&gt;&lt;td&gt;Area B&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Bookstore B&lt;/td&gt;&lt;td&gt;Book B&lt;/td&gt;&lt;td&gt;Area B&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Bookstore C&lt;/td&gt;&lt;td&gt;Book B&lt;/td&gt;&lt;td&gt;Area C&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;CORRECT:&lt;/span&gt;&lt;br /&gt;&lt;table border="1" cellpadding="0" cellspacing="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td colspan="2"&gt;Bookstore Books&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Bookstore&lt;/td&gt;&lt;td&gt;Book&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Bookstore A&lt;/td&gt;&lt;td&gt;Book A&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Bookstore B&lt;/td&gt;&lt;td&gt;Book A&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Bookstore B&lt;/td&gt;&lt;td&gt;Book B&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;&lt;table border="1" cellpadding="0" cellspacing="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td colspan="2"&gt;Bookstore Delivery Areas&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Bookstore&lt;/td&gt;&lt;td&gt;Area&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Bookstore A&lt;/td&gt;&lt;td&gt;Area A&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Bookstore B&lt;/td&gt;&lt;td&gt;Area A&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Bookstore B&lt;/td&gt;&lt;td&gt;Area B&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Bookstore B&lt;/td&gt;&lt;td&gt;Area C&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Fifth Normal Form (5NF)&lt;/h3&gt;This form deals with cases where information can be reconstructed from smaller pieces of information that can be maintained with less redundancy.&lt;br /&gt;&lt;br /&gt;Example;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;WRONG:&lt;/span&gt;&lt;br /&gt;&lt;table border="1" cellpadding="0" cellspacing="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;Salesman&lt;/td&gt;&lt;td&gt;Company&lt;/td&gt;&lt;td&gt;Product&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Salesman A&lt;/td&gt;&lt;td&gt;Company A&lt;/td&gt;&lt;td&gt;Product A&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Salesman A&lt;/td&gt;&lt;td&gt;Company A&lt;/td&gt;&lt;td&gt;Product B&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Salesman B&lt;/td&gt;&lt;td&gt;Company B&lt;/td&gt;&lt;td&gt;Product A&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Salesman B&lt;/td&gt;&lt;td&gt;Company B&lt;/td&gt;&lt;td&gt;Product B&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;CORRECT:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;table border="1" cellpadding="0" cellspacing="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td colspan="2"&gt;Company Salesmen&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Company&lt;/td&gt;&lt;td&gt;Salesman&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Company A&lt;/td&gt;&lt;td&gt;Salesman A&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Company B&lt;/td&gt;&lt;td&gt;Salesman B&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;&lt;table border="1" cellpadding="0" cellspacing="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td colspan="2"&gt;Company Products&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Company&lt;/td&gt;&lt;td&gt;Product&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Company A&lt;/td&gt;&lt;td&gt;Product A&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Company A&lt;/td&gt;&lt;td&gt;Product B&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Company B&lt;/td&gt;&lt;td&gt;Product A&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Company B&lt;/td&gt;&lt;td&gt;Product B&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;table border="1" cellpadding="0" cellspacing="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td colspan="2"&gt;Salesman Products&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Salesman&lt;/td&gt;&lt;td&gt;Product&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Salesman A&lt;/td&gt;&lt;td&gt;Product A&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Salesman A&lt;/td&gt;&lt;td&gt;Product B&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Salesman B&lt;/td&gt;&lt;td&gt;Product A&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Salesman B&lt;/td&gt;&lt;td&gt;Product B&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2385961957160321240-8140651421207823188?l=serkantsamurkas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://serkantsamurkas.blogspot.com/feeds/8140651421207823188/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://serkantsamurkas.blogspot.com/2009/08/database-normalization.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2385961957160321240/posts/default/8140651421207823188'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2385961957160321240/posts/default/8140651421207823188'/><link rel='alternate' type='text/html' href='http://serkantsamurkas.blogspot.com/2009/08/database-normalization.html' title='Database Normalization'/><author><name>Serkant Samurkas</name><uri>http://www.blogger.com/profile/06631003389148279210</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_mLdFslV5DLc/SkKF_rkNlyI/AAAAAAAAAAM/jEbTIs7-lZA/S220/Serkant.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2385961957160321240.post-1430679397115061100</id><published>2009-08-12T01:08:00.000-07:00</published><updated>2009-12-13T02:06:54.004-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server Performance Tricks'/><title type='text'>[SQL Server Performance] Speed up your query with covering index</title><content type='html'>Do you use the same statement often? Are you facing performance issues on that query? Covering index is what you need :) (Ofc depends on your statement/data size)&lt;br /&gt;&lt;br /&gt;So what is covering? Covering index is a technique of designing indexes for a table, not a type of index. I will explain this technique with an example.&lt;br /&gt;&lt;br /&gt;Lets take Orders table from Northwind sample db. Orders table has a clustered index on CustomerID. We would like to see shipping fee for daily basis. To get this data execute to following query.&lt;br /&gt;&lt;br /&gt;select OrderDate, SUM(Freight) from Northwind.dbo.[Orders] where group by OrderDate&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_mLdFslV5DLc/SoKjHnA2G5I/AAAAAAAAABQ/ZC307GAZyEs/s1600-h/CoveringIndexWithoutCoveringIndex.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 400px; height: 62px;" src="http://1.bp.blogspot.com/_mLdFslV5DLc/SoKjHnA2G5I/AAAAAAAAABQ/ZC307GAZyEs/s400/CoveringIndexWithoutCoveringIndex.jpg" alt="" id="BLOGGER_PHOTO_ID_5369033056905993106" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;As you can see from execution plan, it scans all clustered index data then sorting and grouping the result from index scan.&lt;br /&gt;&lt;br /&gt;Lets put an index for OrderDate and Freight fields and see what happens&lt;br /&gt;&lt;br /&gt;CREATE  INDEX IX_OrderDate_Freight ON dbo.ORDERS(OrderDate, Freight)&lt;br /&gt;&lt;br /&gt;then execute the same query&lt;br /&gt;&lt;br /&gt;select OrderDate, SUM(Freight) from Northwind.dbo.[Orders] where group by OrderDate&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_mLdFslV5DLc/SoKi8_OuuOI/AAAAAAAAABI/2ygZytXBAVk/s1600-h/CoveringIndexWithCoveringIndex.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 400px; height: 82px;" src="http://2.bp.blogspot.com/_mLdFslV5DLc/SoKi8_OuuOI/AAAAAAAAABI/2ygZytXBAVk/s400/CoveringIndexWithCoveringIndex.jpg" alt="" id="BLOGGER_PHOTO_ID_5369032874428119266" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;It is directly accessing to the index and getting all the necessary information from index. Normally if sql scans a non-clustered index and there are some fields in the statement which does not exist in the index,  Sql Server engine goes to original record to get the field values for every single record. This may cause a performance issue.  In this example as it gets all necessary information from index it will speed up the query. Additionally as non-clustered index is sorted, it saves the engine from making additional sorting process.&lt;br /&gt;&lt;br /&gt;Note: When you select your index, try to pick small size ones like smallint, integer, datetime. If you have bigger size fields then the implementation may cost more then you had. Try to prevent to put index on the table which has big number of insert/update/delete operations as well. Because everytime a record is changed, indexes will be reviewed from SQL Server Engine to see if they need to be sorted again.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2385961957160321240-1430679397115061100?l=serkantsamurkas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://serkantsamurkas.blogspot.com/feeds/1430679397115061100/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://serkantsamurkas.blogspot.com/2009/08/sql-server-performance-speed-up-your.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2385961957160321240/posts/default/1430679397115061100'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2385961957160321240/posts/default/1430679397115061100'/><link rel='alternate' type='text/html' href='http://serkantsamurkas.blogspot.com/2009/08/sql-server-performance-speed-up-your.html' title='[SQL Server Performance] Speed up your query with covering index'/><author><name>Serkant Samurkas</name><uri>http://www.blogger.com/profile/06631003389148279210</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_mLdFslV5DLc/SkKF_rkNlyI/AAAAAAAAAAM/jEbTIs7-lZA/S220/Serkant.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_mLdFslV5DLc/SoKjHnA2G5I/AAAAAAAAABQ/ZC307GAZyEs/s72-c/CoveringIndexWithoutCoveringIndex.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2385961957160321240.post-2072023779855090035</id><published>2009-08-07T05:40:00.000-07:00</published><updated>2009-12-13T02:07:18.663-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server Performance Tricks'/><title type='text'>Difference between Clustered and Non-Clustered Indexes</title><content type='html'>Most of the performance issues are being faced is about how indexes are implemented. Although indexing is very benefical, it can cause performance problems if it is not well structured. In this post i am going to explain the difference between Clustered and Non-Clustered, and also on which condition we should prevent using indexing.&lt;br /&gt;&lt;br /&gt;Following explains the methods we are going to use ;&lt;br /&gt;&lt;br /&gt;* Lists all of a table's data and index pages&lt;br /&gt;DBCC IND&lt;br /&gt;(&lt;br /&gt;['database name'|database id], -- the database to use&lt;br /&gt;table name, -- the table name to list results&lt;br /&gt;index id, -- an index_id from sys.indexes; -1 shows all indexes and IAMs, -2 just show IAMs&lt;br /&gt;)&lt;br /&gt;&lt;br /&gt;* Setting via trace flag 3604, It allows to instruct the engine to send output to the console&lt;br /&gt;DBCC TRACEON(3604)&lt;br /&gt;&lt;br /&gt;* DBCC PAGE statement lists the page header, data rows, and row offset table for any data page in a database.&lt;br /&gt;DBCC PAGE ( {dbid | dbname}, filenum, pagenum [, printopt] [, cache]&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Lets have a look how they stored by SQL;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;1) Non indexed Table&lt;br /&gt;Tables do not have a default index.&lt;br /&gt;&lt;br /&gt;. Create the test table&lt;br /&gt;&lt;br /&gt;Create Table TestTable&lt;br /&gt;(&lt;br /&gt; Id Int,&lt;br /&gt; Name Varchar(255)&lt;br /&gt;)&lt;br /&gt;&lt;br /&gt;. Insert test data&lt;br /&gt;&lt;br /&gt;Insert Into TestTable Values  (3, 'Name3')&lt;br /&gt;Insert Into TestTable Values  (1, 'Name1')&lt;br /&gt;Insert Into TestTable Values  (2, 'Name2')&lt;br /&gt;&lt;br /&gt;. Query the table&lt;br /&gt;&lt;br /&gt;Select * From TestTable&lt;br /&gt;&lt;br /&gt;. See the result&lt;br /&gt;&lt;br /&gt;   Id              Name&lt;br /&gt;--------------      ------------------&lt;br /&gt;   3               Name3&lt;br /&gt;   1               Name1&lt;br /&gt;   1               Name2&lt;br /&gt;&lt;br /&gt;As there is no index, data was returned as the same order as they were inserted.&lt;br /&gt;&lt;br /&gt;. See the structure of the data&lt;br /&gt;Declare @dbID Int, @TableID Int&lt;br /&gt;Set @dbID = db_id()&lt;br /&gt;Set @TableID = object_id('TestTable')&lt;br /&gt;DBCC ind(@dbID, @TableID, -1)&lt;br /&gt;&lt;br /&gt;Here is the result&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_mLdFslV5DLc/SnxK-cBMgQI/AAAAAAAAAAw/SDSDOCeIqQs/s1600-h/TableWithoutIndex.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px; height: 18px;" src="http://4.bp.blogspot.com/_mLdFslV5DLc/SnxK-cBMgQI/AAAAAAAAAAw/SDSDOCeIqQs/s320/TableWithoutIndex.jpg" alt="" id="BLOGGER_PHOTO_ID_5367247292452339970" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The columns mean:&lt;br /&gt;&lt;br /&gt;  *      PageFID - the file ID of the page&lt;br /&gt;  *      PagePID - the page number in the file&lt;br /&gt;  *      IAMFID - the file ID of the IAM page that maps this page (this will be NULL for IAM pages themselves as they're not self-referential)&lt;br /&gt;  *      IAMPID - the page number in the file of the IAM page that maps this page&lt;br /&gt;  *      ObjectID - the ID of the object this page is part of&lt;br /&gt;  *      IndexID - the ID of the index this page is part of&lt;br /&gt;  *      PartitionNumber - the partition number (as defined by the partitioning scheme for the index) of the partition this page is part of&lt;br /&gt;  *      PartitionID - the internal ID of the partition this page is part of&lt;br /&gt;  *      iam_chain_type - see IAM chains and allocation units in SQL Server 2005&lt;br /&gt;  *      PageType - the page type. Some common ones are:&lt;br /&gt;                      1 - data page&lt;br /&gt;                      2 - index page&lt;br /&gt;          3 and 4 - text pages&lt;br /&gt;          8 - GAM page&lt;br /&gt;          9 - SGAM page&lt;br /&gt;          10 - IAM page&lt;br /&gt;          11 - PFS page&lt;br /&gt;  *      IndexLevel - what level the page is at in the index (if at all). Remember that index levels go from 0 at the leaf to N at the root page (except in clustered indexes in SQL Server 2000 and 7.0 - where there's a 0 at the leaf level (data pages) and a 0 at the next level up (first level of index pages))&lt;br /&gt;  *      NextPageFID and NextPagePID - the page ID of the next page in the doubly-linked list of pages at this level of the index&lt;br /&gt;  *      PrevPageFID and PrevPagePID - the page ID of the previous page in the doubly-linked list of pages at this level of the index&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;But we are only interested with PagePID, IndexID and PageType&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2385961957160321240-2072023779855090035?l=serkantsamurkas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://serkantsamurkas.blogspot.com/feeds/2072023779855090035/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://serkantsamurkas.blogspot.com/2009/08/difference-between-clustered-and-non.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2385961957160321240/posts/default/2072023779855090035'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2385961957160321240/posts/default/2072023779855090035'/><link rel='alternate' type='text/html' href='http://serkantsamurkas.blogspot.com/2009/08/difference-between-clustered-and-non.html' title='Difference between Clustered and Non-Clustered Indexes'/><author><name>Serkant Samurkas</name><uri>http://www.blogger.com/profile/06631003389148279210</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_mLdFslV5DLc/SkKF_rkNlyI/AAAAAAAAAAM/jEbTIs7-lZA/S220/Serkant.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_mLdFslV5DLc/SnxK-cBMgQI/AAAAAAAAAAw/SDSDOCeIqQs/s72-c/TableWithoutIndex.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2385961957160321240.post-7322941377796169566</id><published>2009-06-25T02:15:00.001-07:00</published><updated>2010-02-28T01:06:57.420-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SPDataSource'/><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><title type='text'>SPDataSource</title><content type='html'>There are many ways to retrieve SharePoint content such as SPDataSource, SPQuery&lt;br /&gt;       and looping through in SharePoint Object library.&lt;br /&gt;&lt;br /&gt;       Today we will have a look at the SPDataSource. SPDataSource is an object&lt;br /&gt;       datasource which supply information from SharePoint by given parameters.&lt;br /&gt;&lt;br /&gt;      &lt;br /&gt;&lt;br /&gt;       Here is a sample of SPDataSource syntax.&lt;br /&gt;&lt;br /&gt;  &amp;lt;SharePointWebControls:SPDataSource runat="server" DataSourceMode="List"&lt;br /&gt;           UseInternalName="true" selectcommand="&amp;lt;View/&amp;gt;" id="SPDataSource1"&amp;gt;&lt;br /&gt;&lt;br /&gt;  &amp;lt;SelectParameters&amp;gt;&lt;br /&gt;&lt;br /&gt;     &amp;lt;webpartpages:DataFormParameter Name="ListName" ParameterKey="ListName"&lt;br /&gt;           PropertyName="ParameterValues" DefaultValue="Tasks"/&amp;gt;&lt;br /&gt;&lt;br /&gt;  &amp;lt;/SelectParameters&amp;gt;&lt;br /&gt;          &lt;br /&gt;&lt;br /&gt;            &amp;lt;/SharePointWebControls:SPDataSource&amp;gt;&lt;br /&gt;&lt;br /&gt;      &lt;br /&gt;&lt;br /&gt;        &lt;b&gt;DataSourceMode&lt;/b&gt;:&lt;br /&gt;       (&lt;br /&gt;       &lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.webcontrols.spdatasource.datasourcemode.aspx" target="_blank"&gt;&lt;br /&gt;       http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.webcontrols.spdatasource.datasourcemode.aspx&lt;/a&gt;&lt;br /&gt;       )&lt;br /&gt;&lt;br /&gt;            • &lt;b&gt;List&lt;/b&gt;: Retrieves&lt;br /&gt;       data from a list&lt;br /&gt;      &lt;br /&gt;&lt;br /&gt;        &amp;lt;SharePoint:SPDataSource ID="SPDataSource1"&lt;br /&gt;       runat="server" DataSourceMode="List" UseInternalName="true"&lt;br /&gt;       SelectCommand="&amp;lt;Query&amp;gt;&amp;lt;OrderBy&amp;gt;&amp;lt;FieldRef Name='DueDate' Ascending='true'&lt;br /&gt;       /&amp;gt;&amp;lt;/OrderBy&amp;gt;&amp;lt;/Query&amp;gt;"&amp;gt;&lt;br /&gt;&lt;br /&gt;         &amp;lt;SelectParameters&amp;gt;&lt;br /&gt;&lt;br /&gt;             &amp;lt;asp:Parameter&lt;br /&gt;       Name="ListName" DefaultValue="Tasks" /&amp;gt;&lt;br /&gt;&lt;br /&gt;             &amp;lt;asp:Parameter&lt;br /&gt;       Name="WebID" DefaultValue="RootWeb" /&amp;gt;&lt;br /&gt;&lt;br /&gt;         &amp;lt;/SelectParameters&amp;gt;&lt;br /&gt;&lt;br /&gt;         &amp;lt;/SharePoint:SPDataSource&amp;gt;&lt;br /&gt;&lt;br /&gt;      &lt;br /&gt;      &lt;br /&gt;&lt;br /&gt;         &amp;lt;asp:GridView ID="GridView1"&lt;br /&gt;       runat="server" DataSourceID="SPDataSource1" AutoGenerateColumns="false"&amp;gt;&lt;br /&gt;&lt;br /&gt;         &amp;lt;Columns&amp;gt;&lt;br /&gt;&lt;br /&gt;         &amp;lt;asp:BoundField HeaderText="Due Date"&lt;br /&gt;       DataField="DueDate" /&amp;gt;&lt;br /&gt;&lt;br /&gt;         &amp;lt;asp:BoundField HeaderText="Priority"&lt;br /&gt;       DataField="Priority" /&amp;gt;&lt;br /&gt;&lt;br /&gt;         &amp;lt;asp:BoundField HeaderText="Title"&lt;br /&gt;       DataField="Title" /&amp;gt;&lt;br /&gt;&lt;br /&gt;         &amp;lt;asp:BoundField HeaderText="Status"&lt;br /&gt;       DataField="Status" /&amp;gt;&lt;br /&gt;&lt;br /&gt;         &amp;lt;/Columns&amp;gt;&lt;br /&gt;&lt;br /&gt;         &amp;lt;/asp:GridView&amp;gt;&lt;br /&gt;&lt;br /&gt;      &lt;br /&gt;&lt;br /&gt;            • &lt;b&gt;ListItem&lt;/b&gt;: Retrieves&lt;br /&gt;       data from a single list item&lt;br /&gt;      &lt;br /&gt;&lt;br /&gt;           &amp;lt;SharePoint:SPDataSource&lt;br /&gt;       ID="SPDataSource1" runat="server" DataSourceMode="ListItem"&lt;br /&gt;       UseInternalName="true" &amp;gt;&lt;br /&gt;&lt;br /&gt;            &lt;br /&gt;       &amp;lt;SelectParameters&amp;gt;&lt;br /&gt;&lt;br /&gt;             &amp;lt;asp:Parameter&lt;br /&gt;       Name="WebID" DefaultValue="RootWeb" /&amp;gt;&lt;br /&gt;&lt;br /&gt;             &amp;lt;asp:Parameter&lt;br /&gt;       Name="ListName" DefaultValue="Announcements" /&amp;gt;&lt;br /&gt;&lt;br /&gt;             &amp;lt;asp:Parameter&lt;br /&gt;       Name="ListItemID" DefaultValue="1" /&amp;gt;&lt;br /&gt;&lt;br /&gt;            &lt;br /&gt;       &amp;lt;/SelectParameters&amp;gt;&lt;br /&gt;&lt;br /&gt;           &lt;br /&gt;       &amp;lt;/SharePoint:SPDataSource&amp;gt;&lt;br /&gt;      &lt;br /&gt;&lt;br /&gt;            &amp;lt;asp:GridView&lt;br /&gt;       ID="GridView1" runat="server" DataSourceID="SPDataSource1"&lt;br /&gt;       AutoGenerateColumns="false"&amp;gt;&lt;br /&gt;&lt;br /&gt;             &amp;lt;Columns&amp;gt;&lt;br /&gt;      &lt;br /&gt;&lt;br /&gt;            &amp;lt;asp:BoundField&lt;br /&gt;       HeaderText="Title" DataField="Title" /&amp;gt;&lt;br /&gt;&lt;br /&gt;             &amp;lt;asp:BoundField&lt;br /&gt;       HeaderText="Expires" DataField="Expires" /&amp;gt;&lt;br /&gt;&lt;br /&gt;             &amp;lt;/Columns&amp;gt;&lt;br /&gt;&lt;br /&gt;             &amp;lt;/asp:GridView&amp;gt;&lt;br /&gt;&lt;br /&gt;      &lt;br /&gt;&lt;br /&gt;            • &lt;b&gt;CrossList&lt;/b&gt;:&lt;br /&gt;       Retrieves data from multiple lists in multiple websites in the same site&lt;br /&gt;       collection.&lt;br /&gt;      &lt;br /&gt;&lt;br /&gt;           &lt;br /&gt;       &amp;lt;SharePoint:SPDataSource ID="SPDataSource1" runat="server"&lt;br /&gt;       DataSourceMode="CrossList" UseInternalName="true" SelectCommand="&amp;lt;Webs&lt;br /&gt;       Scope='Recursive'&amp;gt;&amp;lt;/Webs&amp;gt; &amp;lt;Lists ServerTemplate='106'&amp;gt;&amp;lt;/Lists&amp;gt; &amp;lt;View&amp;gt;&lt;br /&gt;       &amp;lt;ViewFields&amp;gt; &amp;lt;FieldRef Name='EventDate'/&amp;gt; &amp;lt;FieldRef Name='Title'/&amp;gt; &amp;lt;FieldRef&lt;br /&gt;       Name='Location'/ &amp;lt;/ViewFields&amp;gt; &amp;lt;Query&amp;gt; &amp;lt;Where&amp;gt; &amp;lt;And&amp;gt; &amp;lt;Eq&amp;gt; &amp;lt;FieldRef&lt;br /&gt;       Name='Location'/&amp;gt; &amp;lt;Value Type='Text'&amp;gt;Your office&amp;lt;/Value&amp;gt; &amp;lt;/Eq&amp;gt; &amp;lt;Eq&amp;gt; &amp;lt;FieldRef&lt;br /&gt;       Name='EventDate'/&amp;gt; &amp;lt;Value Type='DateTime'&amp;gt;&amp;lt;Today/&amp;gt;&amp;lt;/Value&amp;gt; &amp;lt;/Eq&amp;gt; &amp;lt;/And&amp;gt; &amp;lt;/Where&amp;gt;&lt;br /&gt;       &amp;lt;/Query&amp;gt; &amp;lt;/View&amp;gt;" &amp;gt;&lt;br /&gt;&lt;br /&gt;            &lt;br /&gt;       &amp;lt;/SharePoint:SPDataSource&amp;gt;&lt;br /&gt;&lt;br /&gt;             &amp;lt;asp:GridView&lt;br /&gt;       ID="GridView1" runat="server" DataSourceID="SPDataSource1"&lt;br /&gt;       AutoGenerateColumns="false" Width="75%" HeaderStyle-HorizontalAlign="Left" &amp;gt;&lt;br /&gt;&lt;br /&gt;             &amp;lt;Columns&amp;gt;&lt;br /&gt;&lt;br /&gt;             &amp;lt;asp:BoundField&lt;br /&gt;       HeaderText="Date" DataField="EventDate" /&amp;gt;&lt;br /&gt;&lt;br /&gt;             &amp;lt;asp:BoundField&lt;br /&gt;       HeaderText="Title" DataField="Title" /&amp;gt;&lt;br /&gt;&lt;br /&gt;             &amp;lt;asp:BoundField&lt;br /&gt;       HeaderText="Location" DataField="Location" /&amp;gt;&lt;br /&gt;&lt;br /&gt;             &amp;lt;/Columns&amp;gt;&lt;br /&gt;&lt;br /&gt;             &amp;lt;/asp:GridView&amp;gt;&lt;br /&gt;&lt;br /&gt;      &lt;br /&gt;&lt;br /&gt;            • &lt;b&gt;ListOfLists&lt;/b&gt;:&lt;br /&gt;       Retrieves properties of lists in a specified web site.&lt;br /&gt;      &lt;br /&gt;&lt;br /&gt;           &lt;br /&gt;       &amp;lt;SharePoint:SPDataSource ID="SPDataSource1" runat="server"&lt;br /&gt;       DataSourceMode="CrossList" UseInternalName="true" SelectCommand="&amp;lt;Webs&lt;br /&gt;       Scope='Recursive'&amp;gt;&amp;lt;/Webs&amp;gt; &amp;lt;Lists ServerTemplate='106'&amp;gt;&amp;lt;/Lists&amp;gt; &amp;lt;View&amp;gt;&lt;br /&gt;       &amp;lt;ViewFields&amp;gt; &amp;lt;FieldRef Name='EventDate'/&amp;gt; &amp;lt;FieldRef Name='Title'/&amp;gt; &amp;lt;FieldRef&lt;br /&gt;       Name='Location'/ &amp;lt;/ViewFields&amp;gt; &amp;lt;Query&amp;gt; &amp;lt;Where&amp;gt; &amp;lt;And&amp;gt; &amp;lt;Eq&amp;gt; &amp;lt;FieldRef&lt;br /&gt;       Name='Location'/&amp;gt; &amp;lt;Value Type='Text'&amp;gt;Your office&amp;lt;/Value&amp;gt; &amp;lt;/Eq&amp;gt; &amp;lt;Eq&amp;gt; &amp;lt;FieldRef&lt;br /&gt;       Name='EventDate'/&amp;gt; &amp;lt;Value Type='DateTime'&amp;gt;&amp;lt;Today/&amp;gt;&amp;lt;/Value&amp;gt; &amp;lt;/Eq&amp;gt; &amp;lt;/And&amp;gt; &amp;lt;/Where&amp;gt;&lt;br /&gt;       &amp;lt;/Query&amp;gt; &amp;lt;/View&amp;gt;" &amp;gt;&lt;br /&gt;&lt;br /&gt;            &lt;br /&gt;       &amp;lt;/SharePoint:SPDataSource&amp;gt;&lt;br /&gt;&lt;br /&gt;             &amp;lt;asp:GridView&lt;br /&gt;       ID="GridView1" runat="server" DataSourceID="SPDataSource1"&lt;br /&gt;       AutoGenerateColumns="false" Width="75%" HeaderStyle-HorizontalAlign="Left" &amp;gt;&lt;br /&gt;&lt;br /&gt;             &amp;lt;Columns&amp;gt;&lt;br /&gt;      &lt;br /&gt;&lt;br /&gt;            &amp;lt;asp:BoundField&lt;br /&gt;       HeaderText="Date" DataField="EventDate" /&amp;gt;&lt;br /&gt;&lt;br /&gt;            &amp;lt;asp:BoundField&lt;br /&gt;       HeaderText="Title" DataField="Title" /&amp;gt;&lt;br /&gt;      &lt;br /&gt;&lt;br /&gt;            &amp;lt;asp:BoundField&lt;br /&gt;       HeaderText="Location" DataField="Location" /&amp;gt;&lt;br /&gt;      &lt;br /&gt;&lt;br /&gt;            &amp;lt;/Columns&amp;gt;&lt;br /&gt;&lt;br /&gt;             &amp;lt;/asp:GridView&amp;gt;&lt;br /&gt;&lt;br /&gt;      &lt;br /&gt;&lt;br /&gt;            • &lt;b&gt;Web&lt;/b&gt;: Retrieves&lt;br /&gt;       properties of subsites of the current web site.&lt;br /&gt;      &lt;br /&gt;&lt;br /&gt;           &lt;br /&gt;       &amp;lt;SharePoint:SPDataSource ID="SPDataSource1" runat="server" DataSourceMode="Webs"&lt;br /&gt;       IncludeHidden="true"&amp;gt;&lt;br /&gt;&lt;br /&gt;            &lt;br /&gt;       &amp;lt;SelectParameters&amp;gt;&lt;br /&gt;&lt;br /&gt;             &amp;lt;asp:Parameter&lt;br /&gt;       Name="WebId" DefaultValue="RootWeb" /&amp;gt;&lt;br /&gt;&lt;br /&gt;            &lt;br /&gt;       &amp;lt;/SelectParameters&amp;gt;&lt;br /&gt;&lt;br /&gt;            &lt;br /&gt;       &amp;lt;/SharePoint:SPDataSource&amp;gt;&lt;br /&gt;&lt;br /&gt;             &amp;lt;asp:GridView&lt;br /&gt;       ID="GridView1" runat="server" DataSourceID="SPDataSource1"&lt;br /&gt;       AutoGenerateColumns="false"&amp;gt;&lt;br /&gt;&lt;br /&gt;             &amp;lt;Columns&amp;gt;&lt;br /&gt;&lt;br /&gt;             &amp;lt;asp:BoundField&lt;br /&gt;       HeaderText="Site Title" DataField="__spTitle" /&amp;gt;&lt;br /&gt;&lt;br /&gt;             &amp;lt;asp:BoundField&lt;br /&gt;       HeaderText="URL" DataField="__spUrl" /&amp;gt;&lt;br /&gt;&lt;br /&gt;             &amp;lt;asp:BoundField&lt;br /&gt;       HeaderText="ID" DataField="__spID" /&amp;gt;&lt;br /&gt;&lt;br /&gt;             &amp;lt;asp:BoundField&lt;br /&gt;       HeaderText="Web Template" DataField="__spWebTemplate" /&amp;gt;&lt;br /&gt;&lt;br /&gt;             &amp;lt;asp:BoundField&lt;br /&gt;       HeaderText="Web Template Id" DataField="__spWebTemplateId" /&amp;gt;&lt;br /&gt;&lt;br /&gt;             &amp;lt;/Columns&amp;gt;&lt;br /&gt;&lt;br /&gt;             &amp;lt;/asp:GridView&amp;gt;&lt;br /&gt;&lt;br /&gt;      &lt;br /&gt;&lt;br /&gt;        &lt;b&gt;SelectCommand&lt;/b&gt;: This is where we define our&lt;br /&gt;       query to get data. CAML is the query syntax. Custom parameters such as&lt;br /&gt;       QueryString, existing variables, programmatically defined            &lt;br /&gt;       parameterbindings can be used.&lt;br /&gt;&lt;br /&gt;                       &lt;b&gt;SelectParameters&lt;/b&gt; (&lt;br /&gt;       &lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.webcontrols.spdatasource.selectparameters.aspx"&gt;&lt;br /&gt;       http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.webcontrols.spdatasource.selectparameters.aspx&lt;/a&gt;&lt;br /&gt;       ): That is used to define to&lt;br /&gt;       pass parameters into data control.&lt;br /&gt;&lt;br /&gt;            Following list states&lt;br /&gt;       what can be assigned as default values&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;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;table class="style1"&gt;&lt;tbody&gt;            &lt;tr&gt;                &lt;td&gt;&lt;br /&gt;                   &lt;b&gt;WebID&lt;/b&gt;                 &lt;/td&gt;                &lt;td&gt;&lt;br /&gt;                   ”RootWeb” for the root Web site. Otherwise, a string representation of a GUID&lt;br /&gt;                   such as the value of the SPWeb.ID property.&lt;br /&gt;               &lt;/td&gt;            &lt;/tr&gt;            &lt;tr&gt;                &lt;td&gt;&lt;br /&gt;                   &lt;b&gt;WebURL&lt;/b&gt;&lt;br /&gt;               &lt;/td&gt;                &lt;td&gt;&lt;br /&gt;                   An empty string for the root Web site. Otherwise, a string containing a&lt;br /&gt;                   server-relative URL.&lt;/td&gt;            &lt;/tr&gt;            &lt;tr&gt;                &lt;td&gt;&lt;br /&gt;                   &lt;b&gt;ListID&lt;/b&gt;                 &lt;/td&gt;                &lt;td&gt;&lt;br /&gt;                   A string representation of a GUID such as the value of the SPList.ID property.&lt;/td&gt;            &lt;/tr&gt;            &lt;tr&gt;                &lt;td&gt;&lt;br /&gt;                   &lt;b&gt;ListName&lt;/b&gt;                 &lt;/td&gt;                &lt;td&gt;&lt;br /&gt;                   The value of the SPList.Title property.&lt;/td&gt;            &lt;/tr&gt;            &lt;tr&gt;                &lt;td&gt;&lt;br /&gt;                   &lt;b&gt;ListItemGUID&lt;/b&gt;&lt;br /&gt;               &lt;/td&gt;                &lt;td&gt;&lt;br /&gt;                   A A string representation of a GUID such as the value of the SPListItem.UniqueId&lt;br /&gt;                   property.&lt;/td&gt;            &lt;/tr&gt;            &lt;tr&gt;                &lt;td&gt;&lt;br /&gt;                   &lt;b&gt;ListItemID&lt;/b&gt;                &lt;/td&gt;                &lt;td&gt;&lt;br /&gt;                   A string representation of an integer such as the value of the SPListItem.ID&lt;br /&gt;                   property.&lt;/td&gt;            &lt;/tr&gt;            &lt;tr&gt;                &lt;td&gt;&lt;br /&gt;                   &lt;b&gt;RootFolder&lt;/b&gt;&lt;br /&gt;               &lt;/td&gt;                &lt;td&gt;&lt;br /&gt;                   The value of the SPFolder.Name property.&lt;/td&gt;            &lt;/tr&gt;            &lt;tr&gt;                &lt;td&gt;&lt;br /&gt;                   &lt;b&gt;FolderID&lt;/b&gt;&lt;br /&gt;               &lt;/td&gt;                &lt;td&gt;&lt;br /&gt;                   A string representation of a GUID such as the value of the SPFolder.UniqueId&lt;br /&gt;                   property.&lt;/td&gt;            &lt;/tr&gt;        &lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;         Additionally we can assign parameters from;&lt;br /&gt;&lt;br /&gt; &lt;b&gt;QueryString&lt;/b&gt;: &amp;lt;asp:QueryStringParameter Name="CompanyName"&lt;br /&gt;       QueryStringField="Company" DefaultValue="Contoso" /&amp;gt;&lt;br /&gt;      &lt;br /&gt;&lt;br /&gt; &lt;b&gt;Control&lt;/b&gt;: &amp;lt;asp:ControlParameter Name="CompanyName" ControlID="DropDownList1"&lt;br /&gt;       PropertyName="SelectedValue" /&amp;gt;        &lt;br /&gt;&lt;br /&gt; &lt;b&gt;ParameterBinding&lt;/b&gt;: &amp;lt;webpartpages:DataFormParameter Name="PostID"&lt;br /&gt;       ParameterKey="PostID" PropertyName="ParameterValues" DefaultValue="0"/&amp;gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2385961957160321240-7322941377796169566?l=serkantsamurkas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://serkantsamurkas.blogspot.com/feeds/7322941377796169566/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://serkantsamurkas.blogspot.com/2009/06/spdatasource.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2385961957160321240/posts/default/7322941377796169566'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2385961957160321240/posts/default/7322941377796169566'/><link rel='alternate' type='text/html' href='http://serkantsamurkas.blogspot.com/2009/06/spdatasource.html' title='SPDataSource'/><author><name>Serkant Samurkas</name><uri>http://www.blogger.com/profile/06631003389148279210</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_mLdFslV5DLc/SkKF_rkNlyI/AAAAAAAAAAM/jEbTIs7-lZA/S220/Serkant.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2385961957160321240.post-8168043584430453755</id><published>2009-06-24T05:19:00.001-07:00</published><updated>2009-12-13T02:07:55.426-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DataFormWebPart'/><title type='text'>DataFormWebPart</title><content type='html'>One of the most important part in SharePoint is displaying the content without&lt;br /&gt;braking any SharePoint features.&lt;br /&gt;&lt;br /&gt;In this scenario DataFormWebPart is our guidance. There are always other ways to&lt;br /&gt;display the content like custom webparts/webpartpages, but developing with these&lt;br /&gt;methods may cost us lots of time.&lt;br /&gt;&lt;br /&gt;In the following example we will learn how to develop a simple DataFormWebPart.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;This is the syntax we will work on it.&lt;br /&gt;&lt;br /&gt;&amp;lt;WebPartPages:DataFormWebPart id="TasksDisplayDataFormWebPart" runat="server"&lt;br /&gt;FrameType="None" NoDefaultStyle="TRUE" ViewFlag="1" Title="Tasks"&lt;br /&gt;DisplayName="Tasks" __markuptype="vsattributemarkup"&lt;br /&gt;__WebPartId="{418745AA-67C6-481e-95F9-5C824AD0CE61}" WebPart="true"&amp;gt;&lt;br /&gt;&lt;br /&gt; &amp;lt;DataSources&amp;gt;&lt;br /&gt;&lt;br /&gt; &amp;lt;SharePointWebControls:SPDataSource runat="server" DataSourceMode="List"&lt;br /&gt;UseInternalName="true" selectcommand="&amp;lt;View/&amp;gt;" id="SPDataSource1"&amp;gt;&lt;br /&gt;&lt;br /&gt; &amp;lt;SelectParameters&amp;gt;&lt;br /&gt;&lt;br /&gt;    &amp;lt;webpartpages:DataFormParameter Name="ListName" ParameterKey="ListName"&lt;br /&gt;PropertyName="ParameterValues" DefaultValue="Tasks"/&amp;gt;&lt;br /&gt;&lt;br /&gt; &amp;lt;/SelectParameters&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/SharePointWebControls:SPDataSource&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/DataSources&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;ParameterBindings&amp;gt;&lt;br /&gt;&lt;br /&gt; &amp;lt;ParameterBinding Name="ListName" Location="None" DefaultValue="Tasks" /&amp;gt;&lt;br /&gt;&lt;br /&gt; &amp;lt;ParameterBinding Name="dvt_apos" Location="Postback;Connection" /&amp;gt;&lt;br /&gt;&lt;br /&gt; &amp;lt;ParameterBinding Name="UserID" Location="CAMLVariable"&lt;br /&gt;DefaultValue="CurrentUserName" /&amp;gt;&lt;br /&gt;&lt;br /&gt; &amp;lt;ParameterBinding Name="Today" Location="CAMLVariable" DefaultValue="CurrentDate" /&amp;gt;&lt;br /&gt;&lt;br /&gt; &amp;lt;ParameterBinding Name="WebPartTitle" Location="None" DefaultValue="{Title}" /&amp;gt;&lt;br /&gt;&lt;br /&gt; &amp;lt;ParameterBinding Name="WebPartTitleURL" Location="None" DefaultValue="{TitleUrl}" /&amp;gt;&lt;br /&gt;&lt;br /&gt; &amp;lt;/ParameterBindings&amp;gt;&lt;br /&gt;&lt;br /&gt; &amp;lt;datafields&amp;gt;@Title,Title;@ID,ID&amp;lt;/datafields&amp;gt;&lt;br /&gt;&lt;br /&gt; &amp;lt;XslLink&amp;gt;/Style Library/XSL Style Sheets/SPTest/FullContent.xsl&amp;lt;/XslLink&amp;gt;&lt;br /&gt;&lt;br /&gt; &amp;lt;/WebPartPages:DataFormWebPart &amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Now let’s have a look at the properties;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;a) DataSources: This defines where the data to get from We have some controls to&lt;br /&gt;get the data, here is some of them;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;   i) SPDataSource: Gets the data from single or multiple (cross, we&lt;br /&gt;will mention it in later blogs) SharePoint libraries content.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;       DataSourceMode:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;           • List: Retrieves&lt;br /&gt;data from a list&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;           • ListItem: Retrieves&lt;br /&gt;data from a single list item&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;           • CrossList:&lt;br /&gt;Retrieves data from multiple lists in multiple websites in the same site&lt;br /&gt;collection.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;           • ListOfLists:&lt;br /&gt;Retrieves properties of lists in a specified web site.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;           • Web: Retrieves&lt;br /&gt;properties of subsites of the current web site.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;       SelectCommand: This is where we define our&lt;br /&gt;query to get data. CAML is the query syntax. Custom parameters such as&lt;br /&gt;QueryString, existing variables, programmatically defined           &lt;br /&gt;parameterbindings can be used, but it will be shown on feature blogs.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;       SelectParameters: That is used to define to&lt;br /&gt;pass parameter binding values and also other type of parameters.&lt;br /&gt;&lt;br /&gt;ii) SPXmlDataSource:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;    &amp;lt;SharePoint:SPXmlDataSource runat="server"&amp;gt;&lt;br /&gt;&lt;br /&gt;        &amp;lt;DataFileParameters&amp;gt;&lt;br /&gt;&lt;br /&gt;          &lt;br /&gt;&amp;lt;WebPartPages:DataFormParameter Name="FileName" ParameterKey="FileName"&lt;br /&gt;PropertyName="ParameterValues" DefaultValue="items.xml"/&amp;gt;&lt;br /&gt;&lt;br /&gt;          &lt;br /&gt;&amp;lt;WebPartPages:DataFormParameter Name="FilePath" ParameterKey="FilePath"&lt;br /&gt;PropertyName="ParameterValues" DefaultValue=""/&amp;gt;&lt;br /&gt;&lt;br /&gt;        &amp;lt;/DataFileParameters&amp;gt;&lt;br /&gt;&lt;br /&gt;    &amp;lt;/SharePoint:SPXmlDataSource&amp;gt;   &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;b) ParameterBindings: To supply user defined or environment defined values to&lt;br /&gt;the actual query.&lt;br /&gt;&lt;br /&gt;c) DataFields: Fields those are used in xsl.&lt;br /&gt;&lt;br /&gt;d) XSLLink: Xsl file to display content in a custom format.&lt;br /&gt;&lt;br /&gt;Sample of the following code xsl;&lt;br /&gt;&lt;br /&gt;&amp;lt;xsl:stylesheet xmlns:x="http://www.w3.org/2001/XMLSchema"&lt;br /&gt;xmlns:d="http://schemas.microsoft.com/sharepoint/dsp" version="1.0"&lt;br /&gt;exclude-result-prefixes="xsl msxsl ddwrt"&lt;br /&gt;xmlns:ddwrt="http://schemas.microsoft.com/WebParts/v2/DataView/runtime"&lt;br /&gt;xmlns:asp="http://schemas.microsoft.com/ASPNET/20"&lt;br /&gt;xmlns:__designer="http://schemas.microsoft.com/WebParts/v2/DataView/designer"&lt;br /&gt;xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&lt;br /&gt;xmlns:msxsl="urn:schemas-microsoft-com:xslt"&lt;br /&gt;xmlns:SharePoint="Microsoft.SharePoint.WebControls"&lt;br /&gt;xmlns:ddwrt2="urn:frontpage:internal"&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;xsl:output method="html" indent="no"/&amp;gt; &amp;lt;xsl:decimal-format NaN=""/&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;xsl:param name="dvt_apos"&amp;gt;'&amp;lt;/xsl:param&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;xsl:param name="WebPartTitle"&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/xsl:param&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;xsl:param name="WebPartTitleURL"&amp;gt;&amp;lt;/xsl:param&amp;gt; &amp;lt;xsl:variable&lt;br /&gt;name="dvt_1_automode"&amp;gt;0&amp;lt;/xsl:variable&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;xsl:template match="/"&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;xsl:call-template name="dvt_1"/&amp;gt; &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;xsl:template name="dvt_1"&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;xsl:variable name="Rows" select="/dsQueryResponse/Rows/Row"/&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;xsl:if test="$dvt_1_automode = '1'" ddwrt:cf_ignore="1"&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/xsl:if&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;xsl:call-template name="dvt_1.body"&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;xsl:with-param name="Rows" select="$Rows"/&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/xsl:call-template&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/xsl:template&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;xsl:template name="dvt_1.body"&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;xsl:param name="Rows"/&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;xsl:for-each select="$Rows"&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;xsl:call-template name="dvt_1.rowview"/&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/xsl:template&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;xsl:template name="dvt_1.rowview"&amp;gt; Title: &amp;lt;xsl:value-of select="@Title"/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/xsl:template&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/xsl:stylesheet&amp;gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2385961957160321240-8168043584430453755?l=serkantsamurkas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://serkantsamurkas.blogspot.com/feeds/8168043584430453755/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://serkantsamurkas.blogspot.com/2009/06/test-blog.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2385961957160321240/posts/default/8168043584430453755'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2385961957160321240/posts/default/8168043584430453755'/><link rel='alternate' type='text/html' href='http://serkantsamurkas.blogspot.com/2009/06/test-blog.html' title='DataFormWebPart'/><author><name>Serkant Samurkas</name><uri>http://www.blogger.com/profile/06631003389148279210</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_mLdFslV5DLc/SkKF_rkNlyI/AAAAAAAAAAM/jEbTIs7-lZA/S220/Serkant.jpg'/></author><thr:total>4</thr:total></entry></feed>
