<?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-908451797546196795</id><updated>2012-01-21T09:34:32.334+13:00</updated><category term='Office 365'/><category term='Vista'/><category term='ReadyBoost'/><category term='MOC'/><category term='LiveMeeting'/><category term='Information Architecture'/><category term='MOSS 2007'/><category term='Lync'/><category term='Powershell'/><category term='WinPE'/><category term='Email'/><category term='ISO'/><category term='Sql Server'/><category term='SharePoint'/><category term='Recovery'/><category term='Asterisk'/><category term='Infopath'/><category term='MCT Tips'/><category term='SharePoint 2010'/><category term='Search'/><category term='WinRE'/><category term='Usage Analysis'/><category term='WSS'/><category term='LM 2007'/><category term='VPC'/><category term='5105'/><category term='CAC'/><category term='5118'/><category term='5119'/><category term='GPO'/><category term='SharePoint Designer'/><category term='Bootable USB'/><category term='Training'/><category term='SSP'/><category term='MODL'/><category term='CRM 3.0'/><title type='text'>SharePoint Training, Alex Dean</title><subtitle type='html'>Microsoft Certified SharePoint Trainer talking about SharePoint, Vista, SharePoint Training and Sharepoint Software</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://mctalex.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://mctalex.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default?start-index=101&amp;max-results=100'/><author><name>Alex Dean</name><uri>http://www.blogger.com/profile/17702856763799376939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_kvPl7CQ2CWY/TQ6K6TrjTMI/AAAAAAAAAYQ/oEj3MNzZWcM/S220/Alex-Dean.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>122</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-908451797546196795.post-2269936924198573554</id><published>2011-12-30T09:57:00.001+13:00</published><updated>2011-12-30T09:59:39.833+13:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Training'/><category scheme='http://www.blogger.com/atom/ns#' term='Lync'/><title type='text'>Lync User Adoption And Training Kit</title><content type='html'>The team at Microsoft has made a great resource available for companies planning to roll out Lync within their organization. http://lync.microsoft.com/adoption-and-training-kit &lt;br /&gt;&lt;br /&gt;Here you will find ready to use training material for end users, a pre made help site which you can make available in your intranet, a great overview of who needs what level of training and lots of useful resources and tools. Now, creating a Lync Adoption Plan for your organization has become a matter of hours and not days/weeks. &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/908451797546196795-2269936924198573554?l=mctalex.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mctalex.blogspot.com/feeds/2269936924198573554/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=908451797546196795&amp;postID=2269936924198573554' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/2269936924198573554'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/2269936924198573554'/><link rel='alternate' type='text/html' href='http://mctalex.blogspot.com/2011/12/lync-user-adoption-and-training-kit.html' title='Lync User Adoption And Training Kit'/><author><name>Alex Dean</name><uri>http://www.blogger.com/profile/17702856763799376939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_kvPl7CQ2CWY/TQ6K6TrjTMI/AAAAAAAAAYQ/oEj3MNzZWcM/S220/Alex-Dean.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-908451797546196795.post-3680506019651299365</id><published>2011-12-07T14:59:00.001+13:00</published><updated>2011-12-07T15:39:15.580+13:00</updated><title type='text'>Trend Analysis of Lync Servers using Reporting Services Snapshots</title><content type='html'>So you have a Lync farm and have monitoring set up. You keep the last 6 weeks worth of data for those reports but what about last year? How can you easily compare the usage and network statistics that the OOB Lync Reports give you effectively and efficiently?&lt;br /&gt;SQL Server Reporting Services Snapshots could be the answer to your question. To enable Snapshots and start tracking usage over time you need to do following things:&lt;br /&gt;1) un-hide the individual reports in Report Manager&lt;br /&gt;2) create a snapshot schedule&lt;br /&gt;3) subscribe to the snapshots so you don't forget to look at the data!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;By default only the homepage and the dashboard can be viewed from the Report Manager url (http://your-report-server/Reports). At the root of that url you will find a folder called "Lync Server Reports". Within that folder is the Reports Home Page. This is the main dashboard that opens up directly when you open the reports from the Lync Control Panel. At the same location you will find a sub folder called "Reports Content" This is actually where all the juicy sub-reports are hidden. Yes. HIDDEN. But you can still see them by clicking the Show Details button found at the top right of the report manager. From there you can then unhide reports, set up snapshot schedules and even subscribe to the snapshots to easily stay informed about your general lync farm health.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-BTsjsOeiYCc/Tt7PLw-H_5I/AAAAAAAAAbw/8llXnHZCvaA/s1600/ReportManager2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="197" mda="true" src="http://1.bp.blogspot.com/-BTsjsOeiYCc/Tt7PLw-H_5I/AAAAAAAAAbw/8llXnHZCvaA/s400/ReportManager2.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;First go to the Report Manager Url which is the fqdn of your report server followed by /Reports&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-bWfI-w42560/Tt7PjGaUy4I/AAAAAAAAAb4/32ghU6Z7gRk/s1600/reportmanager1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="156" mda="true" src="http://3.bp.blogspot.com/-bWfI-w42560/Tt7PjGaUy4I/AAAAAAAAAb4/32ghU6Z7gRk/s400/reportmanager1.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&amp;nbsp;Then drill down to the Reports Content Page with the Show Details button at the top right. Just two Datasources and the Monitoring Dashboard are visible. Click on the &lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-pN-t3KvQPnU/Tt7MHLtfWrI/AAAAAAAAAbI/rbQCZ-PmR4Q/s1600/Details1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="225" mda="true" src="http://3.bp.blogspot.com/-pN-t3KvQPnU/Tt7MHLtfWrI/AAAAAAAAAbI/rbQCZ-PmR4Q/s400/Details1.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;Click on the edit properties button of the report to change the visibility status.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-FWS75h2hhp8/Tt7MTCILvDI/AAAAAAAAAbQ/qaomAndt5Wk/s1600/UnHide.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="248" mda="true" src="http://2.bp.blogspot.com/-FWS75h2hhp8/Tt7MTCILvDI/AAAAAAAAAbQ/qaomAndt5Wk/s320/UnHide.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;That's the magic tick box to make the reports easily visible in the report manager again. &lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-XG-lahD9_uQ/Tt7MpeZox-I/AAAAAAAAAbY/bul0hbSKk4M/s1600/SnapshotSchedule1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="249" mda="true" src="http://2.bp.blogspot.com/-XG-lahD9_uQ/Tt7MpeZox-I/AAAAAAAAAbY/bul0hbSKk4M/s320/SnapshotSchedule1.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;Click the History link of the Report to set up a snapshot schedule&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/--cF6RmPJeUs/Tt7N1rri6_I/AAAAAAAAAbg/29AFF5RrdB4/s1600/SnapshotSchedule2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="204" mda="true" src="http://2.bp.blogspot.com/--cF6RmPJeUs/Tt7N1rri6_I/AAAAAAAAAbg/29AFF5RrdB4/s320/SnapshotSchedule2.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;From here you can run a snapshot at a regular interval&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-HqHQg_1By24/Tt7N_HmZMGI/AAAAAAAAAbo/10MtsFgugGk/s1600/SubScriptions1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="249" mda="true" src="http://3.bp.blogspot.com/-HqHQg_1By24/Tt7N_HmZMGI/AAAAAAAAAbo/10MtsFgugGk/s320/SubScriptions1.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;And finally add a subscription based on the snapshot so you get an email and can look at performance related data on a regular basis! (If email is not an option, check smtp settings of reporting server)&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;A couple of tips along the way:&lt;/div&gt;&lt;ul&gt;&lt;li&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Set up different schedules for different types of reports&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Set up Subscriptions only for reports that you are planning on reading&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Make sure your Reporting ﻿Services Server is properly configured and has a valid SMTP server address associated with it. (Report Server&amp;nbsp;Configuration Tool on the Reporting Server). Otherwise the subscriptions page will not show email as an option!&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&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/908451797546196795-3680506019651299365?l=mctalex.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mctalex.blogspot.com/feeds/3680506019651299365/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=908451797546196795&amp;postID=3680506019651299365' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/3680506019651299365'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/3680506019651299365'/><link rel='alternate' type='text/html' href='http://mctalex.blogspot.com/2011/12/trend-analysis-of-lync-servers-using.html' title='Trend Analysis of Lync Servers using Reporting Services Snapshots'/><author><name>Alex Dean</name><uri>http://www.blogger.com/profile/17702856763799376939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_kvPl7CQ2CWY/TQ6K6TrjTMI/AAAAAAAAAYQ/oEj3MNzZWcM/S220/Alex-Dean.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-BTsjsOeiYCc/Tt7PLw-H_5I/AAAAAAAAAbw/8llXnHZCvaA/s72-c/ReportManager2.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-908451797546196795.post-5491361351126236913</id><published>2011-09-20T14:56:00.000+12:00</published><updated>2011-12-07T14:56:46.163+13:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint 2010'/><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><category scheme='http://www.blogger.com/atom/ns#' term='Lync'/><title type='text'>Hands on Labs for SharePoint and Lync</title><content type='html'>[Update 7/12/2011: Found two more Lync Labs and added them to the list]&lt;br /&gt;&lt;br /&gt;Often when I teach a course students feel overwhelmed by the sheer amount of information bombarding them in just five days. Obviously the best medicine is to go over the books when they have had a chance to breathe and digest all the great new things they have learnt. But the best way to learn is not to read about it but do it! No, I can't give my students copies of the lab servers to play with at home. And no, you should not repeat the exercises on your production SharePoint farms. Luckily there is a simple answer to this dilemma. It is called Virtual Labs.&lt;br /&gt;The boys and girls at Microsoft have put a tremendous amount of effort and resources into creating lab environments which anybody can use to gain invaluable skills with the SharePoint products. The labs are split into two main audience groups. Administrators and Developers. While the administrators will be able to get their juice from Technet the developers can get their labs from MSDN. Below is a compilation of labs which I think you will find quite useful. (Lync labs at the end of the article)&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="background-color: white; color: #333333; font-family: &amp;quot;Segoe UI&amp;quot;, &amp;quot;Lucida Grande&amp;quot;, Verdana, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 18px;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;h4 style="clear: both; color: #3a3e43; font-family: &amp;quot;Segoe UI Semibold&amp;quot;, &amp;quot;Segoe UI&amp;quot;, &amp;quot;Lucida Grande&amp;quot;, Verdana, Arial, Helvetica, sans-serif; font-size: 1.3em; line-height: 20px; margin: 2px 0px;"&gt;TechNet Virtual Labs for SharePoint 2010 Administrators&lt;/h4&gt;&lt;ul class="unIndentedList"&gt;&lt;li&gt;&lt;a href="http://go.microsoft.com/?linkid=9730155" style="color: #0066dd; cursor: pointer; outline-style: none; text-decoration: none;" title="TechNet Virtual Lab: Backup and Restore in SharePoint Server 2010"&gt;TechNet Virtual Lab: Backup and Restore in SharePoint Server 2010&lt;/a&gt;&amp;nbsp;- After completing this lab, you will be better able to use farm-level backup and restore features in Microsoft® SharePoint® Server 2010, use granular backup and content recovery tools in SharePoint Server 2010, and use Microsoft Windows® PowerShell&lt;sup&gt;TM&lt;/sup&gt;&amp;nbsp;to restore sites and lists in SharePoint Server 2010&lt;/li&gt;&lt;li&gt;&lt;a href="http://go.microsoft.com/?linkid=9733640" style="color: #0066dd; cursor: pointer; outline-style: none; text-decoration: none;" title="TechNet Virtual Lab: Business Connectivity Services"&gt;TechNet Virtual Lab: Business Connectivity Services&lt;/a&gt;&amp;nbsp;- After completing this lab, you will be better able to create an External Content Type based on a back end database and view and manipulate backend data in External Lists&lt;/li&gt;&lt;li&gt;&lt;a href="http://go.microsoft.com/?linkid=9730288" style="color: #0066dd; cursor: pointer; outline-style: none; text-decoration: none;" title="TechNet Virtual Lab: Business Continuity Management in SharePoint Server 2010 "&gt;TechNet Virtual Lab: Business Continuity Management in SharePoint Server 2010&amp;nbsp;&lt;/a&gt;- After completing this lab, you will be better able to configure and use the versioning features in Microsoft® SharePoint® Server 2010, configure and use the SharePoint Server 2010 Recycle Bins, and use Microsoft Windows® PowerShell&lt;sup&gt;TM&lt;/sup&gt;&amp;nbsp;cmdlets to perform backup and restore operations in the SharePoint 2010 Management Shell&lt;/li&gt;&lt;li&gt;&lt;a href="http://go.microsoft.com/?linkid=9731011" style="color: #0066dd; cursor: pointer; outline-style: none; text-decoration: none;" title="TechNet Virtual Lab: Configuring Remote Blob Storage FILESTREAM Provider for SharePoint Server 2010"&gt;TechNet Virtual Lab: Configuring Remote Blob Storage FILESTREAM Provider for SharePoint Server 2010&lt;/a&gt;- After completing this lab, you will be better able to enable FILESTREAM on the appropriate SQL Server database, provision the RBS data store, install the Remote Blob Storage (RBS) FILESTREAM Provider, enable the RBS FILESTREAM Provider on the appropriate content database, and configure the RBS FILESTREAM Provider scenario&lt;/li&gt;&lt;li&gt;&lt;a href="http://go.microsoft.com/?linkid=9730290" style="color: #0066dd; cursor: pointer; outline-style: none; text-decoration: none;" title="TechNet Virtual Lab: Configuring Tenant Administration on SharePoint Server 2010"&gt;TechNet Virtual Lab: Configuring Tenant Administration on SharePoint Server 2010&lt;/a&gt;&amp;nbsp;- After completing this lab, you will be better able to create a new Tenant Administration site collection, manage site collections through Tenant Administration, and create a partitioned service application&lt;/li&gt;&lt;li&gt;&lt;a href="http://go.microsoft.com/?linkid=9730292" style="color: #0066dd; cursor: pointer; outline-style: none; text-decoration: none;" title="TechNet Virtual Lab: Configuring User Profile Synchronization in SharePoint Server 2010"&gt;TechNet Virtual Lab: Configuring User Profile Synchronization in SharePoint Server 2010&lt;/a&gt;&amp;nbsp;- After completing this lab, you will be better able to configure the User Profile Synchronization Service in Microsoft® SharePoint® Server 2010, start the User Profile Synchronization Service, create a New Profile Synchronization Connection, edit Profile Synchronization Connection Filters, map User Profile Properties, and configure Profile Synchronization Settings&lt;/li&gt;&lt;li&gt;&lt;a href="http://go.microsoft.com/?linkid=9733635" style="color: #0066dd; cursor: pointer; outline-style: none; text-decoration: none;" title="TechNet Virtual Lab: Enterprise Search"&gt;TechNet Virtual Lab: Enterprise Search&lt;/a&gt;&amp;nbsp;- After completing this lab, you will be better able to create a new content source for SharePoint to crawl, exclude certain results from being crawled by search, create a Search Center, and customize and extend the user interface&lt;/li&gt;&lt;li&gt;&lt;a href="http://go.microsoft.com/?linkid=9730532" style="color: #0066dd; cursor: pointer; outline-style: none; text-decoration: none;" title="TechNet Virtual Lab: Introduction to Microsoft SharePoint Server 2010 Upgrade"&gt;TechNet Virtual Lab: Introduction to Microsoft SharePoint Server 2010 Upgrade&lt;/a&gt;&amp;nbsp;- After completing this lab, you will be better able to verify existing 2007 farm and content upgrade readiness through the use of the 2007 pre-upgrade checker command, verify existing 2010 farm readiness to upgrade specific content databases using the 2010 Test-SPContentDatabase cmdlet, initiate upgrade for individual content databases using the 2010 STSADM -o addcontentdb command, review the upgrade session status using the improved Central Administration web site Upgrade Status page, initiate upgrade for multiple individual content databases using multiple PowerShell sessions to trigger parallel upgrade sessions, troubleshoot an upgrade failure due to missing features, and how to restart upgrade for individual content database, and use Visual Upgrade features to switch sites from the 2007 product look and feel to the new 2010 product user interface&lt;/li&gt;&lt;li&gt;&lt;a href="http://go.microsoft.com/?linkid=9730282" style="color: #0066dd; cursor: pointer; outline-style: none; text-decoration: none;" title="TechNet Virtual Lab: New IT Pro Features in SharePoint Server 2010"&gt;TechNet Virtual Lab: New IT Pro Features in SharePoint Server 2010&lt;/a&gt;&amp;nbsp;- After completing this lab, you will be better able to find your way around the Microsoft® SharePoint® Server 2010 Central Administration Web site, use basic site management tools in SharePoint Server 2010, describe the health monitoring and Web analytics capabilities of SharePoint Server 2010, provide and consume SharePoint Server 2010 service applications, and use commands from the Microsoft Windows® PowerShell&lt;sup&gt;TM&lt;/sup&gt;&amp;nbsp;command-line interface in the SharePoint 2010 Management Shell&lt;/li&gt;&lt;li&gt;&lt;a href="http://go.microsoft.com/?linkid=9732727" style="color: #0066dd; cursor: pointer; outline-style: none; text-decoration: none;" title="TechNet Virtual Lab: Performance Management"&gt;TechNet Virtual Lab: Performance Management&lt;/a&gt;&amp;nbsp;- After completing this lab, you will be better able to set limitations on the number of list items returned at a time, understand how large list limits affect users, configure Resource Throttling, and understand how Resource Throttling and HTTP Request Monitoring and Throttling affect SharePoint performance and user experience&lt;/li&gt;&lt;li&gt;&lt;a href="http://go.microsoft.com/?linkid=9732970" style="color: #0066dd; cursor: pointer; outline-style: none; text-decoration: none;" title="TechNet Virtual Lab: PowerShell and SharePoint 2010"&gt;TechNet Virtual Lab: PowerShell and SharePoint 2010&lt;/a&gt;&amp;nbsp;- After completing this lab, you will be better able to find your way around the SharePoint 2010 Management Shell and interact with SharePoint Web applications, site collections, and sites, use Windows PowerShell scripting techniques such as pipes, filters, wildcards, and enumerations for SharePoint Server 2010 administration. You will also be better able to explain how to create and assign variables and use the SharePoint object model from Windows PowerShell&lt;/li&gt;&lt;li&gt;&lt;a href="http://go.microsoft.com/?linkid=9732978" style="color: #0066dd; cursor: pointer; outline-style: none; text-decoration: none;" title="TechNet Virtual Lab: SharePoint Designer for IT Pros"&gt;TechNet Virtual Lab: SharePoint Designer for IT Pros&lt;/a&gt;&amp;nbsp;- After completing this lab, you will be better able to create and modify lists on the SharePoint site, create and modify workflows, and save SharePoint site as reusable template&lt;/li&gt;&lt;li&gt;&lt;a href="http://go.microsoft.com/?linkid=9732612" style="color: #0066dd; cursor: pointer; outline-style: none; text-decoration: none;" title="TechNet Virtual Lab: Shareoint RTM - IT PRO - Business Continuity Management"&gt;TechNet Virtual Lab: SharePoint RTM - IT PRO - Business Continuity Management&lt;/a&gt;&amp;nbsp;- After completing this lab, you will be better able to navigate through an unattached SharePoint Content Database, export content from an unattached SharePoint Content Database, and import previously exported content&lt;/li&gt;&lt;li&gt;&lt;a href="http://go.microsoft.com/?linkid=9732618" style="color: #0066dd; cursor: pointer; outline-style: none; text-decoration: none;" title="TechNet Virtual Lab: Shareoint RTM - IT PRO - Installing and Configuring"&gt;TechNet Virtual Lab: SharePoint RTM - IT PRO - Installing and Configuring&lt;/a&gt;&amp;nbsp;- After completing this lab, you will be better able to successfully install and configure SharePoint Server 2010, create a Managed Account in Central Administration, create a Web Application in Central Administration, and also create a Site Collection within the Web Application&lt;/li&gt;&lt;li&gt;&lt;a href="http://go.microsoft.com/?linkid=9732614" style="color: #0066dd; cursor: pointer; outline-style: none; text-decoration: none;" title="TechNet Virtual Lab: Shareoint RTM - IT PRO - Service Applications"&gt;TechNet Virtual Lab: SharePoint RTM - IT PRO - Service Applications&lt;/a&gt;&amp;nbsp;- After completing this lab, you will be better able to configure the new Managed Metadata Service Application, associate the Managed Metadata Service Application with a web application, manage the Metadata Service by adding your own custom groups and term sets, import a group into the Enterprise Term Store within the metadata service, utilize the Managed Metadata Service Application within a list, configure My Site settings, and create a My Site&lt;/li&gt;&lt;li&gt;&lt;a href="http://go.microsoft.com/?linkid=9732616" style="color: #0066dd; cursor: pointer; outline-style: none; text-decoration: none;" title="TechNet Virtual Lab: Shareoint RTM - IT PRO - Upgrade"&gt;TechNet Virtual Lab: SharePoint RTM - IT PRO - Upgrade&lt;/a&gt;&amp;nbsp;- After completing this lab, you will be better able to verify existing 2007 farm and content upgrade readiness through the use of the 2007 pre-upgrade checker command, verify existing 2010 farm readiness to upgrade specific content databases using the 2010 Test-SPContentDatabase cmdlet, initiate upgrade for individual content databases using the 2010 STSADM -o addcontentdb command, review the upgrade session status using the improved Central Administration web site Upgrade Status page, initiate upgrade for multiple individual content databases using multiple PowerShell sessions to trigger parallel upgrade sessions, troubleshoot an upgrade failure due to missing features and know how to restart upgrade for individual content database, and use Visual Upgrade features to switch sites from the 2007 product look and feel to the new 2010 product user interface&lt;/li&gt;&lt;li&gt;&lt;a href="http://go.microsoft.com/?linkid=9730294" style="color: #0066dd; cursor: pointer; outline-style: none; text-decoration: none;" title="TechNet Virtual Lab: Windows PowerShell in SharePoint Server 2010"&gt;TechNet Virtual Lab: Windows PowerShell in SharePoint Server 2010&lt;/a&gt;&amp;nbsp;- After completing this lab, you will be better able to find your way around the SharePoint 2010 Management Shell and interact with SharePoint Web applications, site collections, and sites, use Windows PowerShell scripting techniques, such as pipes, filters, wildcards, and enumerations, for SharePoint Server 2010 administration, and explain how to create and assign variables and use the SharePoint object model from Windows PowerShell&lt;/li&gt;&lt;/ul&gt;&lt;h4 style="clear: both; color: #3a3e43; font-family: &amp;quot;Segoe UI Semibold&amp;quot;, &amp;quot;Segoe UI&amp;quot;, &amp;quot;Lucida Grande&amp;quot;, Verdana, Arial, Helvetica, sans-serif; font-size: 1.3em; line-height: 20px; margin: 2px 0px;"&gt;SharePoint Server 2010 Virtual Labs for Developers&lt;/h4&gt;&lt;ul type="disc"&gt;&lt;li&gt;&lt;a href="http://go.microsoft.com/?linkid=9732977" style="color: #0066dd; cursor: pointer; outline-style: none; text-decoration: none;"&gt;MSDN Virtual Lab: Client Object Model&lt;/a&gt;&amp;nbsp;- After completing this lab, you will be better able to retrieve lists, print a list, and use ADO.NET data services&lt;/li&gt;&lt;li&gt;&lt;a href="http://go.microsoft.com/?linkid=9732969" style="color: #0066dd; cursor: pointer; outline-style: none; text-decoration: none;"&gt;MSDN Virtual Lab: Customizing MySites&lt;/a&gt;&amp;nbsp;- In this lab you will work with some of the new events capabilities in SharePoint Server 2010 as well as the new Visual Studio 2010 SharePoint Tools. You will customize public my site by adding new public page, which can host any additional services exposed for my site end users, create stapled features to customize structures created in personal my site using Visual Studio 2010, and also create delegation control to customize top navigation and web parts, which exists by default in the personal my site&lt;/li&gt;&lt;li&gt;&lt;a href="http://go.microsoft.com/?linkid=9732724" style="color: #0066dd; cursor: pointer; outline-style: none; text-decoration: none;"&gt;MSDN Virtual Lab: Designing Lists and Schemas&lt;/a&gt;&amp;nbsp;- In this lab you will work with some of the new events capabilities in Windows SharePoint Services 14 as well as the new Visual Studio 2010 SharePoint Tools. You will create a custom list definition, template and instance using Visual Studio 2010, implement referential integrity between two SharePoint lists so that items in one list cannot be deleted until referenced items in a child list are removed first, and create a synchronous event receiver that is triggered when new task is created&lt;/li&gt;&lt;li&gt;&lt;a href="http://go.microsoft.com/?linkid=9729898" style="color: #0066dd; cursor: pointer; outline-style: none; text-decoration: none;"&gt;MSDN Virtual Lab: Developing a BCS External Content Type with Visual Studio 2010&lt;/a&gt;&amp;nbsp;- After completing this lab, you will be better able to build a BCS External content type, create a Business Data Catalog Model project, configure the External Content Type for offline use, and open the list using Outlook&lt;/li&gt;&lt;li&gt;&lt;a href="http://go.microsoft.com/?linkid=9732968" style="color: #0066dd; cursor: pointer; outline-style: none; text-decoration: none;"&gt;MSDN Virtual Lab: Developing a Sandboxed Solution with Web Parts&lt;/a&gt;&amp;nbsp;- In this lab you will construct a basic Web Part that will call into the SharePoint API to retrieve some information. Next it will try and use SPSecurity to try to elevate privileges. The third and last action that is added is an attempt to initiate a HTTP connection to an external site&lt;/li&gt;&lt;li&gt;&lt;a href="http://go.microsoft.com/?linkid=9729899" style="color: #0066dd; cursor: pointer; outline-style: none; text-decoration: none;"&gt;MSDN Virtual Lab: Developing a Visual Web Part in Visual Studio 2010&lt;/a&gt;&amp;nbsp;- After completing this lab, you will be better able to work with existing Web Parts and Linq and also you will be more familiar with connecting two web parts&lt;/li&gt;&lt;li&gt;&lt;a href="http://go.microsoft.com/?linkid=9733842" style="color: #0066dd; cursor: pointer; outline-style: none; text-decoration: none;"&gt;MSDN Virtual Lab: Developing Business Intelligence Applications&lt;/a&gt;&amp;nbsp;- After completing this lab, you will be better able to use the Chart Web Part to create graphical representations of data within SharePoint lists, use Microsoft Excel 2010 to examine and data from SQL Server Analysis Services, and publish an Excel workbook with Excel Services to make it accessible to users using a browser. You will also be able to work with a PerformancePoint Services site and the new Dashboard Designer&lt;/li&gt;&lt;li&gt;&lt;a href="http://go.microsoft.com/?linkid=9733703" style="color: #0066dd; cursor: pointer; outline-style: none; text-decoration: none;"&gt;MSDN Virtual Lab: Enterprise Content Management&lt;/a&gt;&amp;nbsp;- In this lab you will work with some of the new capabilities added to SharePoint Server 2010 in the area of Enterprise Content Management. You will verify the configuration of an Managed Metadata in a SharePoint Web application, customize the Managed Metadata term store and leverage it within an existing SharePoint site, and implement document sets&lt;/li&gt;&lt;li&gt;&lt;a href="http://go.microsoft.com/?linkid=9732722" style="color: #0066dd; cursor: pointer; outline-style: none; text-decoration: none;"&gt;MSDN Virtual Lab: Getting Started with SharePoint 2010&lt;/a&gt;&amp;nbsp;- In this lab you will begin your work with SharePoint 2010 and become familiar with the Virtual Machine (VM) that you will be using. You will get experience working with the SharePoint 2010 Central Administration site as well as working with a standard team site. This will allow you to experience the new user interface concepts introduced in SharePoint 2010 such as the server-side ribbon and in-place item editing. You will also get a chance to write and test C# code using the SharePoint Foundation 2010 object model&lt;/li&gt;&lt;li&gt;&lt;a href="http://go.microsoft.com/?linkid=9732725" style="color: #0066dd; cursor: pointer; outline-style: none; text-decoration: none;"&gt;MSDN Virtual Lab: LINQ to SharePoint 2010&lt;/a&gt;&amp;nbsp;- In this lab you will create lists for use with LINQ, and create a web part for accessing the list data using LINQ&lt;/li&gt;&lt;li&gt;&lt;a href="http://go.microsoft.com/?linkid=9732726" style="color: #0066dd; cursor: pointer; outline-style: none; text-decoration: none;"&gt;MSDN Virtual Lab: SharePoint 2010 User Interface Advancements&lt;/a&gt;&amp;nbsp;- After completing this lab, you will be better able to create and customize SharePoint 2010 lists for storing ideas for new toys, and use various new features of SharePoint, SharePoint Designer and InfoPath&lt;/li&gt;&lt;li&gt;&lt;a href="http://go.microsoft.com/?linkid=9732723" style="color: #0066dd; cursor: pointer; outline-style: none; text-decoration: none;"&gt;MSDN Virtual Lab: Visual Studio SharePoint Tools&lt;/a&gt;&amp;nbsp;- In the lab you will become familiar with the standard project structure used by SharePoint Tools, create and test a project that contains a Feature, a Feature Receiver and a Web Part, configure SharePoint Tools deployment options, and debug a SharePoint Tools project by single-stepping through the code in your solution&lt;/li&gt;&lt;li&gt;&lt;a href="http://go.microsoft.com/?linkid=9733641" style="color: #0066dd; cursor: pointer; outline-style: none; text-decoration: none;"&gt;MSDN Virtual Lab: Workflow&lt;/a&gt;&amp;nbsp;- After completing this lab, you will be better able to use Visio to create the high level process, export the Visio model to SharePoint Designer 2010, and use SharePoint Designer 2010 to complete the detail. You will also be able to export from SharePoint Designer 2010 to a WSP file and import the WSP file into Visual Studio 2010&lt;/li&gt;&lt;/ul&gt;&lt;span class="Apple-style-span" style="background-color: white;"&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="background-color: white;"&gt;&lt;h4 style="clear: both; color: #3a3e43; font-family: &amp;quot;Segoe UI Semibold&amp;quot;, &amp;quot;Segoe UI&amp;quot;, &amp;quot;Lucida Grande&amp;quot;, Verdana, Arial, Helvetica, sans-serif; font-size: 1.3em; line-height: 20px; margin: 2px 0px;"&gt;Virtual&amp;nbsp;Labs for Lync 2010 Developers&lt;/h4&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="background-color: white;"&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://go.microsoft.com/?linkid=9757340"&gt;MSDN Virtual Lab: Advanced UCMA 3.0 Development&lt;/a&gt; &lt;/li&gt;&lt;li&gt;&lt;a href="http://go.microsoft.com/?linkid=9759130"&gt;MSDN Virtual Lab: Getting Started with the UCMA 3.0 Workflow SDK&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://go.microsoft.com/?linkid=9757341"&gt;MSDN Virtual Lab: Getting Started with the EWS Managed API 1.0&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://go.microsoft.com/?linkid=9757342"&gt;MSDN Virtual Lab: Integrating Microsoft Lync 2010 Functionality&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://go.microsoft.com/?linkid=9757343"&gt;MSDN Virtual Lab: Introduction to the Microsoft Lync 2010 Managed API&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://go.microsoft.com/?linkid=9757344"&gt;MSDN Virtual Lab: Introduction to the Unified Communications Managed API 3.0&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://go.microsoft.com/?linkid=9757345"&gt;MSDN Virtual Lab: Launching Contextual Conversations from the Lync Controls&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/span&gt;&lt;br /&gt;&lt;h4 style="clear: both; color: #3a3e43; font-family: &amp;quot;Segoe UI Semibold&amp;quot;, &amp;quot;Segoe UI&amp;quot;, &amp;quot;Lucida Grande&amp;quot;, Verdana, Arial, Helvetica, sans-serif; font-size: 1.3em; line-height: 20px; margin: 2px 0px;"&gt;TechNet Virtual Labs for Lync 2010 Administrators&lt;/h4&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://go.microsoft.com/?linkid=9775096"&gt;TechNet Virtual Lab: The Microsoft Lync 2010 Unified Client&amp;nbsp;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://go.microsoft.com/?linkid=9775097"&gt;TechNet Virtual Lab: Microsoft Lync Server 2010 Enterprise Voice Configuration&amp;nbsp;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://go.microsoft.com/?linkid=9775098"&gt;TechNet Virtual Lab: New Enterprise Voice Features of Microsoft Lync Server 2010&amp;nbsp;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://go.microsoft.com/?linkid=9775099"&gt;TechNet Virtual Lab: Exchange Server 2010 SP1 Unified Messaging and Lync Server 2010 Integration&amp;nbsp;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="https://cmg.vlabcenter.com/default.aspx?moduleid=a05bfe63-7f2e-4dd9-a3e8-99a63adeddc6" target="_blank"&gt;TechNet Virtual Lab: Lync Server 2010: New Features&lt;/a&gt;&amp;nbsp;&lt;/li&gt;&lt;li&gt;&lt;a href="https://cmg.vlabcenter.com/default.aspx?moduleid=8216329b-569f-4a70-add2-d41703be894c" target="_blank"&gt;TechNet Virtual Lab: Lync Server 2010: New Management Tools&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/908451797546196795-5491361351126236913?l=mctalex.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mctalex.blogspot.com/feeds/5491361351126236913/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=908451797546196795&amp;postID=5491361351126236913' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/5491361351126236913'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/5491361351126236913'/><link rel='alternate' type='text/html' href='http://mctalex.blogspot.com/2011/09/hands-on-labs-for-sharepoint-and-lync.html' title='Hands on Labs for SharePoint and Lync'/><author><name>Alex Dean</name><uri>http://www.blogger.com/profile/17702856763799376939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_kvPl7CQ2CWY/TQ6K6TrjTMI/AAAAAAAAAYQ/oEj3MNzZWcM/S220/Alex-Dean.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-908451797546196795.post-8176130482965813680</id><published>2011-09-19T22:03:00.000+12:00</published><updated>2011-09-19T22:08:43.595+12:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Office 365'/><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><title type='text'>Using Office 365 in an Extranet Scenario</title><content type='html'>This is something that has been one of the most exciting aspects of Office 365 for me. The fast and effective way of creating an Extranet scenario without the need to worry about firewalls, external user accounts or certificates.&lt;br /&gt;When you sign up with Office 365 on an Enterprise plan you get access to your SharePoint Admin control panel. (Sorry folks, the Small business version aka Professional Plan does not have this feature)&lt;br /&gt;There you can create several site collections and even allow external user which have not been set up in your AD or on Office 365 to access your SharePoint sites.&lt;br /&gt;This is great news for companies who work closely with clients and want to use the SharePoint Online part of Office 365 as a information sharing hub.&lt;br /&gt;When you open your first SharePoint team site at :https://youcompanyname.sharepoint.com" as administrator you will notice a new Site Action menu item called "Share Site". This is where you can add users as Visitor or Member to your site or sub site. You will also notice that this does not seem to work for external users straight away. You first need to change two settings for externals to gain access.&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;On the SharePoint Administration page accessible via&amp;nbsp;&lt;a href="https://portal.microsoftonline.com/admin/default.aspx"&gt;https://portal.microsoftonline.com/admin/default.aspx&lt;/a&gt;&amp;nbsp;you will find a button that says &lt;i&gt;Settings&lt;/i&gt;. Use this button to enable external access for your whole account.&amp;nbsp;&lt;/li&gt;&lt;li&gt;Then go to the &lt;i&gt;Site Settings&lt;/i&gt; of your private site collection via the&lt;i&gt; Site Actions&lt;/i&gt; menu and activate the &lt;i&gt;External User Invitations&lt;/i&gt;&amp;nbsp;feature under &lt;i&gt;Site Collection Features&lt;/i&gt;.&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;That's it folks. From now on you can add any email address to the &lt;i&gt;Share Site&lt;/i&gt; dialog and that person will receive an invitation email to connect to your SharePoint site.&lt;br /&gt;Using what username and password you might ask? Windows Live ID solves this problem for us. This part of Office 365 integrates via federation with Windows Live ID and so the external user can either use their existing Windows Live ID or sign up for a new one.&lt;br /&gt;Once the user has signed in with their Live ID, they will appear in the group that you have added them to. Not any sooner though. They will also appear with their Live ID email which might be different from the email address you sent the invitation to. So before you get a heart attack thinking you got hacked by some random person, double check the email if it does not belong to someone you know who favours cryptic email addresses.&lt;br /&gt;&lt;br /&gt;Happy Sharing!&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/908451797546196795-8176130482965813680?l=mctalex.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mctalex.blogspot.com/feeds/8176130482965813680/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=908451797546196795&amp;postID=8176130482965813680' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/8176130482965813680'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/8176130482965813680'/><link rel='alternate' type='text/html' href='http://mctalex.blogspot.com/2011/09/using-office-365-in-extranet-scenario.html' title='Using Office 365 in an Extranet Scenario'/><author><name>Alex Dean</name><uri>http://www.blogger.com/profile/17702856763799376939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_kvPl7CQ2CWY/TQ6K6TrjTMI/AAAAAAAAAYQ/oEj3MNzZWcM/S220/Alex-Dean.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-908451797546196795.post-3553664875761717608</id><published>2011-09-01T16:29:00.002+12:00</published><updated>2011-09-01T16:58:24.947+12:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Lync'/><category scheme='http://www.blogger.com/atom/ns#' term='CAC'/><title type='text'>Call Admission Control (CAC) not working in Lync?</title><content type='html'>The best tool to test if Call Admission Control (CAC) is actually being used once you have activated it is to use the Logging tool provided with Lync. The Protocol you are interested in is PDP. Another cool tool is the bandwidth monitoring tool provided in the Resource Toolkit. That will show you currently used BW and also existing limits imposed via bandwidth policies.&lt;br /&gt;Should you be in a lab environment, there is a good chance you will not find any CAC entries in the PDP logfile (look for the keywords: requested,current,returned) and the monitoring tool shows Zeros throughout.&lt;br /&gt;&lt;br /&gt;CAC is initiated from the client. Effectively the client must know to start asking for a bandwidth for it to turn up in the logs and CAC to do its magic. If the client does not know that CAC is enabled it will not ask. Thus make sure you exit out of the test clients completely and also run gpupdate /force on each test machine after you enabled CAC. &lt;br /&gt;&lt;br /&gt;Another universal fix it when Lync clients are misbehaving is to delete the Cache file. For best results go to:&lt;br /&gt;%userprofile%\AppData\Local\Microsoft\Communicator and delete every folder starting with sip_. That will clear out any cached values on your client (and the contact list too) and will force it to pull the latest updates. Careful! that will also delete any connection settings that you might have used for manual configuration instead of automatic configuration.&lt;br /&gt;&lt;br /&gt;Finally, try establishing an IM conversation first and adding Audio to that running session. That has proven to be most effective when clients refused to request bw from CAC. After that also non IM initiated sessions request BW.&lt;br /&gt;If you still can't see anything happening on the monitor or requests in the log files I suggest you have a closer look at your Edge and Front End Servers. Make sure all services are running and restart the Lync Bandwidth related services.&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Segoe UI', 'Lucida Grande', Verdana, Arial, Helvetica, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: 11px; line-height: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/908451797546196795-3553664875761717608?l=mctalex.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mctalex.blogspot.com/feeds/3553664875761717608/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=908451797546196795&amp;postID=3553664875761717608' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/3553664875761717608'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/3553664875761717608'/><link rel='alternate' type='text/html' href='http://mctalex.blogspot.com/2011/09/call-admission-control-cac-not-working.html' title='Call Admission Control (CAC) not working in Lync?'/><author><name>Alex Dean</name><uri>http://www.blogger.com/profile/17702856763799376939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_kvPl7CQ2CWY/TQ6K6TrjTMI/AAAAAAAAAYQ/oEj3MNzZWcM/S220/Alex-Dean.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-908451797546196795.post-7354404566349130175</id><published>2011-09-01T15:40:00.001+12:00</published><updated>2011-09-01T16:31:53.226+12:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Lync'/><category scheme='http://www.blogger.com/atom/ns#' term='Powershell'/><title type='text'>Adding answers to IVR Response Group workflow via Powershell</title><content type='html'>&lt;span class="Apple-style-span" style="background-color: white; color: #333333;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;Introduction&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;in Lync 2010 you can use the web interface to create Interactive Response Groups with up to four possible answers and up to two levels of nested questions. Should you want to add a fifth question to the IVR workflow you will have to revert to using Powershell commands. Although you can create workflows from scratch using Powershell (great article to be found here: &lt;br /&gt;&lt;br /&gt;&lt;a href="http://blogs.technet.com/b/csps/archive/2010/09/15/rgscreateresponsegroup.aspx"&gt;http://blogs.technet.com/b/csps/archive/2010/09/15/rgscreateresponsegroup.aspx&lt;/a&gt;) you can also edit existing workflows instead of creating them completely new. In this post I will show you how to get hold of an existing workflow using Powershell, add another possible answer to a question and then save the workflow to commit the changes.&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;Editing an existing Lync IVR Workflow using Powershell&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;First you will need to get hold of the workflow objects so you can add new answers to them. First we will retrieve the workflow by its name. Then get hold of an existing queue by its name. This queue can have been created in the control panel. Finally we'll get hold of the first question of the workflow to which we plan to add a fifth option.&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;$Workflow = Get-CSRgsWorkflow -Name "MyWorkflowName"&lt;br /&gt;$Queue = Get-CsRgsQueue -Name "MyQueue"&lt;br /&gt;$Question = $workflow.DefaultAction.Question&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The next step is to create another action and answer and add them to the question bank. First we create an action which will transfer the call to a queue and specify the previously referenced queue. Then we create a fifth option for the question with dtmf tone 5 and the spoken version of "Option5". Then we add the answer to the question list.&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;$Action5 = New-CsRgsCallAction&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;-Action TransferToQueue&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;-QueueID $Queue.Identity&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;$Answer5 = New-CsRgsAnswer&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;-Action $Action5&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;-DtmfResponse 5&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;-VoiceResponseList "Option5"&lt;br /&gt;&lt;br /&gt;$Question.AnswerList.Add($Answer5)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Finally you need to save the workflow back again using the Set-CsRgsWorkflow Command&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;Set-CsRgsWorkflow -Instance $Workflow&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;That's it! You've created and added a fifth possible answer to an IVR Workflow which previously only had four possible answers. Please note, that from now on you will not be able to edit the workflow using the web interface and will get an unsupported error message instead. &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/908451797546196795-7354404566349130175?l=mctalex.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mctalex.blogspot.com/feeds/7354404566349130175/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=908451797546196795&amp;postID=7354404566349130175' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/7354404566349130175'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/7354404566349130175'/><link rel='alternate' type='text/html' href='http://mctalex.blogspot.com/2011/09/adding-answers-to-ivr-response-group.html' title='Adding answers to IVR Response Group workflow via Powershell'/><author><name>Alex Dean</name><uri>http://www.blogger.com/profile/17702856763799376939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_kvPl7CQ2CWY/TQ6K6TrjTMI/AAAAAAAAAYQ/oEj3MNzZWcM/S220/Alex-Dean.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-908451797546196795.post-5886968646025831437</id><published>2011-08-26T15:56:00.001+12:00</published><updated>2011-09-01T16:33:05.240+12:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Lync'/><category scheme='http://www.blogger.com/atom/ns#' term='Asterisk'/><title type='text'>Asterisk disk full</title><content type='html'>Just after my last class today&amp;nbsp;I though I'd copy the asterisk box from the presenter machine to my backup drive. I was shocked to see a 44GB file! Obviously there was some logging problem bloating the hard disk, but it was not asterisk's log files under var/asterisk but instead core files found in tmp.&lt;br /&gt;These core files are effectively memory dump files created by CentOS when Asterisk mibehaves and crashes. I had 43 GB worth of dump files already. The problem is, that simple errors in your sip.conf can cause Asterisk to crash and restart and subsequently crash, going on until your HDD is full of dump files. &lt;br /&gt;I found a easy post on how to control the core dumps here:&lt;br /&gt;&lt;a href="http://aplawrence.com/Linux/limit_core_files.html"&gt;http://aplawrence.com/Linux/limit_core_files.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;But that only combats half the problem. The main part was why was asterisk is crashing so often. the answer lied in my case in the qualify=yes entries in my sip.config. If the Lync Mediation server does not expect to respond to the gateway (topology not published yet, Mediation Service not restarted) or is not online at all&amp;nbsp;then the qualify will fail. Worse even, it will crash my Asterisk 1.6 box causing those dumps to quickly fill up the HDD (50MB per dump). So setting qualify=no has helped me keep my asterisk box more stable between my demonstrations.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/908451797546196795-5886968646025831437?l=mctalex.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mctalex.blogspot.com/feeds/5886968646025831437/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=908451797546196795&amp;postID=5886968646025831437' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/5886968646025831437'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/5886968646025831437'/><link rel='alternate' type='text/html' href='http://mctalex.blogspot.com/2011/08/asterisk-disk-full.html' title='Asterisk disk full'/><author><name>Alex Dean</name><uri>http://www.blogger.com/profile/17702856763799376939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_kvPl7CQ2CWY/TQ6K6TrjTMI/AAAAAAAAAYQ/oEj3MNzZWcM/S220/Alex-Dean.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-908451797546196795.post-4480588585070614725</id><published>2011-06-23T09:34:00.001+12:00</published><updated>2011-09-01T16:33:30.377+12:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Lync'/><category scheme='http://www.blogger.com/atom/ns#' term='Asterisk'/><title type='text'>Using 2talk SIP Provider with Lync</title><content type='html'>yesterday I posted about using Asterisk with Lync. Today I will share my configuration files for getting 2Talk up and running with the latest version of Asterisk 1.6:&lt;br /&gt;Effectively there are two configuration files you need to worry about. The sip and the extensions files. &lt;br /&gt;The sip.conf file specifies the different sip trunks and authentication mechanisms. The extensions.conf is your dialplan, which can be the trickiest to get working. Below are my versions (passwords removed)&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;sip.conf:&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;[general]&lt;br /&gt;registerattempts=0&lt;br /&gt;registertimeout=20&lt;br /&gt;allowoverlap=no ; Disable overlap dialing support. (Default is yes)&lt;br /&gt;udpbindaddr=0.0.0.0 ; IP address to bind UDP listen socket to (0.0.0.0 binds to all)&lt;br /&gt;bindport=5060&lt;br /&gt;bindaddr=0.0.0.0&lt;br /&gt;tcpenable=yes ; Enable server for incoming TCP connections (default is no)&lt;br /&gt;tcpbindaddr=0.0.0.0 ; IP address for TCP server to bind to (0.0.0.0 binds to all interfaces)&lt;br /&gt;srvlookup=yes ; Enable DNS SRV lookups on outbound calls&lt;br /&gt;notifyhold = yes &lt;br /&gt;&lt;br /&gt;;register 2Talk number to receive incoming calls (replace placeholders with values, remove brackets)&lt;br /&gt;register =&amp;gt; &lt;yournumber&gt;:&lt;password&gt;@2talk.co.nz/&lt;yournumber&gt;&lt;br /&gt;&lt;br /&gt;[1001] ; A locally attached SIP extension (in my case an X-Lite client)&lt;br /&gt;type=friend&lt;br /&gt;callerid=1001&lt;br /&gt;canreinvite=no&lt;br /&gt;dtmfmode=rfc2833&lt;br /&gt;mailbox=1001&lt;br /&gt;disallow=all&lt;br /&gt;allow=ulaw&lt;br /&gt;transport=udp&lt;br /&gt;secret=password&lt;br /&gt;host=dynamic&lt;br /&gt;context=default&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;[2talk]&lt;br /&gt;type=friend&lt;br /&gt;username=&lt;yournumber&gt;&lt;br /&gt;fromuser=&lt;yournumber&gt;&lt;br /&gt;secret=&lt;password&gt;&lt;br /&gt;host=2talk.co.nz&lt;br /&gt;context=from-2talk ; going to use this in extensions.conf&lt;br /&gt;dtmfmode=rfc2833&lt;br /&gt;disallow=all&lt;br /&gt;allow=ilbc&lt;br /&gt;allow=gsm&lt;br /&gt;allow=alaw&lt;br /&gt;allow=ulaw&lt;br /&gt;;allow=g729 ; only if you have licenses to use it&lt;br /&gt;nat=yes&lt;br /&gt;canreinvite=no&lt;br /&gt;insecure=invite,port ; use insecure=very in earlier versions of Asterisk such as v1.2&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;[Lync_Trunk] ; Our Lync trunk&lt;br /&gt;type=friend&lt;br /&gt;port=5068 ; This is the default Lync Server TCP listening port&lt;br /&gt;host=&lt;ip address=""&gt;&amp;nbsp;; This should be the IP address of your Lync Mediation Server&lt;br /&gt;dtmfmode=rfc2833&lt;br /&gt;context=from-lync&lt;br /&gt;qualify=yes&lt;br /&gt;transport=tcp,udp&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;extensions.conf&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;[general]&lt;br /&gt;&lt;br /&gt;static=yes&lt;br /&gt;writeprotect=no&lt;br /&gt;&lt;br /&gt;[globals]&lt;br /&gt;&lt;br /&gt;[default]&lt;br /&gt;;calls to a 4 digit extension starting with one are routed directly via SIP to local phones&lt;br /&gt;exten =&amp;gt; _1XXX,1,Dial(SIP/${EXTEN},20)&lt;br /&gt;exten =&amp;gt; _1XXX,2,hangup()&lt;br /&gt;&lt;br /&gt;; outbound calls (outside of your own PBX) (only used for internal phones, not&amp;nbsp;calls originating from Lync)&lt;br /&gt;exten =&amp;gt; _0.,1,Dial(SIP/${EXTEN:1}@2talk)&lt;br /&gt;exten =&amp;gt; _0.,2,hangup()&lt;br /&gt;&lt;br /&gt;;calls coming in locally going to a 4 digit number starting with 2 are redirected over the Lync trunk&lt;br /&gt;exten =&amp;gt; _2XXX,1,Dial(SIP/Lync_Trunk/${EXTEN},20)&lt;br /&gt;exten =&amp;gt; _2XXX,2,hangup()&lt;br /&gt;&lt;br /&gt;[from-lync]&lt;br /&gt;;dialling other extensions starting with 1 followed by three digits are sent locally&lt;br /&gt;exten=&amp;gt;_1XXX,1,Dial(SIP/${EXTEN},20)&lt;br /&gt;exten=&amp;gt;_1XXX,n,hangup()&lt;br /&gt;&lt;br /&gt;;send other calls to 2talk for Asterisk (no prefix here as Lync will probably have its own dialplan)&lt;br /&gt;exten =&amp;gt; _.,1,Dial(SIP/${EXTEN}@2talk)&lt;br /&gt;exten =&amp;gt; _.,2,hangup()&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;[from-2talk]&lt;br /&gt;;send incoming calls&amp;nbsp;on your 2talk&amp;nbsp;number&amp;nbsp;to a Lync Extension&lt;br /&gt;exten =&amp;gt; _X.,1,Dial(SIP/Lync_Trunk/2001)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;That's it folks! Try using the two configurations with your 2talk SIP provider, add&amp;nbsp;your&amp;nbsp;own number,&amp;nbsp;secret and Lync IP address and start making and receiving calls over Lync.&lt;/ip&gt;&lt;/password&gt;&lt;/yournumber&gt;&lt;/yournumber&gt;&lt;/yournumber&gt;&lt;/password&gt;&lt;/yournumber&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/908451797546196795-4480588585070614725?l=mctalex.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mctalex.blogspot.com/feeds/4480588585070614725/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=908451797546196795&amp;postID=4480588585070614725' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/4480588585070614725'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/4480588585070614725'/><link rel='alternate' type='text/html' href='http://mctalex.blogspot.com/2011/06/using-2talk-sip-provider-with-lync.html' title='Using 2talk SIP Provider with Lync'/><author><name>Alex Dean</name><uri>http://www.blogger.com/profile/17702856763799376939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_kvPl7CQ2CWY/TQ6K6TrjTMI/AAAAAAAAAYQ/oEj3MNzZWcM/S220/Alex-Dean.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-908451797546196795.post-2430646755769091567</id><published>2011-06-22T00:16:00.000+12:00</published><updated>2011-09-01T16:35:05.444+12:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Lync'/><category scheme='http://www.blogger.com/atom/ns#' term='Asterisk'/><title type='text'>Using Asteriks with Lync 2010</title><content type='html'>Next week I am teaching how to install and configure Lync using the material provided in the course10533 from Microsoft. Although the course has some great stuff, it misses out on the really juicy bits. Setting up a PSTN connection for example. &lt;br /&gt;I simply could not resist setting it up for myself. After some digging I found this GREAT! Post by Adam:&lt;br /&gt;&lt;a href="http://imaucblog.com/archive/2010/10/09/step-by-step-microsoft-lync-2010-asterisk-and-skype-installationintegration-guide/"&gt;http://imaucblog.com/archive/2010/10/09/step-by-step-microsoft-lync-2010-asterisk-and-skype-installationintegration-guide/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;But then I need to get my Virtual machines connected to the internet! Now ICS has proven to be rather icky. And Bridging really mucks things up. So in the end only a good ol Routing Service would do the trick. &lt;br /&gt;John Paul has a nice article on how to configure Hyper-V to route traffic to your wireless adapter:&lt;br /&gt;&lt;a href="http://sqlblog.com/blogs/john_paul_cook/archive/2008/03/23/using-wireless-with-hyper-v.aspx"&gt;http://sqlblog.com/blogs/john_paul_cook/archive/2008/03/23/using-wireless-with-hyper-v.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;WARNING! Skip the first quarter of the screenshots where he shows bridging. don't wanna do that. jump down to where he starts talking about RRAS&lt;br /&gt;&lt;br /&gt;Once I had routing set up and could connect to the net using the private ip-ranges I wanted, I was ready to install Asterisk using Adam's instructions. &lt;br /&gt;&lt;br /&gt;Some tips for getting it all running:&lt;br /&gt;No need to buy Skype Plugin if you wanna use sip. I used 2talk and am happy with the results. For the detailled config for 2talk try this page:&lt;br /&gt;&lt;a href="http://blog.2talk.co.nz/asterisk.html"&gt;http://blog.2talk.co.nz/asterisk.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;IK found a mix between the settings from Adam and the ones from 2talk worked best. &lt;br /&gt;&lt;br /&gt;WARNING! A typo or bad rule can send your Asterisk server into an endless crash loop. To fix that, copy the 2talk configurations back into the files and start over again. &lt;br /&gt;&lt;br /&gt;Some helping commands I used along the way on the Linux box:&lt;br /&gt;ifconfig (set a new IP address)&lt;br /&gt;route (add a default route to connect to Gateway)&lt;br /&gt;ping (test ip connectivity)&lt;br /&gt;nslookup (test dns server connectivity)&lt;br /&gt;ifconfig and route take effect immediately on the linux box. The changes made via the network setup program only come to life on the next reboot (which took about 5-10 minutes each time)&lt;br /&gt;&amp;nbsp; &lt;br /&gt;asterisk -r (connect to asterisk console) &lt;br /&gt;&amp;nbsp; reload (reload all configs)&lt;br /&gt;&amp;nbsp; diaplan reload (reload only the dialplan)&lt;br /&gt;&amp;nbsp; sip show peers (see what routes are setup and working)&lt;br /&gt;&lt;br /&gt;And as I hate using the command line editor, downlad a browser/editor for Windows ASAP, such as WinSCP: &lt;a href="http://winscp.net/eng/download.php"&gt;http://winscp.net/eng/download.php&lt;/a&gt;&lt;br /&gt;You will need that editor to edit the /etc/asterisk/sip.conf and /etc/asterisk/extensions.conf files&lt;br /&gt;&lt;br /&gt;Whenever you make a change to sip.conf or extensions.conf make sure to run the reload command in asterisk again. &lt;br /&gt;Also, staying logged in to Asterisk will show what is going on and is useful when debugging conversation attempts.&lt;br /&gt;Finally, try getting it working step by step.&lt;br /&gt;1) connect X-Lite to SIP provider via Asterisk&lt;br /&gt;2) connect X-Lite to Lync&lt;br /&gt;3) connect Lync to X-Lite&lt;br /&gt;4) connect Lync to SIP provider&lt;br /&gt;Step 1 should be your priority. Once that works the rest falls into place.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Happy configuring. Having it all working is an exhilerating feeling. you'll know what I mean once you have made your first Lync phone call to a real land line.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/908451797546196795-2430646755769091567?l=mctalex.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mctalex.blogspot.com/feeds/2430646755769091567/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=908451797546196795&amp;postID=2430646755769091567' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/2430646755769091567'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/2430646755769091567'/><link rel='alternate' type='text/html' href='http://mctalex.blogspot.com/2011/06/using-asteriks-with-lync-2010.html' title='Using Asteriks with Lync 2010'/><author><name>Alex Dean</name><uri>http://www.blogger.com/profile/17702856763799376939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_kvPl7CQ2CWY/TQ6K6TrjTMI/AAAAAAAAAYQ/oEj3MNzZWcM/S220/Alex-Dean.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-908451797546196795.post-8753375531211630533</id><published>2011-06-13T15:46:00.000+12:00</published><updated>2011-09-01T16:34:52.700+12:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Information Architecture'/><title type='text'>Hierarchies inspired by Tube Maps</title><content type='html'>One of the probably most famous and useful navigation resource is the London Underground map. It is truly a masterpiece of navigational aid and has hardly changed since its inception. When reviewing the different possible ways to map out a navigation I came across Patrick Walsh's post : &lt;a href="http://www.boxesandarrows.com/view/a-map-based-approach"&gt;http://www.boxesandarrows.com/view/a-map-based-approach&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;There he describes a process of using Visio to create a tube map like representation of an intranet. A sample could look as such:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-gATfq34vv98/TfWF3_hW0yI/AAAAAAAAAZ8/Frrvcj5arKM/s1600/Metro-Map.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/-gATfq34vv98/TfWF3_hW0yI/AAAAAAAAAZ8/Frrvcj5arKM/s1600/Metro-Map.jpg" t8="true" /&gt;&lt;/a&gt;&lt;/div&gt;Using interconnections, call-outs and differently coloured lines it now becomes easier to show the different paths a user could take through the system, how the navigation nodes relate to each other and where cross linking is used to help navigation.&lt;br /&gt;&lt;br /&gt;Also it should become easier to add lots more links onto a page&amp;nbsp;while keeping it printable and overviewable.&lt;br /&gt;&lt;br /&gt;Donna Maurer (&lt;a href="http://www.maadmob.net/donna/blog/archives/000639.html"&gt;http://www.maadmob.net/donna/blog/archives/000639.html&lt;/a&gt;)&amp;nbsp;has already found the benefits of adding actualt data to a visio diagram, which makes updating th diagrams&amp;nbsp;with new titles or descriptions a breeze. As datasource you can use either a excel file, Access database or even a SharePoint list!&lt;br /&gt;&lt;br /&gt;A few tips for when you are&amp;nbsp;working your way through connecting data to your shapes:&lt;br /&gt;1) call the field which contains the url to the page Url. That way visio will automatically link the whole shape. You can rename a field in Visio, no need to fix the source.&lt;br /&gt;2) create&amp;nbsp;custom representations for&amp;nbsp;your data using the Data&amp;nbsp;Graphics button on the Visio 2010 ribbon.&lt;br /&gt;3)&amp;nbsp;create&amp;nbsp;four different options, one for title above, one for below and one&amp;nbsp;for each side. Changing one option will change all instances of that option. Thus,&amp;nbsp;you will need to create four separate ones.&lt;br /&gt;&lt;br /&gt;I'll be handing out samples of the visio I used to create a map at my IA course in Wellington which you can use straight away to build your own metro sitemaps!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/908451797546196795-8753375531211630533?l=mctalex.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mctalex.blogspot.com/feeds/8753375531211630533/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=908451797546196795&amp;postID=8753375531211630533' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/8753375531211630533'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/8753375531211630533'/><link rel='alternate' type='text/html' href='http://mctalex.blogspot.com/2011/06/hierarchies-inspired-by-tube-maps.html' title='Hierarchies inspired by Tube Maps'/><author><name>Alex Dean</name><uri>http://www.blogger.com/profile/17702856763799376939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_kvPl7CQ2CWY/TQ6K6TrjTMI/AAAAAAAAAYQ/oEj3MNzZWcM/S220/Alex-Dean.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-gATfq34vv98/TfWF3_hW0yI/AAAAAAAAAZ8/Frrvcj5arKM/s72-c/Metro-Map.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-908451797546196795.post-5171739287337586823</id><published>2011-06-04T18:28:00.001+12:00</published><updated>2011-09-01T16:34:52.701+12:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint 2010'/><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><category scheme='http://www.blogger.com/atom/ns#' term='Information Architecture'/><title type='text'>Introduction to SharePoint Information Architecture</title><content type='html'>It is my pleasure to announce the newest course offering by Equinox in Wellington:&lt;br /&gt;&lt;a href="http://www.equinox.co.nz/training/Pages/CourseDescriptions/sharepoint-information-architecture-introduction.aspx"&gt;http://www.equinox.co.nz/training/Pages/CourseDescriptions/sharepoint-information-architecture-introduction.aspx&lt;/a&gt;&lt;br /&gt;I've teamed up with Equinox to deliver three SharePoint Information Architecture courses in Wellington.&amp;nbsp;A one day introduction which covers the basics of IA as well as the basics of SharePoint. A two day course which then goes into the depths of creating taxonomies and hierarchies in SharePoint which can withstand the test of time. Finishing off with an advanced course which covers records management, governance, scalability and other advanced concepts over another two days. &lt;br /&gt;I've been spending many hours online and in libraries prepping the contents of the introduction course and while I will be demystifing some SharePoint myths&amp;nbsp;during the course I also am looking forward to the interactive sessions with the students. IA simply is not something you can learn by listening to speeches or watching viedos. It really only sinks in when you do it for real, so expect some fun and enlightening hands on session to drive home the concepts learnt!&lt;br /&gt;&lt;br /&gt;We'll be running the course on June 22nd. Places are limited;&amp;nbsp;so make sure&amp;nbsp;you book your place soon to avoid disappointment!&lt;br /&gt;&lt;a href="http://www.equinox.co.nz/training/Pages/CourseDescriptions/sharepoint-information-architecture-introduction.aspx"&gt;http://www.equinox.co.nz/training/Pages/CourseDescriptions/sharepoint-information-architecture-introduction.aspx&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/908451797546196795-5171739287337586823?l=mctalex.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mctalex.blogspot.com/feeds/5171739287337586823/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=908451797546196795&amp;postID=5171739287337586823' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/5171739287337586823'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/5171739287337586823'/><link rel='alternate' type='text/html' href='http://mctalex.blogspot.com/2011/06/introduction-to-sharepoint-information.html' title='Introduction to SharePoint Information Architecture'/><author><name>Alex Dean</name><uri>http://www.blogger.com/profile/17702856763799376939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_kvPl7CQ2CWY/TQ6K6TrjTMI/AAAAAAAAAYQ/oEj3MNzZWcM/S220/Alex-Dean.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-908451797546196795.post-8111681289266963909</id><published>2011-06-04T18:13:00.000+12:00</published><updated>2011-09-01T16:34:24.968+12:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint 2010'/><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><title type='text'>Expired Virtual Machines for 10232</title><content type='html'>Thank God, Microsoft Learning is fixing the date issue on the 10232 virtual machines. Looks like this time they didn't get away with "it is not broken, it is by design". So if you are planning on teaching Advanced SharePoint Development techniques any time soon, then make sure to get your hands on the newest images. They should be online within the next week or so. &lt;br /&gt;Btw, 10232 is full of theory and "best practice" concepts. Great for solution architects, team leads and senior developers. Not really the stuff junior SharePoint developers are keen on. They just want to get their hands dirty coding WebParts.&lt;br /&gt;Also, encourage the client to send their newbie SharePoint developers onto 10174 first before visiting any of the advanced courses. Although it is an admin focussed course it covers all the essentials which a developer needs to know about.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/908451797546196795-8111681289266963909?l=mctalex.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mctalex.blogspot.com/feeds/8111681289266963909/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=908451797546196795&amp;postID=8111681289266963909' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/8111681289266963909'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/8111681289266963909'/><link rel='alternate' type='text/html' href='http://mctalex.blogspot.com/2011/06/expired-virtual-machines-for-10232.html' title='Expired Virtual Machines for 10232'/><author><name>Alex Dean</name><uri>http://www.blogger.com/profile/17702856763799376939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_kvPl7CQ2CWY/TQ6K6TrjTMI/AAAAAAAAAYQ/oEj3MNzZWcM/S220/Alex-Dean.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-908451797546196795.post-2545830566568223502</id><published>2011-04-21T11:25:00.000+12:00</published><updated>2011-09-01T16:34:24.969+12:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint 2010'/><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><title type='text'>MCT Tips and Tricks for 10232</title><content type='html'>Fellow MCTs,&lt;br /&gt;I am posting this for the benefit of those MCTs who have not figured out that there is a whole wiki page at&amp;nbsp;&lt;a href="http://borntolearn.mslearn.net/"&gt;http://borntolearn.mslearn.net&lt;/a&gt;&amp;nbsp;on this course once you log in with your MCT LiveID account.&lt;br /&gt;&lt;br /&gt;10232 was built with a trial key for SharePoint that has a fixed expiry date. You must turn the clock back to August 2010 (tested using 10th and 11th/08) to teach this course. Thanks go to Chris Barker for being the first to post a solution to this problem at the MCT forum. The key to getting the course to run is to set the clock of the host back before importing the VM and starting it up. This is due to the host setting the bios date of the vm on initial bootup. So changing the time after the fact in the vm does not help as the SharePoint key has invalidated itself by then.&lt;br /&gt;BUT...&lt;br /&gt;When setting the clock back to a date before the host was built you might have troubles getting any vm to start with a certificate failure. This is due to a certificate HyperV uses when initialising the VM. To solve the problem you need to delete the self-signed cert and reboot the machine. That will force Hyper-V to recreate the cert at the older date and the VMs will start. To do this follow these steps:&lt;br /&gt;1) open MMC and add the Certifcates Snap-in&lt;br /&gt;2) Select the service account option&lt;br /&gt;3) Pick the HyperV Virtual Machine Manager service&lt;br /&gt;4) drill down into the own Certificate folder (first folder)&lt;br /&gt;5) delete the self signed cert with the machine name&lt;br /&gt;6) reboot&lt;br /&gt;&lt;br /&gt;Last Tips for a smooth running course:&lt;br /&gt;Configure the machine to use an internal network so you can remote into the box from the host. That will make copy and paste much easier and also allows you to put fiddler on the machines. (my students loved seeing fiddler in action and could not stop fiddling with it)&lt;br /&gt;Change the Integration settings for the vm to not synch the time. That will stop the host from updating the time in the VM. This does not work on initial boot, as the initial time and date on first start of the vm will always be set based on the current host regardless of that setting. But it should prevent the machine to take on a new date while it is running.&lt;br /&gt;Then make a Snapshot!!!&lt;br /&gt;Should the student have changed the time on the host during the course and the time did synch due to some fluke, you can easily revert back to the snapshot which has the correct time settings and a functioning SharePoint instance.&lt;br /&gt;&lt;br /&gt;Happy teaching!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/908451797546196795-2545830566568223502?l=mctalex.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mctalex.blogspot.com/feeds/2545830566568223502/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=908451797546196795&amp;postID=2545830566568223502' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/2545830566568223502'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/2545830566568223502'/><link rel='alternate' type='text/html' href='http://mctalex.blogspot.com/2011/04/mct-tips-and-tricks-for-10232.html' title='MCT Tips and Tricks for 10232'/><author><name>Alex Dean</name><uri>http://www.blogger.com/profile/17702856763799376939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_kvPl7CQ2CWY/TQ6K6TrjTMI/AAAAAAAAAYQ/oEj3MNzZWcM/S220/Alex-Dean.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-908451797546196795.post-7120250167909186462</id><published>2011-04-20T17:27:00.000+12:00</published><updated>2011-09-01T16:34:24.970+12:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint 2010'/><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><title type='text'>SharePoint Diagnostics Studio V2.0</title><content type='html'>This will be one of the most anticipated admin and dev tools released for SharePoint this year. It will come bundled with the updated&amp;nbsp;version&amp;nbsp;of the administrator toolkit for SharePoint 2010.&lt;br /&gt;Ever had to trawl through multiple logs from multiple load balanced servers to figure out what really happened? Wished you could have your perfmon counters ready when analysing problems? The next version of the SPDiag tool will let you do that and much more. Run reports, save report snapshots, find events based on time, CorrelationID and... the login name! So Jo complains his page crashed and he did not make not of the correlation id? No problem. correlate all logs into one place on your desktop with minimal strain on the servers. Then run a search on his logon and the time window when it crashed and you'll have all the surrounding details, processes and counters available at your fingertips.&lt;br /&gt;Also includes database stats, network stats and latency statistics to identify bottlenecks with some of you service app communications.&lt;br /&gt;This tool was developed by the product team at Microsoft to assist them with the SharePoint development process. What's good for them can't be bad for us mere mortals!&lt;br /&gt;Can't wait to get my hands on this gem. Supposedly coming out this month. Which really means sometime this year, probably during Q2 some time.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/908451797546196795-7120250167909186462?l=mctalex.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mctalex.blogspot.com/feeds/7120250167909186462/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=908451797546196795&amp;postID=7120250167909186462' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/7120250167909186462'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/7120250167909186462'/><link rel='alternate' type='text/html' href='http://mctalex.blogspot.com/2011/04/sharepoint-diagnostics-studio-v20.html' title='SharePoint Diagnostics Studio V2.0'/><author><name>Alex Dean</name><uri>http://www.blogger.com/profile/17702856763799376939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_kvPl7CQ2CWY/TQ6K6TrjTMI/AAAAAAAAAYQ/oEj3MNzZWcM/S220/Alex-Dean.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-908451797546196795.post-2620769879261787949</id><published>2011-03-18T15:12:00.001+13:00</published><updated>2011-03-18T18:41:23.207+13:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Search'/><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><category scheme='http://www.blogger.com/atom/ns#' term='MOSS 2007'/><title type='text'>How to Add Custom Columns to the Search Results in MOSS 2007</title><content type='html'>A few years ago I demonstrated at the New Zealand Conference how to add custom metadata columns to your search results. What I never did was make a blog post about it. So let me rectify that error of mine.&lt;br /&gt;&lt;br /&gt;To get custom columns to appear on your search results page in MOSS you will need to do a few things. First make sure the metadata field is indexed and available by adding it to the Mapped Metadata Columns in the Search Administration of your SSP. Then, recrawl your index. And finally show the new column on the search results page by tweaking some xml and xsl.&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;1) Get the column indexed and mapped&lt;/span&gt;&lt;br /&gt;To do this, open up your SSP admin site either directly or via Central Admin. Then navigate to the Search Administration Page and look for Managed Columns on the left menu. There you will need to add a new managed colum which mapps your custom field. This field could be in a SQL Store indexed via BCS or in a custom list or in a custom content type. In any case I assume that you have already crawled all the content in question, otherwise this step won't work.&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;2) Recrawl the index&lt;/span&gt;&lt;br /&gt;Once you have added the managed metadata colum you need to do a full crawl. Sorry, no incremental crawls will work, as only in a full crawl does the engine do the mapping of all existing fields in the index.&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;3) Customise the Search Results&lt;/span&gt;&lt;br /&gt;Browse to the search results page in your Search Centre. Fastest way? Type in a search into any search box! If you farm is configured correctly that should catapult you to the correct page.&lt;br /&gt;There you need to edit the page and customise the Core Search Results WebPart. &lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://lh5.googleusercontent.com/-1pGOxprCjgE/TYLrX5gjZdI/AAAAAAAAAZc/iwYtcWRxjhE/s1600/Search-Core-Results-WebPart-Edit.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" r6="true" src="https://lh5.googleusercontent.com/-1pGOxprCjgE/TYLrX5gjZdI/AAAAAAAAAZc/iwYtcWRxjhE/s320/Search-Core-Results-WebPart-Edit.jpg" width="176" /&gt;&lt;/a&gt;&lt;/div&gt;Before you edit the actual XSL Look and feel you need to tell the webpart about the new column. So first click the three dots next to "Selected Columns". You find this option under the ResultsQuery Option. (refer to above screenshot) Copy the text out of the editor into notepad. You'll get this:&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://lh6.googleusercontent.com/-KqkNRdiro1o/TYLsJ-WUK9I/AAAAAAAAAZg/bmcVMHDdEN8/s1600/Columns-xml.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="210" r6="true" src="https://lh6.googleusercontent.com/-KqkNRdiro1o/TYLsJ-WUK9I/AAAAAAAAAZg/bmcVMHDdEN8/s320/Columns-xml.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;Well, you won't get that exactly. It will all be on one line and illegible. Feel free to use an xml editor of your choice instead of notepad. &lt;br /&gt;In that xml you now need to add the Mapped Metadata column name. Make sure&amp;nbsp;you use the correct&amp;nbsp;case. XML is case sensitive! Also add the name you gave the mapped column and not the source metadata&amp;nbsp;column (in case these two have different names). Once you have added the column to the xml text copy it back into the popup for the "Select Columns: option.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://lh3.googleusercontent.com/-0hTD87f5zbI/TYLtd2-5YEI/AAAAAAAAAZk/clbFfEinxtk/s1600/Columns-xml-final.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="207" r6="true" src="https://lh3.googleusercontent.com/-0hTD87f5zbI/TYLtd2-5YEI/AAAAAAAAAZk/clbFfEinxtk/s320/Columns-xml-final.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;(note the new MyCustomColumn entry at the bottom) &lt;br /&gt;Once you have added the xml for the new column you can add&amp;nbsp;the column&amp;nbsp;to the output in the XSLT.&lt;br /&gt;Click the XSL Editor button on the WebPart customisation interface (see first screenshot)&amp;nbsp;and add the new field to your xsl.&lt;br /&gt;&lt;br /&gt;Extract before you add the markup:&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://lh4.googleusercontent.com/-B-fSCjgNMtg/TYLuKeiAqVI/AAAAAAAAAZo/9rHZW3hpMoQ/s1600/xsl-before.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="262" r6="true" src="https://lh4.googleusercontent.com/-B-fSCjgNMtg/TYLuKeiAqVI/AAAAAAAAAZo/9rHZW3hpMoQ/s320/xsl-before.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;And now with the new data appearing right next to the description of the search result:&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://lh4.googleusercontent.com/-UZk4JdDLeyU/TYLvSPmtEyI/AAAAAAAAAZs/t6QxT26F4Xw/s1600/xsl-result-final.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="264" r6="true" src="https://lh4.googleusercontent.com/-UZk4JdDLeyU/TYLvSPmtEyI/AAAAAAAAAZs/t6QxT26F4Xw/s320/xsl-result-final.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;That's it. Copy the changed xsl back into the XSL editor popup, apply your changes to the web part and test your results by executing a fresh search which includes some of the custom metadata that you have indexed.&lt;br /&gt;The next step would be to create a custom scope for your BCD indexed data, create a custom search page and search results page for that scope and go ape-shit on the search results page with loads of custom columns and custom look and feel.&lt;br /&gt;Happy Customising folks!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/908451797546196795-2620769879261787949?l=mctalex.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mctalex.blogspot.com/feeds/2620769879261787949/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=908451797546196795&amp;postID=2620769879261787949' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/2620769879261787949'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/2620769879261787949'/><link rel='alternate' type='text/html' href='http://mctalex.blogspot.com/2011/03/how-to-add-custom-columns-to-search.html' title='How to Add Custom Columns to the Search Results in MOSS 2007'/><author><name>Alex Dean</name><uri>http://www.blogger.com/profile/17702856763799376939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_kvPl7CQ2CWY/TQ6K6TrjTMI/AAAAAAAAAYQ/oEj3MNzZWcM/S220/Alex-Dean.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='https://lh5.googleusercontent.com/-1pGOxprCjgE/TYLrX5gjZdI/AAAAAAAAAZc/iwYtcWRxjhE/s72-c/Search-Core-Results-WebPart-Edit.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-908451797546196795.post-4756004715849756492</id><published>2011-03-14T22:02:00.001+13:00</published><updated>2011-09-01T16:34:24.970+12:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint 2010'/><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><title type='text'>How to pass 70-576</title><content type='html'>Totally forgot to post the fourth post in the series. If you want to earn your sharepoint 2010 professional developer credential then you'll also need to pass this exam. Measureup does not have this one on it's books yet, so no legal cheating on this one.&lt;br /&gt;The questions are not quite scenario based as with many of the .Net developer pro exams. But not quite as code driven as the TS exams. Expect simple scenarios with simple seeming answers. &lt;br /&gt;Actually there are quite a few trick answers where there seems to be two valid choices until you spot the error. My best advice on this exam is to eliminate the wrong answers. Quite a few will be obvious bull answers, but there will be the occasional one that will make you doubt. Re-read the question. Often there is a clue or constraint in the mini scenario which will eliminate the second option. &lt;br /&gt;A lot of questions are common sense on development and deployment techniques. Make sure you're up to scratch on best practices for features, solutions, dependencies, upgrading and the new 2010 features.&lt;br /&gt;Warning! Only because it is a new feature in 2010 doesn't mean that it must be the right choice!&lt;br /&gt;Last tip, as with any Microsoft exam, stick to your first gut choice when in doubt. And only move from that when you are 100% sure that the new answer is the correct one. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/908451797546196795-4756004715849756492?l=mctalex.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mctalex.blogspot.com/feeds/4756004715849756492/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=908451797546196795&amp;postID=4756004715849756492' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/4756004715849756492'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/4756004715849756492'/><link rel='alternate' type='text/html' href='http://mctalex.blogspot.com/2011/03/how-to-pass-70-576.html' title='How to pass 70-576'/><author><name>Alex Dean</name><uri>http://www.blogger.com/profile/17702856763799376939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_kvPl7CQ2CWY/TQ6K6TrjTMI/AAAAAAAAAYQ/oEj3MNzZWcM/S220/Alex-Dean.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-908451797546196795.post-3888298129667542458</id><published>2011-03-10T14:41:00.000+13:00</published><updated>2011-03-10T14:41:19.491+13:00</updated><title type='text'>Air New Zealand 777-300 Review</title><content type='html'>Just had the pleasure of viewing one of the new 777-300 planes from Air New Zealand. A lot of good things and a few bad things to comment on:&lt;br /&gt;&lt;b&gt;Great:&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Arm rests fold up in economy. Great if travelling as my wife and I normally do.&lt;/li&gt;&lt;li&gt;Sky couch can hold two people who weigh up to 150kg each. (300 Pounds on the leg rest alone)&lt;/li&gt;&lt;li&gt;Touch Screens work like a charm and at last no need for the annoying remote control&lt;/li&gt;&lt;li&gt;Remote/Phone stowed in-front and not in the side (why did they not think of that earlier?)&lt;/li&gt;&lt;li&gt;New menu is supposed to be much better (I'll wait and see)&lt;/li&gt;&lt;li&gt;Power sockets also in economy. (Which laptop battery lasts for 12h-24h?)&lt;/li&gt;&lt;li&gt;Headrest holds up! (That drove me mad in the old planes. Always falling down again.)&lt;/li&gt;&lt;li&gt;Special cushions that attach to headrest. No more fussing with the cushion when standing up and sitting back down again.&lt;/li&gt;&lt;li&gt;Sections are shorter with an added canteen in the middle. Means less people running past and faster service all round.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;b&gt;Not so Great:&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Seats narrower and Aisles narrower in economy.&lt;/li&gt;&lt;li&gt;Premium Economy lacks leg-room due to hard case shell design of seats. Max height for premium economy passenger: 178cm. Anything beyond that and you're bound to get sore legs as you can't stretch them completely.&amp;nbsp;&lt;/li&gt;&lt;li&gt;SkyCouch not very spacious. Gonna be very cuddly! And be sure not to stretch your legs or you'll hit the person in the middle aisle.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;b&gt;Secret Tips:&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Three rows of two seaters at the back of the plane. Great for couples. Also have 1inch more leg-room!&lt;/li&gt;&lt;li&gt;Don't take a seat in the 3-person row right in-front of those two-seaters. Armrests don't go all the way up but are stuck at horizontal.&amp;nbsp;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;b&gt;Summary:&lt;/b&gt;&lt;/div&gt;&lt;div&gt;All in all I am looking forward to flying long haul in the new Boeing 300s. It looks like it will be very enojyable &amp;nbsp;and no, I won't be upgrading to premium economy on those flights. Unless I could choose my seats before booking the flight. Now that would be just perfect!&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/908451797546196795-3888298129667542458?l=mctalex.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mctalex.blogspot.com/feeds/3888298129667542458/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=908451797546196795&amp;postID=3888298129667542458' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/3888298129667542458'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/3888298129667542458'/><link rel='alternate' type='text/html' href='http://mctalex.blogspot.com/2011/03/air-new-zealand-777-300-review.html' title='Air New Zealand 777-300 Review'/><author><name>Alex Dean</name><uri>http://www.blogger.com/profile/17702856763799376939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_kvPl7CQ2CWY/TQ6K6TrjTMI/AAAAAAAAAYQ/oEj3MNzZWcM/S220/Alex-Dean.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-908451797546196795.post-435154426110146140</id><published>2011-02-16T13:28:00.000+13:00</published><updated>2011-02-16T13:28:26.535+13:00</updated><title type='text'>The Social Media Revolution</title><content type='html'>Who has once in their life had the inner desire to change the world? You know - , when you were a kid -, that innocent wish for world peace?&lt;br /&gt;Or better yet… who has never hoped to change a thing because it seems too hard or simply impossible to achieve?&lt;br /&gt;&lt;div&gt;&lt;br /&gt;Well, I’ve got news for you!&lt;br /&gt;Never before has it been easier to change the world, or at least the little piece of the world that surrounds you. &lt;br /&gt;&lt;br /&gt;Ever since Wikileaks began publishing confidential information back in 2007 the world has been in uproar. And the US government has tried to silence the truths about its involvement and handling of international affairs ever since. &lt;br /&gt;&lt;br /&gt;Although it is ludicrous to claim Wikileaks as being responsible for the recent revolutions in Tunisia and Egypt, it has nevertheless helped raise international awareness of the widespread corruption, thus making it just a little harder for dictatorships to diffuse these situations.&lt;br /&gt;Without Wikileaks the Vice President in Egypt would have been in a much stronger position, but now that the whole world knows that he is buddies with Israel, his presence alone added to the fuel of the burning fires on the streets of Egypt.&lt;br /&gt;And what was the first thing the Egyptian president did when the revolts got out of hand? Shut down access to Twitter and Facebook.  When the uprising started in Egypt everyone was fast to blame it on Islamic militants. But the tens of thousands of people gathering on parliament square were a far cry from blood curdling terrorists! They were lawyers, shop keepers and engineers. The average Jo Bloggs who simply had had enough!! They were sick and tired of the violence, oppression and corruption in their country. These people did not attend secret rebel meetings before joining the demonstrations. Nor did they subscribe to the anarchist grapevine. No, they heard about the movement on Facebook, Twitter and the local media and decided it was time to act and stand up for their rights.&lt;br /&gt;&lt;br /&gt;The Jasmine revolution in Tunisia started with Mohammed Bouazizi setting himself on fire in an act of desperation after being tyrannised and humiliated in public. It ended in a mass revolt which spread throughout the country, partly organised through Facebook and Twitter.  One of the reasons these tools were so effective in spreading the word in Tunisia was due to the high percentage of youths in that country. Over half the population is under 25 years of age. &lt;br /&gt;&lt;/div&gt;&lt;div&gt;Tunisia and Egypt; these are two prime examples where social media helped spread the word and generate a critical mass that lead to drastic changes in those countries. &lt;br /&gt;&lt;br /&gt;Another group of people using social media as a weapon to gather support for their cause is Greenpeace. Through Facebook and YouTube channels they have forced Burger King and Nestle to look for more sustainable sources of palm kernel. They also put a big dent in Fonterra’s online brand who effectively committed “Facebook Suicide” by totally mismanaging the response to the online pressure.  &lt;br /&gt;One of their most effective tools was a YouTube video showing how a jogger is choking on orang-utan hair while drinking a glass of Fronterra milk. That video was so effective, that they were forced to pull it from their YouTube Channel due to legal actions from Fonterra. &lt;br /&gt;&lt;br /&gt;YouTube has become not only the most favourite source of daytime entertainment but has proven itself a powerful viral communication tool to spread the word. Wikileaks first published the video of American soldiers massacring Iraqi civilians on YouTube before it was removed due to pressure from the US government.  And posting YouTube videos is becoming easier as the day progresses.  Google predicts that there will be more smartphones in the world than computers by 2016. Making a video and uploading it to your YouTube channel is just a click away.&lt;br /&gt;&lt;br /&gt;I’m not saying that we all need to start toppling governments or chain us to trees. But we all can change the world if we want to. The tools are there for us, we only need to use them. The next time you see a person being beat up on the street, take out your phone and make a video. Upload it to youtube before you turn the corner (and run) . You find out about a teacher abusing children? Tell your friends on Facebook about it! You’d be astonished at how many people will start to listen if you start to talk. Also mention the good things in life! Someone helped you on the street when looking for directions, why not say thank you via Twitter? &lt;br /&gt;&lt;br /&gt;The world is listening. All you need to do is start talking and changing the world around you one tweet at a time.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/908451797546196795-435154426110146140?l=mctalex.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mctalex.blogspot.com/feeds/435154426110146140/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=908451797546196795&amp;postID=435154426110146140' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/435154426110146140'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/435154426110146140'/><link rel='alternate' type='text/html' href='http://mctalex.blogspot.com/2011/02/social-media-revolution.html' title='The Social Media Revolution'/><author><name>Alex Dean</name><uri>http://www.blogger.com/profile/17702856763799376939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_kvPl7CQ2CWY/TQ6K6TrjTMI/AAAAAAAAAYQ/oEj3MNzZWcM/S220/Alex-Dean.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-908451797546196795.post-3270259063710550078</id><published>2011-02-08T17:27:00.000+13:00</published><updated>2011-09-01T16:34:24.972+12:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint 2010'/><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><title type='text'>Enabling RBS on additional Databases</title><content type='html'>You'd think it to be really easy to find good information on enabling RBS for additional content databases out there. But if you landed on this blog post, then you were proven wrong, like so many others.&lt;br /&gt;Actually it is not that hard.&lt;br /&gt;Once you have followed all the&amp;nbsp;instructions&amp;nbsp;to set up RBS for the first time:&lt;br /&gt;&lt;a href="http://technet.microsoft.com/en-us/library/ee663474.aspx"&gt;http://technet.microsoft.com/en-us/library/ee663474.aspx&lt;/a&gt;&amp;nbsp;(SharePoint&amp;nbsp;Foundation&amp;nbsp;2010)&lt;br /&gt;&lt;a href="http://technet.microsoft.com/en-us/library/ee748631.aspx"&gt;http://technet.microsoft.com/en-us/library/ee748631.aspx&lt;/a&gt;&amp;nbsp;(SharePoint Server 2010)&lt;br /&gt;You then need to follow these steps for each additional ContentDB:&lt;br /&gt;&lt;a href="http://technet.microsoft.com/en-us/library/ee748641.aspx"&gt;http://technet.microsoft.com/en-us/library/ee748641.aspx&lt;/a&gt;&amp;nbsp;(Universal)&lt;br /&gt;&lt;br /&gt;The important part in the last link is the different msi script. As you use different ADDLOCAL parameters.&lt;br /&gt;Also keep in mind that if you are relying on the FILESTREAM Provider in SQL 2008 R2 you need not install RBS on the SQL Server itself, as it is supported by default. If you plan on using RBS using a third party Provider, then you will need to run the msi on the SQL Server too:&lt;br /&gt;&lt;a href="http://technet.microsoft.com/en-us/library/ff629463.aspx"&gt;http://technet.microsoft.com/en-us/library/ff629463.aspx&lt;/a&gt;&amp;nbsp;(SharePoint Server 2010 without FILESTREAM)&lt;br /&gt;&lt;br /&gt;Happy Remote Blobbing!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/908451797546196795-3270259063710550078?l=mctalex.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mctalex.blogspot.com/feeds/3270259063710550078/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=908451797546196795&amp;postID=3270259063710550078' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/3270259063710550078'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/3270259063710550078'/><link rel='alternate' type='text/html' href='http://mctalex.blogspot.com/2011/02/enabling-rbs-on-additional-databases.html' title='Enabling RBS on additional Databases'/><author><name>Alex Dean</name><uri>http://www.blogger.com/profile/17702856763799376939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_kvPl7CQ2CWY/TQ6K6TrjTMI/AAAAAAAAAYQ/oEj3MNzZWcM/S220/Alex-Dean.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-908451797546196795.post-4287926742881825746</id><published>2011-02-01T14:38:00.001+13:00</published><updated>2011-09-01T16:34:24.975+12:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint 2010'/><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><title type='text'>Keeping Dead Wood out of SharePoint. Or, how to avoid Zombies.</title><content type='html'>In his article, &lt;a href="https://www.nothingbutsharepoint.com/sites/itpro/Pages/WhatNOTtoMigrateintoSharePoint2010.aspx"&gt;What NOT to migrate into SharePoint&lt;/a&gt; Joel identifies the usual suspects of types of files which are not suited to be stored in SharePoint or any DMS system for that matter.&lt;br /&gt;&lt;br /&gt;While Joel covers the what quite exquisitely, he does not cover the why from an IA point of view. I have seen companies throw hundred thousands of dollars at setting up SharePoint farms to store ALL their documents. Including massive investments in infrastructure and likewise projects required to design a stable and usable system with minimal change impact to the end users. But what they all forget to ask is the big WHY? Why migrate the content? Where is the business value? The standard answers you will get most of the time will go along the lines of “because with SharePoint we can manage the files better” “We then have versioning” “One central platform instead of disparate locations”. And that is when the headache begins. Dead documents are brought to life in SharePoint only for the sake of having one single source of truth. These zombie documents devour resources and money the instant they are resurrected and cause major maintenance headaches for all involved. &lt;br /&gt;&lt;br /&gt;When the team of BAs and IAs are classifying all the documents they often skip the most important classification. Is this document still active or is it at the end of its life? Will there be any form of collaboration going on or will it only be used as reference material. If you can make that distinction you will easily be able to identify exactly which files need to move into a managed environment and which can stay in an unmanaged location. Many projects shy away from this question simply because it can be a daunting task. There might be millions of documents that need to be classified into active and non active. Also there is the problem of having separate locations for associated documents. This is where third party providers can come in extremely handy. While some offer Web Parts which will display existing file shares in SharePoint in a more integrated manner, they will lack the full functionality support of a SharePoint document library. So if you do not need versioning or SharePoint driven security, then have a look for Network Share Web Parts on &lt;a href="http://www.sharepointreviews.com/"&gt;http://www.sharepointreviews.com/&lt;/a&gt; There are some web parts listed there. &lt;br /&gt;&lt;br /&gt;If you on the other hand want to have versioning, SharePoint driven security, Check-in and out, then more complex solutions will be needed. Such as the File Share Library by &lt;a href="http://www.bamboosolutions.com/"&gt;bamboo solutions&lt;/a&gt; which synchronises a fileshare with a document library. The only downside is that files will start clogging up the database once they move from stale to active use. This way at least the databases will grow gradually over time as more and more documents are activated. The final solution I want to suggest is using the &lt;a href="http://www.sharetech.co.nz/AvePoint.html"&gt;FileShare connector from AvePoint&lt;/a&gt;. They have designed a solution based on their popular EBS driven Storage Extender which keeps the file share separate from the database even once files are actively used and versioned in SharePoint. The magic lies in a hidden folder on the fileshare which is used to maintain the new versions of the files, as they progress through the lifecycle. &lt;br /&gt;&lt;br /&gt;But beware! Only because the DBA need not worry about 5TB big content databases no more means nobody should. A well planned major and minor versioning strategy and user education is key in keeping the network storage from blowing out of proportions. So do yourself a favour and have a look at some tools on the market before needlessly resurrecting dead documents into SharePoint.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/908451797546196795-4287926742881825746?l=mctalex.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mctalex.blogspot.com/feeds/4287926742881825746/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=908451797546196795&amp;postID=4287926742881825746' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/4287926742881825746'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/4287926742881825746'/><link rel='alternate' type='text/html' href='http://mctalex.blogspot.com/2011/02/keeping-dead-wood-out-of-sharepoint-or.html' title='Keeping Dead Wood out of SharePoint. Or, how to avoid Zombies.'/><author><name>Alex Dean</name><uri>http://www.blogger.com/profile/17702856763799376939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_kvPl7CQ2CWY/TQ6K6TrjTMI/AAAAAAAAAYQ/oEj3MNzZWcM/S220/Alex-Dean.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-908451797546196795.post-7571788297792701866</id><published>2011-01-28T08:51:00.001+13:00</published><updated>2011-01-28T08:52:24.202+13:00</updated><title type='text'>Microsoft Learning Snacks now on YouTube</title><content type='html'>The team at Microsoft Learning have realised that YouTube is a much better channel for&amp;nbsp;on-line&amp;nbsp;video based learning than hosting them on their own sites. I totally agree! subscribe now to the&lt;a href="http://www.youtube.com/user/microsoftlearning"&gt; Microsoft learning channel&lt;/a&gt; on YouTube to get your daily fix of short learning videos ranging from using office to my favourite topic, programming SharePoint&lt;br /&gt;Here a sample Learning Snack: LINQ to SharePoint!&lt;br /&gt;&lt;br /&gt;&lt;iframe allowfullscreen="" class="youtube-player" frameborder="0" height="390" src="http://www.youtube.com/embed/7ZW7b4pqI_Y" title="YouTube video player" type="text/html" width="430"&gt;&lt;/iframe&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/908451797546196795-7571788297792701866?l=mctalex.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mctalex.blogspot.com/feeds/7571788297792701866/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=908451797546196795&amp;postID=7571788297792701866' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/7571788297792701866'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/7571788297792701866'/><link rel='alternate' type='text/html' href='http://mctalex.blogspot.com/2011/01/microsoft-learning-snacks-now-on.html' title='Microsoft Learning Snacks now on YouTube'/><author><name>Alex Dean</name><uri>http://www.blogger.com/profile/17702856763799376939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_kvPl7CQ2CWY/TQ6K6TrjTMI/AAAAAAAAAYQ/oEj3MNzZWcM/S220/Alex-Dean.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://img.youtube.com/vi/7ZW7b4pqI_Y/default.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-908451797546196795.post-8317366618371412042</id><published>2010-10-01T13:42:00.001+13:00</published><updated>2010-10-01T14:12:00.335+13:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint 2010'/><title type='text'>How to Pass 70-668</title><content type='html'>So today I passed 70-668. The PRO exam of the SharePoint 2010 Administrator series. And I can't tell you how relieved I am. &lt;br /&gt;I was kind of panicking about this one. Mainly because I had no idea what to expect. The planning guides on technet are horrendously theoretical and you get tangled up in links beyond links in no time. The supporting course is not even finished yet and nobody can tell you what the format will be. &lt;br /&gt;Let me assure you, it will not require a BSc in Taxonomy and governance planning to pass the exam. &lt;br /&gt;It is mainly scenario driven and the questions are pretty straight forward. If you have sat&amp;nbsp; the 10174 SharePoint 2010 Administration and Configuration course you will have a good foundation to build upon. &lt;br /&gt;From there you have to spend some more time configuring the different farm scenarios. No point in practicing how to use the Wizard! Do it manually and configure each component in your farm. Especially Search!&lt;br /&gt;&lt;br /&gt;What to focus on? The most important part is knowing the hardware and software requirements for SharePoint 2010, how to upgrade to 2010, and how to build a small, medium and large farm. Especially how to distribute load of all components correctly in the farm, from Excel Calculation to Search crawling, indexing and querying. Know your Database Mirroring, Failover and Disaster recovery scenarios and know your network configurations and setups for IIS, authentication and firewalls. Most importantly it is hands on experience that will help you pass this exam. Not theory. So get stuck in and start building distributed farm environments. A lot of knowledge from building 2007 Farms will be easily translated into 2010 Farms, with the addition of new distribution capabilities due to the new service architecture.&lt;br /&gt;&lt;br /&gt;If you are looking for a course that can help you prepare for this exam, I suggest you sit the Mindsharp/Combined Knowledge SharePoint 2010 Administrator Course. That covers the grunt and most important aspects of configuring and maintainting a best practice SharePoint Farm. Even the 2007 version of this course will give you many of the basic skills which can be translated into 2010 by extra studies. The Mindsharp/Combined Knowledge material is top notch and the trainers back it up with real world experience and vast pools of knowledge. You will never sit a Mindsharp/Combined Knowedge course with a trainer who does not know SharePoint inside out.&lt;br /&gt;&lt;br /&gt;If you can't get hold of a Mindsharp/Combined Knowledge course in your area, then sit the Microsoft 50047 Advanced SharePoint 2007&amp;nbsp;Administration course. That covers all the important Enterprise setups that 5060 and 5061 ignore and gives real advice on farm configuration, disaster recovery and performance considerations. 50047 does assume that you have sat 5060 and 5061 or have equivalent real world experience. After sitting the course you then have to start applying the concepts to 2010 and get your hands dirty with how the 2010 service model can be configured and distributed in a farm environment.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;One last tip&lt;/strong&gt; (Probably the most important one). &amp;nbsp;Read the questions and possible answers before reading the scenario. That will speed up the process and keep you focussed on the task at hand. Most questions can be answered by just reading one single section of the scenario. So identify the section the question relies on, answer the question in your head and then skim the rest of the scenario to make sure there is no other piece of information that could invalidate your chosen answer.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Some lnks to get you started:&lt;/strong&gt;&lt;br /&gt;70-668 Syllabus:&lt;br /&gt;&lt;a href="http://www.microsoft.com/learning/en/us/exam.aspx?ID=70-668"&gt;http://www.microsoft.com/learning/en/us/exam.aspx?ID=70-668&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;SharePoint 2010 Resource Center (good list of the most important technet articles you will require)&lt;br /&gt;&lt;a href="http://technet.microsoft.com/en-us/sharepoint/ee263917.aspx"&gt;http://technet.microsoft.com/en-us/sharepoint/ee263917.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Hands on courses to upskill fast:&lt;/strong&gt;&lt;br /&gt;3grow combined Knowledge SharePoint 2007 Administrator course taught by your's truly&lt;br /&gt;&lt;a href="http://training.3grow.co.nz/nz/courses/1-sharepoint-2007-administrator-track"&gt;http://training.3grow.co.nz/nz/courses/1-sharepoint-2007-administrator-track&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Microsoft 10174&amp;nbsp;SharePoint 2010 Administration taught by your's truly:&lt;br /&gt;&lt;a href="https://www.auldhouse.co.nz/content/202FCFB2-2BC9-4462-B795-E3E21A2E24BD.html?course=COUR2010070714285507145570"&gt;https://www.auldhouse.co.nz/content/202FCFB2-2BC9-4462-B795-E3E21A2E24BD.html?course=COUR2010070714285507145570&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Microsoft 50047 SharePoint 2007 Advanced Administration:&lt;br /&gt;&lt;a href="https://www.auldhouse.co.nz/content/202FCFB2-2BC9-4462-B795-E3E21A2E24BD.html?course=COUR2009050111225107640409"&gt;https://www.auldhouse.co.nz/content/202FCFB2-2BC9-4462-B795-E3E21A2E24BD.html?course=COUR2009050111225107640409&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/908451797546196795-8317366618371412042?l=mctalex.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mctalex.blogspot.com/feeds/8317366618371412042/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=908451797546196795&amp;postID=8317366618371412042' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/8317366618371412042'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/8317366618371412042'/><link rel='alternate' type='text/html' href='http://mctalex.blogspot.com/2010/10/how-to-pass-70-668.html' title='How to Pass 70-668'/><author><name>Alex Dean</name><uri>http://www.blogger.com/profile/17702856763799376939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_kvPl7CQ2CWY/TQ6K6TrjTMI/AAAAAAAAAYQ/oEj3MNzZWcM/S220/Alex-Dean.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-908451797546196795.post-3344644300638427761</id><published>2010-09-30T18:53:00.001+13:00</published><updated>2010-09-30T18:53:25.634+13:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint 2010'/><title type='text'>SharePoint 2010 limits</title><content type='html'>I love Microsoft. No where can you expect a definitive answer. &lt;br /&gt;&lt;br /&gt;The one article will tell you that the acceptable limit for site collections per web application is 500'000 (&lt;a href="http://technet.microsoft.com/en-us/library/ff758647.aspx"&gt;http://technet.microsoft.com/en-us/library/ff758647.aspx&lt;/a&gt;) and the next article in the same series will tell you it is 250'000 (&lt;a href="http://technet.microsoft.com/en-us/library/cc262787.aspx"&gt;http://technet.microsoft.com/en-us/library/cc262787.aspx&lt;/a&gt;)&lt;br /&gt;&lt;br /&gt;Best of all, they both use the same wording!&lt;br /&gt;&lt;br /&gt;"An example of a supported limit is the number of site collections per Web application. The supported limit is 500,000, which is the largest number of site collections per Web application that met performance benchmarks during testing. "&lt;br /&gt;&lt;br /&gt;vs&lt;br /&gt;&lt;br /&gt;"An example of a supported limit is the number of site collections per Web application. The supported limit is 250,000, which is the largest number of site collections per Web application that met performance benchmarks during testing."&lt;br /&gt;&lt;br /&gt;In the end these limits are based on benchmark testing. I.e. when the performance of the farm starts falling below an acceptable level. It is not saying that the farm is running at top speed with 249999 site collections and then drops off. No, it is a curve. So imagine the performance curve starting high at 100%, dropping to 95% at 100'000, dropping to 90% at 250'000 and dropping to 80% at 500'000. The key question is, what is an acceptable level of performance. Looks like the author either changed his mind from one article to another, or two authors differed. In the end both are right, I guess. Because only you can define for yourself what acceptable performance is. &lt;br /&gt;&lt;br /&gt;And don't forget, these benchmarks are tested in isolation. so when you store tens of thousands of&amp;nbsp;50MB documents in a document library hundreds of times per site and thousands of times per site collection, the 500'000 benchmark will never hold up. 50 would sound more realistic.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/908451797546196795-3344644300638427761?l=mctalex.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mctalex.blogspot.com/feeds/3344644300638427761/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=908451797546196795&amp;postID=3344644300638427761' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/3344644300638427761'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/3344644300638427761'/><link rel='alternate' type='text/html' href='http://mctalex.blogspot.com/2010/09/sharepoint-2010-limits.html' title='SharePoint 2010 limits'/><author><name>Alex Dean</name><uri>http://www.blogger.com/profile/17702856763799376939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_kvPl7CQ2CWY/TQ6K6TrjTMI/AAAAAAAAAYQ/oEj3MNzZWcM/S220/Alex-Dean.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-908451797546196795.post-6841200287249269067</id><published>2010-09-30T17:37:00.002+13:00</published><updated>2010-09-30T17:40:58.762+13:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint 2010'/><title type='text'>How to Pass 70-667</title><content type='html'>So you wanna become SharePoint certified? At least now, with SharePoint 2010, we have the MCITP SharePoint Administrator and SharePoint Developer accreditations. &lt;br /&gt;&lt;br /&gt;70-667 is the first of two exams to achieve your MCITP SharePoint 2010 Administrator certification&lt;br /&gt;&lt;a href="http://www.microsoft.com/learning/en/us/exam.aspx?ID=70-667"&gt;http://www.microsoft.com/learning/en/us/exam.aspx?ID=70-667&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;And although I can't tell you what the questions will be, let me assure you, they are not trick questions. &lt;br /&gt;I'd say about&amp;nbsp;half of the questions are relevant to 2007 and 2010 alike,&amp;nbsp;some are 2010 specific and others are there to catch you out where something has changed from 2007 to 2010. &lt;br /&gt;&lt;br /&gt;The best way of making sure you pass any Microsoft exam on the first go is to use practice tests. Measureup and selftest provide some really good ones for all things techie. Sadly, none of them have gotten round to publishing SharePoint 2010 mock exams yet.&lt;br /&gt;&lt;br /&gt;The best way of making sure you fully understand the material is sitting a Microsoft course:&amp;nbsp; 10174 Configuring and Administering Microsoft SharePoint Server 2010&lt;br /&gt;This course contains all the stuff you need to know to feel confident about installing, configuring and running a SharePoint farm. Although officially Microsoft Courses and the exams are not directly related, there are strong overlaps of the material being taught and the questions being asked. &lt;br /&gt;&lt;br /&gt;And here is the best news of all! I'm down to teach 10174 at Auldhouse in Wellington the week of 18/10/10.&lt;br /&gt;&lt;a href="https://www.auldhouse.co.nz/content/5f8ac4c7-9c13-4a6f-8d51-30762e93882b.html?loc=Wellington"&gt;https://www.auldhouse.co.nz/content/5f8ac4c7-9c13-4a6f-8d51-30762e93882b.html?loc=Wellington&lt;/a&gt;&lt;br /&gt;So sign up now to get one step closer to your SharePoint 2010 certificate. I'll even dish out some tips during the course on how to tackle certain types of questions in the exam.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/908451797546196795-6841200287249269067?l=mctalex.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mctalex.blogspot.com/feeds/6841200287249269067/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=908451797546196795&amp;postID=6841200287249269067' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/6841200287249269067'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/6841200287249269067'/><link rel='alternate' type='text/html' href='http://mctalex.blogspot.com/2010/09/how-to-passs-70-667.html' title='How to Pass 70-667'/><author><name>Alex Dean</name><uri>http://www.blogger.com/profile/17702856763799376939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_kvPl7CQ2CWY/TQ6K6TrjTMI/AAAAAAAAAYQ/oEj3MNzZWcM/S220/Alex-Dean.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-908451797546196795.post-3802371898687333407</id><published>2010-09-30T17:20:00.001+13:00</published><updated>2010-09-30T17:20:37.271+13:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint 2010'/><title type='text'>SharePoint 2010 to CAS or not to CAS</title><content type='html'>Came across a statement by MS which got me thinking&lt;br /&gt;&lt;br /&gt;"Untrusted solutions – Deploying custom code in bin folders can cause slow server performance. Every time a page containing untrusted code is requested, SharePoint Server 2010 must perform security checks before the page can be loaded.Unless there is a specific reason to deploy untrusted code, you should install custom assemblies in the GAC to avoid unnecessary security checking."&lt;br /&gt;&lt;br /&gt;&lt;a href="http://technet.microsoft.com/en-us/library/ff758647.aspx"&gt;http://technet.microsoft.com/en-us/library/ff758647.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;So now GAC is good and CAS is bad?&lt;br /&gt;&lt;br /&gt;Ok folks, let's all stop adhering to a least priviledge concept and start giving our code full trust every time we deploy something. Because if we don't, we'll slow down SharePoint. &lt;br /&gt;&lt;br /&gt;I don't think so!&lt;br /&gt;&lt;br /&gt;Although I understand the implications of having to check security of the code when Code Access Security Policies are involved, is the overhead of checking&amp;nbsp;the policy when the assembly is loaded&amp;nbsp;really that high? So far I have found no evidence of this causing a noticeable performance degradation other than&amp;nbsp;in theory.&lt;br /&gt;&lt;br /&gt;But hey, we have Sandboxed solutions now! So no need for CAS?&lt;br /&gt;Although Sandboxed solutions take away a lot of headache from Server Administrators that previously had to chase down developers to find out why their server just crashed, they are not the golden bullet to all security issues. The question still remains, how much do you trust the code to do what it is supposed to do and not expose loopholes for others to exploit? Especially when installing third party features I personally would think twice about putting the dlls into the GAC of my production machines. &lt;br /&gt;&lt;br /&gt;Sadly enough, there are loads of scenarios where you have no other choice but to run the code in the GAC and thus I am very grateful for the Sandbox, where I can run the code in a controlled environment before letting it loose on the whole farm.&lt;br /&gt;&lt;br /&gt;For those of you who actually want to know how CAS works in practice, check out this little gem. It is based on .NET 1.1, but is still relevant today.&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ff648663.aspx"&gt;http://msdn.microsoft.com/en-us/library/ff648663.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;oh, and in .NET 4.0 some things have changed in regards to CAS, especially when calling GAC assemblies from partially trusted dlls. check it out here:&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/dd984947.aspx"&gt;http://msdn.microsoft.com/en-us/library/dd984947.aspx&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/908451797546196795-3802371898687333407?l=mctalex.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mctalex.blogspot.com/feeds/3802371898687333407/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=908451797546196795&amp;postID=3802371898687333407' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/3802371898687333407'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/3802371898687333407'/><link rel='alternate' type='text/html' href='http://mctalex.blogspot.com/2010/09/sharepoint-2010-to-cas-or-not-to-cas.html' title='SharePoint 2010 to CAS or not to CAS'/><author><name>Alex Dean</name><uri>http://www.blogger.com/profile/17702856763799376939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_kvPl7CQ2CWY/TQ6K6TrjTMI/AAAAAAAAAYQ/oEj3MNzZWcM/S220/Alex-Dean.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-908451797546196795.post-4614974778903236385</id><published>2010-05-15T07:52:00.000+12:00</published><updated>2011-09-01T16:35:34.236+12:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint 2010'/><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><title type='text'>Send To Email with Attachment</title><content type='html'>Sending emails with a Sharepoint document as an attachment is a commonly asked for feature in Sharepoint. &lt;br /&gt;Although the mailto: link used to work with the attachment parameter, this has not been supported by Outlook for a long time. Why? because it would be too easy to attach viruses to emails that way. Outlook would have to download a file from the internet and add it to the message. The chance of malicious code injecting into the process is too risky as well as the chance to send infected files to friends and colleagues.&lt;br /&gt;&lt;br /&gt;So what is the solution?&lt;br /&gt;&lt;br /&gt;If you wish to extend the send to menu in SharePoint, you can create a feature with a custom action to add another link to the ECM (Context Menu) which opens up a custom application page which then allows the user to enter receiver, subject and body. The server then could send the email directly via the configured SMTP server. &lt;br /&gt;&lt;br /&gt;But beware!&lt;br /&gt;This should only be done in an intranet scenario where the sending user has been authenticated. Otherwise it could be abused for spamming purposes too easily&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/908451797546196795-4614974778903236385?l=mctalex.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mctalex.blogspot.com/feeds/4614974778903236385/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=908451797546196795&amp;postID=4614974778903236385' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/4614974778903236385'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/4614974778903236385'/><link rel='alternate' type='text/html' href='http://mctalex.blogspot.com/2010/05/send-to-email-with-attachment.html' title='Send To Email with Attachment'/><author><name>Alex Dean</name><uri>http://www.blogger.com/profile/17702856763799376939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_kvPl7CQ2CWY/TQ6K6TrjTMI/AAAAAAAAAYQ/oEj3MNzZWcM/S220/Alex-Dean.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-908451797546196795.post-7767822052593977437</id><published>2010-05-02T00:50:00.002+12:00</published><updated>2011-09-01T16:35:34.236+12:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint 2010'/><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><title type='text'>SharePoint Memory Leak</title><content type='html'>Todd Carter has posted a great article on a nasty little memory leak in SharePoint which has the potential to blow into a huge memory consumption beast for servers which have a lot of traffic and long uptime.&lt;br /&gt;&lt;a href="http://todd-carter.com/post/2010/02/08/SharePointe28099s-Sasquatch-Memory-Leak.aspx"&gt;http://todd-carter.com/post/2010/02/08/SharePointe28099s-Sasquatch-Memory-Leak.aspx&lt;/a&gt;&lt;br /&gt;In his article he highlights a problem with the HttpApplicatinoException handling of Sharepoint and also posts a very simple and effective solution where he ensures the applicationdomain is treated like a singleton and circumvents tens of thousands of unneeded objects in memory. &lt;br /&gt;&lt;a href="http://todd-carter.com/post/2010/02/08/SharePointe28099s-Sasquatch-Memory-Leak.aspx"&gt;Sasquatch-Memory Leak&lt;/a&gt;&lt;br /&gt;&lt;div id="seolinx-tooltip" style="border: 1px solid rgb(0, 0, 0); display: none; margin: 0pt; opacity: 0.9; padding: 0pt; position: absolute; width: auto; z-index: 99999;"&gt;&lt;table style="border-collapse: separate; border: 0pt none; margin: 0pt; padding: 0pt; width: auto;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td id="seolinx-table" style="border: 0pt none; font-family: Tahoma; font-size: 11px; font-weight: bold; margin: 1px; padding: 0pt;"&gt;&lt;div style="margin: 0pt; overflow: auto; padding: 0pt; width: auto;"&gt;&lt;table id="seolinx-paramtable" style="border-collapse: separate; border: 1px solid gray; margin: 0pt;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="background: none repeat scroll 0% 0% rgb(240, 240, 240); border: 1px solid gray; color: darkgreen; font-family: Tahoma; font-size: 7pt; font-weight: bold; padding: 2px; white-space: nowrap;"&gt;&lt;img height="12px" src="http://toolbarqueries.google.com/favicon.ico" style="vertical-align: middle;" width="12px" /&gt;&amp;nbsp;PR: &lt;a href="javascript:{}" seolinx-param-index="0" seolinx-type="param" style="color: blue; font-family: Tahoma; font-size: 7pt; font-weight: bold; text-decoration: underline;" title="Google pagerank"&gt;wait...&lt;/a&gt;&lt;/td&gt;&lt;td style="background: none repeat scroll 0% 0% rgb(240, 240, 240); border: 1px solid gray; color: darkgreen; font-family: Tahoma; font-size: 7pt; font-weight: bold; padding: 2px; white-space: nowrap;"&gt;&lt;img height="12px" src="http://www.google.com/favicon.ico" style="vertical-align: middle;" width="12px" /&gt;&amp;nbsp;I: &lt;a href="javascript:{}" seolinx-param-index="1" seolinx-type="param" style="color: blue; font-family: Tahoma; font-size: 7pt; font-weight: bold; text-decoration: underline;" title="Google index"&gt;wait...&lt;/a&gt;&lt;/td&gt;&lt;td style="background: none repeat scroll 0% 0% rgb(240, 240, 240); border: 1px solid gray; color: darkgreen; font-family: Tahoma; font-size: 7pt; font-weight: bold; padding: 2px; white-space: nowrap;"&gt;&lt;img height="12px" src="http://www.google.com/favicon.ico" style="vertical-align: middle;" width="12px" /&gt;&amp;nbsp;L: &lt;a href="javascript:{}" seolinx-param-index="2" seolinx-type="param" style="color: blue; font-family: Tahoma; font-size: 7pt; font-weight: bold; text-decoration: underline;" title="Google links"&gt;wait...&lt;/a&gt;&lt;/td&gt;&lt;td style="background: none repeat scroll 0% 0% rgb(240, 240, 240); border: 1px solid gray; color: darkgreen; font-family: Tahoma; font-size: 7pt; font-weight: bold; padding: 2px; white-space: nowrap;"&gt;&lt;img height="12px" src="http://siteexplorer.search.yahoo.com/favicon.ico" style="vertical-align: middle;" width="12px" /&gt;&amp;nbsp;LD: &lt;a href="javascript:{}" seolinx-param-index="12" seolinx-type="param" style="color: blue; font-family: Tahoma; font-size: 7pt; font-weight: bold; text-decoration: underline;" title="Yahoo linkdomain"&gt;wait...&lt;/a&gt;&lt;/td&gt;&lt;td style="background: none repeat scroll 0% 0% rgb(240, 240, 240); border: 1px solid gray; color: darkgreen; font-family: Tahoma; font-size: 7pt; font-weight: bold; padding: 2px; white-space: nowrap;"&gt;&lt;img height="12px" src="http://www.bing.com/favicon.ico" style="vertical-align: middle;" width="12px" /&gt;&amp;nbsp;I: &lt;a href="javascript:{}" seolinx-param-index="20" seolinx-type="param" style="color: blue; font-family: Tahoma; font-size: 7pt; font-weight: bold; text-decoration: underline;" title="Bing index"&gt;wait...&lt;/a&gt;&lt;/td&gt;&lt;td style="background: none repeat scroll 0% 0% rgb(240, 240, 240); border: 1px solid gray; color: darkgreen; font-family: Tahoma; font-size: 7pt; font-weight: bold; padding: 2px; white-space: nowrap;"&gt;&lt;a href="javascript:{}" seolinx-param-index="40" seolinx-type="param" style="color: blue; font-family: Tahoma; font-size: 7pt; font-weight: bold; text-decoration: underline;" title="Sitemap.xml"&gt;wait...&lt;/a&gt;&lt;/td&gt;&lt;td style="background: none repeat scroll 0% 0% rgb(240, 240, 240); border: 1px solid gray; color: darkgreen; font-family: Tahoma; font-size: 7pt; font-weight: bold; padding: 2px; white-space: nowrap;"&gt;&lt;img height="12px" src="http://www.semrush.com/favicon.ico" style="vertical-align: middle;" width="12px" /&gt;&amp;nbsp;Rank: &lt;a href="javascript:{}" seolinx-param-index="41" seolinx-type="param" style="color: blue; font-family: Tahoma; font-size: 7pt; font-weight: bold; text-decoration: underline;" title="SEMRush Rank"&gt;wait...&lt;/a&gt;&lt;/td&gt;&lt;td style="background: none repeat scroll 0% 0% rgb(240, 240, 240); border: 1px solid gray; color: darkgreen; font-family: Tahoma; font-size: 7pt; font-weight: bold; padding: 2px; white-space: nowrap;"&gt;&lt;img height="12px" src="http://www.semrush.com/favicon.ico" style="vertical-align: middle;" width="12px" /&gt;&amp;nbsp;Traffic: &lt;a href="javascript:{}" seolinx-param-index="42" seolinx-type="param" style="color: blue; font-family: Tahoma; font-size: 7pt; font-weight: bold; text-decoration: underline;" title="SEMRush SE Traffic"&gt;wait...&lt;/a&gt;&lt;/td&gt;&lt;td style="background: none repeat scroll 0% 0% rgb(240, 240, 240); border: 1px solid gray; color: darkgreen; font-family: Tahoma; font-size: 7pt; font-weight: bold; padding: 2px; white-space: nowrap;"&gt;&lt;img height="12px" src="http://www.semrush.com/favicon.ico" style="vertical-align: middle;" width="12px" /&gt;&amp;nbsp;Price: &lt;a href="javascript:{}" seolinx-param-index="43" seolinx-type="param" style="color: blue; font-family: Tahoma; font-size: 7pt; font-weight: bold; text-decoration: underline;" title="SEMRush SE Traffic price"&gt;wait...&lt;/a&gt;&lt;/td&gt;&lt;td style="background: none repeat scroll 0% 0% rgb(240, 240, 240); border: 1px solid gray; color: darkgreen; font-family: Tahoma; font-size: 7pt; font-weight: bold; padding: 2px; white-space: nowrap;"&gt;&lt;img height="12px" src="http://www.baidu.com/favicon.ico" style="vertical-align: middle;" width="12px" /&gt;&amp;nbsp;I: &lt;a href="javascript:{}" seolinx-param-index="70" seolinx-type="param" style="color: blue; font-family: Tahoma; font-size: 7pt; font-weight: bold; text-decoration: underline;" title="Baidu index"&gt;wait...&lt;/a&gt;&lt;/td&gt;&lt;td style="background: none repeat scroll 0% 0% rgb(240, 240, 240); border: 1px solid gray; color: darkgreen; font-family: Tahoma; font-size: 7pt; font-weight: bold; padding: 2px; white-space: nowrap;"&gt;&lt;img height="12px" src="http://www.baidu.com/favicon.ico" style="vertical-align: middle;" width="12px" /&gt;&amp;nbsp;L: &lt;a href="javascript:{}" seolinx-param-index="71" seolinx-type="param" style="color: blue; font-family: Tahoma; font-size: 7pt; font-weight: bold; text-decoration: underline;" title="Baidu link"&gt;wait...&lt;/a&gt;&lt;/td&gt;&lt;td style="background: none repeat scroll 0% 0% rgb(240, 240, 240); border: 1px solid gray; color: darkgreen; font-family: Tahoma; font-size: 7pt; font-weight: bold; padding: 2px; white-space: nowrap;"&gt;&lt;img height="12px" src="http://siteanalytics.compete.com/favicon.ico" style="vertical-align: middle;" width="12px" /&gt;&amp;nbsp;C: &lt;a href="javascript:{}" seolinx-param-index="108" seolinx-type="param" style="color: blue; font-family: Tahoma; font-size: 7pt; font-weight: bold; text-decoration: underline;" title="Compete Rank"&gt;wait...&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin: 0pt; overflow: auto; padding: 0pt; width: auto;"&gt;&lt;table id="seolinx-paramtable" style="border-collapse: separate; border: 1px solid gray; margin: 0pt;"&gt;&lt;/table&gt;&lt;/div&gt;&lt;/td&gt;&lt;td id="seolinx-tooltip-close" style="border: 0pt none; cursor: pointer; margin: 0pt; padding: 1px; vertical-align: middle; width: auto;" title="close"&gt;&lt;img src="chrome://seoquake/content/skin/close.gif" /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div id="seolinx-tooltip" style="border: 1px solid rgb(0, 0, 0); display: none; margin: 0pt; opacity: 0.9; padding: 0pt; position: absolute; width: auto; z-index: 99999;"&gt;&lt;table style="border-collapse: separate; border: 0pt none; margin: 0pt; padding: 0pt; width: auto;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td id="seolinx-table" style="border: 0pt none; font-family: Tahoma; font-size: 11px; font-weight: bold; margin: 1px; padding: 0pt;"&gt;&lt;/td&gt;&lt;td id="seolinx-tooltip-close" style="border: 0pt none; cursor: pointer; margin: 0pt; padding: 1px; vertical-align: middle; width: auto;" title="close"&gt;&lt;img src="chrome://seoquake/content/skin/close.gif" /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/908451797546196795-7767822052593977437?l=mctalex.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mctalex.blogspot.com/feeds/7767822052593977437/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=908451797546196795&amp;postID=7767822052593977437' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/7767822052593977437'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/7767822052593977437'/><link rel='alternate' type='text/html' href='http://mctalex.blogspot.com/2010/05/sharepoint-memory-leak.html' title='SharePoint Memory Leak'/><author><name>Alex Dean</name><uri>http://www.blogger.com/profile/17702856763799376939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_kvPl7CQ2CWY/TQ6K6TrjTMI/AAAAAAAAAYQ/oEj3MNzZWcM/S220/Alex-Dean.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-908451797546196795.post-2090765530119830930</id><published>2010-03-22T13:09:00.006+13:00</published><updated>2011-09-01T16:35:47.464+12:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint 2010'/><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><category scheme='http://www.blogger.com/atom/ns#' term='Infopath'/><title type='text'>Adding Rich Text from SharePoint to an Infopath Form</title><content type='html'>Problem Scenario:&lt;br /&gt;You are trying to add the value from a Rich Text field from SharePoint to an Infopath form. This is a common scenario when trying to create custom Workflows in Visual Studio with Infopath Form support.&lt;br /&gt;&lt;br /&gt;Symptoms:&lt;br /&gt;Your Rich Text does not appear in the infopath form. Any text which is not marked up does not appear. Text outside of tags does appear.&lt;br /&gt;&lt;br /&gt;Solution:&lt;br /&gt;After some digging I figured that InfoPath requires the xhtml Namespace to be present for any data within a Rich Text field. After a lot of digging into XmlParsers, XMLNameSpaceManagers, XmlNameTables and the likes I found a very simple solution.&lt;br /&gt;When passing the value over to the ExentedProperty in your Workflow, wrap the string with a div tag that has the xmlns='http://www.w3.org/1999/xhtml' attribute on it.&lt;br /&gt;&lt;br /&gt;  string htmlText = "&amp;LT;div xmlns='http://www.w3.org/1999/xhtml'&amp;GT;" &lt;br /&gt;                + workflowProperties.Item.Title&lt;br /&gt;                + "&amp;lt;br/&amp;gt;" &lt;br /&gt;                + workflowProperties.Item["Body"]&lt;br /&gt;                + "&amp;lt;/div&amp;gt;";&lt;br /&gt;&lt;br /&gt;            TaskProperties.ExtendedProperties["Instructions"] = htmlText ;&lt;br /&gt;&lt;br /&gt;Just one thing missing now. Infopath translates your valid xhtml and shows the actual tags. To solve this problem you will need to add some parsing to the load method of the form. Yes, that means that you will need to deploy some code with the form. But it's no biggie. Promise. &lt;br /&gt;A fellow blogger has a great post on how to stop Infopath escaping the html&lt;br /&gt;&lt;a href="http://www.chrisbuchanan.ca/blog/08-03-04/Passing_Rich_Text_Values_into_an_Infopath_Form.aspx"&gt;http://www.chrisbuchanan.ca/blog/08-03-04/Passing_Rich_Text_Values_into_an_Infopath_Form.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;UPDATE!&lt;br /&gt;So I thought I nailed it! Well, as long as you do not attempt to open that infopath form using infopath! As that will throw a security exception due to the underlying code. But hey! It's on the server you might say. Being hosted by Infopath Forms Server. Nobody would wanna open it in infopath anyway. Ha. Outlook 2007 does! So when your Outlook 2007 users hit the Edit this Task button, instead of getting a nice RichtText experience, they get a security error complaining about a missing digital signature. &lt;br /&gt;&lt;br /&gt;Sorry folks. Back to the basics on this one. I'll just strip out all HTML before passing it to Infopath using Regular expressions. A nice one to achieve this is&lt;br /&gt;string stripped = Regex.Replace(textBox1.Text,@"&amp;lt;(.|\n)*?&amp;gt;",string.Empty);&lt;br /&gt;&lt;br /&gt;(found via &lt;a href="http://weblogs.asp.net/rosherove/archive/2003/05/13/6963.aspx"&gt;weblogs.asp.net/rosherove/archive/2003/05/13/6963.aspx&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/908451797546196795-2090765530119830930?l=mctalex.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mctalex.blogspot.com/feeds/2090765530119830930/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=908451797546196795&amp;postID=2090765530119830930' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/2090765530119830930'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/2090765530119830930'/><link rel='alternate' type='text/html' href='http://mctalex.blogspot.com/2010/03/adding-rich-text-from-sharepoint-to.html' title='Adding Rich Text from SharePoint to an Infopath Form'/><author><name>Alex Dean</name><uri>http://www.blogger.com/profile/17702856763799376939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_kvPl7CQ2CWY/TQ6K6TrjTMI/AAAAAAAAAYQ/oEj3MNzZWcM/S220/Alex-Dean.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-908451797546196795.post-4649052183425167048</id><published>2010-03-03T14:55:00.002+13:00</published><updated>2010-03-03T15:19:07.290+13:00</updated><title type='text'>i4i XML ruling and Office 2007</title><content type='html'>I've been getting more and more people ask me what I think about the i4i ruling which has caused Microsoft to pay hundreds of millions in damages and rework Word 2007 and Office 2010.&lt;br /&gt;When I first read about it, I thought "What the heck! who does i4i think they are? The inventors of XML?" But then I read a bit more and Had a look at their patent in more detail&lt;br /&gt;&lt;br /&gt;&lt;a href="http://blog.seattlepi.com/microsoft/library/20090811i4icomplaint.pdf"&gt;http://blog.seattlepi.com/microsoft/library/20090811i4icomplaint.pdf&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;In that patent i4i effectively claim to be the inventor of separating content from structure. Kinda what XML is all about. But then remember, the patent was issued back in 1998, when XML was still a vision and SGML was being used more heavily in the publishing industry.&lt;br /&gt;&lt;br /&gt;So are they actually claiming to be the inventors of XML? No. Not at all. What they thought of back then effectively was a way of mapping the look and feel of a document to the data. The key here being mapping. Very similar to what xsl was designed to do.&lt;br /&gt;&lt;br /&gt;Some info on chronological events back then in the 90s:&lt;br /&gt;&lt;br /&gt;02 Jue 1994: i4i file a patent outlining the concept and process of splitting all formatting from the data, keeping both separate and applying a mapping mechanism to create the final output&lt;br /&gt;&lt;br /&gt;10 February 1998: first recommendation recorded at w3.org for XML&lt;br /&gt;&lt;br /&gt;28 July 1998: i4i patent is approved&lt;br /&gt;&lt;br /&gt;18 August 1998: first draft specification for xsl recorded at w3.org&lt;br /&gt;&lt;br /&gt;2003: Microsoft launches word 2003 with the ability to store tagged data in a separate area fo the document and use mapping techniques to inject the data in the desired locations on the page and apply formatting to them.&lt;br /&gt;&lt;br /&gt;2007: Microsoft launches the new docx office document format which includes the ability to store xml data in a separate location of the file and uses mapping techniques to inject the data into the document.&lt;br /&gt;&lt;br /&gt;So did i4i invent xml? No. they took SGML to the next level parallel to the developments in xml and xsl.&lt;br /&gt;Should their patent have been approved? I guess so. It was ground breaking stuff back then and should be appreciated for its innovation. That's what innovation is all about.&lt;br /&gt;&lt;br /&gt;Some more info from fellow bloggers:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://milan.kupcevic.net/custom-xml-microsoft-office-word-data-store-i4i-patent-5787449-msdn/"&gt;http://milan.kupcevic.net/custom-xml-microsoft-office-word-data-store-i4i-patent-5787449-msdn/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/908451797546196795-4649052183425167048?l=mctalex.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mctalex.blogspot.com/feeds/4649052183425167048/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=908451797546196795&amp;postID=4649052183425167048' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/4649052183425167048'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/4649052183425167048'/><link rel='alternate' type='text/html' href='http://mctalex.blogspot.com/2010/03/i4i-xml-ruling-and-office-2007.html' title='i4i XML ruling and Office 2007'/><author><name>Alex Dean</name><uri>http://www.blogger.com/profile/17702856763799376939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_kvPl7CQ2CWY/TQ6K6TrjTMI/AAAAAAAAAYQ/oEj3MNzZWcM/S220/Alex-Dean.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-908451797546196795.post-6683565532317835220</id><published>2010-01-27T23:13:00.003+13:00</published><updated>2010-01-27T23:42:34.331+13:00</updated><title type='text'>A humble tribute to the expense claim form</title><content type='html'>In this series of blogposts I will be revealing my probably most popular demonstration yet. Not that it is completely my work. I borrowed ideas from &lt;a href="http://office.microsoft.com/en-us/sharepointdesigner/HA101829091033.aspx?pid=CH100667661033"&gt;office online&lt;/a&gt;, msdn, &lt;a href="http://www.cleverworkarounds.com/"&gt;Paul Culmsee &lt;/a&gt;and other great resources out there to fine tune my favourite demo.&lt;br /&gt;The starting point was a tutorial which you can find in the help system of SharePoint Designer and also online&lt;br /&gt;&lt;a href="http://office.microsoft.com/en-us/sharepointdesigner/HA101829091033.aspx?pid=CH100667661033"&gt;Workflow example: Route an expense report for review&lt;/a&gt;&lt;br /&gt;This simple tutorial will take you through the steps of publishing the sample expense report from infopath to sharepoint and show you how to hook up a simple workflow&lt;br /&gt;&lt;br /&gt;That little tutorial has since been refined and made into a video&lt;br /&gt;&lt;a href="http://office.microsoft.com/en-us/sharepointserver/HA102501001033.aspx?pid=CH100305471033"&gt;Demo: Streamline business processes with forms and workflows&lt;/a&gt;&lt;br /&gt;This Demo shows how the workflow can work and has some great How To articles going into the depths of using different views and hooking up the form with an approval workflow&lt;br /&gt;&lt;br /&gt;Finally Paul came up with a great series of articles showing you how to create a custom leave form in Infopath and touches on a favourite topic of mine. The SharePoint Webservices in part 5 of his humble tribute.&lt;br /&gt;&lt;a href="http://www.cleverworkarounds.com/"&gt;http://www.cleverworkarounds.com/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;So over the next few weeks I will be putting together a video and steps on how to customise the OOB expense claim form, how to publish it to SharePoint and design a simple workflow that assists in the approval process of the expense claim.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/908451797546196795-6683565532317835220?l=mctalex.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mctalex.blogspot.com/feeds/6683565532317835220/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=908451797546196795&amp;postID=6683565532317835220' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/6683565532317835220'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/6683565532317835220'/><link rel='alternate' type='text/html' href='http://mctalex.blogspot.com/2010/01/humble-tribute-to-expense-claim-form.html' title='A humble tribute to the expense claim form'/><author><name>Alex Dean</name><uri>http://www.blogger.com/profile/17702856763799376939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_kvPl7CQ2CWY/TQ6K6TrjTMI/AAAAAAAAAYQ/oEj3MNzZWcM/S220/Alex-Dean.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-908451797546196795.post-4301438355405397792</id><published>2010-01-20T00:26:00.004+13:00</published><updated>2010-01-27T23:13:33.577+13:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><category scheme='http://www.blogger.com/atom/ns#' term='WSS'/><category scheme='http://www.blogger.com/atom/ns#' term='Email'/><category scheme='http://www.blogger.com/atom/ns#' term='MOSS 2007'/><title type='text'>SendEmailNotification not sending emails</title><content type='html'>This is a tough one. There could be a whole bunch of reasons why your workflow tasks are not sending the OOB emails when a task is assigned. Here are just a few symptoms and their solutions&lt;br /&gt;&lt;br /&gt;1) No emails are being sent, not receiving alerts&lt;br /&gt;-Check your SMTP settings in Central Administration. Under Operations you will find Outgoing Email Settings. Make sure that a valid SMTP server is entered there. Either your local machine is running the smtp service which means the local machine name should be there or you are using an external smtp server to send your emails&lt;br /&gt;&lt;br /&gt;-Try to connect to the smtp server using telnet on port 25.&lt;br /&gt;a) open up a command prompt&lt;br /&gt;b) type in: telnet smtp.yourserver.com 25&lt;br /&gt;c) If you can connect, type in EHLO or HELO. If any of those give you back useful message your SharePoint Server is able to communicate with your smtp server.&lt;br /&gt;Try sending a test message via telnet:&lt;br /&gt;EHLO&lt;br /&gt;MAIL FROM:someemail@domain.com&lt;br /&gt;RCPT TO:validemail@domain.com&lt;br /&gt;DATA email body&lt;br /&gt;Test email message&lt;br /&gt;.&lt;br /&gt;&lt;br /&gt;Done. Make sure to do the CRLF.CRLF bit to send of the message. If it arrives, then you can rest assured that no smtp server config or firewall is blocking your SharePoint server.&lt;br /&gt;&lt;br /&gt;Still no emails?&lt;br /&gt;Make sure that the Windows SharePoint Timer Service is set to automatic and is currently in a running state. If that service crashed, or if someone stops it, no jobs will run, including the task emails and alerts.&lt;br /&gt;&lt;br /&gt;Still plum out of luck? (been flying too much Air New Zealand lately) Make sure that the user has an email address defined!!! This sounds simple but can be a bitch when using MOSS.&lt;br /&gt;When using WSS, simply click the header where it says Welcome Dude and select Edit my Settings from the dropdown. Add the missing email.&lt;br /&gt;If using MOSS, you will need to update your profile either using your MySite, but if that is not available, go to the SSP Admin site and edit the profile manually there. But beware! Those changes might take some time to trickle down to your different site collections. To speed up the process open a command on the server and type stsadm -o sync&lt;br /&gt;That will kick start the profile sync bewteen the profile store in SSP and the UserInfo Lists in the different SharePoint Sites.&lt;br /&gt;&lt;br /&gt;Problem: You still can not see your changes on the userdisp.aspx pages of your site collections. even after executing the sync command and waiting a few moments paitently.&lt;br /&gt;Reason: the user you are looking at is in the system, but not set as active in SharePoint. The only way to activate a user in SP is for that user to log in and do stuff. like adding, editing or deleting list items or documents. So do some stuff and execute the sync command again. That should do the trick.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;So now you can see the email address on the user profile page (userdisp.aspx) but still not receiving task emails for your custom workflow tasks...&lt;br /&gt;Maybe you're just impatient. the timer job is set to run every 5 minutes. to speed this up you can change the frequency using stsadm -o setproperty&lt;br /&gt;the property you're looking for is job-immediate-alerts&lt;br /&gt;the value is "Every 1 minute between 0 and 59"&lt;br /&gt;But set that property at your own risk. It will also affect alerts on the farm.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;EMail is set, user is active, smtp is behaving and the Timer Service is running, but no emails from your custom workflow.&lt;br /&gt;&lt;br /&gt;Solution: First test if you get emails for any OOB workflows like approval and Feedback. If so, then there is an issue with multiple applicaitons using the same task list. I found assigning a new Task list for my custom workflow resolved this issue and SharePoint would send out mails for new tasks as expected. This behaviour is often caused when sites are exported and imported using stsadm. Not all settings are correctly migrated causing this behaviour to crop up. Another reason to be wary of using the export and import functionality in SharePoint to migrate solutions...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/908451797546196795-4301438355405397792?l=mctalex.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mctalex.blogspot.com/feeds/4301438355405397792/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=908451797546196795&amp;postID=4301438355405397792' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/4301438355405397792'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/4301438355405397792'/><link rel='alternate' type='text/html' href='http://mctalex.blogspot.com/2010/01/sendemailnotification-not-sending.html' title='SendEmailNotification not sending emails'/><author><name>Alex Dean</name><uri>http://www.blogger.com/profile/17702856763799376939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_kvPl7CQ2CWY/TQ6K6TrjTMI/AAAAAAAAAYQ/oEj3MNzZWcM/S220/Alex-Dean.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-908451797546196795.post-449624715835655250</id><published>2010-01-13T12:35:00.000+13:00</published><updated>2010-01-13T12:35:44.742+13:00</updated><title type='text'>SharePoint Automation: Sample Install Script</title><content type='html'>&lt;a href="http://stsadm.blogspot.com/2008/03/sample-install-script.html"&gt;SharePoint Automation: Sample Install Script&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I often get asked for a magic wand when it comes to installing SharePoint. I.e. The magic install script that does it all. Instead of spending loads of time blogging about it, I thought I'd send you all to my favourite stsadm expert, Gary Lapointe. He's got a neat script which uses his own extensions in some cases. Especially the createwebapp one which allows you to specify the folder where the iis site will live. This is not possible with the built in extendvs version&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/908451797546196795-449624715835655250?l=mctalex.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://stsadm.blogspot.com/2008/03/sample-install-script.html' title='SharePoint Automation: Sample Install Script'/><link rel='replies' type='application/atom+xml' href='http://mctalex.blogspot.com/feeds/449624715835655250/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=908451797546196795&amp;postID=449624715835655250' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/449624715835655250'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/449624715835655250'/><link rel='alternate' type='text/html' href='http://mctalex.blogspot.com/2010/01/sharepoint-automation-sample-install.html' title='SharePoint Automation: Sample Install Script'/><author><name>Alex Dean</name><uri>http://www.blogger.com/profile/17702856763799376939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_kvPl7CQ2CWY/TQ6K6TrjTMI/AAAAAAAAAYQ/oEj3MNzZWcM/S220/Alex-Dean.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-908451797546196795.post-8422575929125756921</id><published>2010-01-11T12:46:00.002+13:00</published><updated>2010-01-11T12:52:46.500+13:00</updated><title type='text'>Reducing the amount of Views on your Lists</title><content type='html'>In some cases you will want to create many versions of the same data, simply filtered by one or two values. You might just go ahead and create a dozen views to do this. But often this will result in bad usability as the View dropdown becomes unmanageable, plus you will need to maintain dozens of versions of the same view, should new columns be added or existing ones removed.&lt;br /&gt;There is a simpler way. Create  a page that has links to your view with the filter value in the querystring.&lt;br /&gt;I.e. /Lists/MyList/CustomView.aspx?FilterField1=Department&amp;amp;FilterValue1=Finance&lt;br /&gt;&lt;br /&gt;You can use up to three Filters this way.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/908451797546196795-8422575929125756921?l=mctalex.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mctalex.blogspot.com/feeds/8422575929125756921/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=908451797546196795&amp;postID=8422575929125756921' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/8422575929125756921'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/8422575929125756921'/><link rel='alternate' type='text/html' href='http://mctalex.blogspot.com/2010/01/reducing-amount-of-views-on-your-lists.html' title='Reducing the amount of Views on your Lists'/><author><name>Alex Dean</name><uri>http://www.blogger.com/profile/17702856763799376939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_kvPl7CQ2CWY/TQ6K6TrjTMI/AAAAAAAAAYQ/oEj3MNzZWcM/S220/Alex-Dean.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-908451797546196795.post-7611736954057324154</id><published>2010-01-08T19:17:00.004+13:00</published><updated>2010-01-08T19:37:12.640+13:00</updated><title type='text'>Getting the current User in Infopath</title><content type='html'>For one of my clients I recently completed a leave form component. Sadly we could not use Infopath as neither the client was consistently installed across the organisation nor did they have an enterprise license. In my research around this topic I did come across a great 7 part article series showing step by step how to create a Leave Form using Infopath. The articles describe all steps in quite some detail and will get anybody going in no time. Once special gem in his series explains how to set the value of a text field to the full name of the currently logged in user using SharePoint Webservices.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://sharepointmagazine.net/technical/a-humble-tribute-to-the-leave-form-part-5"&gt;a-humble-tribute-to-the-leave-form-part-5&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;the other articles in the series can be found here (note that they are all over the place)&lt;br /&gt;&lt;br /&gt;&lt;a href="http://sharepointmagazine.net/technical/development/a-tribute-to-the-humble-leave-form"&gt;a-tribute-to-the-humble-leave-form&lt;/a&gt;&lt;br /&gt;&lt;a href="http://sharepointmagazine.net/technical/administration/a-tribute-to-the-humble-leave-form-part-2"&gt;a-tribute-to-the-humble-leave-form-part-2&lt;/a&gt;&lt;br /&gt;&lt;a href="http://sharepointmagazine.net/technical/administration/a-tribute-to-the-humble-leave-form-part-3"&gt;a-tribute-to-the-humble-leave-form-part-3&lt;/a&gt;&lt;br /&gt;&lt;a href="http://sharepointmagazine.net/technical/customisation/a-tribute-to-the-humble-leave-form-part-4"&gt;a-tribute-to-the-humble-leave-form-part-4&lt;/a&gt;&lt;br /&gt;&lt;a href="http://sharepointmagazine.net/technical/a-humble-tribute-to-the-leave-form-part-5"&gt;a-humble-tribute-to-the-leave-form-part-5&lt;/a&gt;&lt;br /&gt;&lt;a href="http://sharepointmagazine.net/technical/a-tribute-to-the-humble-leave-form-part-6"&gt;a-tribute-to-the-humble-leave-form-part-6&lt;/a&gt;&lt;br /&gt;&lt;a href="http://sharepointmagazine.net/technical/a-humble-tribute-to-the-leave-form-part-7"&gt;a-humble-tribute-to-the-leave-form-part-7&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/908451797546196795-7611736954057324154?l=mctalex.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mctalex.blogspot.com/feeds/7611736954057324154/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=908451797546196795&amp;postID=7611736954057324154' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/7611736954057324154'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/7611736954057324154'/><link rel='alternate' type='text/html' href='http://mctalex.blogspot.com/2010/01/getting-current-user-in-infopath.html' title='Getting the current User in Infopath'/><author><name>Alex Dean</name><uri>http://www.blogger.com/profile/17702856763799376939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_kvPl7CQ2CWY/TQ6K6TrjTMI/AAAAAAAAAYQ/oEj3MNzZWcM/S220/Alex-Dean.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-908451797546196795.post-1662625762501391808</id><published>2010-01-03T07:05:00.000+13:00</published><updated>2010-01-03T22:14:28.849+13:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><title type='text'>Showing Attachments in List Views</title><content type='html'>Came across this one for one of my custmers. Wants an ability to upload documents to a list item and then show the uploaded docuuments on the list view.&lt;br /&gt;The solution here is to use Attachments and try to get them to show on the view. By default the Attachments field will only give back a true/false value of 0/1, which is only useful for highlighting the fact that there are attachments.&lt;br /&gt;You can build SharePoint Controls into your views and the one you need to show all the attachments as links is the AttachmentField&lt;br /&gt;&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;SharePoint:AttachmentsField&lt;/span&gt;&lt;br /&gt;&lt;span class="attr"&gt;ControlMode&lt;/span&gt;&lt;span class="kwrd"&gt;="Display"&lt;/span&gt; &lt;span class="attr"&gt;&lt;br /&gt;ItemId&lt;/span&gt;&lt;span class="kwrd"&gt;="{@ID}"&lt;/span&gt;&lt;br /&gt;&lt;span class="attr"&gt;FieldName&lt;/span&gt;&lt;span class="kwrd"&gt;="Attachments"&lt;/span&gt; &lt;span class="attr"&gt;&lt;br /&gt;runat&lt;/span&gt;&lt;span class="kwrd"&gt;="server"&lt;/span&gt;&lt;span class="kwrd"&gt;/&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;The best place to put this control is in your dataviews. Either create one in SharePoint Designer from scratch or convert an existing view into a DataView through righ clicking it in SPD 2007 and choosing "convert to XSLT DataView". Once converted you can add the control to the page.&lt;br /&gt;But beware. When creating it from scratch you will be missing the Namespace directive (xslns) which ensures that the xsl parser does not get confused with your ASP.NET code. Best bet here is to convert a view and have a look at all the xslns entries it puts in there. It will enlighten you.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/908451797546196795-1662625762501391808?l=mctalex.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mctalex.blogspot.com/feeds/1662625762501391808/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=908451797546196795&amp;postID=1662625762501391808' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/1662625762501391808'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/1662625762501391808'/><link rel='alternate' type='text/html' href='http://mctalex.blogspot.com/2009/06/showing-attachments-in-list-views.html' title='Showing Attachments in List Views'/><author><name>Alex Dean</name><uri>http://www.blogger.com/profile/17702856763799376939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_kvPl7CQ2CWY/TQ6K6TrjTMI/AAAAAAAAAYQ/oEj3MNzZWcM/S220/Alex-Dean.jpg'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-908451797546196795.post-3359689261718298174</id><published>2009-12-21T09:04:00.003+13:00</published><updated>2010-01-03T22:01:39.841+13:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><title type='text'>SharePoint DataViews don’t work after site export and import</title><content type='html'>&lt;span style="font-size:180%;"&gt;Frequently Found Problem (FFP):&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;When using stsadm –o export and stsadm –o import, or SharePoint Desiger backup/import site for that matter, you will find that many of your DataViews and DataForms stop working on the newly imported site. The pages are riddled with web part errors complaining about not being able to access the data source.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;Cause&lt;br /&gt;&lt;/span&gt;By default, DataViews aka DataForms use the unique GUID of the lists they refer to, to receive data. When re-importing your site, the system reassigns new GUIDs for all the lists but does not clean up all existing references.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;Solutions&lt;br /&gt;Not so fast and dirty:&lt;br /&gt;&lt;/span&gt;Manually fix the GUIDS after the import. Best option here is to open up the pages which stopped working (Views, WebPart pages, New, Edit and Display Forms of customised lists) and look for the keyword ListID in the document. You will find between 1 and 4 occurrences (normally 3-4) closely followed by the GUID of the list or document library in question. Simply update this GUID to the new one (extracted from the URL of the list settings page of the list) and you’re back up and running&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;Faster and not quite so dirty:&lt;br /&gt;&lt;/span&gt;Change the references from absolute GUID references to named references. Open the pages at fault and look for ListID again. But this time replace the actual occurrence with ListName and replace the GUID that follows with the actual name of the list. This is best done before you do the export, or even better right after you created the custom view so you don’t have to worry about it later again.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;Fast and clean&lt;/span&gt;&lt;br /&gt;Instead of using the OOB stsadm –o import command to import the data, use one of the wonderful stsadm extensions a guy called &lt;a href="http://stsadm.blogspot.com/"&gt;Gary Lapointe &lt;/a&gt;developed. Although not officially supported by Microsoft, you will find them used by the MS pros themselves in their solutions. (Just look at the AdventureWorks Sample Site package)&lt;br /&gt;One of these is the gl-import2 command which allows you to retain the GUIDS when importing the data.&lt;br /&gt;stsadm -o gl-import2 -url "http://localhost" -retainobjectidentity -filename exportpackage.cmp&lt;br /&gt;&lt;br /&gt;Using the above command you do not need to worry about mucking with the Views and Forms in SharePoint Designer at all. Notice the added magic keyword of –retainobjectidentity.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/908451797546196795-3359689261718298174?l=mctalex.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mctalex.blogspot.com/feeds/3359689261718298174/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=908451797546196795&amp;postID=3359689261718298174' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/3359689261718298174'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/3359689261718298174'/><link rel='alternate' type='text/html' href='http://mctalex.blogspot.com/2009/12/sharepoint-dataviews-dont-work-after.html' title='SharePoint DataViews don’t work after site export and import'/><author><name>Alex Dean</name><uri>http://www.blogger.com/profile/17702856763799376939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_kvPl7CQ2CWY/TQ6K6TrjTMI/AAAAAAAAAYQ/oEj3MNzZWcM/S220/Alex-Dean.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-908451797546196795.post-6019429938729383642</id><published>2009-10-06T19:49:00.002+13:00</published><updated>2010-01-03T22:03:38.737+13:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><category scheme='http://www.blogger.com/atom/ns#' term='WSS'/><category scheme='http://www.blogger.com/atom/ns#' term='MOSS 2007'/><title type='text'>Multiple Templates per Document Library</title><content type='html'>I recently got a typical FAQ in my inbox:&lt;br /&gt;"I have set up a sharepoint document library which has a template associated with it, whereby when you create a new document by selecting "new" from the menu bar, the document opens using the associated template.&lt;br /&gt;What I would like to know is, is it possible to associate multiple templates to a document library so that when creating a new document by selection "new", you are offered a choice of templates to use? I'm hoping this is possible!!!"&lt;br /&gt;&lt;br /&gt;Nothing simpler than that. The magic word is called Content Types. Okay. Two words then.&lt;br /&gt;You can associate one template with a document library and associate one template with a content type(CT). As soon as a document library(DL) has more than one content type associated with it you will get more than one option when hitting the little arrow next to the new button. Careful, hitting the "New" on the New button will always start up the default CT, which is the first in the list.&lt;br /&gt;So what to do next? Go to the site where you want to use multiple templates and under Site Settings go to the Content Type Gallery. There you create a new CT based of the existing CT called "Document". Now under Advanced Settings of that CT you can upload a new template to use when the New action is chosen. Finally go to Settings page of the DL in quesiton and enable multiple CTs under Advanced Settings of that DL. That will bring up a new section on the Settings page called... "Content Types" where there is a link to add from existing CTs. using that link add your new CT to the list and you're done. You can add as many as you like, but beware, the list should not get too long or you will get usability problems.&lt;br /&gt;One last tip. You can create new CTs at the root of your site collection or within an individual site. CTs are visible only to the site you created it in and all its sub sites. So creating it at the root makes it visible across the whole site collection, but creating it in a specific site will make sure it does not appear further up in the hierarchy or in any of the sibling sites. This can be handy when certain CTs only make sense for specific DLs or specific sites. It is a good idea though to sit down and have a good think about where these CTs could be used and plan ahead where to create them.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/908451797546196795-6019429938729383642?l=mctalex.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mctalex.blogspot.com/feeds/6019429938729383642/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=908451797546196795&amp;postID=6019429938729383642' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/6019429938729383642'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/6019429938729383642'/><link rel='alternate' type='text/html' href='http://mctalex.blogspot.com/2009/10/multiple-templates-per-document-library.html' title='Multiple Templates per Document Library'/><author><name>Alex Dean</name><uri>http://www.blogger.com/profile/17702856763799376939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_kvPl7CQ2CWY/TQ6K6TrjTMI/AAAAAAAAAYQ/oEj3MNzZWcM/S220/Alex-Dean.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-908451797546196795.post-2274247577372440130</id><published>2009-09-28T10:32:00.011+13:00</published><updated>2009-09-28T10:45:39.503+13:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SSP'/><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><category scheme='http://www.blogger.com/atom/ns#' term='MOSS 2007'/><title type='text'>Busted! Importing Profiles from multiple organisational units in Active Directory</title><content type='html'>One big drawback of the way AD implements LDAP is the lack of support for querying on Organisaitonal Units. No matter what you try, you will hit a brick wall when trying something like OU=SharePoint or OU:SharePoint in a simple query. Even trying to access the value as a property of an AD object will fail as OUs are not stored as properties on objects but only form part of the hierarchy and not part of the metadata. So, when importing profiles into SharePoint, the only place where you can enter an OU is when you are selecting the datasource, before applying any filters. Which means only one single OU, right? Wrong. read the solution at &lt;a href="http://sharepointmythbuster.com/multiple-ou-profile-import/"&gt;SharePoint Mythbuster.com&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/908451797546196795-2274247577372440130?l=mctalex.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mctalex.blogspot.com/feeds/2274247577372440130/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=908451797546196795&amp;postID=2274247577372440130' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/2274247577372440130'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/2274247577372440130'/><link rel='alternate' type='text/html' href='http://mctalex.blogspot.com/2009/09/busted-importing-profiles-from-multiple.html' title='Busted! Importing Profiles from multiple organisational units in Active Directory'/><author><name>Alex Dean</name><uri>http://www.blogger.com/profile/17702856763799376939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_kvPl7CQ2CWY/TQ6K6TrjTMI/AAAAAAAAAYQ/oEj3MNzZWcM/S220/Alex-Dean.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-908451797546196795.post-1772015076756791553</id><published>2009-09-24T16:00:00.002+12:00</published><updated>2010-01-03T22:03:38.738+13:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><category scheme='http://www.blogger.com/atom/ns#' term='WSS'/><category scheme='http://www.blogger.com/atom/ns#' term='MOSS 2007'/><title type='text'>Busted: Customising the application.master</title><content type='html'>There are numerous articles out there about how to change the system master page. The one that all pages in the _layouts aka LAYOUTS folder use. In most cases they want to do this to enable a different datasource for the top navigation aka global navigation. The average rookie who is in charge of creating a site in MOSS using the publishing feature will stumble across this problem and start hacking away at either the original application.master, or even go and implement a custom http handler to exchange the application.master with a custom one on the fly. None of these approaches are best practice nor are they supported by MS. So is it impossible to fix without breaking the system? Not at all.&lt;br /&gt;I've published a solution to &lt;a href="http://www.sharepointmythbuster.com/"&gt;www.sharepointmythbuster.com&lt;/a&gt;! It will allow you to replace the top navigation on the fly for all pages in the site collection, including those horrid system pages and application pages.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/908451797546196795-1772015076756791553?l=mctalex.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mctalex.blogspot.com/feeds/1772015076756791553/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=908451797546196795&amp;postID=1772015076756791553' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/1772015076756791553'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/1772015076756791553'/><link rel='alternate' type='text/html' href='http://mctalex.blogspot.com/2009/09/busted-customising-applicationmaster.html' title='Busted: Customising the application.master'/><author><name>Alex Dean</name><uri>http://www.blogger.com/profile/17702856763799376939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_kvPl7CQ2CWY/TQ6K6TrjTMI/AAAAAAAAAYQ/oEj3MNzZWcM/S220/Alex-Dean.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-908451797546196795.post-4149227973759689307</id><published>2009-09-16T11:10:00.002+12:00</published><updated>2010-01-03T22:03:38.738+13:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><category scheme='http://www.blogger.com/atom/ns#' term='WSS'/><category scheme='http://www.blogger.com/atom/ns#' term='MOSS 2007'/><title type='text'>Gettting Started with SharePoint development</title><content type='html'>Microsoft put together ten labs for Developing on SharePoint and also provided a fully functional VPC for you to get started. Time for the image is running out, as it will expire on 30/09/09. So if you don't have your own SharePoint development environment and wish to have a look at what all the hype is about go and download the image quick&lt;br /&gt;&lt;br /&gt;VPC Image:&lt;br /&gt;http://www.microsoft.com/downloads/details.aspx?FamilyID=1beeac6f-2ea1-4769-9948-74a74bd604fa&amp;amp;DisplayLang=en&lt;br /&gt;&lt;br /&gt;WSS Hands on Labs:&lt;br /&gt;http://www.microsoft.com/downloads/details.aspx?familyid=B885DCE8-C93F-48AA-B798-4422FEBCC200&amp;amp;displaylang=en&lt;br /&gt;&lt;br /&gt;Loads of Resources, Demos, and online Walkthroughs&lt;br /&gt;http://www.microsoft.com/click/SharePointDeveloper/&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/908451797546196795-4149227973759689307?l=mctalex.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mctalex.blogspot.com/feeds/4149227973759689307/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=908451797546196795&amp;postID=4149227973759689307' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/4149227973759689307'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/4149227973759689307'/><link rel='alternate' type='text/html' href='http://mctalex.blogspot.com/2009/09/gettting-started-with-sharepoint.html' title='Gettting Started with SharePoint development'/><author><name>Alex Dean</name><uri>http://www.blogger.com/profile/17702856763799376939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_kvPl7CQ2CWY/TQ6K6TrjTMI/AAAAAAAAAYQ/oEj3MNzZWcM/S220/Alex-Dean.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-908451797546196795.post-312343220093838607</id><published>2009-09-10T11:38:00.002+12:00</published><updated>2010-01-03T22:03:38.739+13:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><category scheme='http://www.blogger.com/atom/ns#' term='WSS'/><category scheme='http://www.blogger.com/atom/ns#' term='MOSS 2007'/><title type='text'>SharePoint Event Troubleshooting Tips</title><content type='html'>Gary from Combined-Knowledge pointed out this useful post in the WSS SDK today.&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/aa979520.aspx"&gt;http://msdn.microsoft.com/en-us/library/aa979520.aspx&lt;/a&gt;&lt;br /&gt;It is a great little list of issues you will come across when working with Event Receivers in SharePoint. You're bound to have come across the one or other weird behaviour when implementing events. You're not alone. The above list mentions a dozen common issues to be careful of.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/908451797546196795-312343220093838607?l=mctalex.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mctalex.blogspot.com/feeds/312343220093838607/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=908451797546196795&amp;postID=312343220093838607' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/312343220093838607'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/312343220093838607'/><link rel='alternate' type='text/html' href='http://mctalex.blogspot.com/2009/09/sharepoint-event-troubleshooting-tips.html' title='SharePoint Event Troubleshooting Tips'/><author><name>Alex Dean</name><uri>http://www.blogger.com/profile/17702856763799376939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_kvPl7CQ2CWY/TQ6K6TrjTMI/AAAAAAAAAYQ/oEj3MNzZWcM/S220/Alex-Dean.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-908451797546196795.post-2294190699608845212</id><published>2009-09-10T10:20:00.003+12:00</published><updated>2010-01-03T22:03:38.740+13:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><category scheme='http://www.blogger.com/atom/ns#' term='WSS'/><category scheme='http://www.blogger.com/atom/ns#' term='MOSS 2007'/><title type='text'>How to Pre populate Form Fields in SharePoint</title><content type='html'>Can't do it better than the boys over at Endusersharepoint. A great JQuery script which works universally with all kinds of Field types including lookups and date time fields.&lt;br /&gt;Just plonk this onto your EditForm or the page with your Dataview and off you go.&lt;br /&gt;Sadly there are no delegate controls on the built in EditForm.aspx for you to override automatically so you will have to either customise the editforms or build your own for your cusotm content type or cusotm lists definition.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.endusersharepoint.com/2009/04/20/jquery-for-everyone-pre-populate-form-fields/"&gt;http://www.endusersharepoint.com/2009/04/20/jquery-for-everyone-pre-populate-form-fields/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/908451797546196795-2294190699608845212?l=mctalex.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mctalex.blogspot.com/feeds/2294190699608845212/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=908451797546196795&amp;postID=2294190699608845212' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/2294190699608845212'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/2294190699608845212'/><link rel='alternate' type='text/html' href='http://mctalex.blogspot.com/2009/09/how-to-pre-populate-form-fields-in.html' title='How to Pre populate Form Fields in SharePoint'/><author><name>Alex Dean</name><uri>http://www.blogger.com/profile/17702856763799376939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_kvPl7CQ2CWY/TQ6K6TrjTMI/AAAAAAAAAYQ/oEj3MNzZWcM/S220/Alex-Dean.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-908451797546196795.post-9022491924645201411</id><published>2009-08-24T22:29:00.002+12:00</published><updated>2010-01-03T22:01:39.845+13:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><title type='text'>SharePoint Server Limits</title><content type='html'>Often I get asked in classes what the limits are for SharePoint. Like how many files can I have in a document library and how many folders, how many lists in a site etc.&lt;br /&gt;Microsoft published a really nice whitepaper on technet covering loads of limits, from how many user profiles per farm to how many items in a list.&lt;br /&gt;&lt;a href="http://technet.microsoft.com/en-us/library/cc262787.aspx"&gt;http://technet.microsoft.com/en-us/library/cc262787.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;One thing to keep in mind though: IT IS ALL RELATIVE&lt;br /&gt;&lt;br /&gt;Having 50000 items in a document might be quite feasible on the right farm, but if you're using your SQL Server for other stuff and he is running at max speed anyway (150+ Transactions per second for example) you will feel the pain faster than when he's got 4 quad cores, 20GB of Ram and is generally quite bored (10-50 Transactions per second)&lt;br /&gt;&lt;br /&gt;Another good post I managed to scrouge of the internet is on the limit of columns in a list. The above article claims you can have up to 256 different field types in a list and up to 4000 columns. But can you? If you ever come across the column limit exceeded error message or your columns are not behaving the way they should (filtering not working properly for example) then you have reached the field type limit.&lt;br /&gt;&lt;a href="http://support.microsoft.com/?scid=kb%3Ben-us%3B823555&amp;amp;x=6&amp;amp;y=5%20http://support.microsoft.com/?scid=kb%3Ben-us%3B823555&amp;amp;x=6&amp;amp;y=5"&gt;http://support.microsoft.com/?scid=kb%3Ben-us%3B823555&amp;amp;x=6&amp;amp;y=5%20http://support.microsoft.com/?scid=kb%3Ben-us%3B823555&amp;amp;x=6&amp;amp;y=5&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;These were the settings for WSS 2.0 and SPS 2003:&lt;br /&gt;&lt;br /&gt;64 Single line of text and Choice (drop-down menu or radio buttons)&lt;br /&gt;31 Multiple lines of text and Choice (check boxes (allow multiple sections))&lt;br /&gt;32 Number and currency&lt;br /&gt;32 Hyperlink&lt;br /&gt;16 Date and time&lt;br /&gt;16 Lookup&lt;br /&gt;16 Yes/No&lt;br /&gt;8 Calculated&lt;br /&gt;&lt;br /&gt;in WSS 2.0 these limits were set and they were transferred to WSS 3.0 Although they are not enforced the same way no more and you can end up creating more than those in some cases, expect the system to start acting up and behaving badly when exceeding those limits.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/908451797546196795-9022491924645201411?l=mctalex.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mctalex.blogspot.com/feeds/9022491924645201411/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=908451797546196795&amp;postID=9022491924645201411' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/9022491924645201411'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/9022491924645201411'/><link rel='alternate' type='text/html' href='http://mctalex.blogspot.com/2009/08/sharepoint-server-limits.html' title='SharePoint Server Limits'/><author><name>Alex Dean</name><uri>http://www.blogger.com/profile/17702856763799376939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_kvPl7CQ2CWY/TQ6K6TrjTMI/AAAAAAAAAYQ/oEj3MNzZWcM/S220/Alex-Dean.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-908451797546196795.post-6600718994014433699</id><published>2009-08-20T23:13:00.003+12:00</published><updated>2010-01-03T22:01:39.845+13:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><title type='text'>Edit only your own on document Libraries</title><content type='html'>This is another one of those features which people cry for. You have that option on Lists via the advanced settings but not on libraries. WTF?&lt;br /&gt;Well, it has to do with the implementation of that feature. Which is pretty bad by the way. The edit only your own setting does not integrate into the permission model but is a final check before an item is saved. Thus it does not work well with items which can be saved without the use of an application page, like from within word directly.&lt;br /&gt;There are some blogs out there suggesting reactivating the feature on libraries using some code and following functions&lt;br /&gt;SPList.ReadSecurity &lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.splist.readsecurity.aspx"&gt;http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.splist.readsecurity.aspx&lt;/a&gt;&lt;br /&gt;SPList.WriteSecurity &lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.splist.writesecurity.aspx"&gt;http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.splist.writesecurity.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;but that does not get around people saving directly from within office.&lt;br /&gt;Thus the only way right now to achieve something proper and stable is to create an event handler catching the modified event which checks who the creator was and responds accordingly.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/908451797546196795-6600718994014433699?l=mctalex.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mctalex.blogspot.com/feeds/6600718994014433699/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=908451797546196795&amp;postID=6600718994014433699' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/6600718994014433699'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/6600718994014433699'/><link rel='alternate' type='text/html' href='http://mctalex.blogspot.com/2009/08/edit-only-your-own-on-document.html' title='Edit only your own on document Libraries'/><author><name>Alex Dean</name><uri>http://www.blogger.com/profile/17702856763799376939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_kvPl7CQ2CWY/TQ6K6TrjTMI/AAAAAAAAAYQ/oEj3MNzZWcM/S220/Alex-Dean.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-908451797546196795.post-4476971743130090553</id><published>2009-08-20T00:36:00.003+12:00</published><updated>2009-08-20T00:42:51.819+12:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><category scheme='http://www.blogger.com/atom/ns#' term='MOSS 2007'/><title type='text'>Browse button on Send To Other Location in SharePoint</title><content type='html'>Wilson has put together some time ago now a great little article on how to add the object picker aka a browse button to the "Send To" page in SharePoint. this has been an asked for feature by many customers and the solution is not that hard. it includes creating a custom copy.aspx, a custom core.js and a custom site definition.&lt;br /&gt;&lt;a href="http://planetwilson.blogspot.com/2007/08/how-to-add-picker-to-send-to-other.html"&gt;http://planetwilson.blogspot.com/2007/08/how-to-add-picker-to-send-to-other.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;You could also create a feature which adds the custom copy.aspx page to the ECB context menu of an item, but you would end up with two send to options in the context menu.&lt;br /&gt;&lt;br /&gt;I prefer the feature approach as it is more resillient to change and service packs. Modifying the core.js means you need to check for changes after each update to make sure that the old core.js syntax still works with the new updated version of sharepoint.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/908451797546196795-4476971743130090553?l=mctalex.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mctalex.blogspot.com/feeds/4476971743130090553/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=908451797546196795&amp;postID=4476971743130090553' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/4476971743130090553'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/4476971743130090553'/><link rel='alternate' type='text/html' href='http://mctalex.blogspot.com/2009/08/browse-button-on-send-to-other-location.html' title='Browse button on Send To Other Location in SharePoint'/><author><name>Alex Dean</name><uri>http://www.blogger.com/profile/17702856763799376939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_kvPl7CQ2CWY/TQ6K6TrjTMI/AAAAAAAAAYQ/oEj3MNzZWcM/S220/Alex-Dean.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-908451797546196795.post-5885800172026267874</id><published>2009-08-18T23:25:00.003+12:00</published><updated>2010-01-03T22:01:39.846+13:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><title type='text'>Enabling Content and Structure tool in non Publishing Sites</title><content type='html'>Often I get a request for having the content and structure tool available in the Site Actions on a normal collaboration site. This is often the case when the root of the portal has the publishing feature activated and then subsites were created using the team site template. The solutions is pretty simple and can be achieved easily using a feature.&lt;br /&gt;All you need to do is create a feature which adds a link to /_layouts/sitemanager.aspx to the Site Actions menu.&lt;br /&gt;Site Owners can get to this link already via Site Settings in the collaboration site, but site members have no access to the site settings page and thus it seemes that site members can not access the content and structure tool from the subsite.&lt;br /&gt;Below is a sample feature and elements xml to create the missing link in the site actions.&lt;br /&gt;Feature.xml:&lt;br /&gt;&amp;lt;?xml version="1.0" encoding="utf-8"?&amp;gt;&amp;lt;Feature Id="FEAD7313-AE6D-45DD-8260-13B563CB4C72" Title="Content and Structure Site Actions" Description="Enables the Content and Structure Site Actions Menu Item" Version="1.0.0.0" Scope="Web" Hidden="FALSE" DefaultResourceFile="core" xmlns="http://schemas.microsoft.com/sharepoint/"&amp;gt; &amp;lt;ElementManifests&amp;gt; &amp;lt;ElementManifest Location="menu.xml" /&amp;gt; &amp;lt;/ElementManifests&amp;gt; &amp;lt;ActivationDependencies&amp;gt; &amp;lt;ActivationDependency FeatureId="A392DA98-270B-4e85-9769-04C0FDE267AA" /&amp;gt; &amp;lt;/ActivationDependencies&amp;gt;&amp;lt;/Feature&amp;gt;&lt;br /&gt;menu.xml:&lt;br /&gt;&amp;lt;?xml version="1.0" encoding="utf-8"?&amp;gt;&amp;lt;Elements xmlns="http://schemas.microsoft.com/sharepoint/"&amp;gt; &amp;lt;CustomAction Id="ContentStructureMenu" GroupId="SiteActions" Location="Microsoft.SharePoint.StandardMenu" Sequence="20" Title="Manage Content and Structure" Description="Reorganise content and structure in this site" ImageUrl="/_layouts/images/SMT_SMALL.png"&amp;gt; &amp;lt;UrlAction Url="javascript:window.location='{SiteUrl}/_layouts/sitemanager.aspx?Source=' + encodeURIComponent(window.location)" /&amp;gt; &amp;lt;/CustomAction&amp;gt;&amp;lt;/Elements&amp;gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/908451797546196795-5885800172026267874?l=mctalex.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mctalex.blogspot.com/feeds/5885800172026267874/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=908451797546196795&amp;postID=5885800172026267874' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/5885800172026267874'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/5885800172026267874'/><link rel='alternate' type='text/html' href='http://mctalex.blogspot.com/2009/08/enabling-content-and-structure-tool-in.html' title='Enabling Content and Structure tool in non Publishing Sites'/><author><name>Alex Dean</name><uri>http://www.blogger.com/profile/17702856763799376939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_kvPl7CQ2CWY/TQ6K6TrjTMI/AAAAAAAAAYQ/oEj3MNzZWcM/S220/Alex-Dean.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-908451797546196795.post-6946214673898015710</id><published>2009-08-18T02:19:00.006+12:00</published><updated>2010-01-03T22:01:39.847+13:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><title type='text'>Enabling discussion boards for email interaction</title><content type='html'>Funnily enough I have not found many people complaining about the lack of proper email integration with discussion boards. Probably because they are all using Outlook 2007 by now :-) and there you have full Discussion Board integration just like you can integrate tasks, contacts and calendars.&lt;br /&gt;&lt;br /&gt;Within Sharepoint there is the option to accept incoming emails for lists and libraries. This feature works like a dream. First you configure your incoming email settings in Central Administration (Operations Tab) and then configure an incoming email address for the list or library in its settings (Communications column beneath RSS settings).&lt;br /&gt;&lt;br /&gt;So far so good. Now you should be able to start new discussions simply by sending an email to a discussion board. An example email address could look like &lt;a href="mailto:salesdiscussions@portal.litwareinc.com"&gt;salesdiscussions@portal.litwareinc.com&lt;/a&gt; . Cool! But how do you reply to a thread?&lt;br /&gt;This is where the main option is missing. You can only reply to a discussion if you subscribed to it and received the discussion in your email. But guess what, that option does not exist in SharePoint.&lt;br /&gt;You might think, "hey, let me try alerts" And although they are a great tool for all other kinds of lists and libraries, they are not meant to be discribution channels for discussions and thus replying to an alert will not get you anywhere near where you want to be. Two problems. first, the sender is a fixed email address for all alerts, so replying to it will not end up in the list that you want to end up in, and secondly the format of the email is totally wrong for email threads.&lt;br /&gt;&lt;br /&gt;Now If you posted the original thread via email, opened that email from your sent items, replied to it by including the original text in the email and changed the To: email to the one of the discussion board, it would actually work! Whopee!&lt;br /&gt;So SharePoint is clever enough to strip out the "Re:" bit, match the subject up and also match up the body to figure out which post you're replying to.&lt;br /&gt;&lt;br /&gt;Thus the only feature which is really missing is the Discussion Subscription mechanism and the distribution of discussions to the subscribers.&lt;br /&gt;&lt;br /&gt;There are a few options thinkable. Now these are just hypothetic...&lt;br /&gt;1) Create an event handler for the discussion board which reads out the alerts set up on the item/list and sends an email to the subscribers.&lt;br /&gt;PRO: simple to set up and maintain&lt;br /&gt;CON: users receive two emails, the subscription and the alert.&lt;br /&gt;&lt;br /&gt;2) Create a feature which replaces the alert feature on that discussion board and maintains its own list of subscribers which then get "spammed" through an event handler.&lt;br /&gt;PRO: users only receive on email&lt;br /&gt;CON: need to create additional User Interface components for subscribing and unsubscribing to discussions and discussion boards&lt;br /&gt;&lt;br /&gt;3) Create your own custom email alert handler to catch the alerts and reformat them by adding the original body and changing the reply to field to the list's email address. here is a great article to get you started on this route:&lt;br /&gt;How to create a custom email alert hander by Microsoft &lt;a href="http://support.microsoft.com/kb/948321"&gt;http://support.microsoft.com/kb/948321&lt;/a&gt;&lt;br /&gt;Just the SPUtility.SendEmail function does not allow you to specify a reply to address, so I would use a different email sending function such as the built in smtp functions in System.Net.Mail.&lt;br /&gt;&lt;br /&gt;Two great articles on customising alert templates in general:&lt;br /&gt;1) How to customise the built in alert template by Brett Lonsdale at Combined-Knowledge &lt;a href="http://www.combined-knowledge.com/Downloads/Modify_Alert_Notifications.pdf"&gt;http://www.combined-knowledge.com/Downloads/Modify_Alert_Notifications.pdf&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;2) customising Alert Templates in WSS 3.0 on the SharePoint Team Blog&lt;br /&gt;&lt;a href="http://blogs.msdn.com/sharepointdeveloperdocs/archive/2007/12/07/customizing-alert-notifications-and-alert-templates-in-windows-sharepoint-services-3-0.aspx"&gt;http://blogs.msdn.com/sharepointdeveloperdocs/archive/2007/12/07/customizing-alert-notifications-and-alert-templates-in-windows-sharepoint-services-3-0.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I've tried playing with the custom alert handler and got as far as sending out minimal streamlined emails but the date stamp on the email is different and thus the email hander is not clever enough to match them up. thus you would need to write your custom incoming email handler for the discussionboard as well. here is a link to get you started:&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spemaileventreceiver.aspx"&gt;http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spemaileventreceiver.aspx&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/908451797546196795-6946214673898015710?l=mctalex.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mctalex.blogspot.com/feeds/6946214673898015710/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=908451797546196795&amp;postID=6946214673898015710' title='15 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/6946214673898015710'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/6946214673898015710'/><link rel='alternate' type='text/html' href='http://mctalex.blogspot.com/2009/08/enabling-discussion-boards-for-email.html' title='Enabling discussion boards for email interaction'/><author><name>Alex Dean</name><uri>http://www.blogger.com/profile/17702856763799376939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_kvPl7CQ2CWY/TQ6K6TrjTMI/AAAAAAAAAYQ/oEj3MNzZWcM/S220/Alex-Dean.jpg'/></author><thr:total>15</thr:total></entry><entry><id>tag:blogger.com,1999:blog-908451797546196795.post-6606416076729220486</id><published>2009-08-12T21:49:00.004+12:00</published><updated>2010-01-03T22:04:55.978+13:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><category scheme='http://www.blogger.com/atom/ns#' term='MOSS 2007'/><title type='text'>Showing multiple Content Types in the Content Query WebPart</title><content type='html'>A common myth is that it is not possible to show multiple different types of content in one CQWP. The trick is that it can not be done using the web interface but can be achieved either via SharePoint Designer or by editing the source xml of the web part directly. The trick is not to think content types but list/library types. you can create a custom search query which will look in multiple different lists by the list type id and pull out the items. as long as the content types you are aggregating are related in a parent/child relationship they will be pulled together. Thus you can create a content query webpart which shows both web pages and documents in one list.&lt;br /&gt;&lt;br /&gt;Effectively you need to add two attributes to the CQWP&lt;br /&gt;ContentTypeBeginsWithId="0x0101"&lt;br /&gt;and&lt;br /&gt;ListsOverride="&amp;lt;Lists BaseType='1'&amp;gt;&amp;lt;/Lists&amp;gt;&lt;lists basetype="'1'"&gt;&lt;/lists&gt;"&lt;br /&gt;&lt;br /&gt;The ListsOverride is the important bit. Here I'm specifying any list which is a document library, as web pages live in document libraries it works like a charm.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/908451797546196795-6606416076729220486?l=mctalex.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mctalex.blogspot.com/feeds/6606416076729220486/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=908451797546196795&amp;postID=6606416076729220486' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/6606416076729220486'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/6606416076729220486'/><link rel='alternate' type='text/html' href='http://mctalex.blogspot.com/2009/08/showing-multiple-content-types-in.html' title='Showing multiple Content Types in the Content Query WebPart'/><author><name>Alex Dean</name><uri>http://www.blogger.com/profile/17702856763799376939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_kvPl7CQ2CWY/TQ6K6TrjTMI/AAAAAAAAAYQ/oEj3MNzZWcM/S220/Alex-Dean.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-908451797546196795.post-1389785141731291778</id><published>2009-08-11T22:32:00.000+12:00</published><updated>2009-08-11T22:33:26.500+12:00</updated><title type='text'>Damsel's Den - The Dragons Pitch to You</title><content type='html'>It’s about time the tables were turned and the “dragons” (actually a neat group of business angels from Angel HQ) pitched to the entrepreneurs. Come along and find out who they are, what they’ve done, what networks they can access, what other investments they’ve made and how they’re going etc, and of course what they look for in a great opportunity to invest in.&lt;br /&gt;&lt;br /&gt;In true UP Style, this event will be fuelled by pizza and beer.To RSVP for Damsel's Den visit &gt; &lt;a href="http://up.org.nz/damsels-den/"&gt;http://up.org.nz/damsels-den/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/908451797546196795-1389785141731291778?l=mctalex.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mctalex.blogspot.com/feeds/1389785141731291778/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=908451797546196795&amp;postID=1389785141731291778' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/1389785141731291778'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/1389785141731291778'/><link rel='alternate' type='text/html' href='http://mctalex.blogspot.com/2009/08/damsels-den-dragons-pitch-to-you.html' title='Damsel&apos;s Den - The Dragons Pitch to You'/><author><name>Alex Dean</name><uri>http://www.blogger.com/profile/17702856763799376939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_kvPl7CQ2CWY/TQ6K6TrjTMI/AAAAAAAAAYQ/oEj3MNzZWcM/S220/Alex-Dean.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-908451797546196795.post-1960550013137682051</id><published>2009-08-11T03:41:00.002+12:00</published><updated>2010-01-03T22:01:39.848+13:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><title type='text'>Incoming Email woes in SharePoint 2007</title><content type='html'>A common error you will get is "Error in the application".&lt;br /&gt;&lt;br /&gt;If you're having problems with activating an incoming email on a list or library in WSS or MOSS (only when activating the automatic contact generation in an OU) then you probably have one of two problems.&lt;br /&gt;Either you forgot to give the CA Service account enough permissions on the OU group or you don't have Exchange installed. Yes, you need exchange to use the OU feature. As SharePoint tries to add some attributes to the AD objects, and exchange makes them available.&lt;br /&gt;&lt;br /&gt;here is a nice blog explaining some of these issues:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://blogs.technet.com/jks/archive/2009/03/04/how-to-deal-with-an-error-in-configuring-incoming-e-mail-settings.aspx"&gt;http://blogs.technet.com/jks/archive/2009/03/04/how-to-deal-with-an-error-in-configuring-incoming-e-mail-settings.aspx&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/908451797546196795-1960550013137682051?l=mctalex.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mctalex.blogspot.com/feeds/1960550013137682051/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=908451797546196795&amp;postID=1960550013137682051' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/1960550013137682051'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/1960550013137682051'/><link rel='alternate' type='text/html' href='http://mctalex.blogspot.com/2009/08/incoming-email-woes-in-sharepoint-2007.html' title='Incoming Email woes in SharePoint 2007'/><author><name>Alex Dean</name><uri>http://www.blogger.com/profile/17702856763799376939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_kvPl7CQ2CWY/TQ6K6TrjTMI/AAAAAAAAAYQ/oEj3MNzZWcM/S220/Alex-Dean.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-908451797546196795.post-4637739779611389871</id><published>2009-08-09T08:44:00.003+12:00</published><updated>2010-01-03T22:01:39.849+13:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><title type='text'>Best SharePoint Training</title><content type='html'>The time has come where I can learn from the best there are.&lt;br /&gt;Without a doubt Bill English (mindsharp) and Steve Smith (combined-knowledge) count to the top SharePoint dudes around and I have the priviledge to study their material. I'll be in the UK for the next three weeks to get up to scratch on their material and am looking forward to passing the knowledge on, once I'm back in NZ.&lt;br /&gt;Sounds simple? Not at all. I'm totally freaked out! These folks know SharePoint inside out and expect nothing less of me. So the last few weeks was spent reading, researching and reading more to prepare for the upcoming course and teach back. Wish me luck and who knows, maybe I'll be teaching the best SharePoint training material there is in a city near you soon.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/908451797546196795-4637739779611389871?l=mctalex.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mctalex.blogspot.com/feeds/4637739779611389871/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=908451797546196795&amp;postID=4637739779611389871' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/4637739779611389871'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/4637739779611389871'/><link rel='alternate' type='text/html' href='http://mctalex.blogspot.com/2009/08/best-sharepoint-training.html' title='Best SharePoint Training'/><author><name>Alex Dean</name><uri>http://www.blogger.com/profile/17702856763799376939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_kvPl7CQ2CWY/TQ6K6TrjTMI/AAAAAAAAAYQ/oEj3MNzZWcM/S220/Alex-Dean.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-908451797546196795.post-4771944031477348387</id><published>2009-08-07T21:03:00.000+12:00</published><updated>2009-08-07T21:04:02.367+12:00</updated><title type='text'>Gadgets, Games and Geeks</title><content type='html'>Wellington’s Leading Techfest - Returns This Month with Silicon Valley-based Keynote Speaker&lt;br /&gt;&lt;br /&gt;This month the eagerly awaited annual Gadgets, Games and Geeks showcase of Wellington’s vibrant and thriving information and communication technology (ICT) sector will take place at the St James Theatre on Courtenay Place.&lt;br /&gt;&lt;br /&gt;Geeks, Gadgets and Games, to be held on Monday, August 24 from 4.30pm, offers an exciting opportunity for the public to see both the latest innovations and catch-up on industry trends, developments and expertise. Organised by Wellington’s leading networking organisation for ICT professionals, Unlimited Potential (UP), Gadgets, Games and Geeks has established itself as the premier showcase and networking event for Wellington’s ICT sector.&lt;br /&gt;&lt;br /&gt;“It is always exciting to bring to the public’s attention the latest innovations from a city that has earned a reputation as New Zealand’s ICT capital, having spawned such innovative businesses as Trade Me, Weta Workshop and Xero,” said UP chair Tom Reidy.&lt;br /&gt;&lt;br /&gt;“Gadgets, Games and Geeks is a great opportunity for anyone interested in what’s hot in Wellington’s IT space to view the latest gadget, game or geek-friendly technological innovations produced by some of Wellington’s smartest IT inventors, suppliers, manufacturers and entrepreneurs.”&lt;br /&gt;&lt;br /&gt;UP is especially pleased to announce it has secured renowned Silicon Valley-based IT entrepreneur, Bill Reichert as the event’s keynote speaker. Reichert, Managing Director of seed and early-stage venture fund, Garage Technology Ventures, will share insider knowledge and tips on starting and growing a successful technology business during an address titled, The Future of Innovation: Entrepreneurship, Venture Capital, and Emerging Technologies.&lt;br /&gt;&lt;br /&gt;Event Details:&lt;br /&gt;When: Monday 24 August 2009, time: from 4.30pmWhere: St James Theatre, Courtenay Place&lt;br /&gt;Entry: FreeTwitter feeds: #ggg09; Flickr tag: GGG09To RSVP and for more information: &lt;a href="http://up.org.nz/ggg-09/"&gt;http://up.org.nz/ggg-09/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;About Unlimited Potential&lt;br /&gt;Unlimited Potential was set up in 2000 as a non-profit organisation to facilitate the growth and development of professionals at the forefront of ICT in Wellington. It does this primarily by providing opportunities for people working in Wellington’s ICT industry to meet and share ideas in a relaxed and friendly environment through events and forums. The network has more than 2000 members working in every type of ICT role across the industry, including start-ups, corporates, education, and government departments. &lt;a href="http://www.up.org.nz/"&gt;www.up.org.nz&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;About Bill Reichert&lt;br /&gt;Bill Reichert has over 20 years of experience as an entrepreneur and an operating executive. He was a co-founder or senior executive in several venture-backed technology start-ups, including Trademark Software, The Learning Company, and Academic Systems. Before that he worked at McKinsey &amp;amp; Company, Brown Brothers Harriman &amp;amp; Co. and the World Bank. Bill has a B.A. from Harvard College and an M.B.A. from Stanford University. He was a founding board member and a Chairman of the Churchill Club, and a Charter Member of the Silicon Valley Association of Start-up Entrepreneurs. In 1998 Bill joined Garage Technology Ventures (founded by well-known author and entrepreneur, Guy Kawasaki) and has since focused on early-stage information technology and materials science companies. &lt;a href="http://www.garage.com/"&gt;www.garage.com&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Contacts&lt;br /&gt;Tom Reidy, Chairman, Unlimited Potential, phones: 021 779 298 (mobile), 04 210 0955 (work), email: tom@up.org.nz.&lt;br /&gt;Anamika Vasil, Communicator, phone: 021 494 005 (mobile), email: anamika@up.org.nz&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/908451797546196795-4771944031477348387?l=mctalex.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mctalex.blogspot.com/feeds/4771944031477348387/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=908451797546196795&amp;postID=4771944031477348387' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/4771944031477348387'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/4771944031477348387'/><link rel='alternate' type='text/html' href='http://mctalex.blogspot.com/2009/08/gadgets-games-and-geeks.html' title='Gadgets, Games and Geeks'/><author><name>Alex Dean</name><uri>http://www.blogger.com/profile/17702856763799376939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_kvPl7CQ2CWY/TQ6K6TrjTMI/AAAAAAAAAYQ/oEj3MNzZWcM/S220/Alex-Dean.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-908451797546196795.post-7907655565238064673</id><published>2009-08-07T20:35:00.002+12:00</published><updated>2009-08-07T20:37:03.949+12:00</updated><title type='text'>Daisy, Family Reunion 2009</title><content type='html'>&lt;div style="MARGIN-BOTTOM: 10px; FLOAT: right; MARGIN-LEFT: 10px"&gt;&lt;a title="photo sharing" href="http://www.flickr.com/photos/40741071@N02/3797765646/"&gt;&lt;img style="BORDER-BOTTOM: #000000 2px solid; BORDER-LEFT: #000000 2px solid; BORDER-TOP: #000000 2px solid; BORDER-RIGHT: #000000 2px solid" alt="" src="http://farm3.static.flickr.com/2594/3797765646_5c9bee436c_m.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="MARGIN-TOP: 0px;font-size:0;" &gt;&lt;a href="http://www.flickr.com/photos/40741071@N02/3797765646/"&gt;Family Heep 2009 035&lt;/a&gt;&lt;br /&gt;Ursprünglich hochgeladen von &lt;a href="http://www.flickr.com/people/40741071@N02/"&gt;Alxdean&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;Daisy is the cutest thing! We met at the family reunion in Mainz and fell in love with each other instantly! Well. maybe not quite. She started screaming each time she looked at me (God knows why...) Daniel and Carol can be proud to have such a cute, fun and bright kid.&lt;br clear="all"&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/908451797546196795-7907655565238064673?l=mctalex.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mctalex.blogspot.com/feeds/7907655565238064673/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=908451797546196795&amp;postID=7907655565238064673' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/7907655565238064673'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/7907655565238064673'/><link rel='alternate' type='text/html' href='http://mctalex.blogspot.com/2009/08/family-heep-2009-035.html' title='Daisy, Family Reunion 2009'/><author><name>Alex Dean</name><uri>http://www.blogger.com/profile/17702856763799376939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_kvPl7CQ2CWY/TQ6K6TrjTMI/AAAAAAAAAYQ/oEj3MNzZWcM/S220/Alex-Dean.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://farm3.static.flickr.com/2594/3797765646_5c9bee436c_t.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-908451797546196795.post-1514497353462028301</id><published>2009-08-07T10:42:00.000+12:00</published><updated>2010-01-03T22:01:39.849+13:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><title type='text'>Microsoft Learning: Microsoft Certified Master Program</title><content type='html'>&lt;a href="http://www.microsoft.com/learning/en/us/certification/master.aspx#tab3"&gt;Microsoft Learning: Microsoft Certified Master Program&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Hey folks, They are already working on the 2010 material. In theory that is great news! Get certified on the newest technology while it is hot off the press and avoid all the teething problems we all had when 2007 came out and nobody was around to give us best practices. But there is also some sad news involved. From December onwards you will not be able to gain a SharePoint 2007 MCM Certification no more. Once they roll out the 2010 curriculum they will close down the 2007 track.&lt;br /&gt;What does that mean? That all customers who need support to clean up their 2007 mess and are looking around for a 2007 super guru will be looking at existing 2007 MCMs first before evaluating 2010 MCMS.&lt;br /&gt;Will a 2010 MCM have the same indepth understanding of the 2007 platform as a 2007 MCM? Of course. If not more so! But will customers understand this fact? probably not. the worst are the HR managers and recruiters which have no understanding of the MS certificaitons. I just remind you of the countles recruiters turning down MCITPs while they were looking for MCSEs.&lt;br /&gt;&lt;br /&gt;So the final verdict. Is it worth while doing the SharePoint 2007 MCM before it expires? Do the math first.&lt;br /&gt;Devin did a nice little &lt;a href="http://blogs.3sharp.com/deving/archive/2009/04/09/you-too-can-master-exchange.aspx"&gt;calculation on the ROI of the MCM program &lt;/a&gt;There he explains how the increased productivity already is worth its weight in gold.&lt;br /&gt;And all you consultants out there. Be honest. How many hours of brooding over tricky and difficult problems have you not been able to bill to your customers. You're working 50 hours a week and billing only 40? sound familiar to anybody? that's at $100 an hour over 48K a year which you are not billing out. Just halving the lost time from 10 hours to 5 hours due to skill, knowledge and new connections is worth more than the cost of the program including travel, accommodation and food. Not to mention the fact that you will get away with an increase in your charges of upt to 50% in some cases. i.e. charge out at $120-$150 instead of the $100.&lt;br /&gt;&lt;br /&gt;Will I be doing it? All depends on how fast I can get the cash together.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/908451797546196795-1514497353462028301?l=mctalex.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.microsoft.com/learning/en/us/certification/master.aspx#tab3' title='Microsoft Learning: Microsoft Certified Master Program'/><link rel='replies' type='application/atom+xml' href='http://mctalex.blogspot.com/feeds/1514497353462028301/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=908451797546196795&amp;postID=1514497353462028301' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/1514497353462028301'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/1514497353462028301'/><link rel='alternate' type='text/html' href='http://mctalex.blogspot.com/2009/08/microsoft-learning-microsoft-certified.html' title='Microsoft Learning: Microsoft Certified Master Program'/><author><name>Alex Dean</name><uri>http://www.blogger.com/profile/17702856763799376939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_kvPl7CQ2CWY/TQ6K6TrjTMI/AAAAAAAAAYQ/oEj3MNzZWcM/S220/Alex-Dean.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-908451797546196795.post-351755273086778375</id><published>2009-08-06T01:40:00.000+12:00</published><updated>2010-01-03T22:01:39.850+13:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><title type='text'>Adding Themes the supported way! - Robin | zevenseas | SharePoint Blog</title><content type='html'>&lt;a href="http://community.zevenseas.com/Blogs/Robin/archive/2009/08/03/adding-themes-the-supported-way.aspx"&gt;Adding Themes the supported way! - Robin  zevenseas  SharePoint Blog&lt;/a&gt;&lt;br /&gt;Ever screamed at SharePoint that Themes are such a hassle and you have to jump through hoops to make your custom themes selectable by the end user?&lt;br /&gt;Up until recently the only options were to either create a feature which applies the custom theme or to muddle with the SpThemes.xml file (preferrably also done through a feature).&lt;br /&gt;Robin on the other hand came up with a better solution. He created a solution which has a configuration interface in CA which allows admins to define multiple themes.xml files (no muddling with built in files that are prone to be overwritten in an upgrade).&lt;br /&gt;To load the custom xml file he used a feature to hide the existing site actions menu entry and replaced it with his own application page. There he loads the default themes and custom themes into one dataset and displays them as if nothing had changed.&lt;br /&gt;&lt;br /&gt;But be warned! Although he spent much effort on sticking to the API and the way it was coded previously (Reflector is such a great tool) his solution is not 100% upgrade proof. If the MS developers decide to change the way themes work and muddle with the classes the page could crash. But that's the beauty of features. Deactivating the feature will remove the new link and put the old link back and you're back to Vanilla.&lt;br /&gt;&lt;br /&gt;Happy theming!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/908451797546196795-351755273086778375?l=mctalex.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://community.zevenseas.com/Blogs/Robin/archive/2009/08/03/adding-themes-the-supported-way.aspx' title='Adding Themes the supported way! - Robin | zevenseas | SharePoint Blog'/><link rel='replies' type='application/atom+xml' href='http://mctalex.blogspot.com/feeds/351755273086778375/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=908451797546196795&amp;postID=351755273086778375' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/351755273086778375'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/351755273086778375'/><link rel='alternate' type='text/html' href='http://mctalex.blogspot.com/2009/08/adding-themes-supported-way-robin.html' title='Adding Themes the supported way! - Robin | zevenseas | SharePoint Blog'/><author><name>Alex Dean</name><uri>http://www.blogger.com/profile/17702856763799376939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_kvPl7CQ2CWY/TQ6K6TrjTMI/AAAAAAAAAYQ/oEj3MNzZWcM/S220/Alex-Dean.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-908451797546196795.post-6673841706027727978</id><published>2009-08-06T01:26:00.000+12:00</published><updated>2010-01-03T22:01:39.851+13:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><title type='text'>WSS 3.0 Tagging Web Parts</title><content type='html'>&lt;a href="http://www.wsssearch.com/tagging.html"&gt;Windows SharePoint Services (WSS) V3 Search - Tagging Web Parts&lt;/a&gt;&lt;br /&gt;The above link is for a simple alternative to the bells and whistles version by  kwizcom. It is a free and simple Tag field plus Tag Cloud which pulls the items out of the sitecollection that have the field populated. Not the most refined option but a start and definately worth expanding upon.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/908451797546196795-6673841706027727978?l=mctalex.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.wsssearch.com/tagging.html' title='WSS 3.0 Tagging Web Parts'/><link rel='replies' type='application/atom+xml' href='http://mctalex.blogspot.com/feeds/6673841706027727978/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=908451797546196795&amp;postID=6673841706027727978' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/6673841706027727978'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/6673841706027727978'/><link rel='alternate' type='text/html' href='http://mctalex.blogspot.com/2009/08/wss-30-tagging-web-parts.html' title='WSS 3.0 Tagging Web Parts'/><author><name>Alex Dean</name><uri>http://www.blogger.com/profile/17702856763799376939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_kvPl7CQ2CWY/TQ6K6TrjTMI/AAAAAAAAAYQ/oEj3MNzZWcM/S220/Alex-Dean.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-908451797546196795.post-4753161586341801145</id><published>2009-08-06T01:19:00.000+12:00</published><updated>2010-01-03T22:01:39.851+13:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><title type='text'>SharePoint Tagging Feature : kwizcom.com</title><content type='html'>&lt;a href="http://kwizcom.com/ProductPage.asp?ProductID=517&amp;amp;ProductSubNodeID=518"&gt;SharePoint Tagging Feature : kwizcom.com&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I've been spammed by a friend recently with lots of interesting SharePoint related links. This one is a real gem. Have not tried it out yet, but the screen shots are very promising. A full tagging feature with tag management, tag clouds, search filtering with tag categories and tag cloud and more.&lt;br /&gt;I was asked at my Search presentation about Tag Clouds for SharePoint and I wish I had stumbled upon this one before.&lt;br /&gt;&lt;br /&gt;Check it out or your selves and tell me what you think!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/908451797546196795-4753161586341801145?l=mctalex.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://kwizcom.com/ProductPage.asp?ProductID=517&amp;ProductSubNodeID=518' title='SharePoint Tagging Feature : kwizcom.com'/><link rel='replies' type='application/atom+xml' href='http://mctalex.blogspot.com/feeds/4753161586341801145/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=908451797546196795&amp;postID=4753161586341801145' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/4753161586341801145'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/4753161586341801145'/><link rel='alternate' type='text/html' href='http://mctalex.blogspot.com/2009/08/sharepoint-tagging-feature-kwizcomcom.html' title='SharePoint Tagging Feature : kwizcom.com'/><author><name>Alex Dean</name><uri>http://www.blogger.com/profile/17702856763799376939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_kvPl7CQ2CWY/TQ6K6TrjTMI/AAAAAAAAAYQ/oEj3MNzZWcM/S220/Alex-Dean.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-908451797546196795.post-9205937595618486194</id><published>2009-06-09T23:42:00.002+12:00</published><updated>2009-06-10T00:02:15.752+12:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Sql Server'/><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><category scheme='http://www.blogger.com/atom/ns#' term='WSS'/><category scheme='http://www.blogger.com/atom/ns#' term='MOSS 2007'/><title type='text'>SQL Server Autogrowth for SharePoint</title><content type='html'>I was aksed today what Autogrowth setting would be best for a SharePoint Content Database. The simple answer? None! Autogrowth is one of the biggest resource eaters on badly designed SharePoint SQL Farms and can cause serious performance and stability issues (plus wreck havoc with your Hard Disks). The best option is to start big enough for your initial load and plan growth ahead.&lt;br /&gt;&lt;br /&gt;Example: You are starting a new SharePoint ECM project and are planning on migrating 5 GB worth of files into the SharePoint Sites at go live. You also realise that you have never used versioning before and your staff will be quite active on about 10% of those files. Expecting to create on average one new version every week. i.e 500MB worth of new data being added every week. Thus scheduling a db file growth of 500MB during every weekend would deal with versioning. Add 100MB for new content to total it up to 600MB for week 1, 610 for week 2, 620 for week 3 and so forth, taking into account the growth of the files and the increase on versioning.&lt;br /&gt;&lt;br /&gt;Having a sound versioning strategy with a cap for Major and Minor versions will help reign in this excessive growth!!!!&lt;br /&gt;&lt;br /&gt;Obviously you will not always get it right and thus a combination of large Autogrowth (for example in 100MB increments) and weekly scheduled growth will give you the best combination for maximum performance and stability.&lt;br /&gt;&lt;br /&gt;The final statement? Try to minimise the amount of times the dbs autogrow as much as you can by planning ahead, and when they do auto grow mak sure the increments are large enough to keep you going withminimal disruption until the next scheduled growth.  Don't make them too large either as fetching hard disk space for the db files can put a strain on the Disks at the most impractical times like during peak hours and impair the stability of the system&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/908451797546196795-9205937595618486194?l=mctalex.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mctalex.blogspot.com/feeds/9205937595618486194/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=908451797546196795&amp;postID=9205937595618486194' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/9205937595618486194'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/9205937595618486194'/><link rel='alternate' type='text/html' href='http://mctalex.blogspot.com/2009/06/sql-server-autogrowth-for-sharepoint.html' title='SQL Server Autogrowth for SharePoint'/><author><name>Alex Dean</name><uri>http://www.blogger.com/profile/17702856763799376939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_kvPl7CQ2CWY/TQ6K6TrjTMI/AAAAAAAAAYQ/oEj3MNzZWcM/S220/Alex-Dean.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-908451797546196795.post-6145096566370541048</id><published>2009-06-09T23:32:00.002+12:00</published><updated>2010-01-03T22:02:08.134+13:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><title type='text'>Theme not updating on refresh</title><content type='html'>If any of you have been working with themes in your visual studio projects you probably didn't get them right frst time. Heck, you probably didn't get them right after the 50th update. If you're creating the theme in a wsp and keep on deploying it and are only working on one single site with no sub sites, then you won't have the update issue. But my guess is that you do.&lt;br /&gt;&lt;br /&gt;As soon as you apply a theme to a site it copies the theme.css into the site under the _themes folder. This means the page is automatically unghosted and any changes simply won't show up unless you remove the theme and reapply the theme.  The solution to the dilemma is to put all the real css stuff into a separate css file somewhere in the hive (preferrably under layouts/styles or layouts/1033/styles) and only reference it from the theme.css using the import statement.&lt;br /&gt;&lt;br /&gt;Sure it is a bit hacky, and yes, you would also put all the images into a folder outside of the actual theme folder but hey! a) it works, b) you can see your changes reflected instantly across all sites using the theme and c) it still can be packaged into a feature and wsp package meaning you'll be fine even after the next update.&lt;br /&gt;&lt;br /&gt;Heather Solomon, the master of sharepoint css has a great article on how to do the referencing with themes on her blog:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.heathersolomon.com/blog/archive/2008/01/30.aspx"&gt;http://www.heathersolomon.com/blog/archive/2008/01/30.aspx&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/908451797546196795-6145096566370541048?l=mctalex.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mctalex.blogspot.com/feeds/6145096566370541048/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=908451797546196795&amp;postID=6145096566370541048' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/6145096566370541048'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/6145096566370541048'/><link rel='alternate' type='text/html' href='http://mctalex.blogspot.com/2009/06/theme-not-updating-on-refresh.html' title='Theme not updating on refresh'/><author><name>Alex Dean</name><uri>http://www.blogger.com/profile/17702856763799376939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_kvPl7CQ2CWY/TQ6K6TrjTMI/AAAAAAAAAYQ/oEj3MNzZWcM/S220/Alex-Dean.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-908451797546196795.post-2582024271961058300</id><published>2009-06-05T20:01:00.003+12:00</published><updated>2010-01-03T22:02:27.609+13:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><title type='text'>updating a layout using features</title><content type='html'>It is well known now that probably the best way to use site definitions and features is to start off with the most basic definition and do as much as possible in the feature. That also includes things like page layouts and master pages.&lt;br /&gt;Words of warning. Ghosting and Unghosting can trick you into thinking that the updates are not working. As soon as you decide to customise a page using SPD which was deployed via a feature, SharePoint will put a copy into the database and always load that one instead of the ghosted one on the file system. Thus you can update your feature as often as you like, you won't see the changes. Solution?&lt;br /&gt;make sure you have all modificaitons in the source file and reset the layout page to Site definition. Strictly speaking it never was part of a "site definition" but part of a feature, so you won't find the Reset button in SPD, but you can still reset it manually using the web interface. Simply copy the url of the page in question, go to Site Settings and there you will find a link to Reset to Site Definition where you can past the link.&lt;br /&gt;&lt;br /&gt;Something Else I noticed though. If you customise the layout page to include web parts on creation using the AllUsersWebPart tag, like the Table of Contents Webpart in Andrew Connel's Minimal Site Definition example, each time you reinstall the feature a new instance of the web part will be added to the layout definition, causing multiple instances to be created on the new page creation. So try to stay away from web part customisation in layouts if you can.&lt;br /&gt;&lt;br /&gt;Finally, you might want to make other property changes, like providing a new Preview image url or modifying the content type or such. These settings live on the list item and not in the file. Editing the item will solve those problems but as soon as you check your changes in, the page will be unghosted and you're back at the first dilemma. No worries though. Simply reset to site definition again and you're as good as gold. Yup, the changes to the list item don't go lost when doing that reset, so you won't lose those updates.&lt;br /&gt;&lt;br /&gt;Regards&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/908451797546196795-2582024271961058300?l=mctalex.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mctalex.blogspot.com/feeds/2582024271961058300/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=908451797546196795&amp;postID=2582024271961058300' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/2582024271961058300'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/2582024271961058300'/><link rel='alternate' type='text/html' href='http://mctalex.blogspot.com/2009/06/updating-layout-using-features.html' title='updating a layout using features'/><author><name>Alex Dean</name><uri>http://www.blogger.com/profile/17702856763799376939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_kvPl7CQ2CWY/TQ6K6TrjTMI/AAAAAAAAAYQ/oEj3MNzZWcM/S220/Alex-Dean.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-908451797546196795.post-4686696796366937441</id><published>2009-06-05T14:08:00.002+12:00</published><updated>2010-01-03T22:02:46.795+13:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint 2010'/><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><title type='text'>Bye Bye Groove, Hello SharePoint Workspaces</title><content type='html'>In the past many people have asked me what this Groove thing is about. Looks like a miniature version of SharePoint I was told by some. Others called it the Briefcase on Steroids. Most people who were implementing SharePoint though called it surperflous. And they had a point!&lt;br /&gt;With a good Information Architecture and Enterprise Content Management Strategy babsed on SharePoint a tool such as Groove should not be required. Especially as it was not SharePoint compatible and mimicking a file sharing application more than a collaboration tool.&lt;br /&gt;I'm not saying that Groove was a bad idea. Having a desktop tool which makes working on shared documents easier and more intuitive without the need to use a web interface for access is a great idea. That's why making Groove SharePoint savvy and making it more like a SharePoint Workspace tool makes even more sense.&lt;br /&gt;&lt;br /&gt;Still in its infant stages, but there is now a new blog for the new project&lt;br /&gt;&lt;a href="http://blogs.msdn.com/sharepoint_workspace_development_team/"&gt;http://blogs.msdn.com/sharepoint_workspace_development_team/&lt;/a&gt;&lt;br /&gt;A good place to keep tabs on to see what kind of SharePoint Integration is coming in the next version of Office and how the bridge between SharePoint ECM and productivity applications is becoming stronger and more seamless.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/908451797546196795-4686696796366937441?l=mctalex.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mctalex.blogspot.com/feeds/4686696796366937441/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=908451797546196795&amp;postID=4686696796366937441' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/4686696796366937441'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/4686696796366937441'/><link rel='alternate' type='text/html' href='http://mctalex.blogspot.com/2009/06/bye-bye-groove-hello-sharepoint.html' title='Bye Bye Groove, Hello SharePoint Workspaces'/><author><name>Alex Dean</name><uri>http://www.blogger.com/profile/17702856763799376939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_kvPl7CQ2CWY/TQ6K6TrjTMI/AAAAAAAAAYQ/oEj3MNzZWcM/S220/Alex-Dean.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-908451797546196795.post-9117404949081909193</id><published>2009-06-03T10:39:00.010+12:00</published><updated>2009-06-03T11:41:53.947+12:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><category scheme='http://www.blogger.com/atom/ns#' term='WSS'/><title type='text'>Integrating AJAX Control Toolkit into SharePoint</title><content type='html'>&lt;p&gt;Hey folks, sorry it took me a week to get round to this blog post, but I needed to make sure I could upload all the stuff somehow. This is going to be a big one, so sit back, relax and enjoy the show:&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:130%;"&gt;&lt;strong&gt;Ajax Control Toolkit&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;A compilation of dynamic controls&lt;br /&gt;—With and without Server Side interaction&lt;br /&gt;—Built on the System.Web.Extensions Components&lt;br /&gt;—Samples at &lt;a href="http://www.asp.net/ajax/"&gt;http://www.asp.net/ajax/&lt;/a&gt;&lt;br /&gt;—Source at &lt;a href="http://www.codeplex.com/"&gt;http://www.codeplex.com/&lt;/a&gt; &lt;/p&gt;&lt;p&gt;&lt;span style="font-size:130%;"&gt;&lt;strong&gt;Prerequisites&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;Minimum&lt;br /&gt;—ASP.NET 2.0 AJAX Extensions v1.0&lt;br /&gt;—Ajax Control Toolkit 20229 (.net 2.0)&lt;br /&gt;—Windows SharePoint Services 3.0 SP1&lt;br /&gt;Recommended&lt;br /&gt;—NET Framework 3.5 SP1&lt;br /&gt;—Ajax Control Toolkit 30512 (.net 3.5sp1)&lt;br /&gt;—Windows SharePoint Services 3.0 SP2&lt;/p&gt;&lt;p&gt;How to get it running? a combination of tweaking the web.config, and clever web part design&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="font-size:130%;"&gt;Configure the web.config&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;configSections&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;sectionGroup&lt;/span&gt; &lt;span class="attr"&gt;name&lt;/span&gt;&lt;span class="kwrd"&gt;="system.web.extensions"&lt;/span&gt; &lt;span class="attr"&gt;type&lt;/span&gt;&lt;span class="kwrd"&gt;="System.Web.Configuration.SystemWebExtensionsSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;      &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;sectionGroup&lt;/span&gt; &lt;span class="attr"&gt;name&lt;/span&gt;&lt;span class="kwrd"&gt;="scripting"&lt;/span&gt; &lt;span class="attr"&gt;type&lt;/span&gt;&lt;span class="kwrd"&gt;="System.Web.Configuration.ScriptingSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;          &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;section&lt;/span&gt; &lt;span class="attr"&gt;name&lt;/span&gt;&lt;span class="kwrd"&gt;="scriptResourceHandler"&lt;/span&gt; &lt;span class="attr"&gt;type&lt;/span&gt;&lt;span class="kwrd"&gt;="System.Web.Configuration.ScriptingScriptResourceHandlerSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"&lt;/span&gt; &lt;span class="attr"&gt;requirePermission&lt;/span&gt;&lt;span class="kwrd"&gt;="false"&lt;/span&gt; &lt;span class="attr"&gt;allowDefinition&lt;/span&gt;&lt;span class="kwrd"&gt;="MachineToApplication"&lt;/span&gt;&lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;sectionGroup&lt;/span&gt; &lt;span class="attr"&gt;name&lt;/span&gt;&lt;span class="kwrd"&gt;="webServices"&lt;/span&gt; &lt;span class="attr"&gt;type&lt;/span&gt;&lt;span class="kwrd"&gt;="System.Web.Configuration.ScriptingWebServicesSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;          &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;section&lt;/span&gt; &lt;span class="attr"&gt;name&lt;/span&gt;&lt;span class="kwrd"&gt;="jsonSerialization"&lt;/span&gt; &lt;span class="attr"&gt;type&lt;/span&gt;&lt;span class="kwrd"&gt;="System.Web.Configuration.ScriptingJsonSerializationSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"&lt;/span&gt; &lt;span class="attr"&gt;requirePermission&lt;/span&gt;&lt;span class="kwrd"&gt;="false"&lt;/span&gt; &lt;span class="attr"&gt;allowDefinition&lt;/span&gt;&lt;span class="kwrd"&gt;="Everywhere"&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;          &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;section&lt;/span&gt; &lt;span class="attr"&gt;name&lt;/span&gt;&lt;span class="kwrd"&gt;="profileService"&lt;/span&gt; &lt;span class="attr"&gt;type&lt;/span&gt;&lt;span class="kwrd"&gt;="System.Web.Configuration.ScriptingProfileServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"&lt;/span&gt; &lt;span class="attr"&gt;requirePermission&lt;/span&gt;&lt;span class="kwrd"&gt;="false"&lt;/span&gt; &lt;span class="attr"&gt;allowDefinition&lt;/span&gt;&lt;span class="kwrd"&gt;="MachineToApplication"&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;          &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;section&lt;/span&gt; &lt;span class="attr"&gt;name&lt;/span&gt;&lt;span class="kwrd"&gt;="authenticationService"&lt;/span&gt; &lt;span class="attr"&gt;type&lt;/span&gt;&lt;span class="kwrd"&gt;="System.Web.Configuration.ScriptingAuthenticationServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"&lt;/span&gt; &lt;span class="attr"&gt;requirePermission&lt;/span&gt;&lt;span class="kwrd"&gt;="false"&lt;/span&gt; &lt;span class="attr"&gt;allowDefinition&lt;/span&gt;&lt;span class="kwrd"&gt;="MachineToApplication"&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;sectionGroup&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;      &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;sectionGroup&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;sectionGroup&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;configSections&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt; &lt;/pre&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="font-size:130%;"&gt;Allow Ajax controls on the pages&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;pages&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;  &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;controls&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;add&lt;/span&gt; &lt;span class="attr"&gt;tagPrefix&lt;/span&gt;&lt;span class="kwrd"&gt;="asp"&lt;/span&gt; &lt;span class="attr"&gt;namespace&lt;/span&gt;&lt;span class="kwrd"&gt;="System.Web.UI"&lt;/span&gt; &lt;span class="attr"&gt;assembly&lt;/span&gt;&lt;span class="kwrd"&gt;="System.Web.Extensions, Version=3.5.0.0,     Culture=neutral, PublicKeyToken=31bf3856ad364e35"&lt;/span&gt;&lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;  &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;controls&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;pages&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="font-size:130%;"&gt;Add Extensions Assembly&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;pre class="csharpcode"&gt; &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;assemblies&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;       &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;add&lt;/span&gt; &lt;span class="attr"&gt;assembly&lt;/span&gt;&lt;span class="kwrd"&gt;="System.Web.Extensions, Version=3.5.0.0,     Culture=neutral, PublicKeyToken=31bf3856ad364e35"&lt;/span&gt;&lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;assemblies&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="font-size:130%;"&gt;Add Ajax Http handlers&lt;/span&gt;&lt;/strong&gt;&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;&lt;br /&gt;&lt;/p&gt;&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;httpHandlers&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;      &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;add&lt;/span&gt; &lt;span class="attr"&gt;verb&lt;/span&gt;&lt;span class="kwrd"&gt;="*"&lt;/span&gt; &lt;span class="attr"&gt;path&lt;/span&gt;&lt;span class="kwrd"&gt;="*.asmx"&lt;/span&gt; &lt;span class="attr"&gt;validate&lt;/span&gt;&lt;span class="kwrd"&gt;="false"&lt;/span&gt;     &lt;span class="attr"&gt;type&lt;/span&gt;&lt;span class="kwrd"&gt;="System.Web.Script.Services.ScriptHandlerFactory,     System.Web.Extensions, Version=3.5.0.0, Culture=neutral,     PublicKeyToken=31bf3856ad364e35"&lt;/span&gt;&lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;      &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;add&lt;/span&gt; &lt;span class="attr"&gt;verb&lt;/span&gt;&lt;span class="kwrd"&gt;="*"&lt;/span&gt; &lt;span class="attr"&gt;path&lt;/span&gt;&lt;span class="kwrd"&gt;="*_AppService.axd"&lt;/span&gt; &lt;span class="attr"&gt;validate&lt;/span&gt;&lt;span class="kwrd"&gt;="false"&lt;/span&gt;     &lt;span class="attr"&gt;type&lt;/span&gt;&lt;span class="kwrd"&gt;="System.Web.Script.Services.ScriptHandlerFactory,     System.Web.Extensions, Version=3.5.0.0, Culture=neutral,     PublicKeyToken=31bf3856ad364e35"&lt;/span&gt;&lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;      &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;add&lt;/span&gt; &lt;span class="attr"&gt;verb&lt;/span&gt;&lt;span class="kwrd"&gt;="GET,HEAD"&lt;/span&gt; &lt;span class="attr"&gt;path&lt;/span&gt;&lt;span class="kwrd"&gt;="ScriptResource.axd"&lt;/span&gt;     &lt;span class="attr"&gt;type&lt;/span&gt;&lt;span class="kwrd"&gt;="System.Web.Handlers.ScriptResourceHandler,     System.Web.Extensions, Version=3.5.0.0, Culture=neutral,     PublicKeyToken=31bf3856ad364e35"&lt;/span&gt; &lt;span class="attr"&gt;validate&lt;/span&gt;&lt;span class="kwrd"&gt;="false"&lt;/span&gt;&lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;httpHandlers&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="font-size:130%;"&gt;Add Http Module&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;httpModules&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;      &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;add&lt;/span&gt; &lt;span class="attr"&gt;name&lt;/span&gt;&lt;span class="kwrd"&gt;="ScriptModule"&lt;/span&gt;     &lt;span class="attr"&gt;type&lt;/span&gt;&lt;span class="kwrd"&gt;="System.Web.Handlers.ScriptModule,     System.Web.Extensions, Version=3.5.0.0, Culture=neutral,     PublicKeyToken=31bf3856ad364e35"&lt;/span&gt;&lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;httpModules&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="font-size:130%;"&gt;Add WebServer config section (IIS7.0 only)&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;system.webServer&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;validation&lt;/span&gt; &lt;span class="attr"&gt;validateIntegratedModeConfiguration&lt;/span&gt;&lt;span class="kwrd"&gt;="false"&lt;/span&gt;&lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;modules&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;      &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;add&lt;/span&gt; &lt;span class="attr"&gt;name&lt;/span&gt;&lt;span class="kwrd"&gt;="ScriptModule"&lt;/span&gt; &lt;span class="attr"&gt;preCondition&lt;/span&gt;&lt;span class="kwrd"&gt;="integratedMode"&lt;/span&gt;     &lt;span class="attr"&gt;type&lt;/span&gt;&lt;span class="kwrd"&gt;="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0,     Culture=neutral, PublicKeyToken=31bf3856ad364e35"&lt;/span&gt;&lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;modules&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;handlers&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;      &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;remove&lt;/span&gt; &lt;span class="attr"&gt;name&lt;/span&gt;&lt;span class="kwrd"&gt;="WebServiceHandlerFactory-Integrated"&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;      &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;add&lt;/span&gt; &lt;span class="attr"&gt;name&lt;/span&gt;&lt;span class="kwrd"&gt;="ScriptHandlerFactory"&lt;/span&gt; &lt;span class="attr"&gt;verb&lt;/span&gt;&lt;span class="kwrd"&gt;="*"&lt;/span&gt; &lt;span class="attr"&gt;path&lt;/span&gt;&lt;span class="kwrd"&gt;="*.asmx"&lt;/span&gt; &lt;span class="attr"&gt;preCondition&lt;/span&gt;&lt;span class="kwrd"&gt;="integratedMode“&lt;br /&gt;        type="&lt;/span&gt;&lt;span class="attr"&gt;System&lt;/span&gt;.&lt;span class="attr"&gt;Web&lt;/span&gt;.&lt;span class="attr"&gt;Script&lt;/span&gt;.&lt;span class="attr"&gt;Services&lt;/span&gt;.&lt;span class="attr"&gt;ScriptHandlerFactory&lt;/span&gt;, &lt;span class="attr"&gt;System&lt;/span&gt;.&lt;span class="attr"&gt;Web&lt;/span&gt;.&lt;span class="attr"&gt;Extensions&lt;/span&gt;,     &lt;span class="attr"&gt;Version&lt;/span&gt;=&lt;span class="attr"&gt;3&lt;/span&gt;.&lt;span class="attr"&gt;5&lt;/span&gt;.&lt;span class="attr"&gt;0&lt;/span&gt;.&lt;span class="attr"&gt;0&lt;/span&gt;, &lt;span class="attr"&gt;Culture&lt;/span&gt;=&lt;span class="attr"&gt;neutral&lt;/span&gt;, &lt;span class="attr"&gt;PublicKeyToken&lt;/span&gt;=&lt;span class="attr"&gt;31bf3856ad364e35&lt;/span&gt;"&lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;      &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;add&lt;/span&gt; &lt;span class="attr"&gt;name&lt;/span&gt;&lt;span class="kwrd"&gt;="ScriptHandlerFactoryAppServices"&lt;/span&gt; &lt;span class="attr"&gt;verb&lt;/span&gt;&lt;span class="kwrd"&gt;="*"&lt;/span&gt; &lt;span class="attr"&gt;path&lt;/span&gt;&lt;span class="kwrd"&gt;="*_AppService.axd"&lt;/span&gt;     &lt;span class="attr"&gt;preCondition&lt;/span&gt;&lt;span class="kwrd"&gt;="integratedMode"&lt;/span&gt; &lt;span class="attr"&gt;type&lt;/span&gt;&lt;span class="kwrd"&gt;="System.Web.Script.Services.ScriptHandlerFactory,     System.Web.Extensions, Version=3.5.0.0, Culture=neutral,     PublicKeyToken=31bf3856ad364e35"&lt;/span&gt;&lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;      &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;add&lt;/span&gt; &lt;span class="attr"&gt;name&lt;/span&gt;&lt;span class="kwrd"&gt;="ScriptResource"&lt;/span&gt; &lt;span class="attr"&gt;preCondition&lt;/span&gt;&lt;span class="kwrd"&gt;="integratedMode"&lt;/span&gt; &lt;span class="attr"&gt;verb&lt;/span&gt;&lt;span class="kwrd"&gt;="GET,HEAD"&lt;/span&gt;     &lt;span class="attr"&gt;path&lt;/span&gt;&lt;span class="kwrd"&gt;="ScriptResource.axd"&lt;/span&gt; &lt;span class="attr"&gt;type&lt;/span&gt;&lt;span class="kwrd"&gt;="System.Web.Handlers.ScriptResourceHandler,     System.Web.Extensions, Version=3.5.0.0, Culture=neutral,     PublicKeyToken=31bf3856ad364e35"&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;handlers&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;system.webServer&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="font-size:130%;"&gt;Optional, add profile config&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;system.web.extensions&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;scripting&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;      &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;webServices&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;authenticationService&lt;/span&gt; &lt;span class="attr"&gt;enabled&lt;/span&gt;&lt;span class="kwrd"&gt;="true"&lt;/span&gt; &lt;span class="attr"&gt;requireSSL&lt;/span&gt; = &lt;span class="kwrd"&gt;"truefalse"&lt;/span&gt;&lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;profileService&lt;/span&gt; &lt;span class="attr"&gt;enabled&lt;/span&gt;&lt;span class="kwrd"&gt;="true” readAccessProperties=“First,Last"&lt;/span&gt;&lt;br /&gt;                      &lt;span class="attr"&gt;writeAccessProperties&lt;/span&gt;=“&lt;span class="attr"&gt;First&lt;/span&gt;,&lt;span class="attr"&gt;Last&lt;/span&gt;" &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;      &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;webServices&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;      &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;scriptResourceHandler&lt;/span&gt; &lt;span class="attr"&gt;enableCompression&lt;/span&gt;&lt;span class="kwrd"&gt;="true"&lt;/span&gt; &lt;span class="attr"&gt;enableCaching&lt;/span&gt;&lt;span class="kwrd"&gt;="true"&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;scripting&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;system.web.extensions&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="font-size:130%;"&gt;IMPORTANT: Mark Ajax controls as Safe&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;SafeControls&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;      &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;SafeControl&lt;/span&gt; &lt;span class="attr"&gt;Assembly&lt;/span&gt;&lt;span class="kwrd"&gt;="System.Web.Extensions, Version=3.5.0.0,     Culture=neutral, PublicKeyToken=31bf3856ad364e35"&lt;/span&gt;     &lt;span class="attr"&gt;Namespace&lt;/span&gt;&lt;span class="kwrd"&gt;="System.Web.UI"&lt;/span&gt; &lt;span class="attr"&gt;TypeName&lt;/span&gt;&lt;span class="kwrd"&gt;="*"&lt;/span&gt; &lt;span class="attr"&gt;Safe&lt;/span&gt;&lt;span class="kwrd"&gt;="True"&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;SafeControls&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="font-size:130%;"&gt;Add Script Manager to Page&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;&lt;pre class="csharpcode"&gt;To the master page right at the top&lt;br /&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;asp:ScriptManager&lt;/span&gt; &lt;span class="attr"&gt;runat&lt;/span&gt;&lt;span class="kwrd"&gt;="server"&lt;/span&gt; &lt;span class="attr"&gt;ID&lt;/span&gt;&lt;span class="kwrd"&gt;="ScriptManager1"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;asp:ScriptManager&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;&lt;pre class="csharpcode"&gt;Or programatically &lt;span class="kwrd"&gt;in&lt;/span&gt; a baseclass for your AJAX enabled Webparts&lt;br /&gt;&lt;span class="kwrd"&gt;protected&lt;/span&gt; &lt;span class="kwrd"&gt;override&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; OnInit(EventArgs e)&lt;br /&gt;        {&lt;br /&gt;            &lt;span class="kwrd"&gt;base&lt;/span&gt;.OnInit(e);&lt;br /&gt;            &lt;span class="kwrd"&gt;if&lt;/span&gt; (ScriptManager.GetCurrent(&lt;span class="kwrd"&gt;this&lt;/span&gt;.Page) == &lt;span class="kwrd"&gt;null&lt;/span&gt;)&lt;br /&gt;            {&lt;br /&gt;                ScriptManager scmanager = &lt;span class="kwrd"&gt;new&lt;/span&gt; ScriptManager();&lt;br /&gt;                scmanager.ID = &lt;span class="str"&gt;"scriptManager"&lt;/span&gt;;&lt;br /&gt;        Page.Form.Controls.AddAt(0,scmanager);&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Next up: a sample WebPart that uses the AutoComplete control from the toolbox . Before you can use the toolkit you will need to &lt;a href="http://ajaxcontroltoolkit.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=27326"&gt;download &lt;/a&gt;and compile the project though. Then add the reference to the toolkit in your WebPart Project.&lt;br /&gt;&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;&lt;br /&gt;&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System;&lt;br /&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Runtime.InteropServices;&lt;br /&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Web.UI;&lt;br /&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Web.UI.WebControls;&lt;br /&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Web.UI.WebControls.WebParts;&lt;br /&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Xml.Serialization;&lt;br /&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; Microsoft.SharePoint;&lt;br /&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; Microsoft.SharePoint.WebControls;&lt;br /&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; Microsoft.SharePoint.WebPartPages;&lt;br /&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; AjaxControlToolkit;&lt;br /&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;namespace&lt;/span&gt; KnowledgeCue.WSS.AjaxWebParts&lt;br /&gt;{&lt;br /&gt;    [Guid(&lt;span class="str"&gt;"6ef07bde-99b3-45d0-8dd4-33ce7ae25572"&lt;/span&gt;)]&lt;br /&gt;    &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;class&lt;/span&gt; AutoCompleteTextBox : KnowledgeCue.WSS.BaseWebPart&lt;br /&gt;    {&lt;br /&gt;        Literal textBoxLabel = &lt;span class="kwrd"&gt;new&lt;/span&gt; Literal();&lt;br /&gt;        TextBox textBox = &lt;span class="kwrd"&gt;new&lt;/span&gt; TextBox();&lt;br /&gt;        AutoCompleteExtender autoComplete = &lt;span class="kwrd"&gt;new&lt;/span&gt; AutoCompleteExtender();&lt;br /&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; AutoCompleteTextBox()&lt;br /&gt;        {&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;protected&lt;/span&gt; &lt;span class="kwrd"&gt;override&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; CreateChildControls()&lt;br /&gt;        {&lt;br /&gt;            &lt;span class="kwrd"&gt;base&lt;/span&gt;.CreateChildControls();&lt;br /&gt;            &lt;span class="kwrd"&gt;string&lt;/span&gt; webServicePath = &lt;span class="str"&gt;"http://wss-1:90/_layouts/AutoCompleteService.asmx"&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;            textBoxLabel.Text = &lt;span class="str"&gt;"Type the name of a cool dude"&lt;/span&gt;;&lt;br /&gt;            &lt;span class="kwrd"&gt;this&lt;/span&gt;.Controls.Add(textBoxLabel);&lt;br /&gt;            textBox.Attributes.Add(&lt;span class="str"&gt;"id"&lt;/span&gt;, &lt;span class="str"&gt;"SelectCoolDudeTextBox"&lt;/span&gt;);&lt;br /&gt;            textBox.ID = &lt;span class="str"&gt;"SelectCoolDudeTextBox"&lt;/span&gt;;&lt;br /&gt;            &lt;span class="kwrd"&gt;this&lt;/span&gt;.Controls.Add(textBox); ;&lt;br /&gt;&lt;br /&gt;            autoComplete.MinimumPrefixLength = 1;&lt;br /&gt;            autoComplete.ServicePath = webServicePath;&lt;br /&gt;            autoComplete.ServiceMethod = &lt;span class="str"&gt;"GetCoolDudes"&lt;/span&gt;;&lt;br /&gt;            autoComplete.TargetControlID = &lt;span class="str"&gt;"SelectCoolDudeTextBox"&lt;/span&gt;;&lt;br /&gt;            &lt;span class="kwrd"&gt;this&lt;/span&gt;.Controls.Add(autoComplete);                     &lt;br /&gt;        }&lt;br /&gt;        &lt;span class="rem"&gt;//Script Manager Fix&lt;/span&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;protected&lt;/span&gt; &lt;span class="kwrd"&gt;override&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; OnInit(EventArgs e)&lt;br /&gt;        {&lt;br /&gt;            &lt;span class="kwrd"&gt;base&lt;/span&gt;.OnInit(e);&lt;br /&gt;            &lt;span class="kwrd"&gt;if&lt;/span&gt; (ScriptManager.GetCurrent(&lt;span class="kwrd"&gt;this&lt;/span&gt;.Page) == &lt;span class="kwrd"&gt;null&lt;/span&gt;)&lt;br /&gt;            {&lt;br /&gt;                ScriptManager child = &lt;span class="kwrd"&gt;new&lt;/span&gt; ScriptManager();&lt;br /&gt;                child.ID = &lt;span class="str"&gt;"scriptManager"&lt;/span&gt;;&lt;br /&gt;                &lt;span class="kwrd"&gt;if&lt;/span&gt; (&lt;span class="kwrd"&gt;this&lt;/span&gt;.Page.IsPostBack)&lt;br /&gt;                {&lt;br /&gt;                    &lt;span class="kwrd"&gt;this&lt;/span&gt;.Page.ClientScript.RegisterStartupScript(&lt;span class="kwrd"&gt;typeof&lt;/span&gt;(AutoCompleteTextBox), &lt;span class="kwrd"&gt;this&lt;/span&gt;.ID, &lt;span class="str"&gt;"_spOriginalFormAction = document.forms[0].action; _spSuppressFormOnSubmitWrapper=true;"&lt;/span&gt;, &lt;span class="kwrd"&gt;true&lt;/span&gt;);&lt;br /&gt;                }&lt;br /&gt;                &lt;span class="kwrd"&gt;if&lt;/span&gt; (&lt;span class="kwrd"&gt;this&lt;/span&gt;.Page.Form != &lt;span class="kwrd"&gt;null&lt;/span&gt;)&lt;br /&gt;                {&lt;br /&gt;                    &lt;span class="kwrd"&gt;string&lt;/span&gt; str = &lt;span class="kwrd"&gt;this&lt;/span&gt;.Page.Form.Attributes[&lt;span class="str"&gt;"onsubmit"&lt;/span&gt;];&lt;br /&gt;                    &lt;span class="kwrd"&gt;if&lt;/span&gt; (!(&lt;span class="kwrd"&gt;string&lt;/span&gt;.IsNullOrEmpty(str)  !(str == &lt;span class="str"&gt;"return _spFormOnSubmitWrapper();"&lt;/span&gt;)))&lt;br /&gt;                    {&lt;br /&gt;                        &lt;span class="kwrd"&gt;this&lt;/span&gt;.Page.Form.Attributes[&lt;span class="str"&gt;"onsubmit"&lt;/span&gt;] = &lt;span class="str"&gt;"_spFormOnSubmitWrapper();"&lt;/span&gt;;&lt;br /&gt;                    }&lt;br /&gt;                    &lt;span class="kwrd"&gt;this&lt;/span&gt;.Page.Form.Controls.AddAt(0, child);&lt;br /&gt;                }&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Finally, the Webservice which the autocomplete textbox relies upon:&lt;br /&gt;&lt;pre class="csharpcode"&gt;&amp;lt;%@ WebService Language=&lt;span class="str"&gt;"C#"&lt;/span&gt; Class=&lt;span class="str"&gt;"AutoCompleteService"&lt;/span&gt; %&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System;&lt;br /&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Web;&lt;br /&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Web.Services;&lt;br /&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Web.Services.Protocols;&lt;br /&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Web.Script.Services;&lt;br /&gt;[WebService(Namespace = &lt;span class="str"&gt;"http://tempuri.org/"&lt;/span&gt;)]&lt;br /&gt;[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]&lt;br /&gt;[ScriptService]&lt;br /&gt;&lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;class&lt;/span&gt; AutoCompleteService  : System.Web.Services.WebService {&lt;br /&gt;&lt;br /&gt;    [WebMethod]&lt;br /&gt;    [ScriptMethod]&lt;br /&gt;    &lt;span class="kwrd"&gt;public&lt;/span&gt; System.Collections.Generic.List&amp;lt;&lt;span class="kwrd"&gt;string&lt;/span&gt;&amp;gt; GetCoolDudes(&lt;span class="kwrd"&gt;string&lt;/span&gt; prefixText, &lt;span class="kwrd"&gt;int&lt;/span&gt; count) {&lt;br /&gt;        &lt;span class="kwrd"&gt;string&lt;/span&gt;[] dudes= &lt;span class="kwrd"&gt;new&lt;/span&gt; &lt;span class="kwrd"&gt;string&lt;/span&gt;[] { &lt;span class="str"&gt;"Alex Dean"&lt;/span&gt;, &lt;span class="str"&gt;"Chandima Kulathilake"&lt;/span&gt;, &lt;span class="str"&gt;"Rachael Greene"&lt;/span&gt;, &lt;span class="str"&gt;"Dean Moor"&lt;/span&gt;, &lt;span class="str"&gt;"Duncan Hammond"&lt;/span&gt; };&lt;br /&gt;        System.Collections.Generic.List&amp;lt;&lt;span class="kwrd"&gt;string&lt;/span&gt;&amp;gt; dudeList = &lt;span class="kwrd"&gt;new&lt;/span&gt; System.Collections.Generic.List&amp;lt;&lt;span class="kwrd"&gt;string&lt;/span&gt;&amp;gt;();&lt;br /&gt;        &lt;span class="kwrd"&gt;int&lt;/span&gt; i = 0;&lt;br /&gt;        &lt;span class="kwrd"&gt;foreach&lt;/span&gt; (&lt;span class="kwrd"&gt;string&lt;/span&gt; dude &lt;span class="kwrd"&gt;in&lt;/span&gt; dudes)&lt;br /&gt;        {&lt;br /&gt;            &lt;span class="kwrd"&gt;if&lt;/span&gt; (i == count) &lt;span class="kwrd"&gt;break&lt;/span&gt;;&lt;br /&gt;            &lt;span class="kwrd"&gt;else&lt;/span&gt;&lt;br /&gt;            {&lt;br /&gt;                &lt;span class="kwrd"&gt;if&lt;/span&gt; (dude.ToLower().StartsWith(prefixText.ToLower()))&lt;br /&gt;                {&lt;br /&gt;                    dudeList.Add(dude);&lt;br /&gt;                    i++;&lt;br /&gt;                }&lt;br /&gt;            }         &lt;br /&gt;        }&lt;br /&gt;        &lt;span class="kwrd"&gt;return&lt;/span&gt; dudeList;&lt;br /&gt;    }&lt;br /&gt; &lt;br /&gt;}&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/908451797546196795-9117404949081909193?l=mctalex.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mctalex.blogspot.com/feeds/9117404949081909193/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=908451797546196795&amp;postID=9117404949081909193' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/9117404949081909193'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/9117404949081909193'/><link rel='alternate' type='text/html' href='http://mctalex.blogspot.com/2009/06/integrating-ajax-control-toolkit-into.html' title='Integrating AJAX Control Toolkit into SharePoint'/><author><name>Alex Dean</name><uri>http://www.blogger.com/profile/17702856763799376939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_kvPl7CQ2CWY/TQ6K6TrjTMI/AAAAAAAAAYQ/oEj3MNzZWcM/S220/Alex-Dean.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-908451797546196795.post-3165206447365275534</id><published>2009-06-03T10:34:00.002+12:00</published><updated>2009-06-03T11:41:53.947+12:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><category scheme='http://www.blogger.com/atom/ns#' term='WSS'/><title type='text'>SPVisualDev File exists in Template Error</title><content type='html'>I've stumbled across this one and it took me some time to figure it out. That error will crop up if you are deploying a file either via a feature or site template twice. In my case I had two Modules in an elements file to split up the Preview images from the actual files being deployed to the masterpage gallery. that's where SpVisualDev gets its knickers in the twist. Can't deal with multiple modules in one file and keeps on adding all files to the last module. also the ones that are already referenced in the first one. &lt;br /&gt;Fix? put all files into one module or SPVisualDev will screw with the elements and it won't work.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/908451797546196795-3165206447365275534?l=mctalex.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mctalex.blogspot.com/feeds/3165206447365275534/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=908451797546196795&amp;postID=3165206447365275534' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/3165206447365275534'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/3165206447365275534'/><link rel='alternate' type='text/html' href='http://mctalex.blogspot.com/2009/06/spvisualdev-file-exists-in-template.html' title='SPVisualDev File exists in Template Error'/><author><name>Alex Dean</name><uri>http://www.blogger.com/profile/17702856763799376939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_kvPl7CQ2CWY/TQ6K6TrjTMI/AAAAAAAAAYQ/oEj3MNzZWcM/S220/Alex-Dean.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-908451797546196795.post-1040417205634298307</id><published>2009-06-03T09:06:00.010+12:00</published><updated>2009-06-03T11:39:46.878+12:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><category scheme='http://www.blogger.com/atom/ns#' term='MOSS 2007'/><title type='text'>Basic Publishing Site Definition</title><content type='html'>Andrew Connell wrote in his &lt;a href="http://www.wrox.com/WileyCDA/WroxTitle/Professional-SharePoint-2007-Web-Content-Management-Development-Building-Publishing-Sites-with-Office-SharePoint-Server-2007.productCd-0470224754.html"&gt;great SharePoint 2007 WCM book &lt;/a&gt;how to create a Minimal Site Definition to use for Publishing Sites. The idea is to have a clean starting point for new Projects which use Features as the main tool for customisation. The Site Definition itself is pretty basic and stripped down to its bare necessities while all the fun stuff lives in Features. A great way to start a project is to plan ahead what functionality will be living in different features, adding basic shell like features to the definition at the start and actually do the coding later. But even if you didn't plan for everything in advance and realise that there is a feature missing or a piece of code that can't be integrated into an existing feature, simple staple it on top of the Site Definition in hind sight and you're as good as gold.&lt;br /&gt;Wrox Press also give you the code for that Book for &lt;a href="http://www.wrox.com/WileyCDA/WroxTitle/Professional-SharePoint-2007-Web-Content-Management-Development-Building-Publishing-Sites-with-Office-SharePoint-Server-2007.productCd-0470224754,descCd-DOWNLOAD.html"&gt;download&lt;/a&gt; on their website. The Solution for the Minimal Site Definition you'll be lookng for lives in Chapter 5. But beware, there are a few bugs in the download. Check the Errata for Errors in Download and fix up the onet.xml and publishing layout page.&lt;br /&gt;One thing that was missed totallly in this definition is the fact that all pages should live in the Pages Library. Also the homepage. In the example from Andrew, the home page lives WSS style in the Root. Not very clean. The fix is simple enough though: Change the url of the page (preferably even changing the default.aspx to actually use the layout properly!) and you're ready to go. Here is my version of the last entry in the onet.xml file:&lt;br /&gt;&lt;br /&gt;&lt;pre class="csharpcode"&gt;&lt;br /&gt;OLD:&lt;br /&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;Modules&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;  &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;Module&lt;/span&gt; &lt;span class="attr"&gt;Name&lt;/span&gt;&lt;span class="kwrd"&gt;="Default"&lt;/span&gt; &lt;span class="attr"&gt;Url&lt;/span&gt;&lt;span class="kwrd"&gt;=""&lt;/span&gt; &lt;span class="attr"&gt;Path&lt;/span&gt;&lt;span class="kwrd"&gt;=""&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;File&lt;/span&gt; &lt;span class="attr"&gt;Url&lt;/span&gt;&lt;span class="kwrd"&gt;="default.aspx"&lt;/span&gt; &lt;span class="attr"&gt;NavBarHome&lt;/span&gt;&lt;span class="kwrd"&gt;="True"&lt;/span&gt; &lt;span class="attr"&gt;Type&lt;/span&gt;&lt;span class="kwrd"&gt;="Ghostable"&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;  &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;Module&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;Modules&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;NEW:&lt;br /&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;Modules&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;  &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;Module&lt;/span&gt; &lt;span class="attr"&gt;Name&lt;/span&gt;&lt;span class="kwrd"&gt;="Default"&lt;/span&gt; &lt;span class="attr"&gt;Url&lt;/span&gt;&lt;span class="kwrd"&gt;="$Resources:cmscore,List_Pages_UrlName;"&lt;/span&gt; &lt;span class="attr"&gt;Path&lt;/span&gt;&lt;span class="kwrd"&gt;=""&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;File&lt;/span&gt; &lt;span class="attr"&gt;Url&lt;/span&gt;&lt;span class="kwrd"&gt;="Default.aspx"&lt;/span&gt; &lt;span class="attr"&gt;Type&lt;/span&gt;&lt;span class="kwrd"&gt;="GhostableInLibrary"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;      &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;Property&lt;/span&gt; &lt;span class="attr"&gt;Name&lt;/span&gt;&lt;span class="kwrd"&gt;="PublishingPageLayout"&lt;/span&gt; &lt;span class="attr"&gt;Value&lt;/span&gt;&lt;span class="kwrd"&gt;="~SiteCollection/_catalogs/masterpage/PSATOC.aspx, ~SiteCollection/_catalogs/masterpage/PSATOC.aspx"&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;      &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;Property&lt;/span&gt; &lt;span class="attr"&gt;Name&lt;/span&gt;&lt;span class="kwrd"&gt;="ContentType"&lt;/span&gt; &lt;span class="attr"&gt;Value&lt;/span&gt;&lt;span class="kwrd"&gt;="$Resources:cmscore,contenttype_welcomepage_name;"&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;File&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;  &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;Module&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;Modules&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/908451797546196795-1040417205634298307?l=mctalex.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mctalex.blogspot.com/feeds/1040417205634298307/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=908451797546196795&amp;postID=1040417205634298307' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/1040417205634298307'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/1040417205634298307'/><link rel='alternate' type='text/html' href='http://mctalex.blogspot.com/2009/06/basic-publishing-site-definition.html' title='Basic Publishing Site Definition'/><author><name>Alex Dean</name><uri>http://www.blogger.com/profile/17702856763799376939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_kvPl7CQ2CWY/TQ6K6TrjTMI/AAAAAAAAAYQ/oEj3MNzZWcM/S220/Alex-Dean.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-908451797546196795.post-4578484622109035491</id><published>2009-05-28T11:59:00.004+12:00</published><updated>2009-06-03T11:41:53.947+12:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><category scheme='http://www.blogger.com/atom/ns#' term='WSS'/><title type='text'>Exception handling Base WebPart</title><content type='html'>This piece of code will revolutionise the way you develop web parts in sharepoint. No more pages crapping out on you, no more crashes or unsolvable problems. All exception handling done for you automatically without the need to include a single try/catch block. I'm not saying you should not handle exceptions which you can forsee. But those are the easy ones. What about those unexpected ones?&lt;br /&gt;Andreas Knudsen, a fellow SharePoint Programmer came up with a beautiful solution which takes full advantage of a combination between early and late binding to force the runtime to execute the exception handling version of the base routines before execuing your implementation code. As I'm not even going to try to take credit for this gem, get the code directly from the genius himself&lt;br /&gt;&lt;br /&gt;&lt;a href="http://andreascode.blogspot.com/2007/12/general-exception-handling-in-web-parts.html"&gt;http://andreascode.blogspot.com/2007/12/general-exception-handling-in-web-parts.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;How does it work? Playing with polymorphism is the answer.&lt;br /&gt;The runtime always tries to find out the best version of a method on an object to call, no matter what type the pointer is.&lt;br /&gt;When you put a line of code like&lt;br /&gt;&lt;br /&gt;MyWebPart.CreateChildControls()&lt;br /&gt;&lt;br /&gt;into your own code, the runtime will not have to look far, as you're calling it on the type of which the object is. But...&lt;br /&gt;&lt;br /&gt;WebPart x = MyWebPart;&lt;br /&gt;x.CreateChildControls();&lt;br /&gt;&lt;br /&gt;Now the runtime will need to start at the base class WebPart and figure out which version is the best to call. Normally each new version overrides the old one and the runtime will end up at MyWebPart.CreateChildControls(). Unless you put a stop sign in between. Such a stop sign is the new keyword. When you have a class in between WebPart and MyWebPart (like MyBaseWebPart) and instead of writing public override CreateChildControls() but public new CreateChildControls() the runtime is forced to take a step back and execute the one a level up. To make it more visible you can seal off the exception handling method, just to be sure nobody tries to override it.&lt;br /&gt;&lt;br /&gt;So now we've forced the runtime to execute the version of code that has exception handling. How do we get back to our implementation code? Through sidestepping the Stop sign. You need a new class which inherits from the exception handling class for this. the exception handling one calls a new function like CreateChildControlsX and the runtime will again try to figure out the best version and will end up in derived.CreateChildControlsX because you overrode it there. Here you simply call the original function name again (CreateChildControls) and the runtime will find the best version again. Now the runtime is not starting at the top (WebPart) but at the current location (derived) and thus the Stop sign is left behind and it can go all the way down to your implementation and execute that.&lt;br /&gt;&lt;br /&gt;I know it sounds so geeky, But thise piece of code is seriously cooooooool.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/908451797546196795-4578484622109035491?l=mctalex.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mctalex.blogspot.com/feeds/4578484622109035491/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=908451797546196795&amp;postID=4578484622109035491' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/4578484622109035491'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/4578484622109035491'/><link rel='alternate' type='text/html' href='http://mctalex.blogspot.com/2009/05/exception-handliing-base-webpart.html' title='Exception handling Base WebPart'/><author><name>Alex Dean</name><uri>http://www.blogger.com/profile/17702856763799376939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_kvPl7CQ2CWY/TQ6K6TrjTMI/AAAAAAAAAYQ/oEj3MNzZWcM/S220/Alex-Dean.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-908451797546196795.post-8689384847241141729</id><published>2009-05-26T16:54:00.004+12:00</published><updated>2011-12-14T19:15:58.961+13:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><category scheme='http://www.blogger.com/atom/ns#' term='WSS'/><category scheme='http://www.blogger.com/atom/ns#' term='MOSS 2007'/><title type='text'>SharePoint Explorer View in Windows 2008 and 2003</title><content type='html'>If anybody out there has been building demo machines on Windows Server 2008 or Windows Server 2003 you will have run into this issue at some point. Explorer View does not work on document libraries, nor can you map a network drive to a sharepoint site.&lt;br /&gt;Following constellations come together:&lt;br /&gt;&lt;br /&gt;a) the server platforms effectively don't like web folder views until you install the fix &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=17C36612-632E-4C04-9382-987622ED1D64"&gt;KB907306&lt;/a&gt;&lt;br /&gt;That fix works for both Windows 2003 and 2008.&lt;br /&gt;Now you can happily map a sharepoint site to your network places and use the Windows Explorer to browse the sharepoint sites.&lt;br /&gt;&lt;br /&gt;b) your browser now complains that "This folder cannot be opened in Internet Explorer". This will happen when you have IE 7 or higher and protected mode is on. Simple. Disable protected mode via Tools&amp;gt;Internet Options&amp;gt;Security. Remember to add the site to the Intranet Zone&lt;br /&gt;&lt;br /&gt;c) What? can't disable the protected mode on Windows Server 2008? No problem. Open the Server Manager. On the root node of the tool you should see Server Summary within there is a section for Security Information. Here you will find a link to Configure IE ESC (Enhanced Security Configuration). That's where you can disable the "microsoft parental controls for dummies" tick box.&lt;br /&gt;d) now you can disable protected mode on the Intranet Zone.&lt;br /&gt;&lt;br /&gt;You might ask, why not simply move the site to Trusted Sites. Well, Trusted sites actually have a higher security rating than Intranet zone. Plus you automatically get signed into the intranet zone and not to th trusted sites. Plus the sharepoint site is on the Intranet. So that is also the Zone it should live under!&lt;br /&gt;&lt;br /&gt;PS. Running Windows Server 2008R2 or Windows Server 2008 SP1? Then try enabling the Feature called &amp;nbsp;"Desktop Experience" in the Roles and Features configuration of the Server&lt;br /&gt;&lt;br /&gt;Happy Exploring!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/908451797546196795-8689384847241141729?l=mctalex.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mctalex.blogspot.com/feeds/8689384847241141729/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=908451797546196795&amp;postID=8689384847241141729' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/8689384847241141729'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/8689384847241141729'/><link rel='alternate' type='text/html' href='http://mctalex.blogspot.com/2009/05/explorer-view-in-windows-2008-and-2003.html' title='SharePoint Explorer View in Windows 2008 and 2003'/><author><name>Alex Dean</name><uri>http://www.blogger.com/profile/17702856763799376939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_kvPl7CQ2CWY/TQ6K6TrjTMI/AAAAAAAAAYQ/oEj3MNzZWcM/S220/Alex-Dean.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-908451797546196795.post-8765202249698458946</id><published>2009-04-14T09:39:00.003+12:00</published><updated>2009-06-03T11:41:53.948+12:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><category scheme='http://www.blogger.com/atom/ns#' term='WSS'/><title type='text'>Custom SQL Lookup Field in WSS 3.0</title><content type='html'>This is a question I get asked a lot! How to create your own version of the BDC Lookup for either WSS or MOSS. The answer is not simple. Nono. But not impossible either.&lt;br /&gt;You need to create your own custom field that uses the Entity Picker to populate a list of records and allows you to pick one. There is a lot of CAML, XML, Classes, Events and Code to deal with.&lt;br /&gt;Following is sample code to create just that based on another SharePoint list. Simply plug your own DAL instead of the SPQuery and you're up and running.&lt;br /&gt;&lt;a href="http://code.msdn.microsoft.com/WSS3EntityPicker"&gt;http://code.msdn.microsoft.com/WSS3EntityPicker&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Step by step instructions:&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/cc889345.aspx"&gt;http://msdn.microsoft.com/en-us/library/cc889345.aspx&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/908451797546196795-8765202249698458946?l=mctalex.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mctalex.blogspot.com/feeds/8765202249698458946/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=908451797546196795&amp;postID=8765202249698458946' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/8765202249698458946'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/8765202249698458946'/><link rel='alternate' type='text/html' href='http://mctalex.blogspot.com/2009/04/custom-sql-lookup-field-in-wss-30.html' title='Custom SQL Lookup Field in WSS 3.0'/><author><name>Alex Dean</name><uri>http://www.blogger.com/profile/17702856763799376939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_kvPl7CQ2CWY/TQ6K6TrjTMI/AAAAAAAAAYQ/oEj3MNzZWcM/S220/Alex-Dean.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-908451797546196795.post-7772564791523177874</id><published>2009-04-10T00:09:00.003+12:00</published><updated>2009-06-03T11:41:53.948+12:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><category scheme='http://www.blogger.com/atom/ns#' term='WSS'/><title type='text'>Best Practices for SharePoint - Blank Sites</title><content type='html'>If you ever plan on creating a new site, which starts off on a clean slate, especially with the WCM Publishing Features activated you must use stsadm to do that. Effectively three commands will get you started nice and simple with the most blank publishing site you can immagine:&lt;br /&gt;&lt;br /&gt;a) create an absolute blank sitecolleciton with really nothing in it&lt;br /&gt;stsadm -o createsite -url &lt;a href="http://servername/"&gt;http://servername&lt;/a&gt; -ownerlogin domain\username -owneremail &lt;a href="mailto:owner@domain.com"&gt;owner@domain.com&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;b) activate the publishing feature on the site collection level&lt;br /&gt;stsadm -o activatefeature -name PublishingSite -url &lt;a href="http://servername/"&gt;http://servername&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;c) activate the publishing feature on the web level&lt;br /&gt;stsadm -o activatefeature -name PublishingWeb -url &lt;a href="http://servername/"&gt;http://servername&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;That's it. go to your url and you will find the most minimalistic publishing site you will be able to get that has all the publishing features activated.&lt;br /&gt;Now you can start building your own site template based on this and be sure that content deployment will give you less headaches should you ever decide to go down that route in future.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/908451797546196795-7772564791523177874?l=mctalex.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mctalex.blogspot.com/feeds/7772564791523177874/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=908451797546196795&amp;postID=7772564791523177874' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/7772564791523177874'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/7772564791523177874'/><link rel='alternate' type='text/html' href='http://mctalex.blogspot.com/2009/04/best-practices-for-sharepoint-blank.html' title='Best Practices for SharePoint - Blank Sites'/><author><name>Alex Dean</name><uri>http://www.blogger.com/profile/17702856763799376939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_kvPl7CQ2CWY/TQ6K6TrjTMI/AAAAAAAAAYQ/oEj3MNzZWcM/S220/Alex-Dean.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-908451797546196795.post-421013305347623775</id><published>2009-04-09T23:46:00.002+12:00</published><updated>2009-06-03T11:41:53.948+12:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><category scheme='http://www.blogger.com/atom/ns#' term='WSS'/><title type='text'>Upgrading WSS 3.0 to MOSS</title><content type='html'>Just came across a weird one. After  doing an in place upgrade of a test installation the Publishing Feature would not activate. Keeps on coming up with an Access Denied message. Ok, so maybe I should have deinstalled WSS 3.0, installed MOSS clean and then reattached the content databases to be on the safe side. But hey, i did say it was a test machine.&lt;br /&gt;The solution is not that obvious though. Looks like the Publishing Feature can't activate because the feature dependency Publishing Resources is not actice. Only solution is to activate the Resources manually via stsadm and then you can activate the publishing feature via the gui.&lt;br /&gt;&lt;br /&gt;here's the magic command:&lt;br /&gt;stsadm -o activatefeature -name PublishingResources -url &lt;a href="http://yoursharepointsite/"&gt;http://YourSharepointSite&lt;/a&gt;&lt;br /&gt;Happy upgrading!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/908451797546196795-421013305347623775?l=mctalex.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mctalex.blogspot.com/feeds/421013305347623775/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=908451797546196795&amp;postID=421013305347623775' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/421013305347623775'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/421013305347623775'/><link rel='alternate' type='text/html' href='http://mctalex.blogspot.com/2009/04/upgrading-wss-30-to-moss.html' title='Upgrading WSS 3.0 to MOSS'/><author><name>Alex Dean</name><uri>http://www.blogger.com/profile/17702856763799376939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_kvPl7CQ2CWY/TQ6K6TrjTMI/AAAAAAAAAYQ/oEj3MNzZWcM/S220/Alex-Dean.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-908451797546196795.post-6998000412691690298</id><published>2009-04-09T18:24:00.003+12:00</published><updated>2009-06-03T11:41:53.949+12:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><category scheme='http://www.blogger.com/atom/ns#' term='WSS'/><title type='text'>Customising the SharePoint Calendar</title><content type='html'>A few days ago I came across a great post by &lt;a href="http://blogs.msdn.com/syedi/"&gt;syed.er's blog &lt;/a&gt;called Bending SharePoint without bending the rules. In November he talked about adding more items to the calendar view by adding MaxvisibleEvents to the Rendering Template for the Calendar. I decided to take that concept a level further.&lt;br /&gt;&lt;br /&gt;Following problem scenario:&lt;br /&gt;We need to be able to colour code calendar entries, add more than just the title to the item and break down the multi day events into separate blocks spanning across the whole day and not just a thin bar at the top which is easily skipped. All this without changing the insides of SharePoint. And the solution could not be simpler!&lt;br /&gt;&lt;br /&gt;First of all you will need to create your own WebPart for the calendar. Sound daunting? not at all! you can easily implement the SPCalendarView control to do all the work for you.&lt;br /&gt;&lt;a href="http://weblogs.asp.net/gunnarpeipman/archive/2009/01/24/creating-sharepoint-global-calendar.aspx"&gt;Gunnar Peipmann&lt;/a&gt; has a great post on how to create a global calendar from multiple sources using the SPCalendarView.&lt;br /&gt;&lt;br /&gt;The SpCalendarView control can also accept new Templates. So you copy the Rendering Templates for the Calendar Control from the C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\CONTROLTEMPLATES \defaulttemplates.ascx into a new ascx file, rename them and add the fields you want to the Item views. Then hook them up programatically with the SPCalendarView control and render the new output.&lt;br /&gt;&lt;br /&gt;WARNING! Don't put the custom Rendering Templates into a subfolder. Although it might make perfect sense, they won't load properly programatically. Just use clear and concise naming conventions for your custom ascx page. Then use the SPControlTemplateManager.GetTemplateByName() function to get hold of the ITemplate programatically and plonk it into the Calendar View.&lt;br /&gt;If you insist on having the custom template in a subfolder, check out &lt;a href="http://www.reversealchemy.net/2008/09/01/loading-sharepoint-templates-from-a-different-location/"&gt;Reverse Alchemy's &lt;/a&gt;post on loading templates programatically. He will show you how to use Page.LoadControl() as a workaround to SharePoint misbehaving.&lt;br /&gt;&lt;br /&gt;You will need to populate the list of events manually though. I.e. use a SPQuery to get the events in a collection, iterate through the collection and create new Calendar Entries based on the list item. But &lt;a href="http://weblogs.asp.net/gunnarpeipman/archive/2009/01/24/creating-sharepoint-global-calendar.aspx"&gt;Gunnar's blog&lt;/a&gt; will guide you through that. While you're recreating the calendar entries try changing the Backgroundcss attribute of the entry. :-) and voilla you have a colour coded calendar that has all the functionality of the normal calendar.&lt;br /&gt;Ok. Maybe it is not quite as easy. I'll upload a step by step instruction sometime after easter if enough people pester me about it...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/908451797546196795-6998000412691690298?l=mctalex.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mctalex.blogspot.com/feeds/6998000412691690298/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=908451797546196795&amp;postID=6998000412691690298' title='10 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/6998000412691690298'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/6998000412691690298'/><link rel='alternate' type='text/html' href='http://mctalex.blogspot.com/2009/04/customising-sharepoint-calendar.html' title='Customising the SharePoint Calendar'/><author><name>Alex Dean</name><uri>http://www.blogger.com/profile/17702856763799376939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_kvPl7CQ2CWY/TQ6K6TrjTMI/AAAAAAAAAYQ/oEj3MNzZWcM/S220/Alex-Dean.jpg'/></author><thr:total>10</thr:total></entry><entry><id>tag:blogger.com,1999:blog-908451797546196795.post-3885945776760674533</id><published>2009-04-07T00:55:00.005+12:00</published><updated>2009-06-03T11:41:53.949+12:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><category scheme='http://www.blogger.com/atom/ns#' term='WSS'/><title type='text'>Adding Export To Spreadsheet to a Picture Library</title><content type='html'>&lt;p&gt;Sometimes customers want to have all the functionality of a Picture Library but also that of a Document Library. Specifically the option to have a Excel Report on a bunch of images. Now that sounds simple. Just Expor to Spreadsheet. Well guess what. Some clever dude took that action out of the menu. Why? No idea. Because it does not work? Bollocks. Of course it works. below is how you can get it back again. Simply add a Custom Action to your feature elements and deploy. Happy Exporting.the trick is in dynamically creating the iqy string.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&amp;lt;CustomAction Id="UserInterfaceCustomActions.DocLibActionsToolbar"&lt;br /&gt;RegistrationType="List"&lt;br /&gt;RegistrationId="109"&lt;br /&gt;GroupId="ActionsMenu"&lt;br /&gt;Location="Microsoft.SharePoint.StandardMenu"&lt;br /&gt;Sequence="1000"&lt;br /&gt;Title="Export To Spreadsheet"&lt;br /&gt;ImageUrl="/_layouts/images/MenuSpreadsheet.gif"&amp;gt;&lt;br /&gt;&amp;lt;UrlAction&lt;br /&gt;Url="javascript:EnsureSSImporter();javaScript:ExportList('{SiteUrl}\u002f_vti_bin\u002fowssvr.dll?CS=65001\u0026Using=_layouts\u002fquery.iqy\u0026List={ListId}\u0026RootFolder=' + ctx.listUrlDir + '\u0026CacheControl=1')" /&amp;gt;&lt;br /&gt;&amp;lt;/CustomAction&amp;gt;&lt;urlaction url="javascript:EnsureSSImporter();javaScript:ExportList('{SiteUrl}\u002f_vti_bin\u002fowssvr.dll?CS=65001\u0026Using=_layouts\u002fquery.iqy\u0026List={ListId}\u0026RootFolder=' + ctx.listUrlDir + '\u0026CacheControl=1')"&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/908451797546196795-3885945776760674533?l=mctalex.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mctalex.blogspot.com/feeds/3885945776760674533/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=908451797546196795&amp;postID=3885945776760674533' title='10 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/3885945776760674533'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/3885945776760674533'/><link rel='alternate' type='text/html' href='http://mctalex.blogspot.com/2009/04/adding-export-to-spreadsheet-to-picture.html' title='Adding Export To Spreadsheet to a Picture Library'/><author><name>Alex Dean</name><uri>http://www.blogger.com/profile/17702856763799376939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_kvPl7CQ2CWY/TQ6K6TrjTMI/AAAAAAAAAYQ/oEj3MNzZWcM/S220/Alex-Dean.jpg'/></author><thr:total>10</thr:total></entry><entry><id>tag:blogger.com,1999:blog-908451797546196795.post-6271108328726984029</id><published>2009-03-31T09:20:00.002+13:00</published><updated>2009-06-03T11:42:53.379+12:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><category scheme='http://www.blogger.com/atom/ns#' term='WSS'/><category scheme='http://www.blogger.com/atom/ns#' term='MOSS 2007'/><title type='text'>SharePoint training from the best</title><content type='html'>Steve Smith and Ben Curry are coming to the SharePoint Conference and will be holding a five day hard core SharePoint Workshop. This is not for the faint hearted! Learn from the best in an interactive and engaging session where it is all about hands on and hats off.&lt;br /&gt;&lt;br /&gt;When? The week after the conference 06/07 until 11/07&lt;br /&gt;How? send a mail to &lt;a href="mailto:chan@knowledgecue.co.nz"&gt;chan@knowledgecue.co.nz&lt;/a&gt; to express your interest&lt;br /&gt;Where? TBA&lt;br /&gt;&lt;br /&gt;Course outline and registration will be online soon. Watch this space!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/908451797546196795-6271108328726984029?l=mctalex.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mctalex.blogspot.com/feeds/6271108328726984029/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=908451797546196795&amp;postID=6271108328726984029' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/6271108328726984029'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/6271108328726984029'/><link rel='alternate' type='text/html' href='http://mctalex.blogspot.com/2009/03/sharepoint-training-from-best.html' title='SharePoint training from the best'/><author><name>Alex Dean</name><uri>http://www.blogger.com/profile/17702856763799376939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_kvPl7CQ2CWY/TQ6K6TrjTMI/AAAAAAAAAYQ/oEj3MNzZWcM/S220/Alex-Dean.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-908451797546196795.post-8870313078821091629</id><published>2009-03-31T08:46:00.004+13:00</published><updated>2009-06-03T11:41:53.949+12:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><category scheme='http://www.blogger.com/atom/ns#' term='WSS'/><title type='text'>Cool SharePoint Themes</title><content type='html'>&lt;div&gt;Microsoft has published a whole set of new and funky sharepoint themes&lt;br /&gt;you can download them &lt;a href="http://www.blogger.com/www.microsoft.com/downloads/details.aspx?displaylang=en&amp;amp;FamilyID=0a87658f-20b8-4dcc-ad7a-09ad22641f3a"&gt;here&lt;/a&gt; &lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt; &lt;/div&gt;&lt;img id="BLOGGER_PHOTO_ID_5319080887380200978" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 335px; CURSOR: hand; HEIGHT: 400px; TEXT-ALIGN: center" alt="" src="http://3.bp.blogspot.com/_kvPl7CQ2CWY/SdEr4qfdzhI/AAAAAAAAAEs/HlBnzLLKhQU/s400/AllThemesPreview.jpg" border="0" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;For those of you who have been playing with the SPG, you will notice that the Contoso theme is part of the update package for the Training Management Solution.&lt;br /&gt;&lt;br /&gt;Finally, if you wish a faster and more comfortable way of using your themes, install the WSP file that &lt;a href="http://www.danielbrown.id.au/Lists/Posts/Post.aspx?ID=256"&gt;Daniel Brown&lt;/a&gt; created and activate the themes on Farm level.&lt;br /&gt;Daniel was so kind to installl the themes and make features out of them, packaged it all into a wsp and added a readme for instructions.&lt;br /&gt;&lt;br /&gt;These themes make life a lot easier to customise the look and feel of your sharepoint installation. Either use them out of the box or pick the one you like best and adjust it with a few tweaks to your needs.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/908451797546196795-8870313078821091629?l=mctalex.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mctalex.blogspot.com/feeds/8870313078821091629/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=908451797546196795&amp;postID=8870313078821091629' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/8870313078821091629'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/8870313078821091629'/><link rel='alternate' type='text/html' href='http://mctalex.blogspot.com/2009/03/cool-sharepoint-themes.html' title='Cool SharePoint Themes'/><author><name>Alex Dean</name><uri>http://www.blogger.com/profile/17702856763799376939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_kvPl7CQ2CWY/TQ6K6TrjTMI/AAAAAAAAAYQ/oEj3MNzZWcM/S220/Alex-Dean.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_kvPl7CQ2CWY/SdEr4qfdzhI/AAAAAAAAAEs/HlBnzLLKhQU/s72-c/AllThemesPreview.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-908451797546196795.post-103076884353067715</id><published>2009-03-23T19:44:00.002+13:00</published><updated>2009-03-31T09:28:05.188+13:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><title type='text'>SharePoint conference Site Life</title><content type='html'>&lt;a href="http://www.sharepointconference.co.nz/"&gt;www.sharepointconference.co.nz&lt;/a&gt; &lt;br /&gt;The SharePoint Conference is coming together nicely! Bookmark the above url to keep up to date on sessions, topics, speakers and everything that will be going on around the conference.&lt;br /&gt;&lt;br /&gt;And yes, obviously I'll be holding a few sessions myself. Not telling which ones though :-)&lt;br /&gt;&lt;br /&gt;Debbie, Chan and Mark are workring hard to pull off an event that will have the SharePoint community buzzing for ages to come. So make sure to sign up soon, because you can be sure that it will sell out in no time.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/908451797546196795-103076884353067715?l=mctalex.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mctalex.blogspot.com/feeds/103076884353067715/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=908451797546196795&amp;postID=103076884353067715' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/103076884353067715'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/103076884353067715'/><link rel='alternate' type='text/html' href='http://mctalex.blogspot.com/2009/03/sharepoint-conference-site-life.html' title='SharePoint conference Site Life'/><author><name>Alex Dean</name><uri>http://www.blogger.com/profile/17702856763799376939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_kvPl7CQ2CWY/TQ6K6TrjTMI/AAAAAAAAAYQ/oEj3MNzZWcM/S220/Alex-Dean.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-908451797546196795.post-733741743211550643</id><published>2009-03-15T13:35:00.003+13:00</published><updated>2009-03-15T13:53:58.652+13:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><title type='text'>March Wellington SharePoint User Group Session</title><content type='html'>&lt;p&gt;&lt;strong&gt;See a WSS project site designed and built before your eyes in 60mins&lt;br /&gt;&lt;/strong&gt;&lt;br /&gt;A team of three will simulate and demonstrate the configuration of a common project site within SharePoint from analysis to completion.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;See the IA and taxonomy for the project site designed and documented. &lt;/li&gt;&lt;li&gt;See the site columns, content types, lists and libraries configured for the site. &lt;/li&gt;&lt;li&gt;See the content views and project dashboard configured to bring it all together.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Date&lt;/strong&gt;: Thu 19th March&lt;br /&gt;&lt;strong&gt;Start&lt;/strong&gt;: 6PM&lt;br /&gt;&lt;strong&gt;RSVP&lt;/strong&gt;: &lt;a href="mailto:wlgspug@sharepointservices.net.nz"&gt;wlgspug@sharepointservices.net.nz&lt;/a&gt;&lt;br /&gt;&lt;strong&gt;Venue&lt;/strong&gt;: Microsoft NZ (Wellington), Level 12 Vodafone Tower, 157 Lambton Quay, Wellington&lt;/p&gt;&lt;p&gt;&lt;br /&gt;Late arrivals: Pls txt 021 775172&lt;br /&gt;Presenters:Lulu Pachuau (&lt;a href="http://www.lushai.com/"&gt;http://www.lushai.com/&lt;/a&gt;) , Mark Orange (&lt;a href="http://www.intergen.co.nz/"&gt;http://www.intergen.co.nz/&lt;/a&gt; ), Chandima Kulathilake (&lt;a href="http://www.chandima.net/blog/"&gt;www.chandima.net/blog/&lt;/a&gt; )&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/908451797546196795-733741743211550643?l=mctalex.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mctalex.blogspot.com/feeds/733741743211550643/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=908451797546196795&amp;postID=733741743211550643' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/733741743211550643'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/733741743211550643'/><link rel='alternate' type='text/html' href='http://mctalex.blogspot.com/2009/03/march-wellington-sharepoint-user-group.html' title='March Wellington SharePoint User Group Session'/><author><name>Alex Dean</name><uri>http://www.blogger.com/profile/17702856763799376939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_kvPl7CQ2CWY/TQ6K6TrjTMI/AAAAAAAAAYQ/oEj3MNzZWcM/S220/Alex-Dean.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-908451797546196795.post-3793295522334377714</id><published>2009-03-15T12:56:00.002+13:00</published><updated>2009-03-15T13:12:17.762+13:00</updated><title type='text'>Bye Bye ACE Training</title><content type='html'>Just to let you all know that I won't be found in the training rooms of ACE no more.&lt;br /&gt;&lt;br /&gt;But no need to panic! I am still available to give training through my new association with Knowledge Cue. Just in a corporate and not public class room environment. Chan approached me last year and wondered if I was keen on contracting a bit to help out with the lack of SharePoint skills in this city. It fits in perfectly with all the other things going on in my life like Jigsaw, the new magazine we're publishing in Wellington. So expect to see me either working on the new issue of the mag, battling with advertisers, holding SharePoint Workshops, Creating new Solutions and Features, coaching and mentoring archiects and BAs or taking photos of some of the cool events around Wellington.&lt;br /&gt;&lt;br /&gt;So if you're looking for some SharePoint training that is worth its weight in Gold, check out &lt;a href="http://www.knowledgecue.co.nz/"&gt;www.knowledgecue.co.nz&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/908451797546196795-3793295522334377714?l=mctalex.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mctalex.blogspot.com/feeds/3793295522334377714/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=908451797546196795&amp;postID=3793295522334377714' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/3793295522334377714'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/3793295522334377714'/><link rel='alternate' type='text/html' href='http://mctalex.blogspot.com/2009/03/bye-bye-ace-training.html' title='Bye Bye ACE Training'/><author><name>Alex Dean</name><uri>http://www.blogger.com/profile/17702856763799376939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_kvPl7CQ2CWY/TQ6K6TrjTMI/AAAAAAAAAYQ/oEj3MNzZWcM/S220/Alex-Dean.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-908451797546196795.post-767796655508556830</id><published>2009-03-12T07:44:00.002+13:00</published><updated>2009-03-15T13:54:15.483+13:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><title type='text'>New Zealand SharePoint Conference 2009</title><content type='html'>It is here! Wellington is slowly becoming the hub of SharePoint knowledge for the Asia Pacific region!&lt;br /&gt;Beginning of July will see the creme de la creme in SharePoint come together to host two days of unforgettable WSS and MOSS excitement. Included in the programme will be Best Practices, Development workshops, Information Architecture Workshops, WCM Workshops and much much more. As there will be people in the know, expect to get one or the other hint at what is coming up in the next version 14 of SharePoint that will totally blow you away.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;New Zealand SharePoint Conference 2009&lt;br /&gt;July 2nd and 3rd Wellington – New Zealand&lt;br /&gt;&lt;a href="http://www.sharepointusergroup.net.nz/SPCONF"&gt;http://www.sharepointusergroup.net.nz/SPCONF&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/908451797546196795-767796655508556830?l=mctalex.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mctalex.blogspot.com/feeds/767796655508556830/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=908451797546196795&amp;postID=767796655508556830' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/767796655508556830'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/767796655508556830'/><link rel='alternate' type='text/html' href='http://mctalex.blogspot.com/2009/03/new-zealand-sharepoint-conference-2009.html' title='New Zealand SharePoint Conference 2009'/><author><name>Alex Dean</name><uri>http://www.blogger.com/profile/17702856763799376939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_kvPl7CQ2CWY/TQ6K6TrjTMI/AAAAAAAAAYQ/oEj3MNzZWcM/S220/Alex-Dean.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-908451797546196795.post-1920063364725706091</id><published>2009-02-20T11:18:00.003+13:00</published><updated>2009-02-20T11:21:23.998+13:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><category scheme='http://www.blogger.com/atom/ns#' term='MOSS 2007'/><title type='text'>Content and Structure Reports: All Checked out documents</title><content type='html'>Ever wanted to see all documents that are checked out right now and deal with them all in one go? Not only the ones checked out to you? here is the CAML syntax for your Content and Structure Reports Library located at the root of your publishing enabled SiteCollection:&lt;br /&gt;&lt;br /&gt;&amp;lt;Where&gt;&amp;lt;Geq&gt;&amp;lt;FieldRef Name="CheckoutUser" LookupId="TRUE"/&gt;&amp;lt;Value Type="int"&gt;0&amp;lt;/Value&gt;&amp;lt;/Geq&gt;&amp;lt;/Where&gt;&lt;br /&gt;&lt;br /&gt;Simply create a new Item in that list with the above text for the CAML syntax, give it a Title and meaningful description and you're set!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/908451797546196795-1920063364725706091?l=mctalex.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mctalex.blogspot.com/feeds/1920063364725706091/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=908451797546196795&amp;postID=1920063364725706091' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/1920063364725706091'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/1920063364725706091'/><link rel='alternate' type='text/html' href='http://mctalex.blogspot.com/2009/02/content-and-structure-report-all.html' title='Content and Structure Reports: All Checked out documents'/><author><name>Alex Dean</name><uri>http://www.blogger.com/profile/17702856763799376939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_kvPl7CQ2CWY/TQ6K6TrjTMI/AAAAAAAAAYQ/oEj3MNzZWcM/S220/Alex-Dean.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-908451797546196795.post-5686865139514230759</id><published>2009-02-20T10:10:00.012+13:00</published><updated>2009-02-20T11:21:39.128+13:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><category scheme='http://www.blogger.com/atom/ns#' term='MOSS 2007'/><title type='text'>Content and Structure Reports: Stale documents</title><content type='html'>Ever wanted to find out where your unused documents lie in MOSS?&lt;br /&gt;This is the syntax to find all documents that have not been modified in the last year. The field to check against is the Last Modified Date. Best is to use it's ID.&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&amp;lt;Where&amp;gt;&amp;lt;Leq&amp;gt;&amp;lt;FieldRef ID="{173f76c8-aebd-446a-9bc9-769a2bd2c18f}"/&amp;gt;&amp;lt;Value Type="DateTime" IncludeTimeValue="TRUE"&amp;gt;&amp;lt;Today OffsetDays="-365"/&amp;gt;&amp;lt;/Value&amp;gt;&amp;lt;/Leq&amp;gt;&amp;lt;/Where&amp;gt;&lt;/pre&gt;&lt;br /&gt;Remember not to have any whitespace in between the tags, especially no CRLF.&lt;br /&gt;&lt;br /&gt;The trick here is not to use [Today] but instead &lt;today&gt;also use the OffsetDays to go back and forward in time and if you want to make sure that the time is matched, include the IncludeTimeValue="TRUE" attribute. This attribute comes in handy in many cases when you want to check against "Now".&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/908451797546196795-5686865139514230759?l=mctalex.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mctalex.blogspot.com/feeds/5686865139514230759/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=908451797546196795&amp;postID=5686865139514230759' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/5686865139514230759'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/5686865139514230759'/><link rel='alternate' type='text/html' href='http://mctalex.blogspot.com/2009/02/content-and-structure-report-stale.html' title='Content and Structure Reports: Stale documents'/><author><name>Alex Dean</name><uri>http://www.blogger.com/profile/17702856763799376939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_kvPl7CQ2CWY/TQ6K6TrjTMI/AAAAAAAAAYQ/oEj3MNzZWcM/S220/Alex-Dean.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-908451797546196795.post-5941769036242614199</id><published>2009-02-13T16:21:00.003+13:00</published><updated>2009-06-03T11:40:38.512+12:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><title type='text'>50047 Advanced IT Pro SharePoint Course</title><content type='html'>Oh man,&lt;br /&gt;I'm so hyped up, it is unbearable. Just finished the last day of teaching this course and can't believe how great this course is. It covers everything you need to know and more. It is jam packed with best practices, advice and tips. Follows best practices, teaches all relevant skills and is fun, fun, fun.&lt;br /&gt;Anybody who wants to know how to get the most out of their MOSS installation MUST go on this course&lt;br /&gt;Anybody who is starting a career as MOSS Admin must go on this course&lt;br /&gt;Anybody who is planning on creating a MOSS infrastructure, is a Enterprise Analyst, Enterprise Architect, Solutions Architect or Information Architect/Analyst must go on this course.&lt;br /&gt;Any MCT who wants to teach 5060 or 5061 should have read this manual thoroughly.&lt;br /&gt;&lt;br /&gt;It is the bible for a good SharePoint Architecture. It is the mother of all SharePoint courses!&lt;br /&gt;&lt;br /&gt;Always asked yourself how index and query roles affect performance? Wanted to know what actually goes into the SSP Search DB? Wanted to know what Raid configuration works best for the different Application Roles? Wondered how easy or hard it is to setup Database mirroring in combination with SharePoint? It is all in there.&lt;br /&gt;Which Performance counters to monitor (ok, some are missing...), Which Components to worry about, which platforms to choose when architecting your farm. All in there.&lt;br /&gt;How to create your own BDC App config, How to work with scopes, crawl rules, managed properties and different content sources. All in there. Hey even how to create a new search tab.&lt;br /&gt;Get Excel Services up and running, publish workbooks and install Adminisrtator approved infopath form templates. All in there. Best practices when doing capacity planning. Real world scenarios when thinking about content analysis. Good ideas on approaching taxonomy issues.&lt;br /&gt;&lt;br /&gt;Geez. there is so much in the course that I actually ended up skipping around 25% of the content across the board and asked the students to read up at home.&lt;br /&gt;&lt;br /&gt;I'm soooo looking forward to teaching this course again soon. Shame only two people turned up for the last one, but then I was happy, as it was my first teach and I can experiment a bit when the class is small.&lt;br /&gt;&lt;br /&gt;There is no excuse anymore for lousy SharePoint Specialists out there. Anybody who wants to call themselves a SharePoint Specialist and is lacking the knowledge and experience must go on this course.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/908451797546196795-5941769036242614199?l=mctalex.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mctalex.blogspot.com/feeds/5941769036242614199/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=908451797546196795&amp;postID=5941769036242614199' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/5941769036242614199'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/5941769036242614199'/><link rel='alternate' type='text/html' href='http://mctalex.blogspot.com/2009/02/50047-advanced-it-pto-sharepoint-course.html' title='50047 Advanced IT Pro SharePoint Course'/><author><name>Alex Dean</name><uri>http://www.blogger.com/profile/17702856763799376939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_kvPl7CQ2CWY/TQ6K6TrjTMI/AAAAAAAAAYQ/oEj3MNzZWcM/S220/Alex-Dean.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-908451797546196795.post-637254642033051123</id><published>2008-11-28T10:58:00.004+13:00</published><updated>2008-11-28T11:22:03.635+13:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><category scheme='http://www.blogger.com/atom/ns#' term='MOSS 2007'/><title type='text'>Changing the AssetPortalBrowser Behaviour</title><content type='html'>Following are some instructions on how to change the default behaviour of the AssetPickerDialog also known as AssetPortalBrowser.aspx&lt;br /&gt;&lt;br /&gt;1) Change the paging size: That's an easy one!&lt;br /&gt;go to the ProgramFiles\....\12\Template\LAYOUTS folder and edit AssetPortalBrowser.aspx. BEWARE. Do not edit with SharePoint Designer. It will change all the paths and nothing works no more.&lt;br /&gt;On that page you will find a control called ObjectList1 of Type SMObjectList. It has a PageSize attribute wich you can change from 15 to anything you like really.&lt;br /&gt;&lt;br /&gt;2)Changing the Default Sort behaviour: Tricky!&lt;br /&gt;Sadly enough setting the SortDirection ad SortExpression on the Control will not come into effect as the sort is overridden every time the context changes. And the context changes every time the page is loaded. Thus, no matter what you set here it does not seem to work.&lt;br /&gt;The Workaround includes some C# and visual Studio knowhow.&lt;br /&gt;a) Create a new Class Library&lt;br /&gt;b) Add References to the the Microsoft.SharePoint, Microsoft.SharePoint.Publishing and System.Web dlls&lt;br /&gt;c) Create a new Class that inherits from Microsoft.SharePoint.Publishing.Internal.CodeBehind.AssetPickerDialog&lt;br /&gt;d) override the OnLoad event and set the SortDirection, SortExpression and ExplicitView of the ObjectList1 Control programatically. Do this after calling the base.OnLoad() event to make sure the control is loaded correctly.&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;public class CustomAssetPicker: Microsoft.SharePoint.Publishing.Internal.CodeBehind.AssetPickerDialog&lt;br /&gt;{ protected override void OnLoad(EventArgs e){&lt;br /&gt;  base.OnLoad(e);&lt;br /&gt;  this.ObjectList1.SortDirection = "DESC";&lt;br /&gt;  this.ObjectList1.SortExpression = "Modified";&lt;br /&gt;  this.ObjectList1.CancelSortOperation = false;&lt;br /&gt;  this.ObjectList1.ExplicitViewName = "All Documents";      &lt;br /&gt; }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;e) sign the assembly&lt;/p&gt;f)install the assembly into the GAC either using gacutil or drag&amp;amp;drop it into c:\windows\assembly&lt;br /&gt;g)fix up the web.config to allow the new assembly by I)adding it to the SafeControls list and II)the compilation\assemblies list&lt;br /&gt;h)Change the Page directive on AssetPortalBrowser.aspx to inherit from your new class instead of the Codebehind class.&lt;br /&gt;&lt;br /&gt;Voailla, you now changed the default sort to always show the last modified files and images first.&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/908451797546196795-637254642033051123?l=mctalex.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mctalex.blogspot.com/feeds/637254642033051123/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=908451797546196795&amp;postID=637254642033051123' title='16 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/637254642033051123'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/637254642033051123'/><link rel='alternate' type='text/html' href='http://mctalex.blogspot.com/2008/11/changing-assetportalbrowser-behaviour.html' title='Changing the AssetPortalBrowser Behaviour'/><author><name>Alex Dean</name><uri>http://www.blogger.com/profile/17702856763799376939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_kvPl7CQ2CWY/TQ6K6TrjTMI/AAAAAAAAAYQ/oEj3MNzZWcM/S220/Alex-Dean.jpg'/></author><thr:total>16</thr:total></entry><entry><id>tag:blogger.com,1999:blog-908451797546196795.post-7939341041908441045</id><published>2008-11-13T11:07:00.003+13:00</published><updated>2008-11-13T11:17:29.092+13:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint Designer'/><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><category scheme='http://www.blogger.com/atom/ns#' term='MOSS 2007'/><title type='text'>Data Views and the AdventureWorks Database</title><content type='html'>If you ever tried to get Data Views to work with the AdventureWorks DB you probably have had as much pain and frustration as I have had in the past.&lt;br /&gt;First you'll need to get SSO set up to connect to the DB. That's simple once you know how!&lt;br /&gt;Then you select the table you want and when you try to show the data you keep on getting error messages! The problem here lies in the fact that AdventureWorks uses Schemas everywhere. And you need to fully qualify your tables to be able to access them. SarePoint Designer is not clever enough and forgets to put the schema name infront of the select command.&lt;br /&gt;&lt;br /&gt;Here are two possible solutions:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;simply write the select statement yourself instead of picking the table from the list. A simple statement like Select * From Production.Product will get you going in no time.&lt;/li&gt;&lt;li&gt;Create a deidacted login for a specific schema and define the defauls schema. &lt;/li&gt;&lt;/ol&gt;&lt;p&gt;Here are the steps for the latter option:&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Create a login on the SQL Server called AWProduction.&lt;/li&gt;&lt;li&gt;Set its default database to AdventureWorks.&lt;/li&gt;&lt;li&gt;In its user mappings give it pubilc access to AdventureWorks and specify the Default Schema to be Production.&lt;/li&gt;&lt;li&gt;go to the schema definition on the AW database and give AWProduciton all the required permissions on the Production Schema.&lt;/li&gt;&lt;li&gt;Set up a new SSO Application that uses the new AWProduction Login&lt;/li&gt;&lt;li&gt;Use that SSO login for your Data Connection&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;Hope that helps!&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/908451797546196795-7939341041908441045?l=mctalex.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mctalex.blogspot.com/feeds/7939341041908441045/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=908451797546196795&amp;postID=7939341041908441045' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/7939341041908441045'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/7939341041908441045'/><link rel='alternate' type='text/html' href='http://mctalex.blogspot.com/2008/11/data-views-and-adventureworks-database.html' title='Data Views and the AdventureWorks Database'/><author><name>Alex Dean</name><uri>http://www.blogger.com/profile/17702856763799376939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_kvPl7CQ2CWY/TQ6K6TrjTMI/AAAAAAAAAYQ/oEj3MNzZWcM/S220/Alex-Dean.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-908451797546196795.post-976874398059369971</id><published>2008-11-13T10:56:00.002+13:00</published><updated>2008-11-13T11:21:14.310+13:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint Designer'/><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><category scheme='http://www.blogger.com/atom/ns#' term='MOSS 2007'/><title type='text'>Using Dataviews to edit and update SQL data</title><content type='html'>If you hooked up your dataviews with SQL data and enable editing you most probably have come across following error message:&lt;br /&gt;The data source control failed to execute the update command&lt;br /&gt;&lt;br /&gt;The reason for this can be manyfold, either you might have a data type issue where you have non numerical data being pushed into a numerical field or in my case as simple as a database constraint getting in your way.&lt;br /&gt;Dealing with the select, update, insert and delete commands manually can be a bit of a pain. So I really like the ability to pick my table and let SharePoint Designer worry about the rest. Just a shame that SharePoint designer does not understand one simple rule. You can not update a column which is the identity column of a table. SQL server reserves the right to auto increment that column. How to fix it? two ways:&lt;br /&gt;&lt;br /&gt;The simple way:&lt;br /&gt;Start with a blank Data View and make sure not to add the ID column to the list.&lt;br /&gt;&lt;br /&gt;What if you want to show the id though?&lt;br /&gt;The hard way:&lt;br /&gt;same as above but you then you add the ID not by using the Edit Columns... task but simply by adding a new column to the dataview itself (click into first column of the DataView, right click and choose Insert...Column to the left) and injecting the ID manually. Easiset way to do that is to copy one of the other fields and then changing its databinding to point to the ID field.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/908451797546196795-976874398059369971?l=mctalex.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mctalex.blogspot.com/feeds/976874398059369971/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=908451797546196795&amp;postID=976874398059369971' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/976874398059369971'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/976874398059369971'/><link rel='alternate' type='text/html' href='http://mctalex.blogspot.com/2008/11/using-dataviews-to-edit-and-update-sql.html' title='Using Dataviews to edit and update SQL data'/><author><name>Alex Dean</name><uri>http://www.blogger.com/profile/17702856763799376939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_kvPl7CQ2CWY/TQ6K6TrjTMI/AAAAAAAAAYQ/oEj3MNzZWcM/S220/Alex-Dean.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-908451797546196795.post-2945647177745834092</id><published>2008-11-05T08:18:00.002+13:00</published><updated>2008-11-13T11:20:56.590+13:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Search'/><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><title type='text'>People Search for WSS</title><content type='html'>Recently I attended a presentation by Ken Biswell from &lt;a href="http://www.redvespa.co.nz/"&gt;RedVespa &lt;/a&gt;and totally fell in love with their approach to People Search. He was presenting at the &lt;a href="http://www.sharepointusergroup.net.nz/wellington/default.aspx"&gt;Wellington SharePoint Usergroup &lt;/a&gt;giving us insider tips and tricks for how to tackle a SharePoint project from the Business Analyst point of view and it was a great session.&lt;br /&gt;So what was their approach to People Search? Simple! They generated WCMS driven profile pages which make it easy to update and copy/paste whole CVs into and created a separate content source which only indexes those pages. Thus the PM who is now looking for a person with a  specific skill like ITIL or SCRUM can simply search the limited content source and get only the results that interest him/her without being bombarded with irrelevant results.&lt;br /&gt;Simple, elegant and most importantly effective! Saving time keeping profiles up to date and saving time searching for key people.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/908451797546196795-2945647177745834092?l=mctalex.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mctalex.blogspot.com/feeds/2945647177745834092/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=908451797546196795&amp;postID=2945647177745834092' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/2945647177745834092'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/2945647177745834092'/><link rel='alternate' type='text/html' href='http://mctalex.blogspot.com/2008/11/people-search-for-wss.html' title='People Search for WSS'/><author><name>Alex Dean</name><uri>http://www.blogger.com/profile/17702856763799376939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_kvPl7CQ2CWY/TQ6K6TrjTMI/AAAAAAAAAYQ/oEj3MNzZWcM/S220/Alex-Dean.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-908451797546196795.post-5672322206948185209</id><published>2008-11-05T08:01:00.002+13:00</published><updated>2008-11-13T11:20:56.592+13:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Search'/><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><title type='text'>Enabling WSS for Enterprise Search</title><content type='html'>Often when I present to my students the features of the search in WSS and the features of the search in MOSS I get the question "any chance we can have a free version of enterprise search in WSS?" And thanks to Microsoft the answer is yes!&lt;br /&gt;&lt;a href="http://www.microsoft.com/enterprisesearch/serverproducts/searchserverexpress/default.aspx"&gt;http://www.microsoft.com/enterprisesearch/serverproducts/searchserverexpress/default.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;With Microsoft Search Server 2008 Express it is a doddle to get enterprise search up and running in your organisation. It comes bundled with the core WSS features so you can install it onto a WSS box or have it standalone. The standalone option is great for scalability as you can dedicate the server for indexing and serving search queries.&lt;br /&gt;&lt;br /&gt;What is included that the MOSS boys have already?&lt;br /&gt;&lt;ul&gt;&lt;li&gt;best bets: define the perfect searchr esult for specific keywords&lt;/li&gt;&lt;li&gt;keywords: define multiple synonyms for a keyword so abbreviations also get to the correct resutls&lt;/li&gt;&lt;li&gt;authorative sources:  specify who's hot and who's not in your search results&lt;/li&gt;&lt;li&gt;federated search: a great workaround for searching the BDC&lt;/li&gt;&lt;li&gt;security trimmed results: Only see the results you really have access too.&lt;/li&gt;&lt;li&gt;Query and Results reporting: find out what your users are searching for and what results they were receiving. Great for optimising the keywords to better serve your seekers.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;What's missing that the MOSS boys have?&lt;/p&gt;&lt;ul&gt;&lt;li&gt;load balancing for search, crawling and indexing&lt;/li&gt;&lt;li&gt;People search&lt;/li&gt;&lt;li&gt;Business Data Catalog Search&lt;/li&gt;&lt;li&gt;More API options to customise search even more&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;What's the end result? If you have a spare windows 2003 machine with 1-2 gb of ram and a bunch of spare space for the index , hook it up to the network, install search server 2008 express within minutes and start searching your sharepoint content, your existing intranet and internet and even you sql databases and favourite RSS feeds.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/908451797546196795-5672322206948185209?l=mctalex.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mctalex.blogspot.com/feeds/5672322206948185209/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=908451797546196795&amp;postID=5672322206948185209' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/5672322206948185209'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/5672322206948185209'/><link rel='alternate' type='text/html' href='http://mctalex.blogspot.com/2008/11/enabling-wss-for-enterprise-search.html' title='Enabling WSS for Enterprise Search'/><author><name>Alex Dean</name><uri>http://www.blogger.com/profile/17702856763799376939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_kvPl7CQ2CWY/TQ6K6TrjTMI/AAAAAAAAAYQ/oEj3MNzZWcM/S220/Alex-Dean.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-908451797546196795.post-9097095650429223467</id><published>2008-09-18T10:37:00.003+12:00</published><updated>2008-09-18T10:50:06.199+12:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><category scheme='http://www.blogger.com/atom/ns#' term='Infopath'/><title type='text'>Integrating a people picker in your InfoPath Forms</title><content type='html'>&lt;div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;We've all wanted to do it at one point or another. Either when creating our own workflow forms or when using Infopath to store business data in a SharePoint Form Library: A way to choose a manager, assistant or co worker using the people picker control. &lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;It is really not that hard, once you realise that it is not called people picker but Contact Selector in Infopath. Available as an extra Active X control to place on your form. &lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;Here a great short artcle by a fellow blogger on how to use the control.&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;a href="http://metahat.blogspot.com/2007/05/people-picker-control-for-infopath-2007.html"&gt;http://metahat.blogspot.com/2007/05/people-picker-control-for-infopath-2007.html&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;In his blog he shows a screenshot of the finshed xlm schema where the fields themselves are repeating fields. no need for that though. simple non repeating fields within a repeating group is good enough.&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;a href="http://2.bp.blogspot.com/_kvPl7CQ2CWY/SNGJNUi9YAI/AAAAAAAAACk/Lw7mzfQJaew/s1600-h/reference-1.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5247125902809980930" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="http://2.bp.blogspot.com/_kvPl7CQ2CWY/SNGJNUi9YAI/AAAAAAAAACk/Lw7mzfQJaew/s200/reference-1.jpg" border="0" /&gt;&lt;/a&gt;Also you might want to have more than one selector on your page. Nothing simpler than that. Simply create a new base group (for example manager) and then right click the existing Person repeating group and choose Reference&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;Then choose the newly created group for the copy of the Person element&lt;/div&gt;&lt;a href="http://4.bp.blogspot.com/_kvPl7CQ2CWY/SNGJdu-WRrI/AAAAAAAAACs/bgkTc7EjCmY/s1600-h/reference-2.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5247126184782087858" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="http://4.bp.blogspot.com/_kvPl7CQ2CWY/SNGJdu-WRrI/AAAAAAAAACs/bgkTc7EjCmY/s200/reference-2.jpg" border="0" /&gt;&lt;/a&gt; &lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/908451797546196795-9097095650429223467?l=mctalex.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mctalex.blogspot.com/feeds/9097095650429223467/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=908451797546196795&amp;postID=9097095650429223467' title='9 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/9097095650429223467'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/9097095650429223467'/><link rel='alternate' type='text/html' href='http://mctalex.blogspot.com/2008/09/integrating-people-picker-in-your.html' title='Integrating a people picker in your InfoPath Forms'/><author><name>Alex Dean</name><uri>http://www.blogger.com/profile/17702856763799376939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_kvPl7CQ2CWY/TQ6K6TrjTMI/AAAAAAAAAYQ/oEj3MNzZWcM/S220/Alex-Dean.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_kvPl7CQ2CWY/SNGJNUi9YAI/AAAAAAAAACk/Lw7mzfQJaew/s72-c/reference-1.jpg' height='72' width='72'/><thr:total>9</thr:total></entry><entry><id>tag:blogger.com,1999:blog-908451797546196795.post-6615670947622749615</id><published>2008-07-30T16:19:00.003+12:00</published><updated>2008-11-13T11:20:29.499+13:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><title type='text'>WSS 3.0 Installation Best Practices</title><content type='html'>Today comes another Rant on my blog. It's about MOSS and Windows SharePoint Services 3.0 Installation. Too many times now have I now come across a MOSS or WSS installation where the admin acocunt is also known as the System Account in WSS. This means creating workflows to interact with the admin becomes difficult, group belongings don't work as expected, emails don't work as expected. Effectively a whole bunch of things don't work as expected. So Please Please Please log on as a dedicated WSS account before doing the Install. And most importantly before executing the Configuration Wizard. That way your Central Administration will run using that dedicated account and not the Admin Account. I've seen cases where Central Admin was running under the Primary Domain Administrator Account. AAARGGHHH.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/908451797546196795-6615670947622749615?l=mctalex.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mctalex.blogspot.com/feeds/6615670947622749615/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=908451797546196795&amp;postID=6615670947622749615' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/6615670947622749615'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/6615670947622749615'/><link rel='alternate' type='text/html' href='http://mctalex.blogspot.com/2008/07/wss-30-installation-best-practices.html' title='WSS 3.0 Installation Best Practices'/><author><name>Alex Dean</name><uri>http://www.blogger.com/profile/17702856763799376939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_kvPl7CQ2CWY/TQ6K6TrjTMI/AAAAAAAAAYQ/oEj3MNzZWcM/S220/Alex-Dean.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-908451797546196795.post-2200509352270787302</id><published>2008-07-25T14:12:00.003+12:00</published><updated>2008-07-25T14:21:05.979+12:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CRM 3.0'/><title type='text'>Installation of CRM 3.0 on Small Business Server Fails</title><content type='html'>I've come across two major hickups when trying to install CRM 3.0 on SBS. &lt;br /&gt;The first, is the lack of a default SQL instance. Installing SQL Server 2000 or 2005 from scratch will solve that issue. Don't even think of installing SQL Express for CRM 3.0. Which brings me to the second common problem when installing CRM 3.0.&lt;br /&gt;Reporting Services are installed already and the express SBS install fails. You will need to go down the advanced route and specify your Reporting Server url in the installation process. Don't specify the Report Manager url. But the root URl of the site hosting the SQL reporting services. &lt;a href="http://servername/"&gt;http://servername&lt;/a&gt; or http://servername:&lt;port&gt;&lt;br /&gt;One last thing to remember. When installing CRM onto an existing Reporting Server you will need to copy the CRM css files fromt he install DVD\wwwroot\Microsoft CEMReports\rsstyles to C:\Program Files\Microsoft SQL Server\MSSQL\Reporting Services\ReportServer\styles&lt;br /&gt;there should be four files to copy: msrcm.css, mscrmx.css, mscrmp.css &amp;amp; mscrmxp.css. Otherwise your reports will look horrendous.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/908451797546196795-2200509352270787302?l=mctalex.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mctalex.blogspot.com/feeds/2200509352270787302/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=908451797546196795&amp;postID=2200509352270787302' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/2200509352270787302'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/2200509352270787302'/><link rel='alternate' type='text/html' href='http://mctalex.blogspot.com/2008/07/installation-of-crm-30-on-small.html' title='Installation of CRM 3.0 on Small Business Server Fails'/><author><name>Alex Dean</name><uri>http://www.blogger.com/profile/17702856763799376939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_kvPl7CQ2CWY/TQ6K6TrjTMI/AAAAAAAAAYQ/oEj3MNzZWcM/S220/Alex-Dean.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-908451797546196795.post-208861619946458234</id><published>2008-07-25T10:46:00.006+12:00</published><updated>2008-07-25T14:21:23.850+12:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CRM 3.0'/><title type='text'>Installing CRM 3.0 onto a WSS or MOSS macihne</title><content type='html'>Over the next few weeks I will be diving into the depths of CRM 3.0 and 4.0 and see how the synergy of MOSS, WSS and CRM work to create powerful Enterprise apps for your small, medium or large organisation. To be able to fully appreciate the new features in 4.0 I will be taking a brief look at 3.0 first.&lt;br /&gt;&lt;br /&gt;Here a couple of tips along the way:&lt;br /&gt;&lt;strong&gt;Installing CRM 3.0 onto SBS. &lt;/strong&gt;&lt;br /&gt;Remember here that the default install of SBS will create a &lt;strong&gt;WSS SQL Express&lt;/strong&gt; instance but no default instance. CRM &lt;strong&gt;needs&lt;/strong&gt; a &lt;strong&gt;default instance&lt;/strong&gt; (no instance name) running to install. So put the &lt;strong&gt;SBS Premium DVD&lt;/strong&gt; back in the drive, look at the premium content and install the SQL Server that is part of the SBS Premium package. That is also one of the reasons why CRM 3.0 for SBS only works with SBS Premium and not SBS Standard.&lt;br /&gt;when Installing SQL Server 2005 you can choose to install &lt;strong&gt;Reporting Services&lt;/strong&gt; too. This is generally a good idea. But beware! It will clash with the express install for CRM 3.0 and you will need to do the advanced install and specify the Reporting Server manually.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Installing CRM 3.0 onto WSS 3.0&lt;/strong&gt;&lt;br /&gt;Should you have installed WSS 3.0 onto the SBS machine prior to installing CRM 3.0 be aware that CRM3.0 installs the management web onto port 5555 by default. So have that port available and not used for things like Central Administration. If you have used port 5555 already for one of your webs and can't change it, you will either need to run the CRM setup via command line and specify a custom port in the config file or pre-create the web you are going to use for CRM in ISS and specify that during the installation. SBS users, note that you will need to do the advanced installation option to specify the final web site to be used.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/908451797546196795-208861619946458234?l=mctalex.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mctalex.blogspot.com/feeds/208861619946458234/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=908451797546196795&amp;postID=208861619946458234' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/208861619946458234'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/208861619946458234'/><link rel='alternate' type='text/html' href='http://mctalex.blogspot.com/2008/07/installing-crm-30-onto-wss-or-moss.html' title='Installing CRM 3.0 onto a WSS or MOSS macihne'/><author><name>Alex Dean</name><uri>http://www.blogger.com/profile/17702856763799376939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_kvPl7CQ2CWY/TQ6K6TrjTMI/AAAAAAAAAYQ/oEj3MNzZWcM/S220/Alex-Dean.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-908451797546196795.post-7636651137663609567</id><published>2008-07-17T07:32:00.002+12:00</published><updated>2008-07-25T14:21:54.315+12:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><category scheme='http://www.blogger.com/atom/ns#' term='MOSS 2007'/><title type='text'>Major SharePoint Updates Released</title><content type='html'>Some major updates were released a couple of days ago fixing many issues with content deployment and performance, as well as including new features in the search and adminstration area. Definately worth checking out!&lt;br /&gt;&lt;a href="http://blogs.msdn.com/sharepoint/archive/2008/07/15/announcing-availability-of-infrastructure-updates.aspx"&gt;http://blogs.msdn.com/sharepoint/archive/2008/07/15/announcing-availability-of-infrastructure-updates.aspx&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/908451797546196795-7636651137663609567?l=mctalex.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://blogs.msdn.com/sharepoint/' title='Major SharePoint Updates Released'/><link rel='replies' type='application/atom+xml' href='http://mctalex.blogspot.com/feeds/7636651137663609567/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=908451797546196795&amp;postID=7636651137663609567' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/7636651137663609567'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/7636651137663609567'/><link rel='alternate' type='text/html' href='http://mctalex.blogspot.com/2008/07/major-sharepoint-updates-released.html' title='Major SharePoint Updates Released'/><author><name>Alex Dean</name><uri>http://www.blogger.com/profile/17702856763799376939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_kvPl7CQ2CWY/TQ6K6TrjTMI/AAAAAAAAAYQ/oEj3MNzZWcM/S220/Alex-Dean.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-908451797546196795.post-3617785032055613530</id><published>2008-07-17T07:20:00.002+12:00</published><updated>2008-07-25T14:21:54.316+12:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><category scheme='http://www.blogger.com/atom/ns#' term='MOSS 2007'/><title type='text'>How To Share Authentication Cookies across ASP.NET V1.1 and ASP.NET V2.0 Applications</title><content type='html'>While scanning for interesting MOSS stuff on the net I stumbled across this little gem. Old news for sure, but a topic that had kept me awake at night some time ago. By fixing up the encryption and decryption key of the cookie values, one can share quite easily the same cookies across different apps and even subdomains. This allows for smooth Single-Sign-On style behaviour across multiple apps, even v1.1 and v2.0 apps, as you can also share the forms authentication cookie. Because Browsers only send the cookies based on domain, this will not work for cross domain requests (sub domains are ok). For cross domain scenarios a passport like structure will be needed with one cenrtal authentication service doing the work.&lt;br /&gt;&lt;a href="http://weblogs.asp.net/scottgu/archive/2005/12/10/432851.aspx"&gt;http://weblogs.asp.net/scottgu/archive/2005/12/10/432851.aspx&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/908451797546196795-3617785032055613530?l=mctalex.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://weblogs.asp.net/scottgu/archive/2005/12/10/432851.aspx' title='How To Share Authentication Cookies across ASP.NET V1.1 and ASP.NET V2.0 Applications'/><link rel='replies' type='application/atom+xml' href='http://mctalex.blogspot.com/feeds/3617785032055613530/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=908451797546196795&amp;postID=3617785032055613530' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/3617785032055613530'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/3617785032055613530'/><link rel='alternate' type='text/html' href='http://mctalex.blogspot.com/2008/07/how-to-share-authentication-cookies.html' title='How To Share Authentication Cookies across ASP.NET V1.1 and ASP.NET V2.0 Applications'/><author><name>Alex Dean</name><uri>http://www.blogger.com/profile/17702856763799376939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_kvPl7CQ2CWY/TQ6K6TrjTMI/AAAAAAAAAYQ/oEj3MNzZWcM/S220/Alex-Dean.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-908451797546196795.post-6935099225833193454</id><published>2008-07-15T16:48:00.002+12:00</published><updated>2008-07-25T14:21:54.317+12:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><category scheme='http://www.blogger.com/atom/ns#' term='MOSS 2007'/><title type='text'>Best practices for WSS images folder</title><content type='html'>This is a topic that has been bugging me for some time now, and as I have not found a single post out there telling me otherwise I'll just go ahead and rant out aloud!&lt;br /&gt;&lt;br /&gt;In WSS you have effectively two ways of storing files. either by uploading the files into a document library which is available via web, webdav and SharePoint Designer or via adding the files to a folder created through either webdav or SharePoint Designer (not via web). Each teamsite comes with such a built in images folder.&lt;br /&gt;&lt;br /&gt;I have found that these "hidden" folders do have their use. Namely for images and files that are used for design purposes only. If your WSS site is using several images to make the site look pretty, those folders will keep them away from the main content of your WSS site and keep them nicely separated.&lt;br /&gt;That way you only use document libraries for documents relevant to your enterprise and not for designing the WSs site. The biggest benefit in my eyes is hiding away those files from end users who might accidentally decide to move or delete the files and ruin your site.&lt;br /&gt;The drawback is that you won't have the power of versioning and check in-out as youhave with libraries. But then how much versioning do you need for your gifs and jpgs? the master page is the one you want to worry about!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/908451797546196795-6935099225833193454?l=mctalex.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mctalex.blogspot.com/feeds/6935099225833193454/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=908451797546196795&amp;postID=6935099225833193454' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/6935099225833193454'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/6935099225833193454'/><link rel='alternate' type='text/html' href='http://mctalex.blogspot.com/2008/07/best-practices-for-wss-images-folder.html' title='Best practices for WSS images folder'/><author><name>Alex Dean</name><uri>http://www.blogger.com/profile/17702856763799376939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_kvPl7CQ2CWY/TQ6K6TrjTMI/AAAAAAAAAYQ/oEj3MNzZWcM/S220/Alex-Dean.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-908451797546196795.post-5253428044735984704</id><published>2008-07-14T14:12:00.002+12:00</published><updated>2008-07-25T14:22:36.466+12:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MCT Tips'/><category scheme='http://www.blogger.com/atom/ns#' term='MODL'/><title type='text'>Free Elearning access for MODL courses</title><content type='html'>Some of you out there might not know it yet, but all MCTs get free access to all Elearning material on &lt;a href="http://www.microsoftlearning.com/"&gt;www.microsoftlearning.com&lt;/a&gt;. A great resource for gaining new skills. But also a prerequisite to teach MODL courses. Each MODL module will include one or two E-Learning courses for the students to complete in between sessions (the Expand bit of GEAR). and you will need to know the content of those modules before sending your students on a wild goose chase. 'Cause quite some content is pure revision and duplicaiton of the material you just covered in class. If you don't want your students to be all grumpy because they wasted an hour reviewing material you already had taught them, you should advise them which bits are revision and which are added content so they can work out their learning schedule better.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;So how do you get access to all that wonderful E-Learning material?&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;/span&gt;&lt;br /&gt;Well, you will have to phone up your Microsoft Regional Service Center and get the access code from them.&lt;br /&gt;apparently simple Instructions are viwable here:&lt;br /&gt;&lt;a href="https://mcp.microsoft.com/mct/program/freevoucher/default.mspx"&gt;https://mcp.microsoft.com/mct/program/freevoucher/default.mspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;But beware! the process is not that simple. the code consists of three blocks of 4 alphanumeric characters separated by dashes. If they say, we'll email it to you, don't hang up but wait until it arrives. First time I waited and 2h later nothing arrived. next time I waited on the phone and got the email, without noticing that I got the wrong code. I received the access code to the mcp site, not the e-learning content. Third time round I kept the operator on the phone while I verified the correctness of the code. That woked.&lt;br /&gt;&lt;br /&gt;happy e-Learning!&lt;br /&gt;&lt;br /&gt;Just a shame that your E-Learning catalogue is now rendered useless as you have no way of searching through the thousands of courses. Just sorting them and going through page by page.&lt;br /&gt;I always use the main E-Learning site to find the course I'm interested in&lt;br /&gt;&lt;a href="https://www.microsoftelearning.com/"&gt;https://www.microsoftelearning.com/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;BEWARE!&lt;br /&gt;&lt;br /&gt;don't go to the http version of the address. that will redirect you to&lt;br /&gt;&lt;a href="http://www.microsoft.com/learning/default.mspx"&gt;http://www.microsoft.com/learning/default.mspx&lt;/a&gt;&lt;br /&gt;and you'll get totally lost and frustrated, you will be forced to use your catalog, which now is rendered usesless since it was spammed with thousands of subscriptions and you won't find what you are looking for.&lt;br /&gt;use the https version and use the searchbox at the top left hand side. Much smoother.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/908451797546196795-5253428044735984704?l=mctalex.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mctalex.blogspot.com/feeds/5253428044735984704/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=908451797546196795&amp;postID=5253428044735984704' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/5253428044735984704'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/5253428044735984704'/><link rel='alternate' type='text/html' href='http://mctalex.blogspot.com/2008/07/free-elearning-access-for-modl-courses.html' title='Free Elearning access for MODL courses'/><author><name>Alex Dean</name><uri>http://www.blogger.com/profile/17702856763799376939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_kvPl7CQ2CWY/TQ6K6TrjTMI/AAAAAAAAAYQ/oEj3MNzZWcM/S220/Alex-Dean.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-908451797546196795.post-7666304333485296740</id><published>2008-07-11T10:48:00.002+12:00</published><updated>2008-07-11T11:09:06.536+12:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VPC'/><category scheme='http://www.blogger.com/atom/ns#' term='MOC'/><category scheme='http://www.blogger.com/atom/ns#' term='MCT Tips'/><title type='text'>Activating vpc images for MOC</title><content type='html'>Oh, man! One of those well kept secrets! If nobody tells you how it is not as easy as one might seem. I would have expected Microsoft to send out a bunch of keys in my welcome pack, but that sadly enough was not the case. So how do we get those vpc images running before the class starts?&lt;br /&gt;The trick is knowing whom to ask. You would have expected to have this as part of the MCT FAQ but no, no info there. There used to be a link on the MCT homepage, but no luck there either.&lt;br /&gt;After spending ages going through the MCT homepage I gave up looking for the link. It is gone.&lt;br /&gt;&lt;br /&gt;This is how you do it:&lt;br /&gt;Send an Email to "mslpkd" at microsoft with your request for product keys and your MCT ID (also known as MCP ID). They will then send you back a nice email with instructions and some time later another email with the keys you requested. You can request keys for Windows 2003, XP, SBS, and Vista. Then follow the instructions to change the product key of the vpc images during the activation process and activate the vpc by phone.&lt;br /&gt;Remember to commit changes to the VPC after doing that and reusing that activated image for your class. You really don't want to go through the hassle of activating each and every image for a class of eight people every other week! At some point in stage  you will have maxed out the amount of activatons you can do with those keys and simply send another email to the same address aksing for some more.&lt;br /&gt;It really isn't that hard, when somebody tells you how to do it!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/908451797546196795-7666304333485296740?l=mctalex.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mctalex.blogspot.com/feeds/7666304333485296740/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=908451797546196795&amp;postID=7666304333485296740' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/7666304333485296740'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/7666304333485296740'/><link rel='alternate' type='text/html' href='http://mctalex.blogspot.com/2008/07/activating-vpc-images.html' title='Activating vpc images for MOC'/><author><name>Alex Dean</name><uri>http://www.blogger.com/profile/17702856763799376939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_kvPl7CQ2CWY/TQ6K6TrjTMI/AAAAAAAAAYQ/oEj3MNzZWcM/S220/Alex-Dean.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-908451797546196795.post-8783596183091737128</id><published>2008-07-10T14:41:00.004+12:00</published><updated>2008-07-10T15:35:02.251+12:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Vista'/><category scheme='http://www.blogger.com/atom/ns#' term='5118'/><category scheme='http://www.blogger.com/atom/ns#' term='MODL'/><title type='text'>Are UAC related problems permission related or security related?</title><content type='html'>This is effectively the debate going on in my virtual classroom right now. One of the questions in Assessment 3-1 triggered the debate, as two of my students didn't choose UAC as a possible cause of a security related issue and two did.&lt;br /&gt;The one side is arguing based on the material in the book. Several questions are expecting a textbook answer and UAC is explicity referred to in a paragraph above the security related issues and not under the security related heading.&lt;br /&gt;&lt;br /&gt;This is the way I see it:&lt;br /&gt;UAC is based on controlling access to ressources based on which privileges a user has at the time of executing a program. with UAC on, that would be the least priviliges required to run an applicaiton. Priviliges mean effectively permissions on files, settings and folders.&lt;br /&gt;When we talk about security we usually differentiate between physical security, securing access to the data and securing the information itself.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;We put our servers into locked rooms to secure the physical aspect&lt;/li&gt;&lt;li&gt;We put firewalls and passwords in place to secure access to the data&lt;/li&gt;&lt;li&gt;We put encryption in place to secure the information itself contained in the data.&lt;/li&gt;&lt;/ul&gt;Where does UAC belong? in the middle section. Securing access to data. By requesting elevated permissions or even an username and password to continue executing a piece of code or accessing a certain file or setting, we have another layer of access security in place to protect our systems.&lt;br /&gt;Thus when anybody asks me if UAC could be a possible cause for security related installation or execution problems I'd go for "yeah, sure it is. look there first!"&lt;br /&gt;&lt;br /&gt;Be sure to mention to your students that the paragraph in Module 3-1 headed "Security-Related Problems" should reall be labelled "Other Security-Related Problems" to avoid this discussion :-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/908451797546196795-8783596183091737128?l=mctalex.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mctalex.blogspot.com/feeds/8783596183091737128/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=908451797546196795&amp;postID=8783596183091737128' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/8783596183091737128'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/8783596183091737128'/><link rel='alternate' type='text/html' href='http://mctalex.blogspot.com/2008/07/are-uac-related-problems-permission.html' title='Are UAC related problems permission related or security related?'/><author><name>Alex Dean</name><uri>http://www.blogger.com/profile/17702856763799376939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_kvPl7CQ2CWY/TQ6K6TrjTMI/AAAAAAAAAYQ/oEj3MNzZWcM/S220/Alex-Dean.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-908451797546196795.post-4771321237372712966</id><published>2008-07-09T16:31:00.003+12:00</published><updated>2008-07-10T15:34:36.825+12:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Vista'/><category scheme='http://www.blogger.com/atom/ns#' term='5118'/><category scheme='http://www.blogger.com/atom/ns#' term='MODL'/><title type='text'>5118 AL Module 3-1 Demonstration</title><content type='html'>Something I noticed today and want to share with fellow MCTs.&lt;br /&gt;In Module 3-1 there is a flash based demo showing how to use the compatibility settings wizard through control panel.&lt;br /&gt;The steps are really simple and you should demonstrate this directly on the vpc instead.&lt;br /&gt;&lt;br /&gt;The reason I say that is twofold.&lt;br /&gt;&lt;ol&gt;&lt;li&gt;one of my students actually had a problem loading the demonstration and missed out on it, which forced me to give everybody a quick run down anyway. &lt;/li&gt;&lt;li&gt;you can easily answer questions using the vpc directly and show alternate paths. For example show the students that right clicking a exe file and changing the compatibility settings there will also allow you to troubleshoot that particular application.&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/908451797546196795-4771321237372712966?l=mctalex.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mctalex.blogspot.com/feeds/4771321237372712966/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=908451797546196795&amp;postID=4771321237372712966' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/4771321237372712966'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/4771321237372712966'/><link rel='alternate' type='text/html' href='http://mctalex.blogspot.com/2008/07/5118-al-module-3-1-demonstration.html' title='5118 AL Module 3-1 Demonstration'/><author><name>Alex Dean</name><uri>http://www.blogger.com/profile/17702856763799376939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_kvPl7CQ2CWY/TQ6K6TrjTMI/AAAAAAAAAYQ/oEj3MNzZWcM/S220/Alex-Dean.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-908451797546196795.post-5293863671465160215</id><published>2008-07-09T16:25:00.005+12:00</published><updated>2008-07-09T16:38:52.431+12:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Vista'/><category scheme='http://www.blogger.com/atom/ns#' term='5118'/><category scheme='http://www.blogger.com/atom/ns#' term='MODL'/><title type='text'>Scenario IE7 Problem</title><content type='html'>One of my Students had problems getting the toolwire scenarios to run. The whole intro would work but when it came to the lab it simply would not load.&lt;br /&gt;The labs use a vpc activeX control which in his case did not run under the custom security settings he had in IE7. After adding the site to the Trusted Sites Zone AND resetting the trusted sites settings to its defaul level of medium, the lab excercicse loaded correctly.&lt;br /&gt;&lt;br /&gt;Just a tip if you come across this particular problem with your students in future&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/908451797546196795-5293863671465160215?l=mctalex.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mctalex.blogspot.com/feeds/5293863671465160215/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=908451797546196795&amp;postID=5293863671465160215' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/5293863671465160215'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/5293863671465160215'/><link rel='alternate' type='text/html' href='http://mctalex.blogspot.com/2008/07/scenario-ie7-problem.html' title='Scenario IE7 Problem'/><author><name>Alex Dean</name><uri>http://www.blogger.com/profile/17702856763799376939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_kvPl7CQ2CWY/TQ6K6TrjTMI/AAAAAAAAAYQ/oEj3MNzZWcM/S220/Alex-Dean.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-908451797546196795.post-146066882017970384</id><published>2008-07-09T16:16:00.003+12:00</published><updated>2008-07-09T16:24:58.538+12:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='LM 2007'/><category scheme='http://www.blogger.com/atom/ns#' term='MODL'/><category scheme='http://www.blogger.com/atom/ns#' term='LiveMeeting'/><title type='text'>Who said what in livemeeting</title><content type='html'>One of the most useful tools I have found in livemeeting is the ability to hover my mouse over the input from my participants to find out who wrote that comment or drew the line. That has helped me initiate a discussion or get some more interaction out of the users by either praising the individual who added some specially good nugget of information or putting somebody on the spot and asking them to explain their answer so everybody understands the reasoning behind it. (which I have deemed to be true and accurate from the comment) Don't abuse this to inflict pain or shame on obviously incorrect answers!&lt;br /&gt;&lt;br /&gt;But what about poll questions? Well you won't get around calling into the room for elaboration and comments as you can not see who answered there and then. But you could find out later...&lt;br /&gt;&lt;br /&gt;How? Using Poll Reporting you can actually review after the session who answered what to the poll slides. But beware! that only works if you set up the meeting by setting up an event around it first. If you don't use Events, you don't see the reports. That has to do with the fact that you have a whole registration process around events and thus can keep better track of who is doing what with your meetings, recordings and thus, poll slides.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/908451797546196795-146066882017970384?l=mctalex.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mctalex.blogspot.com/feeds/146066882017970384/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=908451797546196795&amp;postID=146066882017970384' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/146066882017970384'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/146066882017970384'/><link rel='alternate' type='text/html' href='http://mctalex.blogspot.com/2008/07/who-said-what-in-livemeeting.html' title='Who said what in livemeeting'/><author><name>Alex Dean</name><uri>http://www.blogger.com/profile/17702856763799376939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_kvPl7CQ2CWY/TQ6K6TrjTMI/AAAAAAAAAYQ/oEj3MNzZWcM/S220/Alex-Dean.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-908451797546196795.post-991928787674262544</id><published>2008-07-04T11:59:00.005+12:00</published><updated>2008-07-11T09:49:10.454+12:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Vista'/><category scheme='http://www.blogger.com/atom/ns#' term='5118'/><category scheme='http://www.blogger.com/atom/ns#' term='MODL'/><title type='text'>5118AL Teaching Tips</title><content type='html'>&lt;p&gt;Over the next few Posts I will share with you all my experiences from teaching 5118 using MODL and Livemeeting.&lt;br /&gt;Today I'll start with some general tips on organising the material &lt;/p&gt;&lt;ol&gt;&lt;li&gt;&lt;span style="font-size:130%;"&gt;&lt;strong&gt;Add page refrerences to the instructor manual &amp;amp; Slides&lt;/strong&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;The page numbering in the instructor manual does not match the student workbook. That makes it really hard to point things out to students in the book. I found it really useful to create references in my instructor manual and on the slides to the individual pages in the student course book so I could direct them to the correct pages without having both books open all the time. Directing the students is an important task during the session to encourage them to write into the book.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:130%;"&gt;&lt;strong&gt;Add Headings to the whiteboard pages&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;to instruct the students about the task at hand. Using the slide name can be sufficient in most cases. That really helps the student remember what they are supposed to be doing right now.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;&lt;span style="font-size:130%;"&gt;Create real world demonstrations&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Create a copy of one of the vista vpc images and bust it by killing the bcd config or deleting winload. That will show nicely how a startup failure looks like. and allows you to fix it in the demonstration. How to bust it? start the vpc using either a Vista DVD and enter Recovery Environment or make your own WinRE PE iso file. Before busting it, activate System Restore and create a manual restore point. You can use that in one of the demonstrations too! Much bettern than "ahhm, and now you would see XYZ". This image cna now be fixed using the console, the startup-repair or the system restore tool in RE.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;&lt;span style="font-size:130%;"&gt;Upload flash animations and web pages to web server&lt;/span&gt;&lt;br /&gt;&lt;/strong&gt;&lt;br /&gt;Normally I'd upload the flash animations for the course directly to the livemeeting session. But with 5118 the flash files don't work by themselves and only work in a web page. Thus I uploaded them to our webserver and made them available via a Web Page in livemeeting. As each student can control the media individually this way I asked them all to change their colour to green once they had finished viewing the content. That worked like a charm.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;&lt;span style="font-size:130%;"&gt;Upload flash games to the web server&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;uploading all flash media to a web server instead of to the livemeeting session directly also allowed each student to try out the sorting game themselves. and that was definately more fun than writing down the answers in the book or aksing them to start the game from the student cd.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;&lt;span style="font-size:130%;"&gt;Check the assessment forms before you send them out!&lt;/span&gt;&lt;br /&gt;&lt;/strong&gt;&lt;br /&gt;Most of them have Polarbear's Logo on the Feedback worksheet and I assume you might want to exchange that with your company logo. Also fix up the references on the feedback sheet. Two cells (E14 anf G17) are not referring to the answer sheet but have fixed values instead. &lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/908451797546196795-991928787674262544?l=mctalex.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mctalex.blogspot.com/feeds/991928787674262544/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=908451797546196795&amp;postID=991928787674262544' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/991928787674262544'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/991928787674262544'/><link rel='alternate' type='text/html' href='http://mctalex.blogspot.com/2008/07/5118al-teaching-tips.html' title='5118AL Teaching Tips'/><author><name>Alex Dean</name><uri>http://www.blogger.com/profile/17702856763799376939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_kvPl7CQ2CWY/TQ6K6TrjTMI/AAAAAAAAAYQ/oEj3MNzZWcM/S220/Alex-Dean.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-908451797546196795.post-4835875991338814218</id><published>2008-07-02T17:26:00.002+12:00</published><updated>2008-07-02T17:33:02.383+12:00</updated><title type='text'>Vista Presentation settings on a Desktop</title><content type='html'>Ever wondered if you could change presentation mode settings also on a desktop?&lt;br /&gt;In vista you can!&lt;br /&gt;a littel tweak in the registry will get you going in no time&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;first, to activate the mobility center, create the key MobilityCenter under MobilePC, if it does not exist yet. then create a DWord(32 bit) value called RunOnDesktop and enter 1 for it's value&lt;br /&gt;&lt;br /&gt;[HKEY_CURRENT_USER\Software\Microsoft\MobilePC\MobilityCenter]&lt;br /&gt;"RunOnDesktop"=dword:00000001&lt;br /&gt;&lt;br /&gt;Then you are able to open up the mobility center on a desktop machine running vista using the exe called mblctr.exe&lt;br /&gt;&lt;br /&gt;To change the Presentation Settings another tweak is required...&lt;br /&gt;&lt;br /&gt;under MobilePC check that the key AdaptableSettings exists.&lt;br /&gt;It will have no values yet.&lt;br /&gt;Create a new DWord(32-Bit) called SkipBatteryCheck and set it's value to 1&lt;br /&gt;&lt;br /&gt;[HKEY_CURRENT_USER\Software\Microsoft\MobilePC\AdaptableSettings]&lt;br /&gt;"SkipBatteryCheck"=dword:00000001&lt;br /&gt;&lt;br /&gt;Voilla, now you can set presentation settings and start using the features also on a desktop by calling PresentationSettings.exe&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/908451797546196795-4835875991338814218?l=mctalex.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mctalex.blogspot.com/feeds/4835875991338814218/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=908451797546196795&amp;postID=4835875991338814218' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/4835875991338814218'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/908451797546196795/posts/default/4835875991338814218'/><link rel='alternate' type='text/html' href='http://mctalex.blogspot.com/2008/07/vista-presentation-settings-on-desktop.html' title='Vista Presentation settings on a Desktop'/><author><name>Alex Dean</name><uri>http://www.blogger.com/profile/17702856763799376939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_kvPl7CQ2CWY/TQ6K6TrjTMI/AAAAAAAAAYQ/oEj3MNzZWcM/S220/Alex-Dean.jpg'/></author><thr:total>2</thr:total></entry></feed>
