<?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-7647587</id><updated>2012-01-29T14:21:04.775+08:00</updated><category term='forms authentication'/><category term='moss'/><title type='text'>Mei Ying's Tech Blog</title><subtitle type='html'>SharePoint 2007, Microsoft Content Management Server (MCMS), ASP.NET, C# and random thoughts</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://meiyinglim.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://meiyinglim.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Mei Ying</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>88</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-7647587.post-874914093714399455</id><published>2008-07-25T12:20:00.000+08:00</published><updated>2008-07-25T12:24:06.727+08:00</updated><title type='text'>Link to download the Lotus Notes C++ Toolkit</title><content type='html'>I've received a few questions about where to get the lcppn30.dll file that is required by SharePoint to connect to Lotus Notes. Here's the link for reference: &lt;a href="https://www14.software.ibm.com/webapp/iwm/web/reg/download.do?source=ESD-SUPPORT&amp;amp;S_PKG=CR3DNNA&amp;amp;S_TACT=104CBW71&amp;amp;lang=en_US&amp;amp;cp=UTF-8"&gt;https://www14.software.ibm.com/webapp/iwm/web/reg/download.do?source=ESD-SUPPORT&amp;amp;S_PKG=CR3DNNA&amp;amp;S_TACT=104CBW71&amp;amp;lang=en_US&amp;amp;cp=UTF-8&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;You will have to register with IBM to download the file.&lt;br /&gt;&lt;br /&gt;The version that contains the file is &lt;strong&gt;Lotus C++ API Toolkit Release 3.0 for Windows English US&lt;/strong&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7647587-874914093714399455?l=meiyinglim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://meiyinglim.blogspot.com/feeds/874914093714399455/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7647587&amp;postID=874914093714399455&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/874914093714399455'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/874914093714399455'/><link rel='alternate' type='text/html' href='http://meiyinglim.blogspot.com/2008/07/link-to-download-lotus-notes-c-toolkit.html' title='Link to download the Lotus Notes C++ Toolkit'/><author><name>Mei Ying</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7647587.post-2493155768033948375</id><published>2008-03-20T11:52:00.000+08:00</published><updated>2008-03-20T12:17:49.829+08:00</updated><title type='text'>When active directory users get deleted and re-created</title><content type='html'>When active directory users get deleted and re-created, even with the same user id, there's a nasty side effect. Each time they try to access their "my site", they will receive the following error:&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#ff0000;"&gt;The file exists. (Exception from HRESULT: 0x80070050)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The reason is because when active directory accounts are deleted and re-created, the SID changes. Hence, the link between the user id and his "my site" is broken. There's an interesting solution from the &lt;a href="http://groups.google.com.sg/group/microsoft.public.sharepoint.general/browse_thread/thread/1218d72e13cb77/9434ef80df1f6bce?hl=en&amp;amp;lnk=st&amp;amp;q=0x80070050#9434ef80df1f6bce"&gt;Microsoft Forums&lt;/a&gt; that provides a good technical background on the problem. However, the suggested solution involves updating the SharePoint tables which is an unsupported activity. Here's how you can get around the issue without touching the database:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;u&gt;1. Access the user's my site settings page&lt;/u&gt;&lt;/strong&gt;&lt;br /&gt;The first step would be to access the user's my site page. You could simply append "_layouts/settings.aspx" to the URL of the site. However, here's a slightly easier way to get to the page.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;a. Login to the SharePoint Central Administration site and access the Shared Services Provider page.&lt;br /&gt;&lt;br /&gt;b. On the SSP admin page, select "User profiles and properties" "View User Profiles"&lt;br /&gt;&lt;br /&gt;c. Search for the user whose account has been deleted. Click on the profile name and select "Manage Personal Site"&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://4.bp.blogspot.com/_zBTFWrPKqGw/R-Hh7B8IckI/AAAAAAAAACE/AkWHDkqgcWk/s1600-h/SearchProfile.gif"&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://2.bp.blogspot.com/_zBTFWrPKqGw/R-HiOh8IclI/AAAAAAAAACM/TlWKWrwQjlg/s1600-h/SearchProfile.gif"&gt;&lt;img id="BLOGGER_PHOTO_ID_5179669785709408850" style="CURSOR: hand" alt="" src="http://2.bp.blogspot.com/_zBTFWrPKqGw/R-HiOh8IclI/AAAAAAAAACM/TlWKWrwQjlg/s400/SearchProfile.gif" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;&lt;p&gt;That will bring you to the user's personal site's settings page.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;&lt;u&gt;2. Delete the user from the site collection&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;a. Click "People and Groups"&lt;/p&gt;&lt;p&gt;b. In the "Groups" section, click on the "(sitename)_Owners" group&lt;/p&gt;&lt;p&gt;c. Check the user and select "Actions Remove Users from Group"&lt;/p&gt;Repeat (a) - (c) for each group that the user is a member of within the site collection.&lt;br /&gt;&lt;p&gt;&lt;a href="http://3.bp.blogspot.com/_zBTFWrPKqGw/R-Hjdx8IcmI/AAAAAAAAACU/tmbdVPukiVY/s1600-h/removefromownersgroup.gif"&gt;&lt;img id="BLOGGER_PHOTO_ID_5179671147214041698" style="CURSOR: hand" alt="" src="http://3.bp.blogspot.com/_zBTFWrPKqGw/R-Hjdx8IcmI/AAAAAAAAACU/tmbdVPukiVY/s400/removefromownersgroup.gif" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;&lt;br /&gt;&lt;p&gt;d. Next, click "Site Permissions" and select "Settings Site Collection Administrators"&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://4.bp.blogspot.com/_zBTFWrPKqGw/R-Hj6B8IcnI/AAAAAAAAACc/H7icXQftiAs/s1600-h/SiteCollectionAdmin.gif"&gt;&lt;img id="BLOGGER_PHOTO_ID_5179671632545346162" style="CURSOR: hand" alt="" src="http://4.bp.blogspot.com/_zBTFWrPKqGw/R-Hj6B8IcnI/AAAAAAAAACc/H7icXQftiAs/s400/SiteCollectionAdmin.gif" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;e. Add the farm account as a site collection adminsitrator. Remove the user whose account has been deleted. Click OK.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_zBTFWrPKqGw/R-HkWB8IcoI/AAAAAAAAACk/jae4hTbxaAA/s1600-h/AddFarmAccount.gif"&gt;&lt;img id="BLOGGER_PHOTO_ID_5179672113581683330" style="CURSOR: hand" alt="" src="http://4.bp.blogspot.com/_zBTFWrPKqGw/R-HkWB8IcoI/AAAAAAAAACk/jae4hTbxaAA/s400/AddFarmAccount.gif" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;&lt;p&gt;f. Back at the "People and Groups" screen, click "People" and remove the user whose account has been deleted from the list.&lt;/p&gt;&lt;p&gt;Effectively, we have removed the user from the site collection entirely. This will flush the link between the user and his old SID.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;u&gt;3. Add the user to the site collection&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Now, let's add the user back to the site collection&lt;/p&gt;&lt;p&gt;a. Click "Site Permissions"&lt;/p&gt;&lt;p&gt;b. Select "Settings Site Collection Administrators"&lt;/p&gt;&lt;p&gt;c. Add the user as a site collection adminsitrator. Remove the farm account that was added in the previous steps. Click OK.&lt;/p&gt;&lt;p&gt;And the user's access to his "my site" should be restored!&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7647587-2493155768033948375?l=meiyinglim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://meiyinglim.blogspot.com/feeds/2493155768033948375/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7647587&amp;postID=2493155768033948375&amp;isPopup=true' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/2493155768033948375'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/2493155768033948375'/><link rel='alternate' type='text/html' href='http://meiyinglim.blogspot.com/2008/03/when-active-directory-users-get-deleted.html' title='When active directory users get deleted and re-created'/><author><name>Mei Ying</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_zBTFWrPKqGw/R-HiOh8IclI/AAAAAAAAACM/TlWKWrwQjlg/s72-c/SearchProfile.gif' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7647587.post-6331167605076263998</id><published>2008-01-08T14:54:00.000+08:00</published><updated>2008-01-08T15:14:38.009+08:00</updated><title type='text'>Microsoft Small Business Specialist Primer: Your Certification Path to Success!</title><content type='html'>The latest version of the Microsoft Small Business Specialist Primer has recently been released!&lt;br /&gt;&lt;br /&gt;An excerpt from the official &lt;a href="http://www.smbnation.com/bookstore/70-282.htm"&gt;website&lt;/a&gt;:&lt;br /&gt;&lt;br /&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td valign="top"&gt;&lt;a href="http://www.smbnation.com/images/Books/cover%20rev%204_140px.jpg"&gt;&lt;img style="CURSOR: hand" alt="" src="http://www.smbnation.com/images/Books/cover%20rev%204_140px.jpg" border="0" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;Description:&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;The "new and improved" version of our Microsoft Test Certification book. Covers Exams 70-282 and 70-631.&lt;br /&gt;&lt;br /&gt;Based on our previous exam cram, this book has been updated, using tips and tricks from the original release, deep dive information from the "70-282 Exam Update Guide" and then some!&lt;br /&gt;&lt;br /&gt;NEW! 70-631 - Three chapters in the book also cover the Microsoft exam: TS: Windows SharePoint Services 3.0, Configuring written by Mei Ying Lim, a SharePoint MVP in Singapore.&lt;br /&gt;&lt;br /&gt;Release Date: December 15, 2007&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;When Beatrice asked me to help with the chapters for the WSS exam, I did not believe that all that material could be covered in three chapters. However, looking at the material versus what was required in the examination, I was convinced. If you are looking for a fast way to get all the information you require to pass &lt;a href="http://www.microsoft.com/learning/exams/70-631.mspx"&gt;70-631: TS: Windows SharePoint Services 3.0, Configuring&lt;/a&gt;, then this is the book for you!&lt;br /&gt;&lt;br /&gt;It condenses what you need to know for the exam in easy to digest bits. Plus it links to relevant sites on the internet if you need to deep-dive into specific areas. Its a no nonsense primer on getting you up to speed on 70-631 in the shortest time possible.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.smbnation.com/bookstore/70-282.htm"&gt;Order it now!&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7647587-6331167605076263998?l=meiyinglim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.smbnation.com/bookstore/70-282.htm' title='Microsoft Small Business Specialist Primer: Your Certification Path to Success!'/><link rel='replies' type='application/atom+xml' href='http://meiyinglim.blogspot.com/feeds/6331167605076263998/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7647587&amp;postID=6331167605076263998&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/6331167605076263998'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/6331167605076263998'/><link rel='alternate' type='text/html' href='http://meiyinglim.blogspot.com/2008/01/microsoft-small-business-specialist.html' title='Microsoft Small Business Specialist Primer: Your Certification Path to Success!'/><author><name>Mei Ying</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7647587.post-379649373350161087</id><published>2008-01-08T14:06:00.000+08:00</published><updated>2008-01-09T09:13:47.054+08:00</updated><title type='text'>A brand new year, a brand new start</title><content type='html'>If I was Hiro Nakamura and teleported myself back to the start of 2007, I would still find it impossible to predict how the year would end. 2007 was a year of twists, turns and curveballs that led to an unpredictable series of events.&lt;br /&gt;&lt;br /&gt;For starters, I've left Avanade. My new job is with a local investment company. Will I miss the world of consulting? Probably. Will I consider going back to that line of work? Maybe. But until then, I will settle for what I have now, which is considerable more time to persue personal projects. From little things like teaching the dog to fetch the papers,picking up new cooking recipes to catching Martha Stewart on TV (oops! Did I just 'fess up on that?). In my previous job, I just wasn't able to find the time to enjoy the simple pleasures of life. Time was flying by too fast. June felt like March and November felt like April. I guess it was just time to do things a little differently to achieve a different result. Thanks to everyone who helped with the job search. Next round of drinks will be on me :-)&lt;br /&gt;&lt;br /&gt;I've also been renewed as an &lt;a href="http://mvp.support.microsoft.com/"&gt;MVP&lt;/a&gt;! Its definitely a great honour to be part of this wonderful program. I've learnt a lot from the community. This year, I hope to give back a lot more than I've taken from it. Its great to work with a product like SharePoint. Kinda like being part of a worldwide movement but for computers and tech geeks. Plus, in the coming future, I'm going to be looking at it seriously from the viewpoint of an end-user. Will I feel the same way about SharePoint after that? We'll see :-) But I'll definitely still be running my own mini-code projects. You can take the geek away from a computer but you can't take the computer away from the geek.&lt;br /&gt;&lt;br /&gt;2008 is going to be an exciting year. I just know it!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7647587-379649373350161087?l=meiyinglim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://meiyinglim.blogspot.com/feeds/379649373350161087/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7647587&amp;postID=379649373350161087&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/379649373350161087'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/379649373350161087'/><link rel='alternate' type='text/html' href='http://meiyinglim.blogspot.com/2008/01/brand-new-year-brand-new-start.html' title='A brand new year, a brand new start'/><author><name>Mei Ying</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7647587.post-2176800489741108706</id><published>2007-10-25T17:12:00.000+08:00</published><updated>2007-10-25T18:00:18.583+08:00</updated><title type='text'>Programatically Organizing Web Parts in a Gallery</title><content type='html'>The other day we were given the challenge of organizing web parts for "my site" site collections.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The interesting thing about "my sites" is that they are created on the fly, which rules out the option of &lt;a href="http://office.microsoft.com/en-us/winsharepointadmin/HA011608541033.aspx"&gt;manually organizing the web parts&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;We could deploy a feature that adds web parts to the gallery by &lt;a href="http://msdn2.microsoft.com/en-us/library/ms441170.aspx"&gt;provisioning the *.dwp and *.webpart files&lt;/a&gt;. However, there doesn't seem to be an easy way to delete existing web parts that the customer wishes to hide from the list.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;So what we did eventually was to manage the list through code. Using a similar technique described in the article, &lt;a href="http://blogs.msdn.com/sharepoint/archive/2007/03/22/customizing-moss-2007-my-sites-within-the-enterprise.aspx"&gt;Customizing MOSS 2007 My Sites within the enterprise&lt;/a&gt;, we ran a script to organize the web parts within each "My Site" web part gallery. The script essentially performs the following steps:&lt;br /&gt;&lt;br /&gt;a. Get an instance of the web part gallery&lt;br /&gt;b. Deletes all web parts in the gallery&lt;br /&gt;c. Adds only the required web parts to the gallery.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;And of course, it runs only once, when the site is created.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;u&gt;Getting an instance of the web part gallery&lt;/u&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;The first step in process is to get an instance of the web part gallery. Simply get an instance of the list named "Web Part Gallery" from the root web site.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;Dim webPartGallery As SPList = SPContext.Current.Site.RootWeb.Lists("Web Part Gallery")&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;u&gt;Deleting all web parts in the gallery&lt;/u&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Next, we web ahead to delete all web parts in the list. Well, we could have skipped this step. But in our case, the requirement was to completely change the way the web parts were listed, so it didn't make much sense to keep the existing structure.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;Dim webPartsCount As Integer = webPartGallery.ItemCount&lt;br /&gt;Dim arrWebParts As New ArrayList()&lt;br /&gt;For i As Integer = 0 To webPartsCount - 1&lt;br /&gt;   arrWebParts.Add(webPartGallery.Items(i).ID)&lt;br /&gt;Next&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;&lt;br /&gt;For Each webPartId As Integer In arrWebParts&lt;br /&gt;   webPartGallery.Items.DeleteItemById(webPartId)&lt;br /&gt;Next&lt;br /&gt;&lt;br /&gt;webPartGallery.Update()&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;u&gt;Adding web parts to the gallery&lt;/u&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Finally, we add web parts to the gallery. To do so, we create SPFile objects and upload them to the "/_catalogs/wp/" folder.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The idea is to build a string for the web part description file (*.dwp or *.webpart) and load it as a byte array to the folder. In this example, we create a method that builds up a *.dwp file.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;Private Sub AddWebPartToGallery(ByVal assembly As String, ByVal typeName As String, ByVal title As String, ByVal description As String, ByVal partImageLarge As String, ByVal partImageSmall As String, ByVal web As SPWeb, ByVal webPartUrl As String, ByVal group As String, ByVal quickAddGroup As String) &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;font-size:85%;"&gt;&lt;/span&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;&lt;br /&gt;Dim sb As New StringBuilder()&lt;br /&gt;&lt;br /&gt;Dim sb As New StringBuilder()&lt;br /&gt;sb.Append("&lt;?xml version=""1.0"" encoding=""utf-8""?&gt;")&lt;br /&gt;sb.Append("&amp;lt;webpart xmlns=""&gt;")&lt;br /&gt;sb.Append("&amp;lt;assembly&gt;" + assembly + "&amp;lt;/assembly&gt;")&lt;br /&gt;sb.Append("&amp;lt;typename&gt;" + typeName + "&amp;lt;/typename&gt;")&lt;br /&gt;sb.Append("&amp;lt;title&gt;" + title + "&amp;lt;/title&gt;")&lt;br /&gt;sb.Append("&amp;lt;description&gt;" + description + "&amp;lt;/description&gt;")&lt;br /&gt;sb.Append("&amp;lt;partimagelarge&gt;" + partImageLarge + "&amp;lt;/partimagelarge&gt;")&lt;br /&gt;sb.Append("&amp;lt;partimagesmall&gt;" + partImageSmall + "&amp;lt;/partimagesmall&gt;")&lt;br /&gt;sb.Append("&amp;lt;chrometype&gt;TitleOnly&amp;lt;/chrometype&gt;")&lt;br /&gt;sb.Append("&amp;lt;/webpart&gt;")&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;&lt;br /&gt;Dim file As SPFile = web.Files.Add("_catalogs/wp/" + webPartUrl, New System.Text.UTF8Encoding().GetBytes(sb.ToString()), True)&lt;br /&gt;file.Properties("Group") = group&lt;br /&gt;file.Properties("QuickAddGroups") = quickAddGroup&lt;br /&gt;file.Update()&lt;br /&gt;web.Update()&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;End Sub&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;font-size:85%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;What's nice about it is that you could also supply information about the Group and quick add groups as well. Which means you get to manage how the web parts are displayed in the web part gallery picker.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;We could easily create a smiliar method that handles *.webpart files.&lt;br /&gt;&lt;br /&gt;Here's an example that calls the AddwebPartToGallery() method to add a summary link web part to a custom group, "My Stuff".&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;AddWebPartToGallery("Microsoft.SharePoint.Publishing, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c", "Microsoft.SharePoint.Publishing.WebControls.SummaryLinkWebPart", "Summary Link Web Part", "Use to display links on your web page that can be grouped and styled and can be organized by dragging and dropping.", "/_layouts/images/webpart.gif", "/_layouts/images/webpart.gif", rootWeb, "SummaryLink.dwp", "My Stuff", "My Stuff")&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;And the end result of running the script is a web part gallery picker page that contains only the summary links web part in a category named, "My Stuff".&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_zBTFWrPKqGw/RyBnQAOAZ8I/AAAAAAAAAB8/RPVEdVBavtU/s1600-h/webpartgallery.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5125209900581939138" style="CURSOR: hand" alt="" src="http://3.bp.blogspot.com/_zBTFWrPKqGw/RyBnQAOAZ8I/AAAAAAAAAB8/RPVEdVBavtU/s400/webpartgallery.jpg" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7647587-2176800489741108706?l=meiyinglim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://meiyinglim.blogspot.com/feeds/2176800489741108706/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7647587&amp;postID=2176800489741108706&amp;isPopup=true' title='8 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/2176800489741108706'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/2176800489741108706'/><link rel='alternate' type='text/html' href='http://meiyinglim.blogspot.com/2007/10/programatically-organizing-web-parts-in.html' title='Programatically Organizing Web Parts in a Gallery'/><author><name>Mei Ying</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_zBTFWrPKqGw/RyBnQAOAZ8I/AAAAAAAAAB8/RPVEdVBavtU/s72-c/webpartgallery.jpg' height='72' width='72'/><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7647587.post-7781647098424732250</id><published>2007-10-25T16:52:00.000+08:00</published><updated>2007-10-25T17:01:45.929+08:00</updated><title type='text'>I'm a Charter Member for SharePoint:Configuring!</title><content type='html'>A pleasant surprise came through the mail the other day. I received a certificate for one of the &lt;a href="http://meiyinglim.blogspot.com/2007/01/im-mcts-for-sharepoint-configuring.html"&gt;SharePoint exams I took last year&lt;/a&gt;. It says that I am a Charter Member for the MCTS: SharePoint:Configuring exam. I don't really know what being a charter member really means, but it sounds really cool! It really made my day :-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7647587-7781647098424732250?l=meiyinglim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://meiyinglim.blogspot.com/feeds/7781647098424732250/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7647587&amp;postID=7781647098424732250&amp;isPopup=true' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/7781647098424732250'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/7781647098424732250'/><link rel='alternate' type='text/html' href='http://meiyinglim.blogspot.com/2007/10/im-charter-member-for.html' title='I&apos;m a Charter Member for SharePoint:Configuring!'/><author><name>Mei Ying</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7647587.post-5810201858777059168</id><published>2007-06-22T11:09:00.000+08:00</published><updated>2007-06-22T11:56:30.802+08:00</updated><title type='text'>File or arguments not valid for site template</title><content type='html'>I was trying to use stsadm to create a SharePoint 2007 site collection using the &lt;span style="font-family:courier new;"&gt;createsiteinnewdb&lt;/span&gt; operation. I specified the site template name using the &lt;span style="font-family:courier new;"&gt;-sitetemplate&lt;/span&gt; switch but I kept getting the following error:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;File or arguments not valid for site template [template name]&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Here's the full command I was using:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;stsadm -o createsiteinnewdb -url &lt;/span&gt;&lt;a href="http://someurl/"&gt;&lt;span style="font-family:courier new;"&gt;http://someurl/&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:courier new;"&gt; -sitetemplate &lt;strong&gt;"publishing portal"&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Turns out that silly me was supplying the template's display name and not its system name. So in order for the command to work correctly, I should have used &lt;span style="font-family:courier new;"&gt;"blankinternetcontainer#0"&lt;/span&gt; instead of &lt;span style="font-family:courier new;"&gt;"publishing portal"&lt;/span&gt;. Where "blankinternetcontainer" is the name of the site definition and "0" is the configuration to be used.&lt;br /&gt;&lt;span style="font-family:Courier New;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;stsadm -o createsiteinnewdb -url &lt;/span&gt;&lt;a href="http://someurl/"&gt;&lt;span style="font-family:courier new;"&gt;http://someurl/&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:courier new;"&gt; -sitetemplate &lt;strong&gt;"blankinternetcontainer#0"&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-family:Courier New;"&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;A quick way to get a list of template names is to navigate to the following page :&lt;a href="http://website/_layouts/templatepick.aspx"&gt;http://website/_layouts/templatepick.aspx&lt;/a&gt;. Right-click on the page, view the source and pick out the name of the template from the values of the list items.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7647587-5810201858777059168?l=meiyinglim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://meiyinglim.blogspot.com/feeds/5810201858777059168/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7647587&amp;postID=5810201858777059168&amp;isPopup=true' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/5810201858777059168'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/5810201858777059168'/><link rel='alternate' type='text/html' href='http://meiyinglim.blogspot.com/2007/06/file-or-arguments-not-valid-for-site.html' title='File or arguments not valid for site template'/><author><name>Mei Ying</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7647587.post-5755610740444953530</id><published>2007-04-27T13:24:00.000+08:00</published><updated>2007-04-27T13:34:56.386+08:00</updated><title type='text'>Content Management for SMB</title><content type='html'>&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td valign="top"&gt;&lt;a href="http://www.smbnation.com/smbpc.htm"&gt;&lt;img src="http://www.smbnation.com/images/magcovers/magad_150w_sidebar.jpg" border="0" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;td valign="top"&gt;&lt;p&gt;&lt;br /&gt;&lt;a href="http://www.smbnation.com"&gt;SMB Nation&lt;/a&gt; has published an article I've written about SharePoint in its April edition. Its titled &lt;strong&gt;"Content Management for SMB"&lt;/strong&gt; (Small and Medium businesses). It gives a quick overview about the SharePoint's coolest content management features. &lt;/p&gt;&lt;p&gt;Get a copy of the magazine at your nearest magazine stand. And if you are a Microsoft Small Business Specialist, &lt;a href="http://www.smbnation.com/smbpc.htm"&gt;sign up for a free subscription&lt;/a&gt;!&lt;br /&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7647587-5755610740444953530?l=meiyinglim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.smbnation.com' title='Content Management for SMB'/><link rel='replies' type='application/atom+xml' href='http://meiyinglim.blogspot.com/feeds/5755610740444953530/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7647587&amp;postID=5755610740444953530&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/5755610740444953530'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/5755610740444953530'/><link rel='alternate' type='text/html' href='http://meiyinglim.blogspot.com/2007/04/content-management-for-smb.html' title='Content Management for SMB'/><author><name>Mei Ying</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7647587.post-6811881886724975728</id><published>2007-03-13T17:16:00.000+08:00</published><updated>2007-05-14T14:51:01.379+08:00</updated><title type='text'>Exploring the Properties of the HTML Editor Field Control</title><content type='html'>I was trying to figure out the easiest way to hide/show buttons on the HTML Editor Field Control.&lt;br /&gt;&lt;br /&gt;Strangely, there's some &lt;a href="http://msdn2.microsoft.com/en-us/library/ms561507.aspx"&gt;documentation&lt;/a&gt; on the topic but it doesn't go into the details about the buttons.&lt;br /&gt;&lt;br /&gt;I thought I'd write about the results of my little experiment. The following tabulates the buttons that get activated/deactivated when specific properties are turned on/off.&lt;br /&gt;&lt;br /&gt;&lt;table&gt;&lt;p&gt;&lt;p&gt;&lt;/p&gt;&lt;tbody&gt;&lt;tr style="COLOR: white" bgcolor="navy"&gt;&lt;td&gt;&lt;b&gt;Property&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;Value&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;Buttons Activated&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="top"&gt;(Default)&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;ul&gt;&lt;li&gt;Cut&lt;/li&gt;&lt;li&gt;Copy&lt;/li&gt;&lt;li&gt;Paste&lt;/li&gt;&lt;li&gt;Undo&lt;/li&gt;&lt;li&gt;Redo&lt;/li&gt;&lt;li&gt;Left-to-right &lt;li&gt;Right-to-left&lt;/li&gt;&lt;li&gt;Remove Inline Styles&lt;/li&gt;&lt;li&gt;Help&lt;/li&gt;&lt;li&gt;Select&lt;/li&gt;&lt;li&gt;Apply Paragraph Format - Normal&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr bgcolor="lightblue"&gt;&lt;td valign="top"&gt;AllowFonts&lt;br /&gt;DisableBasicFormattingButtons&lt;/td&gt;&lt;td valign="top"&gt;True&lt;br /&gt;False&lt;/td&gt;&lt;td&gt;&lt;ul&gt;&lt;li&gt;Font&lt;/li&gt;&lt;li&gt;Font Size&lt;/li&gt;&lt;li&gt;Text Color&lt;/li&gt;&lt;li&gt;Text Highlight Color&lt;/li&gt;&lt;li&gt;Align Left&lt;/li&gt;&lt;li&gt;Center&lt;/li&gt;&lt;li&gt;Align Right&lt;/li&gt;&lt;/ul&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="top"&gt;Allow Headings&lt;/td&gt;&lt;td valign="top"&gt;True&lt;/td&gt;&lt;td&gt;&lt;ul&gt;&lt;li&gt;Apply Paragraph format &lt;ul&gt;&lt;li&gt;Address&lt;/li&gt;&lt;li&gt;Heading 1&lt;/li&gt;&lt;li&gt;Heading 2&lt;/li&gt;&lt;li&gt;Heading 3&lt;/li&gt;&lt;li&gt;Heading 4&lt;/li&gt;&lt;li&gt;Heading 5&lt;/li&gt;&lt;li&gt;Heading 6&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr bgcolor="lightblue"&gt;&lt;td valign="top"&gt;AllowHtmlSourceEditing&lt;/td&gt;&lt;td valign="top"&gt;True&lt;/td&gt;&lt;td&gt;Edit HTML Source&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="top"&gt;Allow Hyperlinks&lt;br /&gt;AllowExternalUrls&lt;/td&gt;&lt;td valign="top"&gt;True&lt;br /&gt;True&lt;/td&gt;&lt;td&gt;&lt;ul&gt;&lt;li&gt;Insert/Edit Hyperlink (allows external URLs as well)&lt;/li&gt;&lt;li&gt;Remove Hyperlink&lt;/li&gt;&lt;/ul&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr bgcolor="lightblue"&gt;&lt;td valign="top"&gt;Allow Hyperlinks&lt;br /&gt;AllowExternalUrls&lt;/td&gt;&lt;td valign="top"&gt;True&lt;br /&gt;False&lt;/td&gt;&lt;td&gt;&lt;ul&gt;&lt;li&gt;Insert/Edit Hyperlink (allows only internal URLs)&lt;/li&gt;&lt;li&gt;Remove Hyperlink&lt;/li&gt;&lt;/ul&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="top"&gt;AllowImages&lt;/td&gt;&lt;td valign="top"&gt;True&lt;/td&gt;&lt;td&gt;&lt;ul&gt;&lt;li&gt;Insert/Edit Image&lt;/li&gt;&lt;/ul&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr bgcolor="lightblue"&gt;&lt;td valign="top"&gt;Allow Lists&lt;/td&gt;&lt;td valign="top"&gt;True&lt;/td&gt;&lt;td&gt;&lt;ul&gt;&lt;li&gt;Numbered Lists&lt;/li&gt;&lt;li&gt;Bulleted Lists&lt;/li&gt;&lt;li&gt;Apply Paragraph Format &lt;ul&gt;&lt;li&gt;Bulleted List&lt;/li&gt;&lt;li&gt;Definition&lt;/li&gt;&lt;li&gt;Definition Term&lt;/li&gt;&lt;li&gt;Directory List&lt;/li&gt;&lt;li&gt;Menu List&lt;/li&gt;&lt;li&gt;Numbered List&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="top"&gt;AllowReusableContent&lt;/td&gt;&lt;td valign="top"&gt;True&lt;/td&gt;&lt;td&gt;&lt;ul&gt;&lt;li&gt;Insert Reusable Content&lt;/li&gt;&lt;/ul&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr bgcolor="lightblue"&gt;&lt;td valign="top"&gt;AllowTables&lt;/td&gt;&lt;td valign="top"&gt;True&lt;/td&gt;&lt;td&gt;&lt;ul&gt;&lt;li&gt;Insert Table&lt;/li&gt;&lt;li&gt;Edit Table&lt;/li&gt;&lt;li&gt;Show/Hide Gridlines&lt;/li&gt;&lt;li&gt;Table Operations&lt;/li&gt;&lt;li&gt;Merge Cell&lt;/li&gt;&lt;li&gt;Change Column Width and Row Height&lt;/li&gt;&lt;/ul&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="top"&gt;AllowTextMarkup&lt;br /&gt;DisableBasicFormattingButtons&lt;br /&gt;&lt;/td&gt;&lt;td valign="top"&gt;True&lt;br /&gt;True&lt;/td&gt;&lt;td&gt;&lt;ul&gt;&lt;li&gt;Apply Paragraph Format -Formatted&lt;/li&gt;&lt;/ul&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr bgcolor="lightblue"&gt;&lt;td valign="top"&gt;AllowTextMarkup&lt;br /&gt;DisableBasicFormattingButtons&lt;br /&gt;&lt;/td&gt;&lt;td valign="top"&gt;True&lt;br /&gt;False&lt;/td&gt;&lt;td&gt;&lt;ul&gt;&lt;li&gt;Apply Paragraph Format -Formatted&lt;/li&gt;&lt;li&gt;Bold&lt;/li&gt;&lt;li&gt;Italics&lt;/li&gt;&lt;li&gt;Underline&lt;/li&gt;&lt;li&gt;Align Left&lt;/li&gt;&lt;li&gt;Center&gt;&lt;/li&gt;&lt;li&gt;Align Right&lt;/li&gt;&lt;li&gt;Decrease Indent&lt;/li&gt;&lt;li&gt;Increase Indent&lt;/li&gt;&lt;/ul&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="top"&gt;DisableCustomStyles&lt;/td&gt;&lt;td valign="top"&gt;False&lt;/td&gt;&lt;td&gt;&lt;ul&gt;&lt;li&gt;Styles&lt;/li&gt;&lt;/ul&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;There's an additional property, &lt;b&gt;DisableBasicFormattingButtons&lt;/b&gt;, which as the name suggests, disables basic formatting buttons. And these are the buttons it considers "basic:&lt;br /&gt;&lt;br /&gt;&lt;table&gt;&lt;tr bgcolor="navy"&gt;&lt;td&gt;Property&lt;/td&gt;&lt;td&gt;Value&lt;/td&gt;&lt;td&gt;Buttons Deactivated&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;DisableBasicFormattingButtons&lt;/td&gt;&lt;td&gt;False&lt;/td&gt;&lt;td&gt;&lt;ul&gt;&lt;li&gt;Font Size&lt;/li&gt;&lt;li&gt;Font&lt;li&gt;Bold&lt;/li&gt;&lt;li&gt;Italics&lt;/li&gt;&lt;li&gt;Underline&lt;/li&gt;&lt;li&gt;Align Left&lt;/li&gt;&lt;li&gt;Center&lt;/li&gt;&lt;li&gt;Align Right&lt;/li&gt;&lt;li&gt;Decrease Indent&lt;/li&gt;&lt;li&gt;Increase Indent&lt;/li&gt;&lt;li&gt;Text Color&lt;/li&gt;&lt;li&gt;Text Highlight Color&lt;/li&gt;&lt;/ul&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7647587-6811881886724975728?l=meiyinglim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://meiyinglim.blogspot.com/feeds/6811881886724975728/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7647587&amp;postID=6811881886724975728&amp;isPopup=true' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/6811881886724975728'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/6811881886724975728'/><link rel='alternate' type='text/html' href='http://meiyinglim.blogspot.com/2007/03/exploring-properties-of-html-editor.html' title='Exploring the Properties of the HTML Editor Field Control'/><author><name>Mei Ying</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7647587.post-116917659692558869</id><published>2007-01-19T11:15:00.000+08:00</published><updated>2007-01-19T11:16:37.723+08:00</updated><title type='text'>Integrating Domino Data with Microsoft SharePoint Services</title><content type='html'>Interesting &lt;a href="http://www-128.ibm.com/developerworks/lotus/library/domino-sharepoint/?S_TACT=105AGX54&amp;amp;S_CMP=NLLO"&gt;article&lt;/a&gt; by Tony Patton on how IBM's Domino can integrate with Microsoft SharePoint Services. It uses the domino agent to retrieve XML content from the Lotus notes database which can then be consumed by SharePoint. Another possible solution to integrate SharePoint and Domino.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7647587-116917659692558869?l=meiyinglim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www-128.ibm.com/developerworks/lotus/library/domino-sharepoint/?S_TACT=105AGX54&amp;S_CMP=NLLO' title='Integrating Domino Data with Microsoft SharePoint Services'/><link rel='replies' type='application/atom+xml' href='http://meiyinglim.blogspot.com/feeds/116917659692558869/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7647587&amp;postID=116917659692558869&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/116917659692558869'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/116917659692558869'/><link rel='alternate' type='text/html' href='http://meiyinglim.blogspot.com/2007/01/integrating-domino-data-with-microsoft.html' title='Integrating Domino Data with Microsoft SharePoint Services'/><author><name>Mei Ying</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7647587.post-116841498951106344</id><published>2007-01-10T15:34:00.000+08:00</published><updated>2007-01-12T04:37:32.713+08:00</updated><title type='text'>Displaying the Correct Titles of Lotus Notes Documents in SharePoint Search Results</title><content type='html'>&lt;p&gt;&lt;a href="http://www.sharepointblogs.com/helloitsliam"&gt;Liam&lt;/a&gt; has posted a &lt;a href="http://www.sharepointblogs.com/helloitsliam/archive/2007/01/09/17654.aspx"&gt;great article&lt;/a&gt; on configuring SharePoint to search Lotus Notes.&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;The post reminded me that I missed out a part of the configuration steps - how to get the titles to show up correctly. By default, the search results display the GUID of the Notes document which isn't pretty. For example, you may get results which resemble the following:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://photos1.blogger.com/x/blogger/4033/295/1600/788769/SearchResults.gif"&gt;&lt;img alt="" src="http://photos1.blogger.com/x/blogger/4033/295/320/386955/SearchResults.png" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Having Guids as titles really does not make any sense to anyone reading it.&lt;br /&gt;&lt;br /&gt;What I like best about this part of the configuration is that it demonstrates how flexible SharePoint can be. Here, we have a Lotus Notes document which is at best an alien to SharePoint. It was created by a completely different organisation (IBM) and may be tweaked and customized by Notes developers anyway they deem fit. Yet, we can easily configure SharePoint to understand what fields the Notes document has. Pretty neat, huh?&lt;br /&gt;&lt;br /&gt;The answer lies in the Metadata property mappings. You can access the Metadata Property Mappings page from &lt;span style="color:#009900;"&gt;SharedServices Administration Page &gt; Search Settings &gt; Metadata property mappings&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;1. Where is the Title Stored?&lt;/b&gt;&lt;br /&gt;First,we need to take a look at the fields available in our Lotus Notes document. Lotus Notes documents stores its Title/Subject in a variety of places. To locate the name of the field, we'll have to take a look at the document's fields. To do so, simply open the document using the Lotus Notes client. Right-click anywhere on the document and select &lt;strong&gt;Document Properties...&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;A dialog appears showing the document's properties. Look for the field that contain's its title. For example, in the diagram below, the field is named &lt;strong&gt;Subject&lt;/strong&gt;&lt;br /&gt;&lt;a href="http://photos1.blogger.com/x/blogger/4033/295/1600/96172/LotusNotesDocumentProperties.gif"&gt;&lt;img alt="" src="http://photos1.blogger.com/x/blogger/4033/295/320/752901/LotusNotesDocumentProperties.gif" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;b&gt;2. Link the SharePoint's Title field to the Lotus Notes Document's Title field&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Next, we will use the Metadata property mappings administration page to link the document's Title field to SharePoint's Title field.&lt;br /&gt;&lt;br /&gt;In the Metadata property mappings administration page, click on the managed property named &lt;strong&gt;Title&lt;/strong&gt; (you may have to navigate to the second page to find it) and select &lt;strong&gt;Edit/Map Property&lt;/strong&gt;.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://photos1.blogger.com/x/blogger/4033/295/1600/52266/ManagedProperty_Title.png"&gt;&lt;img alt="" src="http://photos1.blogger.com/x/blogger/4033/295/320/974561/ManagedProperty_Title.png" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;In the Mappings to crawled properties section, click &lt;strong&gt;Add Mapping&lt;/strong&gt;. The Crawled property selection dialog appears in a new window.&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;In the &lt;strong&gt;Select Category&lt;/strong&gt; field, choose &lt;strong&gt;Notes&lt;/strong&gt;. Select the property you would like to map to. In our case, we will choose the &lt;strong&gt;Subject&lt;/strong&gt; field. Click &lt;b&gt;OK&lt;/b&gt;.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://photos1.blogger.com/x/blogger/4033/295/1600/234563/AddMapping.gif"&gt;&lt;img alt="" src="http://photos1.blogger.com/x/blogger/4033/295/320/858496/AddMapping.png" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Back at the Edit Managed Property page, click the &lt;b&gt;Move Up&lt;/b&gt; button twice to give the notesfield higher priority over the &lt;strong&gt;Basic:displaytitle(Text)&lt;/strong&gt; field. Click &lt;b&gt;OK&lt;/b&gt; to save the changes.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://photos1.blogger.com/x/blogger/4033/295/1600/507971/Mapping.gif"&gt;&lt;img alt="" src="http://photos1.blogger.com/x/blogger/4033/295/320/932752/Mapping.png" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;b&gt;3. Start a Full Crawl&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Finally, start a full crawl so that SharePoint and index the new Notes property. After the crawl completes, you will find that the correct title now appears in the Search results!&lt;br /&gt;&lt;br /&gt;&lt;a href="http://photos1.blogger.com/x/blogger/4033/295/1600/957381/searchresults_correct.gif"&gt;&lt;img alt="" src="http://photos1.blogger.com/x/blogger/4033/295/320/777084/searchresults_correct.png" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7647587-116841498951106344?l=meiyinglim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://meiyinglim.blogspot.com/feeds/116841498951106344/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7647587&amp;postID=116841498951106344&amp;isPopup=true' title='8 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/116841498951106344'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/116841498951106344'/><link rel='alternate' type='text/html' href='http://meiyinglim.blogspot.com/2007/01/displaying-correct-titles-of-lotus.html' title='Displaying the Correct Titles of Lotus Notes Documents in SharePoint Search Results'/><author><name>Mei Ying</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7647587.post-116805298074098353</id><published>2007-01-06T11:07:00.000+08:00</published><updated>2007-01-06T12:19:17.620+08:00</updated><title type='text'>I've been tagged - 5 Things you may not know about me</title><content type='html'>&lt;a href="http://blogs.technet.com/stefan_gossner/archive/2007/01/05/i-ve-been-tagged-five-things-you-might-not-know-about-me.aspx"&gt;Stefan&lt;/a&gt;, my co-writer for the MCMS books we've written has tagged me. I'm suppose to list 5 personal details that you may not know about. Well, I've never really shared any personal secrets on my blog before (it's a Tech blog), so this will be a first :-)&lt;br /&gt;&lt;br /&gt;1. I was born a left-hander but was trained to use my right hand to write. Now, I perform most tasks with my left hand except holding a pen or mouse.&lt;br /&gt;&lt;br /&gt;2. I once shot a 3-in-1 at Air Rifle practice when I was at &lt;a href="http://www.rjc.edu.sg/newrjc/"&gt;Junior College&lt;/a&gt;. And yes, I shoot better with my left arm than my right.&lt;br /&gt;&lt;br /&gt;3. My childhood ambition was to be a vet. But the encounter with my neighbour's Apple IIe (he was an Apple engineer) changed all that. My brother and I would sneak over to his house to play computer games with his son and run back before he got home. I was 7 years old then.&lt;br /&gt;&lt;br /&gt;4. I studied electrical engineering in &lt;a href="http://www.nus.edu.sg/"&gt;University&lt;/a&gt;, specializing in wireless technologies. My final year thesis was about building a "multi-layered suspended microstrip low pass filter". It gave me the taste of being on the bleeding edge of technology. I enjoyed it immensely but thought it was better matched with my interest in computers.&lt;br /&gt;&lt;br /&gt;5. I started participating in the MCMS community with a pseudonym so that I could keep my activities hidden from the watchful eyes of the then conservative culture at my ex-company. You may have known me as &lt;a href="http://groups.google.com/groups/search?hl=en&amp;ie=UTF-8&amp;amp;amp;amp;amp;oe=UTF-8&amp;amp;q=%22trevor+grant%22"&gt;"Trevor".&lt;/a&gt; No, I'm neither a cross-dresser nor someone with a complex alter ego. The name was chosen randomly such that no one who looked at it could remotely link it to me. I have since changed jobs and retired Trevor.&lt;br /&gt;&lt;br /&gt;I've now got the license to tag 5 more people and I'm tagging &lt;a href="http://community.sgdotnet.org/blogs/kitkai/"&gt;Kit Kai&lt;/a&gt;, &lt;a href="http://firechewy.com/blog/"&gt;Chewy&lt;/a&gt;, &lt;a href="http://www.howardlo.com/"&gt;Howard&lt;/a&gt;, &lt;a href="http://serena-yeoh.blogspot.com/"&gt;Serena&lt;/a&gt; and &lt;a href="http://lilianq-thatwasthenthisisnow.blogspot.com/"&gt;Lilian&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7647587-116805298074098353?l=meiyinglim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://meiyinglim.blogspot.com/feeds/116805298074098353/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7647587&amp;postID=116805298074098353&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/116805298074098353'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/116805298074098353'/><link rel='alternate' type='text/html' href='http://meiyinglim.blogspot.com/2007/01/ive-been-tagged-5-things-you-may-not.html' title='I&apos;ve been tagged - 5 Things you may not know about me'/><author><name>Mei Ying</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7647587.post-116781082573802738</id><published>2007-01-03T15:53:00.000+08:00</published><updated>2007-02-09T05:28:45.483+08:00</updated><title type='text'>Using SharePoint 2007 to Index a Lotus Notes Database</title><content type='html'>&lt;p&gt;A couple of months ago, we wrapped up a POC that used SharePoint 2007 to index a Lotus Notes Database.&lt;/p&gt;&lt;p&gt;There exist a few good articles on this topic. Notably, &lt;a href="http://blogs.msdn.com/edhild/articles/473060.aspx"&gt;Ed Hild's blog&lt;/a&gt; and &lt;a href="http://office.microsoft.com/en-us/sharepointportaladmin/HA011603581033.aspx"&gt;Microsoft's help file&lt;/a&gt;. However, the how-tos are based on SharePoint 2001/2003. The good news is: this piece of the puzzle has not changed very much since SharePoint 2003. Most of the steps are still applicable. Nevertheless, here's a brief update on what we did for SharePoint 2007.&lt;/p&gt;&lt;p&gt;It's probably worthwhile to note that SharePoint is able to honour notes security with security trimming. This means that end-users will only see documents that they have access to. However, to keep things simple in this how-to, we will skip the security portion. If you need to implement security trimming, take a look at &lt;a href="http://support.microsoft.com/default.aspx?scid=kb;EN-US;Q288816"&gt;Knowledge Base article Q288816&lt;/a&gt;. Truth be told, that's not a trivial task and whether it works depends largely on environmental factors. Hopefully, Microsoft fixes these issues in subsequent hotfix and/or service pack releases&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;b&gt;Step 1. Install the Lotus Notes Client&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;First, we will install the Lotus Notes client on the SharePoint Search server performing the indexing. Depending on the existing environment, you can choose to install Lotus Notes Client R5 or R6.x. For our POC, we chose to install R5. Tests on our VPCs showed that R6.5 could be used as well.&lt;br /&gt;&lt;br /&gt;Take note of the directory in which the application is installed (e.g. c:\lotus\notes\). We will require this bit of information later on in the configuration.&lt;br /&gt;&lt;br /&gt;Once the note client is installed, ensure that its able to connect to the server and databases successfully. The notes account will be the same one used by SharePoint to access and index the databases. Minimally, this account will require read access to the database - it should not need higher rights. &lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;b&gt;Step 2. Download the Lotus C++ API Toolkit&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;SharePoint requires a library file named lcppn30.dll. However, this file is not distributed with SharePoint so we will have to download it from &lt;a href="http://www-128.ibm.com/developerworks/lotus/downloads/toolkits.html"&gt;IBM's website&lt;/a&gt;. The file is packaged as part of the Lotus C++ API Toolkit. Once extracted, copy it to the C:\Program Files\Microsoft Office Servers\12.0\Bin directory.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Step 3. Run the Lotus Notes Index Setup Wizard&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;With the notes client installed and the lcppn30.dll file copied, we are ready to roll. Execute the NotesSetup.exe file located in the C:\Program Files\Microsoft Office Servers\12.0\Bin directory. This launches the Lotus Notes Index Setup Wizard.&lt;br /&gt;&lt;br /&gt;After the welcome screen, you will be presented with a dialog requesting you to enter: &lt;/p&gt;&lt;p&gt;1. The location of the notes.ini file (usually in the notes installation directory)&lt;br /&gt;2. The notes installation directory (we noted this down in step 1 e.g. c:\lotus\notes)&lt;br /&gt;3. The password of the account used to connect to the notes directory (the account has already been specified when we tested the connection earlier)&lt;br /&gt;4. Because we are ignoring notes security, we will check the box that says "Ignore Lotus Notes security while building an index.".&lt;br /&gt;&lt;br /&gt;&lt;a href="http://photos1.blogger.com/x/blogger/4033/295/1600/167954/LotusNotes1.gif"&gt;&lt;img alt="" src="http://photos1.blogger.com/x/blogger/4033/295/320/585010/LotusNotes1.png" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The last screen summarizes the settings to be configured. Click &lt;b&gt;Finish&lt;/b&gt; to commit the changes. And if all goes well, you will get a nice little message informing you that the configuration has succeeded.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://photos1.blogger.com/x/blogger/4033/295/1600/953722/LotusNotes3.gif"&gt;&lt;img alt="" src="http://photos1.blogger.com/x/blogger/4033/295/320/783317/LotusNotes3.png" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Step 4. Create a Lotus Notes content Source&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;After the Lotus Notes Index Setup Wizard successfully completes at least once, you get a new option to create a Lotus Notes content source.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://photos1.blogger.com/x/blogger/4033/295/1600/425220/LotusNotes2.gif"&gt;&lt;img alt="" src="http://photos1.blogger.com/x/blogger/4033/295/320/214124/LotusNotes2.png" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Choose to create a Lotus Notes content source and you get to select the server and database to index.&lt;br /&gt;&lt;br /&gt;Once created, the Lotus Notes content source can be managed just like any other SharePoint content sources.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Final Steps&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;We needed to convert the URLs generated by SharePoint to use the "notes://" protocol instead of the "http://" protocol as our databases were not web-enabled. But other than that, the solution was good to go!&lt;br /&gt;&lt;/p&gt;&lt;p&gt;If you encounter any problems, the &lt;a href="http://support.microsoft.com/search/default.aspx?catalog=LCID%3D1033&amp;spid=global&amp;amp;query=lotus+sharepoint&amp;adv=&amp;amp;mode=r&amp;amp;cat=False"&gt;knowledge base articles written for SharePoint 2001/2003&lt;/a&gt; may provides some clues.&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7647587-116781082573802738?l=meiyinglim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://meiyinglim.blogspot.com/feeds/116781082573802738/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7647587&amp;postID=116781082573802738&amp;isPopup=true' title='10 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/116781082573802738'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/116781082573802738'/><link rel='alternate' type='text/html' href='http://meiyinglim.blogspot.com/2007/01/using-sharepoint-2007-to-index-lotus.html' title='Using SharePoint 2007 to Index a Lotus Notes Database'/><author><name>Mei Ying</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>10</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7647587.post-116780515654718788</id><published>2007-01-03T13:41:00.000+08:00</published><updated>2007-01-04T09:21:42.310+08:00</updated><title type='text'>I'm an MCTS for SharePoint: Configuring!</title><content type='html'>Just received the good news that I've passed the beta exam for &lt;a href="http://www.microsoft.com/learning/exams/70-630.mspx"&gt;071-630, TS: Configuring Microsoft® Office SharePoint® Server 2007&lt;/a&gt;. Woot! It's my first exam for the new Microsoft certification track.&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#000099;"&gt;Update 4 Jan 07:&lt;/span&gt; I peered into my mailbox this morning and was surprised to see the letter notifying me that I've passed &lt;a href="http://www.microsoft.com/learning/exams/70-631.mspx"&gt;071-631, TS: Windows SharePoint Services, Configuring&lt;/a&gt; too! Coolness!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7647587-116780515654718788?l=meiyinglim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://meiyinglim.blogspot.com/feeds/116780515654718788/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7647587&amp;postID=116780515654718788&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/116780515654718788'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/116780515654718788'/><link rel='alternate' type='text/html' href='http://meiyinglim.blogspot.com/2007/01/im-mcts-for-sharepoint-configuring.html' title='I&apos;m an MCTS for SharePoint: Configuring!'/><author><name>Mei Ying</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7647587.post-116287439563269111</id><published>2006-11-07T12:36:00.000+08:00</published><updated>2007-02-01T06:05:25.823+08:00</updated><title type='text'>2007 Microsoft Office System Is Golden</title><content type='html'>&lt;p&gt;Finally!&lt;br /&gt;&lt;br /&gt;---&lt;br /&gt;REDMOND, Wash. — Nov. 6, 2006 — Microsoft Corp. today announced the completion of the 2007 Microsoft® Office system code and confirmed its release to manufacturing (RTM). This gold code milestone concludes the largest Microsoft Office beta program to date, with more than 3.5 million people downloading Beta 2. The unprecedented quantity of feedback from beta testers and customers helped the Office development team effectively validate product quality and optimize performance. Microsoft Office RTM also marks a critical step toward worldwide business availability of the 2007 Office system, Windows Vista™ operating system and Exchange Server 2007 on Nov. 30, 2006. To underscore the significance of this new day for business, Microsoft executives will participate in events around the globe, including an event with Microsoft CEO Steve Ballmer in New York. General availability of the products will follow in early 2007. &lt;a href="http://www.microsoft.com/presspass/press/2006/nov06/11-062007OfficeRTMPR.mspx"&gt;Read the entire article&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/7647587-116287439563269111?l=meiyinglim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.microsoft.com/presspass/press/2006/nov06/11-062007OfficeRTMPR.mspx' title='2007 Microsoft Office System Is Golden'/><link rel='replies' type='application/atom+xml' href='http://meiyinglim.blogspot.com/feeds/116287439563269111/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7647587&amp;postID=116287439563269111&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/116287439563269111'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/116287439563269111'/><link rel='alternate' type='text/html' href='http://meiyinglim.blogspot.com/2006/11/2007-microsoft-office-system-is-golden.html' title='2007 Microsoft Office System Is Golden'/><author><name>Mei Ying</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7647587.post-116116841467879264</id><published>2006-10-18T17:32:00.000+08:00</published><updated>2007-01-31T18:45:01.036+08:00</updated><title type='text'>Integrating Microsoft Commerce Server 2007 and MOSS</title><content type='html'>I have just completed an interesting proof-of-concept project that showed how MOSS and Commerce Server can complement each other in provisioning an eCommerce site.&lt;br /&gt;&lt;br /&gt;Traditionally, Commerce Server handles all commerce-type transactions, e.g. shopping carts, product catalogs, inventory, order management, etc.&lt;br /&gt;&lt;br /&gt;MOSS picks up where Commerce Server leaves off by putting forward web content management (versioning of product information, approval workflows), some level of collaboration (e.g. product review sub-sites) and generally handling the overall branding and management of the portal.&lt;br /&gt;&lt;br /&gt;Since both products leverage on ASP.NET 2.0, they integrate really nicely together. Kind of like building an eCommerce site on steroids :-)&lt;br /&gt;&lt;br /&gt;The trickiest bit, which suprisingly turned out to be a really smooth ride, was how to get MOSS linked up to Commerce Server. For an integrated solution, we absolutely needed to call Commerce Server APIs from MOSS. To add an additional level of complexity to the problem, we were also required to authenticate users using Commerce Server's UpmMembershipProvider.&lt;br /&gt;&lt;br /&gt;And before I forget what we went through, here's how it was done.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Getting MOSS to recognize Commerce Server's APIs&lt;/strong&gt;&lt;br /&gt;The first step was to merge the configuration files of both the Commerce Server and SharePoint site. Since we were using MOSS to manage the branding of the site, it made sense to make it the customer facing app and modify it's web.config file to include Commerce Server's configurations. These are the parts that need to be copied over (I'm going to use square brackets instead of angle brackets here as &lt;a href="http://www.blogger.com"&gt;Blogger &lt;/a&gt;does not handle angles very well):&lt;br /&gt;&lt;br /&gt;1. Everything in the [sectionGroup name="CommerceServer]" tag&lt;br /&gt;2. Everything in the ["CommerceServer"] tag&lt;br /&gt;3. All the commerce server specific handlers in the [httpModules] tag - Includes "CommerceApplication" all the way down to "CommerceDataWarehouseAuthenticationModule"&lt;br /&gt;4. All the commerce server [assemblies] listed in the [compilation] tag.&lt;br /&gt;&lt;br /&gt;Next, we copied all the CommerceServer library files to the bin directory. List of files included:&lt;br /&gt;a. CommerceMessageManager.dll&lt;br /&gt;b. The "de-DE", "en-us", "fr-fr", ja-JP" sub folders.&lt;br /&gt;&lt;br /&gt;Copy also the following files from the root directory of the Commerce Server site to the root directory of the SharePoint site:&lt;br /&gt;a. csapp.ini&lt;br /&gt;b. OrderObjectMappings.xml&lt;br /&gt;c. OrderPipelineMappings.xml&lt;br /&gt;d. as well as the entire "pipelines" folder.&lt;br /&gt;&lt;br /&gt;And voila! With that, we could use the Commerce Server API from any page within MOSS. E.g. CommerceContext.Current should now return a valid instance.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Implementing the UpmMembershipProvider on a MOSS site&lt;/strong&gt;&lt;br /&gt;To capitalize on Commerce Server's Profiler, we needed to implement the UpmMembershipProvider on the MOSS site. This part of the setup has been nicely documented in this &lt;a href="http://groups.google.com.sg/group/microsoft.public.commerceserver.general/msg/dae61f2735df12d2?dmode=source&amp;amp;hl=en"&gt;newsgroup post by Amy&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;However, it's probably worthwhile to note that if you're using the email address as the loginID, you could distill it down to the following steps:&lt;br /&gt;&lt;br /&gt;1. Add the [membership] tag, for example: (note, I've replaced angle brakets with square brackets).&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#009900;"&gt;[membership defaultProvider="UpmMembershipProvider"]&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#009900;"&gt;[providers]&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#009900;"&gt;[clear /] &lt;/span&gt;&lt;br /&gt;&lt;span style="color:#009900;"&gt;[add applicationName="MyAppName" enablePasswordRetrieval="false" enablePasswordReset="true" logonNameProperty="GeneralInfo.email_address" requiresQuestionAndAnswer="true" requiresUniqueEmail="true" enableCreateDate="true" enableEmailAddress="true" enableLastLoginDate="true" profileDefinition="UserObject" passwordFormat="Hashed" name="UpmMembershipProvider" type="Microsoft.CommerceServer.Runtime.Profiles.UpmMembershipProvider" /]&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#009900;"&gt;[/providers] &lt;/span&gt;&lt;br /&gt;&lt;span style="color:#009900;"&gt;[/membership]&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;2. Uncomment, or add (if it's not already present) the [profiles] tag in the [CommerceServer] section of the web.config file.&lt;br /&gt;&lt;br /&gt;3. And before you can add the first administrator to the site. You will need to complete all the steps above (yes, even the part about merging the web.config file) on the SharePoint Central Administration website as well.&lt;br /&gt;&lt;br /&gt;4. Finally, use SharePoint Central Administration to apply forms authentication to the site in question and specify "UpmMembershipProvider" as the membership provider.&lt;br /&gt;&lt;br /&gt;The biggest headaches that arose from the applying the UpmMembershipProvider were typos and missing commerce server tags. Make a tiny mistake and you will find that the login form gets stuck in a loop, regardless of the userid and password entered. When I forgot to add the commerce server [assemblies] to the web.config file, it took me 2 agonizing hours before I realised what was wrong. Erk.&lt;br /&gt;&lt;br /&gt;The best part is, once its setup, integrating Commerce Server and MOSS is a breeze. After the initial setup is done, you can easily create SharePoint web parts and user controls using Commerce Server's API to build some really neat features.&lt;br /&gt;&lt;br /&gt;Food for thought: It would really be nice to have an "Enable as Commerce Site" button in SharePoint Designer like the "Enable as CMS site" button we had in VS.NET for MCMS. That will be really neat!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7647587-116116841467879264?l=meiyinglim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://meiyinglim.blogspot.com/feeds/116116841467879264/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7647587&amp;postID=116116841467879264&amp;isPopup=true' title='23 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/116116841467879264'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/116116841467879264'/><link rel='alternate' type='text/html' href='http://meiyinglim.blogspot.com/2006/10/integrating-microsoft-commerce-server.html' title='Integrating Microsoft Commerce Server 2007 and MOSS'/><author><name>Mei Ying</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>23</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7647587.post-115699667412646508</id><published>2006-08-31T11:55:00.000+08:00</published><updated>2007-02-02T13:16:12.710+08:00</updated><title type='text'>One of the first SharePoint 2007 TAP sites goes live</title><content type='html'>Check out one of the first SharePoint 2007 sites to go live, Hed Kandi: &lt;a href="http://www.hedkandi.com/Pages/default.aspx"&gt;http://www.hedkandi.com/Pages/default.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;You can't miss the "trademark" /Pages/ stamp in the URLs :-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7647587-115699667412646508?l=meiyinglim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://meiyinglim.blogspot.com/feeds/115699667412646508/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7647587&amp;postID=115699667412646508&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/115699667412646508'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/115699667412646508'/><link rel='alternate' type='text/html' href='http://meiyinglim.blogspot.com/2006/08/one-of-first-sharepoint-2007-tap-sites.html' title='One of the first SharePoint 2007 TAP sites goes live'/><author><name>Mei Ying</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7647587.post-115380667499872483</id><published>2006-07-25T13:51:00.000+08:00</published><updated>2007-01-13T01:45:00.213+08:00</updated><title type='text'>Part 2 - Enabling Anonymous Access</title><content type='html'>Earlier, I wrote a about how to &lt;a href="http://meiyinglim.blogspot.com/2006/07/implementing-forms-authentication-in.html"&gt;implement forms authentication for a SharePoint 2007 Beta2 site&lt;/a&gt;. Typically, you would probably not want to apply authentication to the entire web site. You may want, for example, to allow anonymous users to view the home page.&lt;br /&gt;&lt;br /&gt;Here's how to turn on anonymous access:&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;1.Enable anonymous access on the top-level web site:&lt;/strong&gt;&lt;br /&gt;a. Select &lt;span style="color:#009900;"&gt;Start &gt; SharePoint 3.0 Central Administration&lt;/span&gt;&lt;br /&gt;b. Click &lt;span style="color:#009900;"&gt;Application Management&lt;/span&gt;&lt;br /&gt;c. In the "Application Security" section, click &lt;span style="color:#009900;"&gt;Authentication Providers&lt;/span&gt;.&lt;br /&gt;d. Select the web application to work on.&lt;br /&gt;e. Click &lt;span style="color:#009900;"&gt;ASpNetSqlMembershipProvider&lt;/span&gt;&lt;br /&gt;f. Check the &lt;span style="color:#009900;"&gt;Enable Anonymous Access&lt;/span&gt; checkbox.&lt;br /&gt;g. Click &lt;span style="color:#009900;"&gt;Save&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;2. Enable anonymous access at the site level&lt;/strong&gt;&lt;br /&gt;a. Navigate to the web site. You will be prompted for a user id and password. Login as the adminstrator.&lt;br /&gt;b. Goto &lt;span style="color:#009900;"&gt;Site Actions&gt; Site Settings &gt; Modify All Site Settings&lt;/span&gt;&lt;br /&gt;c. In the Users and Permissions column, choose &lt;span style="color:#009900;"&gt;Advanced Permissions&lt;/span&gt;.&lt;br /&gt;d. From the menu, choose &lt;span style="color:#009900;"&gt;Settings &gt; Anonymous Access&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://photos1.blogger.com/blogger/4033/295/1600/anonymous1.jpg"&gt;&lt;img style="CURSOR: hand" alt="" src="http://photos1.blogger.com/blogger/4033/295/320/anonymous1.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#009900;"&gt;&lt;/span&gt;&lt;br /&gt;e. You could choose to allow guest users to view only lists or the entire web site. Choose to enable anonymous access on the entire web site.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://photos1.blogger.com/blogger/4033/295/1600/anonymous2.jpg"&gt;&lt;img style="CURSOR: hand" alt="" src="http://photos1.blogger.com/blogger/4033/295/320/anonymous2.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;3. Delete the authentication cookie&lt;/strong&gt;&lt;br /&gt;a. Select &lt;span style="color:#009900;"&gt;Tools &gt; Internet Options&lt;/span&gt;&lt;br /&gt;b. Click &lt;span style="color:#009900;"&gt;Delete Cookies&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;And the next time you open your page, you won't have to login to view the front page. To prevent anonymous users from viewing sub sites, repeat step 2 for each sub site but choose "Nothing" instead.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7647587-115380667499872483?l=meiyinglim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://meiyinglim.blogspot.com/feeds/115380667499872483/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7647587&amp;postID=115380667499872483&amp;isPopup=true' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/115380667499872483'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/115380667499872483'/><link rel='alternate' type='text/html' href='http://meiyinglim.blogspot.com/2006/07/part-2-enabling-anonymous-access.html' title='Part 2 - Enabling Anonymous Access'/><author><name>Mei Ying</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7647587.post-115347724570347711</id><published>2006-07-21T18:13:00.000+08:00</published><updated>2007-02-27T16:08:12.188+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='forms authentication'/><category scheme='http://www.blogger.com/atom/ns#' term='moss'/><title type='text'>Implementing Forms Authentication in MOSS Beta 2 with the ASP.NET SQL Provider - Part 1</title><content type='html'>Finally! I've got some time to take a really good look at MOSS :-) Along the way, I've been jotting down notes. Thought I'd just post them here so that in case if I forget to bring along my files, the information is right here on my blog.&lt;br /&gt;&lt;br /&gt;Steps to get Forms Authentication working with the ASP.NET SQL provider:&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;1. Install the Application Services Database for SQL Server&lt;/strong&gt;&lt;br /&gt;a. Select &lt;span style="color:#009900;"&gt;Start &gt; All Programs &gt; Microsoft Visual Studio 2005 &gt; Visual Studio Tools &gt; Visual Studio 2005 Command Prompt&lt;/span&gt;.&lt;br /&gt;b. Enter:&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;aspnet_regsql.exe -E -A all -S localhost\DatabaseServerName&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;c. Wait while features are added to the local SQL dataase&lt;br /&gt;&lt;br /&gt;More details on the aspnet_regsql utility here:&lt;br /&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/x28wfk74.aspx"&gt;http://msdn2.microsoft.com/en-us/library/x28wfk74.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;2. Add the First User&lt;/strong&gt;&lt;br /&gt;The database has been created. However, it does not&lt;br /&gt;contain any users and threfore we won't be able to log in. There are at least two ways to add a user. We could write a script, or we could access the ASP.NET Web Site Administration&lt;br /&gt;Tool.&lt;br /&gt;&lt;br /&gt;[Update 27 Feb 2007] After a few tries, I find that writing a script is a lot easier and faster.&lt;br /&gt;&lt;strong&gt;Option 1: Adding Users by Script&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Simply run the following query in Microsoft SQL Management Studio against the aspnetdb database.&lt;br /&gt;&lt;br /&gt;declare @now datetime&lt;br /&gt;set @now= GETDATE()&lt;br /&gt;exec aspnet_Membership_CreateUser 'appName', 'userid','password','','email@somewhere.com','','',1,@now,@now,0,0,null&lt;br /&gt;&lt;br /&gt;Details on the structure of this script is available on &lt;a href="http://msdn2.microsoft.com/en-us/library/aa478949.aspx"&gt;MSDN&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Option 2: Adding Users by Creating a Web Application&lt;/strong&gt;&lt;br /&gt;a. Create a new web application.&lt;br /&gt;b. Add the connection string between the &lt;span style="font-family:courier new;font-size:85%;"&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/bf7sd233.aspx"&gt;&amp;lt;configuration&amp;gt;&lt;/a&gt;&lt;/span&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/bf7sd233.aspx"&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;&lt;configuration&gt;&lt;/span&gt;&lt;/a&gt;&lt;configuration&gt;&lt;configuration&gt;tags of the web.config file.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_zBTFWrPKqGw/ReO-0Gqw4GI/AAAAAAAAAAU/OZxMhoKLzbU/s1600-h/connectionStrings_CreateUser.gif"&gt;&lt;img id="BLOGGER_PHOTO_ID_5036078610682798178" style="CURSOR: hand" alt="" src="http://2.bp.blogspot.com/_zBTFWrPKqGw/ReO-0Gqw4GI/AAAAAAAAAAU/OZxMhoKLzbU/s400/connectionStrings_CreateUser.gif" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;c. From Visual Studio, select &lt;span style="color:#006600;"&gt;Website ASP.NET Web Configuration&lt;/span&gt;.&lt;br /&gt;d. Click &lt;span style="color:#006600;"&gt;Security Create User&lt;/span&gt;. Add the name of the user. Later on, we will configure this user to be the site administrator.&lt;br /&gt;&lt;a href="http://photos1.blogger.com/blogger/4033/295/1600/aspnet.gif"&gt;&lt;img src="http://photos1.blogger.com/blogger/4033/295/1600/aspnet.gif" width="300" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;3. Modify the web.config file&lt;/strong&gt;&lt;br /&gt;a. Open the web.config file located in the C:\Inetpub\wwwroot\wss\VirtualDirectories\GUID&lt;br /&gt;folder. To determine the exact location, open IIS and check the home directory of the SharePoint site.&lt;br /&gt;b. Add the following connection string between the &lt;span style="font-family:courier new;font-size:85%;"&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/bf7sd233.aspx"&gt;&amp;lt;configuration&amp;gt;&lt;/a&gt;&lt;/span&gt;tag:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_zBTFWrPKqGw/RePGPmqw4LI/AAAAAAAAABQ/r2LXAmGF0hs/s1600-h/connectionStrings.gif"&gt;&lt;img id="BLOGGER_PHOTO_ID_5036086779710595250" style="CURSOR: hand" alt="" src="http://4.bp.blogspot.com/_zBTFWrPKqGw/RePGPmqw4LI/AAAAAAAAABQ/r2LXAmGF0hs/s400/connectionStrings.gif" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;c. Add the &lt;a href="http://msdn2.microsoft.com/en-us/library/system.web.security.membership.aspx"&gt;provider &lt;/a&gt;details between the &lt;span style="font-family:courier new;font-size:85%;"&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/system.web.security.membership.aspx"&gt;&amp;lt;system.web&amp;gt;&lt;/a&gt;&lt;/span&gt;tag:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_zBTFWrPKqGw/RePXMGqw4NI/AAAAAAAAABs/MaSSlCJIwMg/s1600-h/membership.gif"&gt;&lt;img id="BLOGGER_PHOTO_ID_5036105411278725330" style="CURSOR: hand" alt="" src="http://2.bp.blogspot.com/_zBTFWrPKqGw/RePXMGqw4NI/AAAAAAAAABs/MaSSlCJIwMg/s400/membership.gif" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;d. Repeat steps (a)-(c) for the &lt;strong&gt;SharePoint Central Administration v3&lt;/strong&gt; website. We'll need the central administration site to work with forms authentication so that we can add the first administrator of the site. It is important to perform this step, otherwise you won't be able to add the first forms-based administrator later.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Warning! Check for typos. A single mistake may result in hours of troubleshooting!&lt;/em&gt;&lt;br /&gt;&lt;em&gt;&lt;/em&gt;&lt;br /&gt;&lt;em&gt;[27 Feb 2007] One problem that I've had was mismatch of the applicationName field. It's got to be the same as the one used within the SQL script or SharePoint won't be able to match the users.&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;4. Configure the SharePoint site for forms authentication&lt;/strong&gt;&lt;br /&gt;a. Select &lt;span style="color:#006600;"&gt;Start SharePoint Central Administration&lt;/span&gt;&lt;br /&gt;b. Click &lt;span style="color:#006600;"&gt;Application Management&lt;/span&gt;.&lt;br /&gt;c. In the Appliation Security section, click &lt;span style="color:#006600;"&gt;Authentication providers&lt;/span&gt;.&lt;br /&gt;d. Check that you are working with the web application that you wish to configure Forms Authentication for.&lt;br /&gt;e. Click &lt;span style="color:#009900;"&gt;Windows&lt;/span&gt;.&lt;br /&gt;f. Set the the following fields:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;li&gt;Authentication Mode = Forms &lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;li&gt;Membership provider name = AspNetSqlMembershipProvider.&lt;/li&gt;&lt;/ul&gt;g. Click &lt;span style="color:#006600;"&gt;Save&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://photos1.blogger.com/blogger/4033/295/1600/provider.gif"&gt;&lt;img src="http://photos1.blogger.com/blogger/4033/295/1600/provider.gif" width="300" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;5. Assign the user to be a site collection administrator.&lt;/strong&gt;&lt;br /&gt;a. In SharePoint Central Administration Application Management, click &lt;span style="color:#009900;"&gt;Site Collection Administrators&lt;/span&gt; (you can find it in the SharePoint Site Management section).&lt;br /&gt;b. Add the user as the site collection administrator of the website in which forms authentication will be applied.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://photos1.blogger.com/blogger/4033/295/1600/admin.gif"&gt;&lt;img src="http://photos1.blogger.com/blogger/4033/295/1600/admin.gif" width="300" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;And we're almost done. There are a couple more things such as granting anonymous users access to sections of the site. Also, we probably want employees on the intranet to use their windows account to log on to the site. I'll write a little about these topics in future articles.&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#000066;"&gt;[Update 27 Feb 2007] I've corrected some of the code errors. Blogger ate up the angled brackets and some of the mixed cased tags became lower case. To get around this, I've converted all the code to images and (hope) to post the snippets to my Y! briefcase for downloading soon. &lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7647587-115347724570347711?l=meiyinglim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://meiyinglim.blogspot.com/feeds/115347724570347711/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7647587&amp;postID=115347724570347711&amp;isPopup=true' title='13 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/115347724570347711'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/115347724570347711'/><link rel='alternate' type='text/html' href='http://meiyinglim.blogspot.com/2006/07/implementing-forms-authentication-in.html' title='Implementing Forms Authentication in MOSS Beta 2 with the ASP.NET SQL Provider - Part 1'/><author><name>Mei Ying</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_zBTFWrPKqGw/ReO-0Gqw4GI/AAAAAAAAAAU/OZxMhoKLzbU/s72-c/connectionStrings_CreateUser.gif' height='72' width='72'/><thr:total>13</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7647587.post-115276408750554440</id><published>2006-07-13T11:52:00.000+08:00</published><updated>2006-07-13T17:46:45.550+08:00</updated><title type='text'>Installing MOSS - Just some random notes</title><content type='html'>Just jotting down some random notes on installing a standalone version of MOSS 2007 Beta2 on a Windows 2003 Server.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;1. Error Message:&lt;/strong&gt; This product requires ASP.Net web server extensions to be enabled in Internet Information Services (IIS). Enable this setting and re-run setup.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Solution that worked:&lt;/strong&gt;&lt;br /&gt;a. Ensure that ASP.NET 2.0 has been installed. (Check list of programs in Add/Remove programs)&lt;br /&gt;b. In IIS, choose &lt;span style="color:#009900;"&gt;Web Server Extensions&lt;/span&gt; and ensure that ASP.NET 2.0 is allowed (by default, it is prohibited).&lt;br /&gt;&lt;br /&gt;&lt;a href="http://photos1.blogger.com/blogger/4033/295/1600/iis_aspnet.1.jpg"&gt;&lt;img alt="" src="http://photos1.blogger.com/blogger/4033/295/400/iis_aspnet.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;2. Error Message:&lt;/strong&gt; Failed to create the configuration database. An exception of type Microsoft.SharePoint.SPException was thrown. Additional exception information: The language is not supported on the server.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Solution that worked: &lt;/strong&gt;Matthew Cosier has hit the nail on the head with this one:  &lt;a href="http://mcosier.blogspot.com/2006/05/language-is-not-supported-on-server.html"&gt;http://mcosier.blogspot.com/2006/05/language-is-not-supported-on-server.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7647587-115276408750554440?l=meiyinglim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://meiyinglim.blogspot.com/feeds/115276408750554440/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7647587&amp;postID=115276408750554440&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/115276408750554440'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/115276408750554440'/><link rel='alternate' type='text/html' href='http://meiyinglim.blogspot.com/2006/07/installing-moss-just-some-random-notes.html' title='Installing MOSS - Just some random notes'/><author><name>Mei Ying</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7647587.post-114957286260400113</id><published>2006-06-06T13:42:00.000+08:00</published><updated>2006-06-10T23:50:36.260+08:00</updated><title type='text'>Jun 2006 SGDN #25 UG Meeting</title><content type='html'>Come for the Singapore DotNet user group Portal Day this thursday, 8 Jun 2006! Kit Kai and I will be rolling up our sleeves to show you what's new in Microsoft SharePoint Server 2007. Hope to see you there!&lt;br /&gt;&lt;br /&gt;&lt;a href="http://sgdotnet.org/forums/thread/26507.aspx"&gt;http://sgdotnet.org/forums/thread/26507.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;---&lt;br /&gt;&lt;span style="font-size:130%;"&gt;It's Portal Day in June! &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;u&gt;Agenda &lt;/u&gt;&lt;/strong&gt;&lt;br /&gt;--------------------------------------------------------------------------------------------&lt;br /&gt;6:45 - 7:00 Registration&lt;br /&gt;7:00 - 7:45 Grooving with Sharepoint 2007 by Loke Kit Kai&lt;br /&gt;7:45 - 8:00 Break (Snacks will be provided)&lt;br /&gt;8:00 - 8:45 Web Content Management with Microsoft Office Sharepoint Server 2007 by Lim Mei Ying&lt;br /&gt;--------------------------------------------------------------------------------------------&lt;br /&gt;&lt;strong&gt;&lt;u&gt;&lt;/u&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;u&gt;Venue &lt;/u&gt;&lt;/strong&gt;&lt;br /&gt;Level 22, CF-12&lt;br /&gt;NTUC Centre, 1 Marina Boulevard (near Raffles Place MRT and next to Neptune Theatre)&lt;br /&gt;Synopsis&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;u&gt;Grooving with Sharepoint 2007 by Loke Kit Kai (MVP, Sharepoint) &lt;/u&gt;&lt;/strong&gt;&lt;br /&gt;The upcoming Sharepoint 2007 introduces many new technologies that will faciliate the&lt;br /&gt;managmeent of content and processes. Find out from Sharepoint MVP - Kit Kai on what's new in Sharepoint 2007, and be amongst the first amongst communities to witness the powerful new features, and how developers can make use of Sharepoint to deliver value to users.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;u&gt;Web Content Management with Microsoft Office Sharepoint Server 2007 by Lim Mei Ying (MVP, CMS) &lt;/u&gt;&lt;/strong&gt;&lt;br /&gt;Experience the power of the next generation of web content management with Microsoft Office SharePoint Server 2007. Mei Ying (MVP, CMS) will demonstrate how SharePoint streamlines the process of web content management and how you can use it to build your very own website today.&lt;br /&gt;&lt;br /&gt;Date/Time: 8th June 2006, 6:45pm to 8:45pm&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;u&gt;How to get there: &lt;/u&gt;&lt;/strong&gt;&lt;br /&gt;For attendees who drive:&lt;br /&gt;We recommend to park at the Neptune Theatre car park&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;u&gt;For attendees traveling by MRT: &lt;/u&gt;&lt;/strong&gt;&lt;br /&gt;It is a 5 minute's walk from Raffles MRT Interchange, passing by the Asia Building.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;u&gt;For attendees traveling by bus: &lt;/u&gt;&lt;/strong&gt;&lt;br /&gt;Nearest bus stop is at Clifford Pier and it is a 2 minute's stroll to the OMB. Buses that service this bus stop are:&lt;br /&gt;- SBS 10, 70, 97, 100, 107, 130, 131, 162 and 196&lt;br /&gt;- TIBS 75, 167 and 700&lt;br /&gt;- CSS 605 and 608&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7647587-114957286260400113?l=meiyinglim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://sgdotnet.org/forums/thread/26507.aspx' title='Jun 2006 SGDN #25 UG Meeting'/><link rel='replies' type='application/atom+xml' href='http://meiyinglim.blogspot.com/feeds/114957286260400113/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7647587&amp;postID=114957286260400113&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/114957286260400113'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/114957286260400113'/><link rel='alternate' type='text/html' href='http://meiyinglim.blogspot.com/2006/06/jun-2006-sgdn-25-ug-meeting.html' title='Jun 2006 SGDN #25 UG Meeting'/><author><name>Mei Ying</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7647587.post-114844215763469710</id><published>2006-05-24T11:08:00.000+08:00</published><updated>2006-08-24T21:55:58.586+08:00</updated><title type='text'>Get Microsoft Office System 2007 Beta 2 now!</title><content type='html'>The "&lt;a href="http://www.microsoft.com/office/preview/beta/getthebeta.mspx"&gt;Get the Beta&lt;/a&gt;" link is finally listed on the Office Preview website: &lt;a href="http://www.microsoft.com/office/preview/default.mspx"&gt;http://www.microsoft.com/office/preview/default.mspx&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7647587-114844215763469710?l=meiyinglim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://meiyinglim.blogspot.com/feeds/114844215763469710/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7647587&amp;postID=114844215763469710&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/114844215763469710'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/114844215763469710'/><link rel='alternate' type='text/html' href='http://meiyinglim.blogspot.com/2006/05/get-microsoft-office-system-2007-beta.html' title='Get Microsoft Office System 2007 Beta 2 now!'/><author><name>Mei Ying</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7647587.post-114049404272374438</id><published>2006-02-21T11:50:00.000+08:00</published><updated>2006-02-21T11:54:03.213+08:00</updated><title type='text'>Free Chapters available on MSDN</title><content type='html'>Packt Publishing has released more code samples from the book &lt;a href="http://www.packtpub.com/more_mcms/book"&gt;"Advanced Microsoft Content Management Server Development"&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The article discusses the how-to behind building custom MCMS placeholder controls, and shows the step-by-step process behind creating a:&lt;br /&gt;&lt;br /&gt;1. &lt;a href="http://msdn.microsoft.com/library/en-us/odc_mcms2002_bk/html/cmsch8usefulplaceholdercontrols_p1.asp"&gt;Date Time Picker Control&lt;/a&gt;&lt;br /&gt;2. &lt;a href="http://msdn.microsoft.com/library/en-us/odc_mcms2002_bk/html/cmsch8usefulplaceholdercontrols_p2.asp"&gt;Multiple Attachment Placeholder Control&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7647587-114049404272374438?l=meiyinglim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://msdn.microsoft.com/library/default.asp?url=/library/en-us/odc_mcms2002_bk/html/cmsch8usefulplaceholdercontrols_p1.asp' title='Free Chapters available on MSDN'/><link rel='replies' type='application/atom+xml' href='http://meiyinglim.blogspot.com/feeds/114049404272374438/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7647587&amp;postID=114049404272374438&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/114049404272374438'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/114049404272374438'/><link rel='alternate' type='text/html' href='http://meiyinglim.blogspot.com/2006/02/free-chapters-available-on-msdn.html' title='Free Chapters available on MSDN'/><author><name>Mei Ying</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7647587.post-114014473473446374</id><published>2006-02-17T10:45:00.000+08:00</published><updated>2006-02-17T11:06:49.936+08:00</updated><title type='text'>Microsoft Releases Pricing and Packaging Schemes for 2007 Microsoft Office System</title><content type='html'>It's finally been released!&lt;br /&gt;&lt;br /&gt;Read about the new packaging and pricing scheme on what was previously dubbed as Office 12:&lt;br /&gt;&lt;a href="http://www.microsoft.com/presspass/presskits/2007office/default.mspx"&gt;http://www.microsoft.com/presspass/presskits/2007office/default.mspx&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Read what Jeff Teper has to say about it on the &lt;a href="http://blogs.msdn.com/sharepoint/archive/2006/02/16/533494.aspx"&gt;SharePoint Team Blog&lt;/a&gt;. &lt;br /&gt;&lt;br /&gt;Exciting times are ahead!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7647587-114014473473446374?l=meiyinglim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.microsoft.com/presspass/presskits/2007office/default.mspx' title='Microsoft Releases Pricing and Packaging Schemes for 2007 Microsoft Office System'/><link rel='replies' type='application/atom+xml' href='http://meiyinglim.blogspot.com/feeds/114014473473446374/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7647587&amp;postID=114014473473446374&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/114014473473446374'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/114014473473446374'/><link rel='alternate' type='text/html' href='http://meiyinglim.blogspot.com/2006/02/microsoft-releases-pricing-and.html' title='Microsoft Releases Pricing and Packaging Schemes for 2007 Microsoft Office System'/><author><name>Mei Ying</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7647587.post-113508896369163848</id><published>2005-12-20T22:24:00.000+08:00</published><updated>2005-12-29T09:56:57.273+08:00</updated><title type='text'>Buy 2 MCMS eBooks for the price of 1!</title><content type='html'>For a limited time only, you can get both electronic versions of "&lt;a href="http://www.packtpub.com/mcms/book"&gt;Building Websites with Microsoft Content Management Server&lt;/a&gt;" and "&lt;a href="http://www.packtpub.com/more_mcms/book"&gt;Advanced Microsoft Content Management Server Development&lt;/a&gt;" for the price of 1!&lt;br /&gt;&lt;br /&gt;Check out this irresistable offer at Packt's website: &lt;a href="http://www.packtpub.com/articles/ebook_offer/cm1"&gt;http://www.packtpub.com/articles/ebook_offer/cm1&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Hurry, promotion ends on 3 Jan 2006.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7647587-113508896369163848?l=meiyinglim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.packtpub.com/articles/ebook_offer/cm1' title='Buy 2 MCMS eBooks for the price of 1!'/><link rel='replies' type='application/atom+xml' href='http://meiyinglim.blogspot.com/feeds/113508896369163848/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7647587&amp;postID=113508896369163848&amp;isPopup=true' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/113508896369163848'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/113508896369163848'/><link rel='alternate' type='text/html' href='http://meiyinglim.blogspot.com/2005/12/buy-2-mcms-ebooks-for-price-of-1.html' title='Buy 2 MCMS eBooks for the price of 1!'/><author><name>Mei Ying</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7647587.post-113153243186033273</id><published>2005-11-09T18:33:00.001+08:00</published><updated>2006-11-27T23:45:31.090+08:00</updated><title type='text'>MCMS SP2 - Available Now!</title><content type='html'>&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=3de1e8f0-d660-4a2b-8b14-0fce961e56fb&amp;amp;DisplayLang=en"&gt;Microsoft Content Management Server Service Pack 2&lt;/a&gt; is out! And its been barely a week since the release of Visual Studio 2005. Nice!&lt;br /&gt;&lt;br /&gt;Can't wait to unwrap it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7647587-113153243186033273?l=meiyinglim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://meiyinglim.blogspot.com/feeds/113153243186033273/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7647587&amp;postID=113153243186033273&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/113153243186033273'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/113153243186033273'/><link rel='alternate' type='text/html' href='http://meiyinglim.blogspot.com/2005/11/mcms-sp2-available-now_113153243186033273.html' title='MCMS SP2 - Available Now!'/><author><name>Mei Ying</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7647587.post-113012439005601624</id><published>2005-11-06T10:57:00.000+08:00</published><updated>2005-12-01T06:20:56.156+08:00</updated><title type='text'>Book Release - Advanced Microsoft Content Management Server Development</title><content type='html'>&lt;p&gt;The book that &lt;a href="http://andrewconnell.com/blog/"&gt;Andrew Connell&lt;/a&gt;, &lt;a href="http://www.anguslogan.com/"&gt;Angus Logan&lt;/a&gt;, &lt;a href="http://blogs.technet.com/stefan_gossner/default.aspx"&gt;Stefan Goßner&lt;/a&gt;, and me have written, &lt;a href="http://www.packtpub.com/more_mcms/book"&gt;Advanced Microsoft Content Management Server Development&lt;/a&gt; is &lt;span style="font-size:130%;"&gt;&lt;strong&gt;Available &lt;span style="color:#006600;"&gt;NOW!&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt; &lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="http://www.packtpub.com/more_mcms/book"&gt;&lt;img src="http://www.packtpub.com/images/100x123/1904811531.png" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;td&gt;This book has the most in depth-coverage of important MCMS development topics found anywhere. Each author of the book is a renowned expert in the area. Learn directly from recognized community experts Extensive coverage of the Publishing API (PAPI) Get Sharepoint and MCMS working together InfoPath, RSS and hot topics covered &lt;a href="http://www.packtpub.com/more_mcms/book"&gt;In More Detail&lt;/a&gt;&lt;/td&gt;&lt;br /&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;If you've mastered the basics of MCMS development, this book provides the next step. It has unique coverage of MCMS and Share Point Portal Server (SPS), a detailed tour of the Publishing API (PAPI). Hot topics like InfoPath, Sharepoint WebParts, placeholder tips and techniques are also covered.&lt;br /&gt;&lt;br /&gt;Following on from &lt;a href="http://www.amazon.com/exec/obidos/asin/1904811167/techblog-20"&gt;Building Websites with Microsoft Content Management Server&lt;/a&gt;, this book takes MCMS development to a higher level of both power and integration. Like its predecessor, this book is packed with code examples and never-before seen secrets of MCMS.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.packtpub.com/book/more_mcms"&gt;Buy it now&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/7647587-113012439005601624?l=meiyinglim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.packtpub.com/more_mcms/book' title='Book Release - Advanced Microsoft Content Management Server Development'/><link rel='replies' type='application/atom+xml' href='http://meiyinglim.blogspot.com/feeds/113012439005601624/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7647587&amp;postID=113012439005601624&amp;isPopup=true' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/113012439005601624'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/113012439005601624'/><link rel='alternate' type='text/html' href='http://meiyinglim.blogspot.com/2005/11/book-release-advanced-microsoft.html' title='Book Release - Advanced Microsoft Content Management Server Development'/><author><name>Mei Ying</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7647587.post-113038521244657200</id><published>2005-10-27T11:53:00.000+08:00</published><updated>2006-08-24T21:44:56.793+08:00</updated><title type='text'>New Examination Path for Visual Studio 2005</title><content type='html'>The goal posts for Microsoft certification has moved yet again!&lt;br/&gt;Ugh, looks like I’d better fight the demons of procrastinations and complete my MCAD at break neck speed to be in time for the upgrade.Question: Where are the Portal exams?&lt;br/&gt;&lt;br/&gt;Via &lt;a href="http://serena-yeoh.blogspot.com/"&gt;Serena&lt;/a&gt;&lt;br/&gt;---&lt;br/&gt;&lt;span style="font-family:Verdana;font-size:78%;"&gt;It's finally happening! The new certifications have been announced - &lt;/span&gt;&lt;a href="http://www.microsoft.com/learning/mcp/newgen/"&gt;The New Generation of Microsoft Certifications&lt;/a&gt;&lt;span style="font-family:Verdana;font-size:78%;"&gt;. There is a new credential called &lt;/span&gt;&lt;strong&gt;&lt;span style="font-family:Verdana;font-size:78%;"&gt;Microsoft Certified Technology Specialist (MCTS) &lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family:Verdana;font-size:78%;"&gt;that offers 3 paths for the .NET 2.0 Framework - &lt;/span&gt;&lt;strong&gt;&lt;span style="font-family:Verdana;font-size:78%;"&gt;Web Applications&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family:Verdana;font-size:78%;"&gt;, &lt;/span&gt;&lt;strong&gt;&lt;span style="font-family:Verdana;font-size:78%;"&gt;Windows Applications &lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family:Verdana;font-size:78%;"&gt;and &lt;/span&gt;&lt;strong&gt;&lt;span style="font-family:Verdana;font-size:78%;"&gt;Distributed Applications&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family:Verdana;font-size:78%;"&gt;. Each path consist of the compulsory &lt;/span&gt;&lt;strong&gt;&lt;span style="font-family:Verdana;font-size:78%;"&gt;Application Development Foundation &lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family:Verdana;font-size:78%;"&gt;exam and an exam specialized in that area. Therefore, you need atleast 4 exams to secure all the MCTS for software development.Above the MCTS is the &lt;/span&gt;&lt;strong&gt;&lt;span style="font-family:Verdana;font-size:78%;"&gt;Microsoft Certified Professional Developer (MCPD) &lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family:Verdana;font-size:78%;"&gt;and &lt;/span&gt;&lt;strong&gt;&lt;span style="font-family:Verdana;font-size:78%;"&gt;Microsoft Certified IT Professional (MCITP). &lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family:Verdana;font-size:78%;"&gt;For MCPD, there are also 3 paths - &lt;/span&gt;&lt;strong&gt;&lt;span style="font-family:Verdana;font-size:78%;"&gt;Web Developer&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family:Verdana;font-size:78%;"&gt;, &lt;/span&gt;&lt;strong&gt;&lt;span style="font-family:Verdana;font-size:78%;"&gt;Windows Developer &lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family:Verdana;font-size:78%;"&gt;and &lt;/span&gt;&lt;strong&gt;&lt;span style="font-family:Verdana;font-size:78%;"&gt;Enterprise Applications Developer&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family:Verdana;font-size:78%;"&gt;. You will need an additonal 'Designing and Developing' exam for each of the paths. So you will need an additional 3 exams on top of the MCTS credentials mentioned earlier to secure all MCPD credentials.The good news is, if you are a MCAD, you can take one upgrade exam for MCPD: Web Developer and one upgrade exam for MCPD: Windows Developer. If you are a MCSD, you can take two upgrade exams for MCPD: Enterprise Applications Developer.I think I better start preparing now...&lt;/span&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/7647587-113038521244657200?l=meiyinglim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://meiyinglim.blogspot.com/feeds/113038521244657200/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7647587&amp;postID=113038521244657200&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/113038521244657200'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/113038521244657200'/><link rel='alternate' type='text/html' href='http://meiyinglim.blogspot.com/2005/10/new-examination-path-for-visual-2005.html' title='New Examination Path for Visual Studio 2005'/><author><name>Mei Ying</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7647587.post-113038461552194622</id><published>2005-10-27T11:43:00.000+08:00</published><updated>2005-10-27T11:43:35.573+08:00</updated><title type='text'>Office 12 WCM Team starts blog</title><content type='html'>Via &lt;a href="http://blogs.technet.com/stefan_gossner/default.aspx"&gt;Stefan&lt;/a&gt;:&lt;br/&gt;---&lt;br/&gt;The WCM (Web Content Management) Team in Redmond just started blogging. If you are interested in the future of MCMS you should definitily add this blog to your favorites:&lt;br/&gt;&lt;a href="http://blogs.msdn.com/wcm"&gt;http://blogs.msdn.com/wcm&lt;/a&gt;&lt;br/&gt;---&lt;br/&gt;Subscribed!&lt;br/&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7647587-113038461552194622?l=meiyinglim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://meiyinglim.blogspot.com/feeds/113038461552194622/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7647587&amp;postID=113038461552194622&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/113038461552194622'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/113038461552194622'/><link rel='alternate' type='text/html' href='http://meiyinglim.blogspot.com/2005/10/office-12-wcm-team-starts-blog.html' title='Office 12 WCM Team starts blog'/><author><name>Mei Ying</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7647587.post-113038265153539895</id><published>2005-10-27T11:10:00.000+08:00</published><updated>2005-10-27T11:10:51.590+08:00</updated><title type='text'>Get your copy of new MCMS book at 25% off the list price!</title><content type='html'>“&lt;a href="http://www.packtpub.com/more_mcms/book"&gt;Advance Development with Microsoft Content Management Server”&lt;/a&gt; will be launched really soon, in a weeks time or two.&lt;br/&gt;&lt;br/&gt;&lt;strong&gt;Hurry! This is your last chance to grab a copy of “&lt;/strong&gt;&lt;a href="http://www.packtpub.com/more_mcms/book"&gt;Advance Development with Microsoft Content Management Server&lt;/a&gt;&lt;strong&gt;” at the heavily discounted rate of 25% off the list price.&lt;/strong&gt;&lt;br/&gt;&lt;br/&gt;&lt;a href="http://www.packtpub.com/more_mcms/book"&gt;Get your copy now&lt;/a&gt;.&lt;br/&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7647587-113038265153539895?l=meiyinglim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://meiyinglim.blogspot.com/feeds/113038265153539895/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7647587&amp;postID=113038265153539895&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/113038265153539895'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/113038265153539895'/><link rel='alternate' type='text/html' href='http://meiyinglim.blogspot.com/2005/10/get-your-copy-of-new-mcms-book-at-25.html' title='Get your copy of new MCMS book at 25% off the list price!'/><author><name>Mei Ying</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7647587.post-112718304540931618</id><published>2005-09-20T10:24:00.000+08:00</published><updated>2005-09-20T10:24:05.460+08:00</updated><title type='text'>The future of Microsoft Office: Be the first to know</title><content type='html'>Have you &lt;a href="http://www.microsoft.com/office/preview/default.mspx"&gt;registered for the Beta release of Office 12?&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7647587-112718304540931618?l=meiyinglim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://meiyinglim.blogspot.com/feeds/112718304540931618/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7647587&amp;postID=112718304540931618&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/112718304540931618'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/112718304540931618'/><link rel='alternate' type='text/html' href='http://meiyinglim.blogspot.com/2005/09/future-of-microsoft-office-be-first-to.html' title='The future of Microsoft Office: Be the first to know'/><author><name>Mei Ying</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7647587.post-112710211637596576</id><published>2005-09-19T11:55:00.000+08:00</published><updated>2005-09-19T11:55:16.430+08:00</updated><title type='text'>Get the Building Websites with MCMS eBook</title><content type='html'>&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="http://www.packtpub.com/mcms/book"&gt;&lt;img src="http://www.packtpub.com/images/pdfimages/1904811167.png" border="0"&gt;&lt;/a&gt;&lt;/td&gt;&lt;td&gt;&lt;a href="http://www.packtpub.com/mcms/book"&gt;Building Websites with Microsoft Content Management Server&lt;/a&gt; is now available as an eBook. &lt;br/&gt;&lt;br/&gt;Get the bundle now from directly from Packt Publishing @ &lt;a href="http://www.packtpub.com/mcms/book"&gt;http://www.packtpub.com/mcms/book&lt;/a&gt; and enjoy a discount of 10% of the book and 80% off the eBook. &lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7647587-112710211637596576?l=meiyinglim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://meiyinglim.blogspot.com/feeds/112710211637596576/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7647587&amp;postID=112710211637596576&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/112710211637596576'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/112710211637596576'/><link rel='alternate' type='text/html' href='http://meiyinglim.blogspot.com/2005/09/get-building-websites-with-mcms-ebook.html' title='Get the Building Websites with MCMS eBook'/><author><name>Mei Ying</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7647587.post-112668183692477974</id><published>2005-09-14T14:48:00.000+08:00</published><updated>2005-09-14T17:39:58.453+08:00</updated><title type='text'>Office 12 Information from PDC</title><content type='html'>The tap is starting to turn as Microsoft releases more information on Office 12. For months now, the lid on this particular suite of products has been pretty tight. Even if you knew anything, you can't share it or use it. And much of the information goung round came from grape vines and rumour mills. &lt;br /&gt;&lt;br /&gt;Not any more. News is breaking out.&lt;br /&gt;&lt;br /&gt;This week, at the PDC, a few major announcements will be made both from Microsoft as well as its partners. I'm still right here in Singapore so I'll be glued to the Internet to keep up with the latest happenings.&lt;br /&gt;&lt;br /&gt;First off, is the &lt;a href="http://www.microsoft.com/presspass/features/2005/sep05/09-13OfficeUI.mspx"&gt;unveiling of the new Office 12 user interface&lt;/a&gt;. Check out this "live" &lt;a href="http://msmvps.com/anguslogan/archive/2005/09/14/66329.aspx"&gt;screen shot&lt;/a&gt; taken by Angus and a &lt;a href="http://channel9.msdn.com/ShowPost.aspx?PostID=114720#114720"&gt;video by Channel 9&lt;/a&gt;. &lt;br /&gt;&lt;br /&gt;Yesterday at 8.30am Pacific time, &lt;a href="http://www.microsoft.com/events/executives/billgates.mspx"&gt;Bill Gates delivered a Keynote&lt;/a&gt; that includes important technical previews of Office 12.&lt;br /&gt;&lt;br /&gt;So much news in a single day! And there's more in the pipe line. Read the latest blogs on Office 12 from &lt;a href="http://www.technorati.com/search/%2522office+12%2522"&gt;Technorati&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7647587-112668183692477974?l=meiyinglim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://meiyinglim.blogspot.com/feeds/112668183692477974/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7647587&amp;postID=112668183692477974&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/112668183692477974'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/112668183692477974'/><link rel='alternate' type='text/html' href='http://meiyinglim.blogspot.com/2005/09/office-12-information-from-pdc.html' title='Office 12 Information from PDC'/><author><name>Mei Ying</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7647587.post-112562638103793572</id><published>2005-09-02T09:58:00.000+08:00</published><updated>2005-09-02T22:42:53.553+08:00</updated><title type='text'>Skelta CMS Accelerator Released!</title><content type='html'>via &lt;a href="http://andrewconnell.com/blog/"&gt;Andrew&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;---&lt;br /&gt;Seems the Skelta marketing group was throwing a few names around… but it looks like they’ve settled on the Skelta CMS Accelerator. This is a free add-on to licensed MCMS 2002 installations, providing extended workflow to MCMS, as announced @ TechEd 2005.&lt;br /&gt;&lt;br /&gt;Announcing the worldwide launch of Skelta CMS Accelerator - Express Edition (Free), a completely integrated out-of-the-box workflow solution for Microsoft Content Management Server. The CMS accelerator allows users to build extensive, customizable workflows for document approvals, automatically publish approved content and define separate workflows for multiple channels. It also has advanced features such as 2-way email, SMS and Active Directory support. Skelta CMS Accelerator is built on Skelta's award-winning workflow framework Skelta Workflow.NET.&lt;br /&gt;Skelta.com&lt;br /&gt;&lt;br /&gt;Regarless, it’s now available!&lt;br /&gt;&lt;br /&gt;» Skelta CMS Accelerator – Workflow Solution for Microsoft Content Management Server&lt;br /&gt;---&lt;br /&gt;&lt;br /&gt;Hooray! &lt;a href="http://www.skelta.com/products/skelta-cms/overview.aspx"&gt;Skelta CMS Accelerator - Express Edition&lt;/a&gt; is finally available!&lt;br /&gt;&lt;br /&gt;When the download site is ready, I'll definitely give it a spin this weekend.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7647587-112562638103793572?l=meiyinglim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/112562638103793572'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/112562638103793572'/><link rel='alternate' type='text/html' href='http://meiyinglim.blogspot.com/2005/09/skelta-cms-accelerator-released.html' title='Skelta CMS Accelerator Released!'/><author><name>Mei Ying</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-7647587.post-112556176044006893</id><published>2005-09-01T15:57:00.000+08:00</published><updated>2005-09-01T16:03:44.716+08:00</updated><title type='text'>niente0 Reviews Building Websites with Microsoft Content Management Server on Amazon</title><content type='html'>We've got our second Amazon review on the Amazon.co.uk site! Read it &lt;a href="http://www.amazon.co.uk/exec/obidos/ASIN/1904811167/026-9390028-4573236"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Thanks, niente0 for the encouragement! Look forward to our upcoming book: &lt;a href="http://www.packtpub.com/more_mcms/book"&gt;Advanced Microsoft Content Management Server Development&lt;/a&gt;. Expected Oct 2005. &lt;a href="http://www.packtpub.com/more_mcms/book"&gt;Pre-order now&lt;/a&gt; to get a 25% discount off the list price.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7647587-112556176044006893?l=meiyinglim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.amazon.co.uk/exec/obidos/ASIN/1904811167/026-9390028-4573236' title='niente0 Reviews Building Websites with Microsoft Content Management Server on Amazon'/><link rel='replies' type='application/atom+xml' href='http://meiyinglim.blogspot.com/feeds/112556176044006893/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7647587&amp;postID=112556176044006893&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/112556176044006893'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/112556176044006893'/><link rel='alternate' type='text/html' href='http://meiyinglim.blogspot.com/2005/09/niente0-reviews-building-websites-with.html' title='niente0 Reviews Building Websites with Microsoft Content Management Server on Amazon'/><author><name>Mei Ying</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7647587.post-112550026596595017</id><published>2005-08-31T22:10:00.000+08:00</published><updated>2005-08-31T22:57:46.010+08:00</updated><title type='text'>One month down the road</title><content type='html'>Time flies! Was it just one month ago that I joined &lt;a href="http://www.avanade.com"&gt;Avanade&lt;/a&gt;?&lt;br /&gt;&lt;br /&gt;So far, it's been great! I've been assigned to a project with a government organization. It's huge in terms of both team and code. What's interesting is the mix of people from various companies. There are at least people from 4 different organizations working here and they are all really good at what they do.&lt;br /&gt;&lt;br /&gt;A new environment brings along with it new challenges. The project is now in the test phase, which means a lot of work is involved in preparing data to be loaded into components to see if they do what they are expected to do. The kinds of computations that some of these components perform are really complex, each contains a gizillion business rules. Dollar values are involved so the result must always be correct. The tricky part is devising a scheme to help the end-user test all possible scenarios (all 35 factorial of them). It's up to us to build a creative solution to achieve this and to troubleshoot problems when we find them. Hunt down those bugs!&lt;br /&gt;&lt;br /&gt;All very exciting work :-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7647587-112550026596595017?l=meiyinglim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://meiyinglim.blogspot.com/feeds/112550026596595017/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7647587&amp;postID=112550026596595017&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/112550026596595017'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/112550026596595017'/><link rel='alternate' type='text/html' href='http://meiyinglim.blogspot.com/2005/08/one-month-down-road.html' title='One month down the road'/><author><name>Mei Ying</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7647587.post-112545458223856290</id><published>2005-08-31T10:08:00.000+08:00</published><updated>2005-08-31T10:43:44.690+08:00</updated><title type='text'>MCMS Presentations around the globe!</title><content type='html'>This couple of weeks have been a busy one for fellow CMS MVPs - &lt;a href="http://andrewconnell.com/blog/"&gt;Andrew&lt;/a&gt;, &lt;a href="http://www.anguslogan.com/"&gt;Angus&lt;/a&gt; and me.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://andrewconnell.com/blog/archive/2005/08/29/1962.aspx"&gt;Andrew delivered a MCMS session&lt;/a&gt; to the JacksonVille Usergroup. And he's got some great &lt;a href="http://andrewconnell.com/blog/archive/2005/08/28/1961.aspx"&gt;book recommendations&lt;/a&gt;. Check them out!&lt;br /&gt;&lt;br /&gt;Travel round the globe to Australia, and you'll find Angus this Thursday at TechEd Gold Coast giving a presentation on Accelerating Development with MCMS &amp; Best Practices. I've had a glimpse of his slides and his presentation is going to rock! If you're at TechEd Gold Coast, look out for Angus at the InfoWorker booth.&lt;br /&gt;&lt;br /&gt;Just last week, I did a co-presentation with &lt;a href="http://gill-dev.blogspot.com/"&gt;Sarbjit Singh Gill&lt;/a&gt; from &lt;a href="http://www.avantustraining.com"&gt;Avantus Training&lt;/a&gt; at TechEd Singapore. We covered two sessions - Accelerating Development with MCMS and Best Practices for Designing and Building CMS Solutions. Both presentations went well. Considering that Steve Riley was giving a session next door, we had a nice turn out :-) For the acceleration session, we had lots of CMS demos - oodles of goodies that are ready-to-use from &lt;a href="http://www.gotdotnet.com"&gt;GotDotNet&lt;/a&gt; and a variety of other sources. It was pretty neat, kind of like a showcase of power tools for CMS! If you were at either session, drop me a note. I'd like to hear from you.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7647587-112545458223856290?l=meiyinglim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://meiyinglim.blogspot.com/feeds/112545458223856290/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7647587&amp;postID=112545458223856290&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/112545458223856290'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/112545458223856290'/><link rel='alternate' type='text/html' href='http://meiyinglim.blogspot.com/2005/08/mcms-presentations-around-globe.html' title='MCMS Presentations around the globe!'/><author><name>Mei Ying</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7647587.post-112480386927825037</id><published>2005-08-23T21:09:00.000+08:00</published><updated>2005-08-23T21:31:09.320+08:00</updated><title type='text'>Invalid object name 'RepositorySynchronization'</title><content type='html'>I was trying to save a posting that contained a SharePoint Document Placeholder Control. Each time I tried to do so, I kept getting the following error:&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#ff0000;"&gt;Save Placeholder Failed &lt;/span&gt;&lt;br /&gt;&lt;span style="color:#ff0000;"&gt;Error Details:Invalid object name 'RepositorySynchronization'.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.anguslogan.com"&gt;Angus&lt;/a&gt; found an interesting &lt;a href="http://groups.google.com.sg/group/microsoft.public.sharepoint.windowsservices/msg/323763e4d56605f0?dmode=source&amp;hl=en"&gt;post &lt;/a&gt;in the SharePoint newsgroup. Turns out that the error is caused by a missing table named "RepositorySynchronization" from the CMS database.&lt;br /&gt;&lt;br /&gt;Somehow, the table wasn't getting generated when the DCA was used to switch from one database to another.&lt;br /&gt;&lt;br /&gt;The post suggested importing the table from an existing database. But what if you didn't want to do that (in case there is more than the table that needs to be imported) or what if you didn't have a connector-enabled database to copy from in the first place?&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;u&gt;Fix:&lt;/u&gt;&lt;/strong&gt;&lt;br /&gt;Good news is: You don't have to manually import the table! The connector comes with a tool named, &lt;span style="color:#990000;"&gt;PostMSIConfig.exe&lt;/span&gt; that fixes the problem (located in the \MCMS Connector for SharePoint Technologies\CMS\bin\ directory). Just run it and the RepositorySynchronization table appears within the database like a charm. Problem solved!&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;u&gt;To reproduce the problem:&lt;/u&gt;&lt;/strong&gt;&lt;br /&gt;1. Install the SharePoint Connector for MCMS.&lt;br /&gt;2. Create a new SQL Server database.&lt;br /&gt;2. Use the DCA to point to the newly created database.&lt;br /&gt;3. Look at the database using Enterprise Manager. Notice that the table, RepositorySynchronization, is missing.&lt;br /&gt;4. Try to save a posting based on a template that contains the SharePoint Document Placeholder Control. You will get the error mentioned above.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7647587-112480386927825037?l=meiyinglim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://meiyinglim.blogspot.com/feeds/112480386927825037/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7647587&amp;postID=112480386927825037&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/112480386927825037'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/112480386927825037'/><link rel='alternate' type='text/html' href='http://meiyinglim.blogspot.com/2005/08/invalid-object-name.html' title='Invalid object name &apos;RepositorySynchronization&apos;'/><author><name>Mei Ying</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7647587.post-112471520546734488</id><published>2005-08-22T20:49:00.000+08:00</published><updated>2005-08-22T20:53:25.473+08:00</updated><title type='text'>Skelta CMS Accelerator - Express Edition</title><content type='html'>via &lt;a href="http://andrewconnell.com/blog/archive/2005/08/19/1916.aspx"&gt;Andew&lt;/a&gt; and &lt;a href="http://markharrison.co.uk/blog/2005/08/skelta-cms-accelerator-express-edition.htm"&gt;Mark Harrison&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Skelta CMS Accelerator promises to be a real help for any MCMS developer looking into extending the workflow. If you've attempted to do parallel or multi-tiered serial MCMS workflows before, you will probably be interested in this product.&lt;br /&gt;&lt;br /&gt;Btw, has anyone managed to get the preview version working?&lt;br /&gt;&lt;br /&gt;---&lt;br /&gt;&lt;a href="http://markharrison.co.uk/blog/2005/08/skelta-cms-accelerator-express-edition.htm"&gt;Skelta CMS Accelerator - Express Edition&lt;/a&gt; Skelta CMS Workflow Lite (i.e. the free workflow solution for &lt;a title="Microsoft" href="http://www.microsoft.com/" target="_blank"&gt;Microsoft&lt;/a&gt; CMS customers) is now being rebranded as the Express version.Its going through the final testing and its launch is iminent. In the meantime you can request a preview &lt;a href="http://www.skelta.com/products/skelta-cms/CMSPreviewReq.aspx" target="_blank"&gt;here&lt;/a&gt; .More info on &lt;a href="http://www.skelta.com/products/skelta-cms/overview.aspx" target="_blank"&gt;Skelta CMS Accelerator - Express Edition &lt;/a&gt;.&lt;br /&gt;---&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7647587-112471520546734488?l=meiyinglim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://meiyinglim.blogspot.com/feeds/112471520546734488/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7647587&amp;postID=112471520546734488&amp;isPopup=true' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/112471520546734488'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/112471520546734488'/><link rel='alternate' type='text/html' href='http://meiyinglim.blogspot.com/2005/08/skelta-cms-accelerator-express-edition.html' title='Skelta CMS Accelerator - Express Edition'/><author><name>Mei Ying</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7647587.post-112321034346051518</id><published>2005-08-05T10:43:00.000+08:00</published><updated>2005-08-05T10:52:23.466+08:00</updated><title type='text'>Switching Jobs</title><content type='html'>I've switched jobs and am now with &lt;a href="http://www.avanade.com"&gt;Avanade Asia&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;While it was great working at my old place, I suppose it was just time to move on. 6 years is definitely not insignificant. I'll definitely look back at those years with fond memories.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7647587-112321034346051518?l=meiyinglim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://meiyinglim.blogspot.com/feeds/112321034346051518/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7647587&amp;postID=112321034346051518&amp;isPopup=true' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/112321034346051518'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/112321034346051518'/><link rel='alternate' type='text/html' href='http://meiyinglim.blogspot.com/2005/08/switching-jobs.html' title='Switching Jobs'/><author><name>Mei Ying</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7647587.post-112304054907716307</id><published>2005-08-03T11:38:00.000+08:00</published><updated>2005-08-03T11:42:29.083+08:00</updated><title type='text'>MCMS AppPool Recycling, SPARK and operations</title><content type='html'>via &lt;a href="http://www.mcmsfaq.com"&gt;Spencer&lt;/a&gt;:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Introduction&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Following a &lt;a href="http://groups-beta.google.com/group/microsoft.public.cmserver.general/browse_thread/thread/cf9303413f5e4fa5/5c947663b1800fdf?q=recycling&amp;rnum=3&amp;amp;hl=en#5c947663b1800fdf"&gt;couple&lt;/a&gt; of &lt;a href="http://groups-beta.google.com/group/microsoft.public.cmserver.general/browse_thread/thread/4c5fb741619941a6/7771916b714ac6df?q=recycling&amp;rnum=4&amp;amp;hl=en#7771916b714ac6df"&gt;queries&lt;/a&gt; on the &lt;a href="http://communities.microsoft.com/Newsgroups/default.asp?ICP=cmserver&amp;sLCID=US&amp;amp;newsgroup=microsoft.public.cmserver.general"&gt;cmserver&lt;/a&gt; newsgroup, it became apparent that for production MCMS deployments the default Application Pool Recycling configuration for the App Pool running the MCMS application should be disabled.&lt;br /&gt;&lt;br /&gt;Whilst this configuration change seems more than reasonable and obvious, it has never been officially documented either in the production documentation, the performance planning guide or the MSIB 2.5 refresh. The closest we get to an official word (and it's good enough for me!) is as part of &lt;a href="http://download.microsoft.com/download/4/2/5/4250f79a-c3a1-4003-9272-2404e92bb76a/MCMS+2002+-+(complete)+FAQ.htm#484F5EA6-45B5-4066-808C-60D3722BC9AF"&gt;Stefan's FAQ&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;However, the configuration change also poses some interesting challenges to those responsible for operating production MCMS applications, especially when combined with SharePoint Technologies. This article briefly discusses these challenges and offers solutions for optimally operating your MCMS applications.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Read &lt;a href="http://www.mcmsfaq.com/2005/08/mcms-apppool-recycling-spark-and.asp"&gt;full article&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7647587-112304054907716307?l=meiyinglim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.mcmsfaq.com/2005/08/mcms-apppool-recycling-spark-and.asp' title='MCMS AppPool Recycling, SPARK and operations'/><link rel='replies' type='application/atom+xml' href='http://meiyinglim.blogspot.com/feeds/112304054907716307/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7647587&amp;postID=112304054907716307&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/112304054907716307'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/112304054907716307'/><link rel='alternate' type='text/html' href='http://meiyinglim.blogspot.com/2005/08/mcms-apppool-recycling-spark-and.html' title='MCMS AppPool Recycling, SPARK and operations'/><author><name>Mei Ying</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7647587.post-112247452805285938</id><published>2005-07-27T21:33:00.000+08:00</published><updated>2005-07-27T22:31:59.550+08:00</updated><title type='text'>Some Workarounds to Missing PAPI Functions</title><content type='html'>Stefan writes about why you shouldn't use undocumented APIs (or 3rd party tools that use them) when working with MCMS.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://blogs.technet.com/stefan_gossner/archive/2005/07/27/undocumented_API_Part1.aspx"&gt;Part 1 - Technical Background&lt;/a&gt;&lt;br /&gt;&lt;a href="http://blogs.technet.com/stefan_gossner/archive/2005/07/27/408245.aspx"&gt;Part 2 - What would YOU do?&lt;/a&gt;&lt;br /&gt;&lt;a href="http://blogs.technet.com/stefan_gossner/archive/2005/07/27/408247.aspx"&gt;Part 3 - How to identify 3rd party products using undocumented program internal intefaces&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I can totally understand where he is coming from. There are probably good reasons why the code isn't available in the first place. As Stefan mentioned, using undocumented code without knowing what the limitations are could cause serious problems like database inconsistencies. You definitely don't want to get one of those.&lt;br /&gt;&lt;br /&gt;Trouble is, the ability to tailor fit tasks to meet business requirements is often a critical success factor in projects. Having "missing" PAPI methods mean that we don't get to customize that aspect of the system and therefore incur administrative overheads. If we can't automate it, someone's got to do the job. Of course, having a person/team dedicated to the overall administration of the site is ideal, but even if you have the delight of having people to help, it's nice (sometimes important) to automate some tasks.&lt;br /&gt;&lt;br /&gt;The good news is: there are workarounds. Though not for all missing features and even so, not all gaps are filled 100%. Nevertheless, its better than putting critical systems at risk. Here are some such workarounds:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;Creating custom channel properties.&lt;/strong&gt; Use shadow postings to store channel custom property values or store them in a separate database table using the channel's GUID as the primary key.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Managing users in rights groups.&lt;/strong&gt; If you're using the MCMS Enterprise edition, you could create NT Domain groups and use ADSI scripts to programatically assign users here.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Assigning rights groups to channels, resource galleries or template galleries.&lt;/strong&gt; Nothing much can be done here (none that I know of). But you could work with the idea that new container items inherit the rights groups assigned to its parent.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Moving channels, template galleries or resource galleries.&lt;/strong&gt; Moving channels is a big thing because it means changing the friendly URLs of all postings within it. But if you really need to do so, create copies of all container items and delete the originals (Note: The PAPI provides postings and templates with a .MoveTo() method which you can use). However, the drawback of this approach is that the "moved" container will have a new GUID. Alternatively, if keeping the GUID is important, instead of deleting the originals you could mark them as hidden (thereby potentially bloating the system with lots of hidden channels) and write code to deal with requests to these hidden items.&lt;/li&gt;&lt;/ul&gt;This list is by no means exhaustive! If you know of other creative workaround solutions (legit ones, of course), do post it :-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7647587-112247452805285938?l=meiyinglim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://meiyinglim.blogspot.com/feeds/112247452805285938/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7647587&amp;postID=112247452805285938&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/112247452805285938'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/112247452805285938'/><link rel='alternate' type='text/html' href='http://meiyinglim.blogspot.com/2005/07/some-workarounds-to-missing-papi.html' title='Some Workarounds to Missing PAPI Functions'/><author><name>Mei Ying</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7647587.post-112239906388504960</id><published>2005-07-27T01:24:00.000+08:00</published><updated>2005-07-27T01:31:03.893+08:00</updated><title type='text'>HyperLink Dependancy Report Generator</title><content type='html'>Authors often ask for a list of postings that link to a particular posting/channel before deleting or moving it. Here's a sample that I've written to help address this. It's a simple console application that scans all placeholder content for hyperlink. If it finds that the address belongs to a posting or channel, it records it in a CSV file.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.gotdotnet.com/Community/UserSamples/Details.aspx?SampleGuid=9804F9C9-54D3-4735-9967-41CF1FD88740"&gt;Download the sample&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7647587-112239906388504960?l=meiyinglim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.gotdotnet.com/Community/UserSamples/Details.aspx?SampleGuid=9804F9C9-54D3-4735-9967-41CF1FD88740' title='HyperLink Dependancy Report Generator'/><link rel='replies' type='application/atom+xml' href='http://meiyinglim.blogspot.com/feeds/112239906388504960/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7647587&amp;postID=112239906388504960&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/112239906388504960'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/112239906388504960'/><link rel='alternate' type='text/html' href='http://meiyinglim.blogspot.com/2005/07/hyperlink-dependancy-report-generator.html' title='HyperLink Dependancy Report Generator'/><author><name>Mei Ying</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7647587.post-112082097432821915</id><published>2005-07-08T18:43:00.000+08:00</published><updated>2005-07-08T19:09:34.346+08:00</updated><title type='text'>MSDN book excerpt: "Enhancing Performance with Caching"</title><content type='html'>Microsoft has published a chapter of the book, &lt;a href="http://www.packtpub.com/book/mcms/"&gt;Building Websites with Microsoft Content Management Server&lt;/a&gt;, on &lt;a href="http://msdn.microsoft.com"&gt;MSDN&lt;/a&gt;!&lt;br /&gt;&lt;br /&gt;It's about &lt;a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/odc_MCMS2002_bk/html/CMSCh22EnhancingPerfCaching.asp"&gt;enhancing the performance of your MCMS website with caching&lt;/a&gt;. It introduces the different caching mechanisms used by MCMS and demonstrates how you can apply output caching to postings, channels and even controls. &lt;a href="http://joelsef.blogspot.com/"&gt;Joel&lt;/a&gt; and &lt;a href="http://blogs.technet.com/stefan_gossner/default.aspx"&gt;Stefan &lt;/a&gt;wrote most of this chapter, and they did a really great job with it!&lt;br /&gt;&lt;br /&gt;Read the chapter &lt;a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/odc_MCMS2002_bk/html/CMSCh22EnhancingPerfCaching.asp"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7647587-112082097432821915?l=meiyinglim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://msdn.microsoft.com/library/default.asp?url=/library/en-us/odc_MCMS2002_bk/html/CMSCh22EnhancingPerfCaching.asp' title='MSDN book excerpt: &quot;Enhancing Performance with Caching&quot;'/><link rel='replies' type='application/atom+xml' href='http://meiyinglim.blogspot.com/feeds/112082097432821915/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7647587&amp;postID=112082097432821915&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/112082097432821915'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/112082097432821915'/><link rel='alternate' type='text/html' href='http://meiyinglim.blogspot.com/2005/07/msdn-book-excerpt-enhancing.html' title='MSDN book excerpt: &quot;Enhancing Performance with Caching&quot;'/><author><name>Mei Ying</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7647587.post-111983751486264463</id><published>2005-06-27T09:53:00.000+08:00</published><updated>2005-06-27T09:58:34.870+08:00</updated><title type='text'>ASP.NET 2.0 and MCMS - a first look</title><content type='html'>&lt;a href="http://blogs.technet.com/stefan_gossner"&gt;Stefan &lt;/a&gt;provides a first look at ASP.NET 2.0 and MCMS. After &lt;a href="http://weblogs.asp.net/arpans"&gt;Arpan's&lt;/a&gt; announcement of MCMS SP2 at TechEd, this article provides the much awaited details of the upcoming release.&lt;br /&gt;&lt;br /&gt;---&lt;br /&gt;Now - after support for ASP.NET 2.0 with MCMS 2002 Service Pack 2 - has officially been announced lets have a short look on the new features coming with ASP.NET 2.0 and how they might give benefits to a MCMS site... &lt;a href="http://blogs.technet.com/stefan_gossner/archive/2005/06/26/406874.aspx"&gt;Read the entire article&gt;&gt;&lt;/a&gt;&lt;br /&gt;---&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7647587-111983751486264463?l=meiyinglim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://meiyinglim.blogspot.com/feeds/111983751486264463/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7647587&amp;postID=111983751486264463&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/111983751486264463'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/111983751486264463'/><link rel='alternate' type='text/html' href='http://meiyinglim.blogspot.com/2005/06/aspnet-20-and-mcms-first-look.html' title='ASP.NET 2.0 and MCMS - a first look'/><author><name>Mei Ying</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7647587.post-111793994813664198</id><published>2005-06-05T10:41:00.000+08:00</published><updated>2005-06-05T10:52:28.143+08:00</updated><title type='text'>Indexing Resources with dtSearch</title><content type='html'>&lt;a href="http://blog.keithpatton.com/"&gt;Keith Patton &lt;/a&gt;has successfully used &lt;a href="http://www.dtsearch.com"&gt;dtSearch &lt;/a&gt;to crawl MCMS resources. There's a hidden trick to it, read about it &lt;a href="http://blog.keithpatton.com/UsingDtSearchToIndexcrawlMCMSMicrosoftContentManagementServer2002Resources.aspx"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7647587-111793994813664198?l=meiyinglim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://meiyinglim.blogspot.com/feeds/111793994813664198/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7647587&amp;postID=111793994813664198&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/111793994813664198'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/111793994813664198'/><link rel='alternate' type='text/html' href='http://meiyinglim.blogspot.com/2005/06/indexing-resources-with-dtsearch.html' title='Indexing Resources with dtSearch'/><author><name>Mei Ying</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7647587.post-111707376792495851</id><published>2005-05-26T09:48:00.000+08:00</published><updated>2005-05-26T10:51:27.693+08:00</updated><title type='text'>Office 12 Timetable Released</title><content type='html'>The news is out: &lt;a href="http://tech.monstersandcritics.com/news/article_1002043.php/Office_12_timetable_announced"&gt;Beta2 version of Office 12 will be released by the end of this year and a full release probably in the second half of 2006&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Why is this significant? Because &lt;a href="http://www.microsoft-watch.com/article2/0,1995,1710825,00.asp"&gt;MCMS v.Next will be part of Office 12&lt;/a&gt;! Read a full report on zdnet &lt;a href="http://news.zdnet.co.uk/software/applications/0,39020384,39199804,00.htm"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;There will probably be lot more buzz and details trickling out about Office 12 over the coming months. This will be exciting!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7647587-111707376792495851?l=meiyinglim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://meiyinglim.blogspot.com/feeds/111707376792495851/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7647587&amp;postID=111707376792495851&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/111707376792495851'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/111707376792495851'/><link rel='alternate' type='text/html' href='http://meiyinglim.blogspot.com/2005/05/office-12-timetable-released.html' title='Office 12 Timetable Released'/><author><name>Mei Ying</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7647587.post-111633711294471350</id><published>2005-05-17T21:29:00.000+08:00</published><updated>2005-05-17T21:38:32.950+08:00</updated><title type='text'>Keirsey says I'm a Rational!</title><content type='html'>I find it amazing that my personality type changes each time I take the &lt;a href="http://www.advisorteam.com/temperament_sorter/register.asp?partid=1"&gt;Keirsey Temperament Sorter&lt;/a&gt;. Right now, it says I'm a &lt;a href="http://keirsey.com/personality/nt.html"&gt;rational&lt;/a&gt;. I guess I'll take it with a pinch of salt.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7647587-111633711294471350?l=meiyinglim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://meiyinglim.blogspot.com/feeds/111633711294471350/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7647587&amp;postID=111633711294471350&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/111633711294471350'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/111633711294471350'/><link rel='alternate' type='text/html' href='http://meiyinglim.blogspot.com/2005/05/keirsey-says-im-rational.html' title='Keirsey says I&apos;m a Rational!'/><author><name>Mei Ying</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7647587.post-111571805957754703</id><published>2005-05-10T17:20:00.000+08:00</published><updated>2005-05-10T17:40:59.626+08:00</updated><title type='text'>Welcome to TripleZ!</title><content type='html'>&lt;a href="http://community.sgdotnet.org/blogs/triplez/"&gt;TripleZ&lt;/a&gt; (a.k.a Justin Lee), Microsoft Valuable Professional for C# and &lt;a href="http://www.sgdotnet.org"&gt;sgdotnet&lt;/a&gt; council member, has swallowed the pill and joined my department! Welcome, &lt;a href="http://community.sgdotnet.org/blogs/triplez/"&gt;TripleZ&lt;/a&gt;! We have snagged a world-class developer (thanks to a recommendation from yours truly). 2 MVPs on the same project, what on earth will happen???&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7647587-111571805957754703?l=meiyinglim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://meiyinglim.blogspot.com/feeds/111571805957754703/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7647587&amp;postID=111571805957754703&amp;isPopup=true' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/111571805957754703'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/111571805957754703'/><link rel='alternate' type='text/html' href='http://meiyinglim.blogspot.com/2005/05/welcome-to-triplez.html' title='Welcome to TripleZ!'/><author><name>Mei Ying</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7647587.post-111560859598160158</id><published>2005-05-09T09:57:00.000+08:00</published><updated>2005-05-09T11:25:44.710+08:00</updated><title type='text'>Getting Rid of the Leave Warning Alert after a Preview</title><content type='html'>Have you tried turning off the Leave Warning alert only to find that despite repeated attempts to get rid of it, it seems to reset itself after a Preview? And do you find that this problem occurs more frequently for templates that make use of complex controls, like DataGrids and Calendars that require a post back to the server?&lt;br /&gt;&lt;br /&gt;You've already set the &lt;span style="font-family:courier new;font-size:85%;"&gt;EnableLeaveAuthoringWarning&lt;/span&gt; attribute to &lt;span style="font-family:courier new;"&gt;false&lt;/span&gt; on the Authoring Console. Or alternatively, you have implemented &lt;a href="http://blogs.technet.com/stefan_gossner/archive/2004/12/03/274255.aspx"&gt;Stefan's sample to turn off the leave warning for a particular control&lt;/a&gt;. Somehow, the warning goes away for a while, but after a Preview, the &lt;span style="font-family:courier new;font-size:85%;"&gt;EnableLeaveAuthoringWarning&lt;/span&gt; flag seems to reset itself and appears once again.&lt;br /&gt;&lt;br /&gt;Try it:&lt;br /&gt;1. Add an ASP.NET Button to a template file.&lt;br /&gt;2. Set the &lt;span style="font-family:courier new;"&gt;EnableLeaveAuthoringWarning&lt;/span&gt; flag of the Authoring Console to &lt;span style="font-family:courier new;"&gt;false&lt;/span&gt;.&lt;br /&gt;3. Click Preview.&lt;br /&gt;4. Close the Preview window.&lt;br /&gt;5. Click on the Button you have added to the template. The alert appears despite being disabled!&lt;br /&gt;&lt;br /&gt;Last week, we finally found the reason. The reason lies in the &lt;span style="font-family:courier new;font-size:85%;"&gt;CMS_restoreAfterPreviewPostback()&lt;/span&gt; Javascript routine that is called after the Preview button is clicked.&lt;br /&gt;&lt;br /&gt;In that routine (found in the Console.js file), the &lt;span style="font-family:courier new;font-size:85%;"&gt;g_bWarnBeforeLeave&lt;/span&gt; global variable, which decides whether or not the leave warning appears is reset to true:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;function CMS_restoreAfterPreviewPostback()&lt;br /&gt;{&lt;br /&gt;// restore state of form&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;. . . code continues . . .&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;&lt;strong&gt;g_bWarnBeforeLeave = true;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;We need to set it to false when &lt;span style="font-family:courier new;font-size:85%;"&gt;EnableLeaveAuthoringWarning&lt;/span&gt; is false. I'm not sure if modifying the Console.js file violates any support agreement with Microsoft. Anyway, it's probably not a good idea to do so as the next service pack will just overwrite all changes that we have done to it.&lt;br /&gt;&lt;br /&gt;So to get around this, we will take advantage of the fact that the routine is written in a linked script file. This means that if we were to embed a routine of the same name within postings, our custom version will run instead of the linked routine.&lt;br /&gt;&lt;br /&gt;We added the following code to the DefaultConsole.ascx.cs file. The script basically re-generates the &lt;span style="font-family:courier new;font-size:85%;"&gt;Cms_restoreAfterPreviewPostback()&lt;/span&gt; method, but instead of always setting the &lt;span style="font-family:courier new;font-size:85%;"&gt;g_bWarnBeforeLeave&lt;/span&gt; flag to &lt;span style="font-family:courier new;font-size:85%;"&gt;true&lt;/span&gt;, it is assigned the value of the Console's &lt;span style="font-family:courier new;font-size:85%;"&gt;EnableLeaveAuthoringWarning&lt;/span&gt; property. So if the leave warning is turned off, it stays off!&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;private void Page_Load(object sender, System.EventArgs e)&lt;/pre&gt;&lt;br /&gt;{&lt;br /&gt;GeneratePreviewScript();&lt;br /&gt;}&lt;br /&gt;private void GeneratePreviewScript()&lt;br /&gt;{&lt;br /&gt;System.Text.StringBuilder sb = new System.Text.StringBuilder();&lt;br /&gt;sb.Append("&amp;lt;script language=\"javascript\"&amp;gt;\n");&lt;br /&gt;sb.Append("function CMS_restoreAfterPreviewPostback()\n");&lt;br /&gt;sb.Append("{\n");&lt;br /&gt;sb.Append("// restore state of form\n");&lt;br /&gt;sb.Append("__CMS_PostbackForm.action = g_strOriginalFormAction;\n");&lt;br /&gt;sb.Append("__CMS_PostbackForm.target = g_strOriginalFormTarget;\n");&lt;br /&gt;sb.Append("g_bWarnBeforeLeave = " + &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="font-size:85%;"&gt;Console1.EnableLeaveAuthoringWarning.ToString().ToLower() + &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="font-size:85%;"&gt;";\n");&lt;br /&gt;sb.Append("}\n");&lt;br /&gt;sb.Append("&amp;lt;/script&amp;gt;\n");&lt;br /&gt;&lt;br /&gt;if(!Page.IsClientScriptBlockRegistered("WACConsolePreviewScript"))&lt;br /&gt;{&lt;br /&gt;Page.RegisterStartupScript("WACConsolePreviewScript",sb.ToString());&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I'm not sure why the preview button resets the flag in the first place, but at least with this workaround, our users will continue to receive a pleasant authoring experience!&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7647587-111560859598160158?l=meiyinglim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://meiyinglim.blogspot.com/feeds/111560859598160158/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7647587&amp;postID=111560859598160158&amp;isPopup=true' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/111560859598160158'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/111560859598160158'/><link rel='alternate' type='text/html' href='http://meiyinglim.blogspot.com/2005/05/getting-rid-of-leave-warning-alert.html' title='Getting Rid of the Leave Warning Alert after a Preview'/><author><name>Mei Ying</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7647587.post-111525625454018853</id><published>2005-05-05T09:07:00.000+08:00</published><updated>2005-05-05T09:24:14.590+08:00</updated><title type='text'>Uniquely Singapore Moment</title><content type='html'>Have you been to Singapore? National Grographic Channel is giving you a chance to win a trip for 2 to this sunny island!&lt;br /&gt;---&lt;br /&gt;&lt;strong&gt;Win a Trip to Singapore&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Singapore is a unique destination that appeals to every sophisticated traveler.&lt;br /&gt;Its blend of diverse cultures and the harmonious co-existence between centuries' old traditions and modern influences and conveniences have translated into amazing art, spectacular architecture, mouth-watering food and a nirvana for even the most fastidious shoppers - set in a clean and green city of the future. Over a period of 12 days in September and October 2004, three renowned photographers from National Geographic flew to Singapore, went around the island and captured memorable mementos of various facets of life in this garden city like no other.&lt;br /&gt;&lt;br /&gt;To view and share these breathtaking images, just &lt;a title="http://e3m.starasiatravel.com/redirect.php?campaign_id=" email="meiying@singtel.com&amp;amp;url=" href="http://e3m.starasiatravel.com/redirect.php?campaign_id=539&amp;email=meiying@singtel.com&amp;amp;url=http://contest.ngcasia.com/stb/"&gt;click here&lt;/a&gt;. And like these famous world travelers, you, too, can create your own "Uniquely Singapore" experience and take them home with you! Simply fill out &lt;a title="http://e3m.starasiatravel.com/redirect.php?campaign_id=" email="meiying@singtel.com&amp;amp;url=" href="http://e3m.starasiatravel.com/redirect.php?campaign_id=539&amp;email=meiying@singtel.com&amp;amp;url=http://contest.ngcasia.com/stb/"&gt;the survey&lt;/a&gt; and get a chance to win a trip for two to Singapore&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7647587-111525625454018853?l=meiyinglim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://meiyinglim.blogspot.com/feeds/111525625454018853/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7647587&amp;postID=111525625454018853&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/111525625454018853'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/111525625454018853'/><link rel='alternate' type='text/html' href='http://meiyinglim.blogspot.com/2005/05/uniquely-singapore-moment.html' title='Uniquely Singapore Moment'/><author><name>Mei Ying</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7647587.post-111443623897024572</id><published>2005-04-25T21:35:00.000+08:00</published><updated>2005-04-25T21:37:18.973+08:00</updated><title type='text'>CMS.RAPID Developer Webcast - next week - 3rd May - register now !</title><content type='html'>It's at midnight Singapore time, but I plan to be there!&lt;br /&gt;&lt;br /&gt;---&lt;br /&gt;Dear RAPID Downloader,&lt;br /&gt;&lt;br /&gt;Following significant demand, and the record attendance at the 9th March launch webcast, we have secured a further Microsoft-backed event, this time aimed at going deeper into the development side of RAPID. We are planning to demonstrate how to build new templates, affect the output via the XSLT layer and then show how to build a custom RAPID-compatible control. As well as this we will be taking questions of course during the event. Presenting will be Tony Sloggett and Vince Rothwell of Artemis Corporation.&lt;br /&gt;&lt;br /&gt;Registration is open and available at this website address:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.msusapartnerreadiness.com/eventregister.asp?eid=2315"&gt;http://www.msusapartnerreadiness.com/eventregister.asp?eid=2315&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Timings are aimed primarily at the US and European timezones, with an 8am start for West Coast US (Pacific Time US and Canada), which translates to 4pm UK time.&lt;br /&gt;&lt;br /&gt;We are expecting a very high attendance figure so I would urge you to book a place as soon as possible – there is a limit on the number of attendees.&lt;br /&gt;&lt;br /&gt;Also if anyone would like to suggest some interesting topics to cover we are very open to ideas – this event will be fairly informal and questions submitted in advance will be answered for the benefit of everyone, assuming they are relevant to the event. Please send any technical ‘How Do I’ type questions directly to me.&lt;br /&gt;&lt;br /&gt;For those of you that cannot make the event, do not fear, as there will be a recorded version available within about a week or so of the live event.&lt;br /&gt;&lt;br /&gt;As always, thanks for all your support of the RAPID initiative – we continue to build more and more momentum and it’s a very exciting time for us. In the next 2 months we will release a new solution site for RAPID 1.0, called RAPIDBlue, which includes multilinguality, and shortly afterwards will follow a new version of the core solution, RAPID 1.1, including Sharepoint integration and Membership.&lt;br /&gt;&lt;br /&gt;I very much hope you can join us on the 3rd May.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Best regards&lt;br /&gt;&lt;br /&gt;Nick&lt;br /&gt;&lt;br /&gt;Dr Nick Mayhew&lt;br /&gt;RAPID Launch Director&lt;br /&gt;Artemis Corporation&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7647587-111443623897024572?l=meiyinglim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.msusapartnerreadiness.com/eventregister.asp?eid=2315' title='CMS.RAPID Developer Webcast - next week - 3rd May - register now !'/><link rel='replies' type='application/atom+xml' href='http://meiyinglim.blogspot.com/feeds/111443623897024572/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7647587&amp;postID=111443623897024572&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/111443623897024572'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/111443623897024572'/><link rel='alternate' type='text/html' href='http://meiyinglim.blogspot.com/2005/04/cmsrapid-developer-webcast-next-week.html' title='CMS.RAPID Developer Webcast - next week - 3rd May - register now !'/><author><name>Mei Ying</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7647587.post-111381097333306389</id><published>2005-04-18T15:27:00.000+08:00</published><updated>2005-04-18T16:01:21.976+08:00</updated><title type='text'>An Eye for a Guy?</title><content type='html'>Singapore has caught up with the latest trends in reality TV. It has started its own localised version of the Batchelorette named, &lt;a href="http://ch5.mediacorptv.com/shows/reality/view/916/1/.html"&gt;An Eye for a Guy 2&lt;/a&gt;, now into its second season.&lt;br /&gt;&lt;br /&gt;Guess who's one of the eligible batchelors? He is none other than our Microsoft MVP lead for South East Asia, &lt;a href="http://www.thespoke.net/MyBlog/Howard/MyBlog.aspx"&gt;Howard Lo&lt;/a&gt;. If he wins, he gets an all expense trip to Europe with drop-dead gorgeous MTV VJ, &lt;a href="http://www.denisekeller.com"&gt;Denise Keller&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;A local magazine, 8 Days has even described Howard as the "Charismatic one". Does he get the girl? Tune in to find out! (Though from his latest emails, it seems that he is still in Singapore)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Meanwhile, about 45 minutes ago, Singapore has finally released its decision to &lt;a href="http://www.channelnewsasia.com/stories/singaporelocalnews/view/143186/1/.html"&gt;build not one, but two casinos&lt;/a&gt;! One will be built at Marina Bayfront, and the other at Sentosa. When its all done, you could take a break from long business meetings at the city centre to roll a few dice and make a fortune. Man, should have grabbed that &lt;a href="http://skyscraperpage.com/gallery/showphoto.php?photo=52544&amp;papass=&amp;amp;sort=1"&gt;condo by the bay&lt;/a&gt;... it's all sold out, btw.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7647587-111381097333306389?l=meiyinglim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://meiyinglim.blogspot.com/feeds/111381097333306389/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7647587&amp;postID=111381097333306389&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/111381097333306389'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/111381097333306389'/><link rel='alternate' type='text/html' href='http://meiyinglim.blogspot.com/2005/04/eye-for-guy.html' title='An Eye for a Guy?'/><author><name>Mei Ying</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7647587.post-111284060869201589</id><published>2005-04-07T09:38:00.000+08:00</published><updated>2005-04-11T17:56:01.010+08:00</updated><title type='text'>More MCMS Solutions!</title><content type='html'>The cat is definitely out of the bag :-)&lt;br /&gt;&lt;br /&gt;We are interested in having your feedback. If there is a topic or a problem that you would like discussed, do drop us a mail.&lt;br /&gt;&lt;br /&gt;Direct from Stefan's blog:&lt;br /&gt;---&lt;br /&gt;I want to let you know that &lt;a class="blines3" title="Link outside of this blog" href="http://meiyinglim.blogspot.com/" target="_blank"&gt;Mei Ying&lt;/a&gt;, &lt;a class="blines3" title="Link outside of this blog" href="http://msmvps.com/anguslogan/" target="_blank"&gt;Angus Logan&lt;/a&gt;, &lt;a class="blines3" title="Link outside of this blog" href="http://andrewconnell.com/blog/" target="_blank"&gt;Andrew Connell&lt;/a&gt;, &lt;a class="blines3" title="Link outside of this blog" href="http://joelsef.blogspot.com/" target="_blank"&gt;Joel Ward&lt;/a&gt; and myself (&lt;a href="http://blogs.technet.com/stefan_gossner/default.aspx"&gt;Stefan Goßner&lt;/a&gt;) are currently writing on a second MCMS book. It will focus on more advanced topics which didn't make it into the first book. Here is a short overview of the topics that will be covered in the new book:&lt;br /&gt;- Advanced Publishing API topics&lt;br /&gt;- SharePoint integration (with and without Connector for SharePoint technologies)&lt;br /&gt;- Web Parts and MCMS- Search integration (with and without Connector for SharePoint technologies)&lt;br /&gt;- Content Syndication/Aggregation with RSS and Webservices&lt;br /&gt;- Content authoring using InfoPath&lt;br /&gt;- Placeholder Validation using custom Validator controls&lt;br /&gt;- Loads of Tips &amp;amp; Tricks for MCMS you should not miss&lt;br /&gt;---&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7647587-111284060869201589?l=meiyinglim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://meiyinglim.blogspot.com/feeds/111284060869201589/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7647587&amp;postID=111284060869201589&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/111284060869201589'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/111284060869201589'/><link rel='alternate' type='text/html' href='http://meiyinglim.blogspot.com/2005/04/more-mcms-solutions.html' title='More MCMS Solutions!'/><author><name>Mei Ying</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7647587.post-111275311800850811</id><published>2005-04-06T10:03:00.000+08:00</published><updated>2005-04-06T10:05:18.010+08:00</updated><title type='text'>Stefan's Tip of the Day</title><content type='html'>Stefan has started a &lt;a href="http://blogs.technet.com/stefan_gossner/comments/403321.aspx"&gt;Tip of the Day series&lt;/a&gt; on his blog. Way to go dude!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7647587-111275311800850811?l=meiyinglim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://blogs.technet.com/stefan_gossner/comments/403321.aspx' title='Stefan&apos;s Tip of the Day'/><link rel='replies' type='application/atom+xml' href='http://meiyinglim.blogspot.com/feeds/111275311800850811/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7647587&amp;postID=111275311800850811&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/111275311800850811'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/111275311800850811'/><link rel='alternate' type='text/html' href='http://meiyinglim.blogspot.com/2005/04/stefans-tip-of-day.html' title='Stefan&apos;s Tip of the Day'/><author><name>Mei Ying</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7647587.post-111275221348940768</id><published>2005-04-06T09:49:00.000+08:00</published><updated>2005-04-06T09:50:13.490+08:00</updated><title type='text'>ITHit Free Edition</title><content type='html'>&lt;p&gt;Sounds good!&lt;/p&gt;&lt;p&gt;---&lt;/p&gt;&lt;p&gt;Dear Mei Ying, We have just released Web Author Enhancement v2.0 Free Edition for MCMS 2002. WAE Free edition is available at no cost and installs new Select Internal Link dialog, Copy\Move dialog, Popup Console and Kill Lock console action: http://mcms.ithit.com/free_edition/download&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7647587-111275221348940768?l=meiyinglim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://meiyinglim.blogspot.com/feeds/111275221348940768/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7647587&amp;postID=111275221348940768&amp;isPopup=true' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/111275221348940768'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/111275221348940768'/><link rel='alternate' type='text/html' href='http://meiyinglim.blogspot.com/2005/04/ithit-free-edition.html' title='ITHit Free Edition'/><author><name>Mei Ying</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7647587.post-111111612141774090</id><published>2005-03-18T11:14:00.000+08:00</published><updated>2005-03-18T11:22:01.420+08:00</updated><title type='text'>About crossing support boundaries</title><content type='html'>Stefan has explained &lt;a href="http://blogs.msdn.com/stefan_gossner/archive/2005/03/16/396647.aspx"&gt;why developers shouldn't query the MCMS database&lt;/a&gt;. It's excellent advice. Here's my take on why it should not be done:&lt;br /&gt;&lt;br /&gt;Once we had a query that returned stuff from the MCMS database. You know, things like - searching resources in the gallery by their display name - it's not possible to do tasks like that efficiently with just the PAPI alone.&lt;br /&gt;&lt;br /&gt;As time went on (of course, we didn't care about support because we weren't planning to get it for that application - it wasn't that important then), the database grew and grew and soon we had tens of thousands of resources in the gallery.&lt;br /&gt;&lt;br /&gt;What happened later was a night mare - ocasionally, the database will get locked up and the website will literally timeout at each request that requires a query to the db. At that point, of course, the phones will start ringing and someone will reset the web service on the affected server. Then there will be peace for a while until disaster strikes again.&lt;br /&gt;&lt;br /&gt;There are very good reason why MCMS comes with internal caching mechanisms to help speed up retrieval of data from the database. Bypassing it is not a good idea.&lt;br /&gt;&lt;br /&gt;It's not worth the pain. Believe me - the alternatives are worth looking into.&lt;br /&gt;Or at least &lt;a href="http://andrewconnell.com/blog/archive/2005/03/17/1004.aspx"&gt;work on a copy of the database as Andrew has suggested&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7647587-111111612141774090?l=meiyinglim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://meiyinglim.blogspot.com/feeds/111111612141774090/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7647587&amp;postID=111111612141774090&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/111111612141774090'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/111111612141774090'/><link rel='alternate' type='text/html' href='http://meiyinglim.blogspot.com/2005/03/about-crossing-support-boundaries.html' title='About crossing support boundaries'/><author><name>Mei Ying</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7647587.post-110981504453164495</id><published>2005-03-03T09:28:00.000+08:00</published><updated>2005-03-03T10:00:44.583+08:00</updated><title type='text'>New Microsoft Content Management Group on MSN</title><content type='html'>Amit Arvind Barde, a Community Star for the BDOTNET community in Bangalore, India has created an MSN group for the purpose of discussing all things MCMS. Sign up &lt;a href="http://groups.msn.com/MicrosoftContentManagementServer/homepage"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7647587-110981504453164495?l=meiyinglim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://groups.msn.com/MicrosoftContentManagementServer/homepage' title='New Microsoft Content Management Group on MSN'/><link rel='replies' type='application/atom+xml' href='http://meiyinglim.blogspot.com/feeds/110981504453164495/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7647587&amp;postID=110981504453164495&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/110981504453164495'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/110981504453164495'/><link rel='alternate' type='text/html' href='http://meiyinglim.blogspot.com/2005/03/new-microsoft-content-management-group.html' title='New Microsoft Content Management Group on MSN'/><author><name>Mei Ying</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7647587.post-110860925101712268</id><published>2005-02-17T10:57:00.000+08:00</published><updated>2005-02-17T11:08:15.723+08:00</updated><title type='text'>Free Online Edition of MCMS Book</title><content type='html'>Packt Publishing has launched a free &lt;a href="http://mcmsbook.packtpub.com/"&gt;online edition&lt;/a&gt; of the MCMS Book, &lt;a href="http://www.packtpub.com/book/mcms"&gt;Building Websites with Microsoft Content Management Server&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;About the site...&lt;/strong&gt;&lt;br /&gt;This site is designed to give you free information about MCMS, and about the book "Building Websites with Microsoft Content Management Server" by Packt Publishing. This website will allow you to view content from the book. The site allows you to read through summaries of each chapter from the book (see below), and read through two full chapters (Chapter 6 and 18).&lt;br /&gt;&lt;br /&gt;Click &lt;a href="http://mcmsbook.packtpub.com/"&gt;here &lt;/a&gt;to visit.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7647587-110860925101712268?l=meiyinglim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://mcmsbook.packtpub.com/' title='Free Online Edition of MCMS Book'/><link rel='replies' type='application/atom+xml' href='http://meiyinglim.blogspot.com/feeds/110860925101712268/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7647587&amp;postID=110860925101712268&amp;isPopup=true' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/110860925101712268'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/110860925101712268'/><link rel='alternate' type='text/html' href='http://meiyinglim.blogspot.com/2005/02/free-online-edition-of-mcms-book.html' title='Free Online Edition of MCMS Book'/><author><name>Mei Ying</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7647587.post-110810244428018201</id><published>2005-02-11T14:03:00.000+08:00</published><updated>2005-02-11T14:17:37.253+08:00</updated><title type='text'>Vote in the .NETDJ Reader's Choice Award</title><content type='html'>&lt;a href="http://www.amazon.com/exec/obidos/ASIN/1904811167/techblog-20"&gt;Building Websites with Microsoft Content Management Server&lt;/a&gt; has made it to the list of nominees for the &lt;a href="http://sys-con.com/dotnet/readerschoice2004/vote.cfm"&gt;.NETDJ Reader's Choice Award 2005&lt;/a&gt;!&lt;br /&gt;&lt;br /&gt;Cast your Vote &lt;a href="http://sys-con.com/dotnet/readerschoice2004/vote.cfm"&gt;here&lt;/a&gt;!&lt;br /&gt;&lt;br /&gt;&lt;a href="http://sys-con.com/dotnet/readerschoice2004/vote.cfm"&gt;&lt;img src="http://sys-con.com/dotnet/readerschoice2004/355x100-.NET.jpg" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7647587-110810244428018201?l=meiyinglim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://sys-con.com/dotnet/readerschoice2004/vote.cfm' title='Vote in the .NETDJ Reader&apos;s Choice Award'/><link rel='replies' type='application/atom+xml' href='http://meiyinglim.blogspot.com/feeds/110810244428018201/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7647587&amp;postID=110810244428018201&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/110810244428018201'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/110810244428018201'/><link rel='alternate' type='text/html' href='http://meiyinglim.blogspot.com/2005/02/vote-in-netdj-readers-choice-award.html' title='Vote in the .NETDJ Reader&apos;s Choice Award'/><author><name>Mei Ying</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7647587.post-110795515664318703</id><published>2005-02-09T21:05:00.000+08:00</published><updated>2005-02-09T21:21:35.003+08:00</updated><title type='text'>Guy Barrette Reviews Building Websites with Microsoft Content Management Server</title><content type='html'>&lt;a href="http://weblogs.asp.net/guybarrette"&gt;Guy Barrette&lt;/a&gt;, a Business Architect in the Microsoft Team at Nurun in Montreal, a Microsoft Regional Director for the Montreal region and an MVP for ASP/ASP.NET reviews &lt;a href="http://www.amazon.com/exec/obidos/ASIN/1904811167/techblog-20"&gt;Building Websites with Microsoft Content Management Server&lt;/a&gt; on &lt;a href="http://www.utmag.com"&gt;Universal Thread Magazine&lt;/a&gt;!&lt;br /&gt;&lt;br /&gt;Here's a snippet of the review:&lt;br /&gt;&lt;br /&gt;"This is the perfect book to learn MCMS. The writing style and the pace are excellent; perfect for experienced .NET developers to learn MCMS. What I like the most is the fact that it's full of hints that let you bypass some known (or less known) problems that you may encounter with MCMS, saving you hours of researches on the Web."&lt;br /&gt;&lt;br /&gt;Read the full review &lt;a href="http://www.utmag.com/wconnect/wc.dll?LevelExtreme~9,7,10,,779"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7647587-110795515664318703?l=meiyinglim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.utmag.com/wconnect/wc.dll?LevelExtreme~9,7,10,,779' title='Guy Barrette Reviews Building Websites with Microsoft Content Management Server'/><link rel='replies' type='application/atom+xml' href='http://meiyinglim.blogspot.com/feeds/110795515664318703/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7647587&amp;postID=110795515664318703&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/110795515664318703'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/110795515664318703'/><link rel='alternate' type='text/html' href='http://meiyinglim.blogspot.com/2005/02/guy-barrette-reviews-building-websites.html' title='Guy Barrette Reviews Building Websites with Microsoft Content Management Server'/><author><name>Mei Ying</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7647587.post-110775853271557896</id><published>2005-02-07T14:32:00.000+08:00</published><updated>2005-02-07T16:51:37.533+08:00</updated><title type='text'>Getting the Inner URL of a Framed Posting in AuthoringNew Mode</title><content type='html'>Frames take up space. It's nice to have the navigation bar fixed at the top and sides of the page. However, when authoring with HtmlPlaceholderControls, these bars just occupy much needed screen space. How can we open a new page for authoring without the frames?&lt;br /&gt;&lt;br /&gt;Part of the answer lies in the &lt;span style="color:#990000;"&gt;WebAuthorContext.GetAuthoringNewUrl()&lt;/span&gt; method. Simply pass in the destination channel and the posting's template - the method will return the URL of the posting in AuthoringNew mode. However, the returned URL still points to a page that has frames applied.&lt;br /&gt;&lt;br /&gt;To remove the frames, you've got to insert "&lt;span style="color:#990000;"&gt;,&lt;/span&gt;&lt;span style="color:#990000;"&gt;frameless.htm"&lt;/span&gt; to the result. And voila! you've got the new posting without the frames applied.&lt;br /&gt;&lt;br /&gt;Here's the code:&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;code&gt;&lt;br /&gt;&lt;span style="color:#009900;"&gt;//gets the inner URL of a new posting&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;WebAuthorContext wac = WebAuthorContext.Current;&lt;br /&gt;CmsHttpContext cmsContext = CmsHttpContext.Current;&lt;/code&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;code&gt;&lt;/code&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;code&gt;Template t = cmsContext.Searches.GetByPath ("/Templates/myTemplate") as Template;&lt;br /&gt;Channel c = cmsContext.Searches.GetByPath ("/Channels/myChannel") as Channel;&lt;br /&gt;if (t!=null &amp;&amp;amp; c!=null)&lt;br /&gt;{&lt;br /&gt;string url = wac.GetAuthoringNewUrl(t, c); &lt;/code&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;code&gt;url = url.Insert(url.IndexOf(".htm"),",frameless");&lt;br /&gt;}&lt;/code&gt;&lt;/span&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/7647587-110775853271557896?l=meiyinglim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://meiyinglim.blogspot.com/feeds/110775853271557896/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7647587&amp;postID=110775853271557896&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/110775853271557896'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/110775853271557896'/><link rel='alternate' type='text/html' href='http://meiyinglim.blogspot.com/2005/02/getting-inner-url-of-framed-posting-in.html' title='Getting the Inner URL of a Framed Posting in AuthoringNew Mode'/><author><name>Mei Ying</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7647587.post-111477120690011071</id><published>2005-01-29T13:44:00.000+08:00</published><updated>2005-09-01T16:07:33.390+08:00</updated><title type='text'>Book Reviews: Building Websites with Microsoft Content Management Server</title><content type='html'>It's encouraging to receive reviews from our readers. Thanks for your kind words of support. The process of writing the book was certainly not easy and its good to know that our efforts have not been in vain. Once again, thanks for the encouragement!&lt;br /&gt;&lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;&lt;br /&gt;niente0 on &lt;a href="http://www.amazon.co.uk/exec/obidos/ASIN/1904811167/026-9390028-4573236"&gt;www.amazon.co.uk&lt;/a&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;I knew nothing about Content Management Server and bought this book based on the description that it was a "fast-paced and practical tutorial guide for C# developers". I had one weekend to read as much as I could before starting on a new MCMS project... and can't recommend it highly enough if you're new to the product.&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;It's easy to read and walks you through various topics from installation (which can be a minefield if you're new to the product) to creating and deploying a Website from scratch. &lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;There are some great code examples for common tasks such as navigation etc and it covers other topics such as creating your own placeholder controls and customising the Default Console. &lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;It assumes you know C#, but requires no knowledge of MCMS at all. I went from knowing nothing, to feeling I had a good understanding about what the product can offer in a very short space of time. &lt;br /&gt;&lt;/p&gt;&lt;br /&gt;Buy this book if you're new to MCMS - it's worth every penny!!! &lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://blogs.conchango.com/rorystreet/archive/2005/06/04/1536.aspx"&gt;Rory&lt;/a&gt; on &lt;a href="http://blogs.conchango.com/rorystreet/default.aspx"&gt;Rory's Street Blog"&lt;/a&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;This type of thing happens all the time, you take on what at the time was a new version of a product and you battle through all the vendors' documentation and various example code around the net to create your own solution out of it. Then all of a sudden somone goes and writes a book about all those things, and what a very good book it is I might say. The book I am talking about of course is Building Websites with Microsoft Content Management Server by Lim Mei Ying, Joel Ward and Stefan Gossner, this book serves as a good reference guide, but it also covers some other little known features such as placeholder templates.&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;The book provides a good end to end guide from getting started right down to some more complicated features of CMS such as creating your own placeholder controls and definitions. If you are serious about CMS development this book is a real must to add to your collection.&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;&lt;a href="http://www.amazon.com/exec/obidos/tg/cm/member-glance/-/A2WCA7FVGSIWU5/1/ref=cm_cr_auth/104-6815103-7195128?%5Fencoding=UTF8"&gt;Varad Arasanipaalai&lt;/a&gt; (MD) on &lt;a href="http://www.amazon.com/exec/obidos/tg/detail/-/1904811167/ref=ase_techblog-20/104-6815103-7195128?v=glance&amp;s=books"&gt;Amazon.com&lt;/a&gt;:&lt;br /&gt;&lt;br /&gt;Book is laid out very well. Plenty of practical examples which you can try as you read the book and implement a demo site. Goes far beyond any other book in explaining the CMS PAPI (Publishing API). Only grouse: It is written in C# which seems to be the norm for most CMS sites but in my implementation I use VB.Net although translating to vb.net is very easy. I've interacted with the Authors (Stefan Gossner and Mei Ying) through the &lt;a href="http://www.microsoft.com/technet/community/newsgroups/server/cms.mspx"&gt;microsoft.public.cmserver.general&lt;/a&gt; news group for several of my problems and they are very knowledgable in the CMS product. I dont know them personally though! If you want to learn CMS2002 in detail this book it worth the buy.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.blogger.com/profile/4950855"&gt;Euan&lt;/a&gt; on &lt;a href="http://www.blogger.com/comment.g?blogID=8859052&amp;amp;postID=110799040294243249"&gt;Joel's Tip o' The Day&lt;/a&gt;:&lt;br /&gt;&lt;br /&gt;Hey Joel,&lt;br /&gt;&lt;br /&gt;Got the book and I am *really* pleased with it. It reads very well and is easy to follow.I especially like the book because it details the steps of building a site from scratch. I inherited three MCMS sites from a development company a year ago and have stuggled through it but getting there. Now with the book already its clearing grey areas and giving me confidence in MCMS. Great stuff!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;&lt;br /&gt;Dave on &lt;a href="http://groups.google.com.sg/groups?hl=en&amp;lr=&amp;amp;selm=D9FB42C1-437B-4365-8753-474E7D94DAFC%40microsoft.com"&gt;microsoft.public.cmserver.general&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;To other CMS administrators/developers, &lt;/p&gt;&lt;p&gt;I am Dave (from Lower Columbia College). I just wanted to place a&lt;br /&gt;kudo/suggestion on this forum since I have come across a book that has been&lt;br /&gt;soooo beneficial to installing/administering/developing the Microsoft CMS&lt;br /&gt;system.&lt;br /&gt;&lt;br /&gt;After 20 years of working in the tech field and purchasing books for each&lt;br /&gt;stage of need (i.e. C++, Windows Server, SQL, etc..), I thought no one could&lt;br /&gt;beat the ease of use, friendliness and skill building ability of my favorite&lt;br /&gt;series (Osborne, The Complete Reference ...., i.e. C++, etc..).&lt;br /&gt;&lt;br /&gt;Well, a book has come out that has equaled (if not surpassed) this level of&lt;br /&gt;publication ability. The book is &lt;a href="http://www.packtpub.com/book/mcms"&gt;"Building Websites with Microsoft Content&lt;br /&gt;Management Server"&lt;/a&gt; by (Lim Mei Ying, Joel Ward, Stefan GoBner). If you find&lt;br /&gt;yourself needing help with CMS 2002, I would HIGHLY recommend this book.&lt;br /&gt;&lt;br /&gt;One last note, I made up a quote a long time ago "It is easy to make a&lt;br /&gt;program, it is hard to make a program easy". The same holds true for books.&lt;br /&gt;Anyone can write a book, but to make it easy and useful takes a LOT of work.&lt;br /&gt;Thank you to these authors!&lt;br /&gt;&lt;br /&gt;Sincerely,&lt;br /&gt;Dave&lt;/p&gt;&lt;hr /&gt;&lt;br /&gt;&lt;br /&gt;Vincent Wright on &lt;a href="http://groups.google.com.sg/groups?hl=en&amp;lr=&amp;amp;selm=uO6BZ%23mJFHA.1176%40TK2MSFTNGP15.phx.gbl"&gt;microsoft.cmserver.public.general&lt;/a&gt;&lt;br /&gt;(in response to &lt;a href="http://groups.google.com.sg/groups?hl=en&amp;lr=&amp;amp;selm=D9FB42C1-437B-4365-8753-474E7D94DAFC%40microsoft.com"&gt;Dave's post&lt;/a&gt;)&lt;br /&gt;&lt;br /&gt;&lt;p&gt;I agree with you on that. I bought their book too. It is great for the beginner that is learning CMS and great for anyone who wants to find out the easier way of doing things.Vincent&lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;&lt;br /&gt;Guy Barrette on &lt;a href="http://www.utmag.com/wconnect/wc.dll?LevelExtreme~9,7,10,,779"&gt;Universal Thread Magazine&lt;/a&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;"Building Websites with Microsoft Content Management Server" is from a small UK publisher called Packt Publishing. If you're into MCMS, the name of one of its authors must ring a bell. Stefan Goßner works for Microsoft as an Escalation Engineer in the Developer Support department and is very present on the Web and in the newsgroups. Chances are that if you already developed a MCMS site, some of Goßner's code must be in yours.&lt;br /&gt;&lt;br /&gt;This is the perfect book to learn MCMS. The writing style and the pace are excellent; perfect for experienced .NET developers to learn MCMS. What I like the most is the fact that it's full of hints that let you bypass some known (or less known) problems that you may encounter with MCMS, saving you hours of researches on the Web.&lt;br /&gt;&lt;br /&gt;I really loved this book, it's a diamond in a sea of stone: well written, informative, full of time saving hints. My only pet peeve is with the printing quality of the book. It's simply bad, looking like having been printed on a 300DPI home laser printer making reading some of the diagrams a little bit difficult. Packt Publishing should really look at this issue. Beside this somewhat minor problem, this is a book no MCMS developer should be without. High praises for "Building Websites with Microsoft Content Management Server".&lt;br /&gt;&lt;br /&gt;Note: Since this review was writen, Damian Carvil, marketing manager for Packt Publishing, contacted me regarding the quality of the printing. Packt uses an interesting business model: they print thebooks on demand. This gives them some extra flexibility like being able to publish books that usually would not have found a publisher because they simply would not sell enough copies. They also don't have to deal with large inventories and return copies. Carvil says that this translates to higher royalties being paid to the authors. Since this on demand process is still in its beginnings, Packt knows the quality of printing issue and they are in discussions with the company that prints the books to address this problem. If you ask me, I think this is a great business model, worth mentioning. And if it means sacrificing quality a little bit to get great specialized books, I don’t see a problem. &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7647587-111477120690011071?l=meiyinglim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://meiyinglim.blogspot.com/feeds/111477120690011071/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7647587&amp;postID=111477120690011071&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/111477120690011071'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/111477120690011071'/><link rel='alternate' type='text/html' href='http://meiyinglim.blogspot.com/2005/01/book-reviews-building-websites-with.html' title='Book Reviews: Building Websites with Microsoft Content Management Server'/><author><name>Mei Ying</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7647587.post-110562775060516805</id><published>2005-01-13T22:39:00.000+08:00</published><updated>2005-01-14T13:33:32.016+08:00</updated><title type='text'>New MCMS Book now available!</title><content type='html'>The title that &lt;a href="http://joelsef.blogspot.com/"&gt;Joel&lt;/a&gt;, &lt;a href="http://weblogs.asp.net/stefan_gossner/"&gt;Stefan&lt;/a&gt; and I have written is &lt;strong&gt;&lt;span style="color:#006600;"&gt;available now&lt;/span&gt;&lt;/strong&gt;.&lt;br /&gt;&lt;br /&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;img src="http://www.packtpub.com/images/100x123/1904811167.png" border="0" /&gt;&lt;/td&gt;&lt;td&gt;&lt;br /&gt;&lt;a href="http://www.packtpub.com/book/mcms"&gt;Building Websites with Microsoft Content Management Server&lt;/a&gt; is an end-to-end guide to creating a Microsoft Content Management Server (MCMS) website. No prior knowledge of MCMS is required - this book takes you from the basics of MCMS, guiding you through everything you need to create a fully-featured, content-rich website.&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;a href="http://www.packtpub.com/book/mcms"&gt;Buy it now from the Publisher's site.&lt;br /&gt;&lt;/a&gt;&lt;br /&gt;Update 14 Jan:&lt;br /&gt;&lt;a href="http://www.prweb.com/releases/2005/1/prwebxml195983.php"&gt;Read the Press Release&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Announcements on&lt;br /&gt;&lt;a href="http://www.cmswire.com/cms/web-cms/new-microsoft-cms-book-released-000502.php"&gt;cmswire.com&lt;/a&gt;&lt;br /&gt;&lt;a href="http://blog.cmmag.de/cmm/2005/01/microsoft_conte.html"&gt;content management magazin&lt;/a&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7647587-110562775060516805?l=meiyinglim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.packtpub.com/book/mcms' title='New MCMS Book now available!'/><link rel='replies' type='application/atom+xml' href='http://meiyinglim.blogspot.com/feeds/110562775060516805/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7647587&amp;postID=110562775060516805&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/110562775060516805'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/110562775060516805'/><link rel='alternate' type='text/html' href='http://meiyinglim.blogspot.com/2005/01/new-mcms-book-now-available.html' title='New MCMS Book now available!'/><author><name>Mei Ying</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7647587.post-110533001518329470</id><published>2005-01-10T13:05:00.000+08:00</published><updated>2005-01-10T12:07:48.826+08:00</updated><title type='text'>CMS vNext ... why so quiet ?</title><content type='html'>&lt;a href="http://markharrison.co.uk/blog/"&gt;Mark Harrison&lt;/a&gt; lets on a little about the &lt;a href="http://markharrison.co.uk/blog/2005/01/cms-vnext-why-so-quiet.htm"&gt;future of MCMS and SharePoint&lt;/a&gt;.&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7647587-110533001518329470?l=meiyinglim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://markharrison.co.uk/blog/2005/01/cms-vnext-why-so-quiet.htm' title='CMS vNext ... why so quiet ?'/><link rel='replies' type='application/atom+xml' href='http://meiyinglim.blogspot.com/feeds/110533001518329470/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7647587&amp;postID=110533001518329470&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/110533001518329470'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/110533001518329470'/><link rel='alternate' type='text/html' href='http://meiyinglim.blogspot.com/2005/01/cms-vnext-why-so-quiet.html' title='CMS vNext ... why so quiet ?'/><author><name>Mei Ying</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7647587.post-110500780274722073</id><published>2005-01-06T17:08:00.000+08:00</published><updated>2005-01-06T18:40:41.150+08:00</updated><title type='text'>Analyzing IIS Logfiles for an MCMS site</title><content type='html'>Once a website has been successfully setup, almost immediately, someone will ask “How many people have visited our site?”. Usually, you will pass the data recorded in the IIS log files to one of the many web log analyzers in the market. Popular web analysis tools (such as &lt;a href="http://www.webtrends.com"&gt;WebTrends&lt;/a&gt;) automate the task of calculating the number of visitors, page views and other site statistics commonly requested by site owners.&lt;br /&gt;&lt;br /&gt;The trouble with MCMS is that the URL recorded for the same posting is not consistent, especially if you have chosen to use the Hierarchical URL Format. A request for a posting could be captured as:&lt;br /&gt;&lt;br /&gt;/MyChannel/MyPage.htm&lt;br /&gt;&lt;br /&gt;Or, in it’s raw form:&lt;br /&gt;&lt;br /&gt;/NR/exeres/2E6CBEC3-65A3-4FEF-B2DB-96643334BDE1,frameless.htm&lt;br /&gt;&lt;br /&gt;Although both URLs point to the same posting, web reporting tools will consider them to be requests for 2 separate pages. As a result, some figures may be under-reported, especially if you have applied a filter which does not include the /NR/ folder or if you are looking to find out how many times a particular posting has been viewed. Reports like the one showing the Top 50 requested pages of the site will be littered with ugly URLs and the person reading it may not be able to make any sense out of it.&lt;br /&gt;&lt;br /&gt;The solution is: To process the log file before analyzing it and convert all ugly URLs to friendly hierarchal URLs. There’s currently a sample available online:&lt;a href="http://www.gotdotnet.com/Community/UserSamples/Details.aspx?SampleGuid=67c05359-ee16-4e5a-81ad-15c0447fc980"&gt; CmsLogFileReporting included as part of the MSIB+Pack&lt;/a&gt;. This an excellent tool that comes with source code so you can tweak it any way you like. Looking at the code comments, this is a newer version of the original &lt;a href="http://www.gotdotnet.com/Community/UserSamples/Details.aspx?SampleGuid=C87C9D44-AAD4-4046-AE97-A240C883EA9C"&gt;CmsConvLog &lt;/a&gt;application uploaded to GotDotNet earlier. It also comes with a ready-to-use form interface, but I was lacking a MSIB + license so I couldn’t run that.&lt;br /&gt;&lt;br /&gt;Nevertheless, it does provide source code. Based on experiences from automating numerous report generation processes of our MCMS websites, here are a few suggested tweaks to the package that may be done to get the tool to work beautifully for a site:&lt;br /&gt;&lt;br /&gt;1. If you are not planning on processing the log files on a daily basis, you will have to get it to process more than one log file at a time. Probably the log files in a directory within a certain date range. To do so, you could program the input filename to accept a pattern instead of a name and write a simple iteration to call the method that does the conversion.&lt;br /&gt;&lt;br /&gt;2. More importantly, if you have host header mapping turned on – this tweak is a must. The tool converts the ugly URL to a path. So the converted URL becomes /sitename.com/MyChannel/MyPage instead of /MyChannel/MyPage.htm. While this may be alright for sites that do not implement host header mapping, it becomes a problem for sites that do. If you are using WebTrends to analyze the log file, you will find that, after appending the sitename to the page, it becomes:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://sitename.com/sitename.com/MyChannel/MyPage"&gt;http://sitename.com/sitename.com/MyChannel/MyPage&lt;/a&gt; (the converted URL)&lt;br /&gt;&lt;br /&gt;which is not the quite same as that of the posting, which is:&lt;br /&gt;&lt;a href="http://sitename.com/MyChannel/MyPage.htm"&gt;http://sitename.com/MyChannel/MyPage.htm&lt;/a&gt; (the nice URL. Note that sitename.com is only included once in the string)&lt;br /&gt;&lt;br /&gt;You will still get the problem of the web reporting tool not being able to identify the two URLs as being that of the same posting.&lt;br /&gt;&lt;br /&gt;To get around this, simply trim away sitename.com from the returned Path.&lt;br /&gt;&lt;br /&gt;3. It also converts URLs to Resources to Paths. While you probably won't have to change this, just bear this in mind when configuring filters based on resource file names in the web reporting tool, especially when it has spaces.&lt;br /&gt;&lt;br /&gt;Once the log files have been converted, they can be processed with any web reporting tool like you would logs of traditional websites.&lt;br /&gt;&lt;br /&gt;Here's to accurate reports!&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7647587-110500780274722073?l=meiyinglim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://meiyinglim.blogspot.com/feeds/110500780274722073/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7647587&amp;postID=110500780274722073&amp;isPopup=true' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/110500780274722073'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/110500780274722073'/><link rel='alternate' type='text/html' href='http://meiyinglim.blogspot.com/2005/01/analyzing-iis-logfiles-for-mcms-site.html' title='Analyzing IIS Logfiles for an MCMS site'/><author><name>Mei Ying</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7647587.post-110429418281627649</id><published>2004-12-29T13:20:00.000+08:00</published><updated>2004-12-29T12:23:02.816+08:00</updated><title type='text'>Gmail, anyone?</title><content type='html'>I've got 5 more &lt;a href="http://gmail.google.com"&gt;Gmail&lt;/a&gt; invites to give away. No strings attached. If you are interested, send me a &lt;a href="mailto:meiyinglim@hotmail.com"&gt;mail&lt;/a&gt; and I'll send you an invite.&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7647587-110429418281627649?l=meiyinglim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://meiyinglim.blogspot.com/feeds/110429418281627649/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7647587&amp;postID=110429418281627649&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/110429418281627649'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/110429418281627649'/><link rel='alternate' type='text/html' href='http://meiyinglim.blogspot.com/2004/12/gmail-anyone.html' title='Gmail, anyone?'/><author><name>Mei Ying</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7647587.post-110411412947495521</id><published>2004-12-27T10:12:00.000+08:00</published><updated>2004-12-27T10:27:35.466+08:00</updated><title type='text'>Of Earthquakes and Tsunamis</title><content type='html'>You must have heard by now about the&lt;a href="http://www.channelnewsasia.com/stories/afp_world/view/124224/1/.html"&gt; earthquake that created tsunamis &lt;/a&gt;that devastated coastal cities in Asia.&lt;br /&gt;&lt;br /&gt;Singapore is blessed by its geographical location. The only effects felt here were &lt;a href="http://www.channelnewsasia.com/stories/singaporelocalnews/view/124071/1/.html"&gt;slight tremors &lt;/a&gt;- and only by a handful of people.&lt;br /&gt;&lt;br /&gt;But oh, the carnage in the region!&lt;br /&gt;&lt;br /&gt;The first news that trickled in said that tidal waves have hit the beaches of Penang. Next, we heard that Sri Lanka has declared a state of disaster. Later on, a news ticker at the bottom of the TV screen said that many on Phi Phi island are feared dead.&lt;br /&gt;&lt;br /&gt;As the death toll rises, our hearts go out to the families who have lost their loved ones.&lt;br /&gt;&lt;br /&gt;The day after Christmas... who would have thought...&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7647587-110411412947495521?l=meiyinglim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://meiyinglim.blogspot.com/feeds/110411412947495521/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7647587&amp;postID=110411412947495521&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/110411412947495521'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/110411412947495521'/><link rel='alternate' type='text/html' href='http://meiyinglim.blogspot.com/2004/12/of-earthquakes-and-tsunamis.html' title='Of Earthquakes and Tsunamis'/><author><name>Mei Ying</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7647587.post-110343446579162076</id><published>2004-12-19T13:23:00.000+08:00</published><updated>2004-12-19T13:36:12.230+08:00</updated><title type='text'>Chapter Download - Publishing with Authoring Connector</title><content type='html'>A sample chapter from our upcoming book &lt;a href="http://www.packtpub.com/book/mcms"&gt;Building Websites with Microsoft Content Management Server (Packt Publishing, ISBN 1-904811-16-7) &lt;/a&gt;is available for download.&lt;br /&gt;&lt;br /&gt;The chapter offers 30 pages of goodies on Authoring Connector and shows how you can publish content directly from Word to MCMS.&lt;br /&gt;&lt;br /&gt;The book ships in January 2005. &lt;a href="http://www.packtpub.com/book/mcms"&gt;Pre-order&lt;/a&gt; it now and shave 30% off the listed price.&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7647587-110343446579162076?l=meiyinglim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://meiyinglim.blogspot.com/feeds/110343446579162076/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7647587&amp;postID=110343446579162076&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/110343446579162076'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/110343446579162076'/><link rel='alternate' type='text/html' href='http://meiyinglim.blogspot.com/2004/12/chapter-download-publishing-with.html' title='Chapter Download - Publishing with Authoring Connector'/><author><name>Mei Ying</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7647587.post-110241102372607021</id><published>2004-12-07T15:03:00.000+08:00</published><updated>2004-12-07T18:12:31.433+08:00</updated><title type='text'>Using Web Author to Insert Internal Bookmarks</title><content type='html'>Internal bookmarks let you jump to specific sections of a page. They are typically used when you need to:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Jump from one end of the page to another. You see this as "Back To Top" links within long pages.&lt;/li&gt;&lt;li&gt;Link to a specific location on another page. For example, you may wish to bring the visitor directly to the Discounts section located somewhere in the middle of the product's Pricing page.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Let's see how bookmarks are managed from the HTML Placeholder Control using MCMS' Web Author. Take for example, the case where you need to implement a "Back To Top" link.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Defining the Bookmark&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;First, we will define the bookmark (sometimes called the internal anchor point). In our example, that will be the top of the page. Somewhere at top of the page, we will specify the the spot that the visitor is brought to when he clicks on the "Back To Top" link. To specify this area in Web Author, simply highlight a space at the top of the page and click on the &lt;span style="color:#990000;"&gt;Insert HyperLink&lt;/span&gt; button on the Authoring Toolbar. &lt;/p&gt;&lt;div style="BORDER-RIGHT: 1px solid; BORDER-TOP: 1px solid; BORDER-LEFT: 1px solid; BORDER-BOTTOM: 1px solid"&gt;Web Author requires you to select something (even if its just a space) before the &lt;span style="color:#990000;"&gt;Insert HyperLink&lt;/span&gt; dialog appears. Otherwise, you will get a "There is no selected text or object for hyperlinking" alert.&lt;/div&gt;&lt;br /&gt;&lt;p align="center"&gt;&lt;img src="http://im1.shutterfly.com/procserv/47b4cc26b3127cce9dd9584dd35d00000015108AYtmLFu0ctt" /&gt;&lt;/p&gt;In the Web Page dialog, enter the name of the bookmark in the &lt;span style="color:#990000;"&gt;Define As Internal Anchor Point&lt;/span&gt; section. Here, we name the bookmark "Top".&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Inserting the "Back To Top" Hyperlink&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Next, enter the words "Back To Top" somewhere at the bottom of the page. Highlight the text and click on the &lt;span style="color:#990000;"&gt;Insert Hyperlink&lt;/span&gt; button of the Authoring toolbar again.&lt;br /&gt;&lt;br /&gt;This time, in the &lt;span style="color:#990000;"&gt;Hyperlink Address&lt;/span&gt; field, enter "#" followed by the name of the bookmark defined earlier. e.g. #Top&lt;br /&gt;&lt;br /&gt;To point to a bookmark that sits on another page, simply enter the URL of the page, followed by the bookmark. e.g. http://www.mysite.com/myOtherPage.htm#Top&lt;br /&gt;&lt;p align="center"&gt;&lt;img src="http://im1.shutterfly.com/procserv/47b4cc26b3127cce9dd95e17523400000015108AYtmLFu0ctt" /&gt;&lt;/p&gt;And you're done!&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Linking to Bookmarks on Framed Pages&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Most of the time, this technique will work. It may not work when hyperlinking to a bookmark on another page that is framed. The hyperlink will lead the visitor to the framed page, but not to the specific bookmark. That's because the information about the bookmark does not propagate to the child pages within the frameset.&lt;br /&gt;&lt;br /&gt;To get around this, use a javascript! The script will:&lt;br /&gt;&lt;br /&gt;1. look at the URL of the browser's address bar&lt;br /&gt;2. detect if it contains a link to a bookmark&lt;br /&gt;3. if there is a bookmark, it jumps to it.&lt;br /&gt;&lt;br /&gt;The following script is embedded within the [head] tags of the template file containing the page/posting (not the frameset) and called from the javascript OnLoad() event of the page.&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;function CheckForBookmarks()&lt;br /&gt;{&lt;br /&gt;   //check for bookmarks&lt;br /&gt;   var bookmark = '';&lt;br /&gt;   var url;&lt;br /&gt;   var arrUrl;&lt;br /&gt;   url = window.top.document.location.href;&lt;br /&gt;   arrUrl = url.split('#');&lt;br /&gt;   if(arrUrl.length&gt;1)&lt;br /&gt;   {&lt;br /&gt;      bookmark = arrUrl[1];&lt;br /&gt;   }&lt;br /&gt;&lt;br /&gt;   //jump to the bookmark&lt;br /&gt;   location.href='#' + bookmark;&lt;br /&gt;}&lt;/pre&gt;This workaround ensures that bookmarks work even for framed pages where outerscript files are applied.&lt;br /&gt;&lt;br /&gt;Happy Bookmarking!&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7647587-110241102372607021?l=meiyinglim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://meiyinglim.blogspot.com/feeds/110241102372607021/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7647587&amp;postID=110241102372607021&amp;isPopup=true' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/110241102372607021'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/110241102372607021'/><link rel='alternate' type='text/html' href='http://meiyinglim.blogspot.com/2004/12/using-web-author-to-insert-internal.html' title='Using Web Author to Insert Internal Bookmarks'/><author><name>Mei Ying</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7647587.post-110032057505968981</id><published>2004-11-13T13:22:00.000+08:00</published><updated>2004-11-13T12:36:15.060+08:00</updated><title type='text'>Another option for MCMS Custom Properties: CustomPropertyDbEx </title><content type='html'>If you are a developer who has ever tried retrieving a collection of channel items based on custom property values, you would definitely appreciate &lt;a href="http://andrewconnell.com/blog"&gt;Andrew Connell's&lt;/a&gt; &lt;a href="http://andrewconnell.com/blog/archive/2004/11/11/677.aspx"&gt;CustomPropertyDbEx&lt;/a&gt;. It's a solution that stores all your custom property values in a separate database for quick retrieval later. Read the full article &lt;a href="http://andrewconnell.com/blog/articles/672.aspx"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7647587-110032057505968981?l=meiyinglim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://andrewconnell.com/blog/archive/2004/11/11/677.aspx' title='Another option for MCMS Custom Properties: CustomPropertyDbEx '/><link rel='replies' type='application/atom+xml' href='http://meiyinglim.blogspot.com/feeds/110032057505968981/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7647587&amp;postID=110032057505968981&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/110032057505968981'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/110032057505968981'/><link rel='alternate' type='text/html' href='http://meiyinglim.blogspot.com/2004/11/another-option-for-mcms-custom.html' title='Another option for MCMS Custom Properties: CustomPropertyDbEx '/><author><name>Mei Ying</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7647587.post-110001319313932853</id><published>2004-11-09T22:46:00.000+08:00</published><updated>2004-11-09T23:58:14.450+08:00</updated><title type='text'>Property Authoring Server Control</title><content type='html'>&lt;a href="http://blogs.msdn.com/stefan_gossner"&gt;Stefan &lt;/a&gt;has written a &lt;a href="http://www.gotdotnet.com/Community/UserSamples/Details.aspx?SampleGuid=2A85D442-286F-4AD6-8A03-82436BF956A5"&gt;Property Authoring server control&lt;/a&gt; that can be embedded within a template file. With this nifty control, authors are now able to update placeholder content, property and custom property values &lt;em&gt;all at the same time&lt;/em&gt;. It's a great addition to any MCMS managed website. Here are some good reasons why you should download and use it:&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;br /&gt;&lt;li&gt;With all editable fields on a single screen, authors will no longer forget to update meta data.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Simply drag and drop the control onto the template file for each field you wish to display on the screen. It comes with its own property (ShowInPresentationMode) that you can use to decide whether or not the value shows up in presentation mode as well.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;It makes authoring a one-click (and one-save) process. You don't have to open separate pages/dialogs to edit a posting's property value.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Worried about authors entering invalid dates in the TextBox while editing custom property values? You can now pick and choose from a variety of input controls for entering custom property values: Calendar, MultiLine TextBox, SingleLine TextBox, DropDownBox, Boolean or Number fields.&lt;br /&gt;&lt;br /&gt;And finally,&lt;br /&gt;&lt;li&gt;It comes with a full set of source code :-)&lt;/li&gt;&lt;/ol&gt;With the source code, you can extend it to have your application provide intial values to property values (say, a posting's expiry date) and with some fiddling, you may even get it to do some validation. Pretty cool, isn't it?&lt;br /&gt;&lt;br /&gt;Download the &lt;a href="http://www.gotdotnet.com/Community/UserSamples/Details.aspx?SampleGuid=2a85d442-286f-4ad6-8a03-82436bf956a5"&gt;Property Authoring Server Control&lt;/a&gt; from GotDotNet. &lt;/li&gt;&lt;ol&gt;&lt;/ol&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7647587-110001319313932853?l=meiyinglim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://meiyinglim.blogspot.com/feeds/110001319313932853/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7647587&amp;postID=110001319313932853&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/110001319313932853'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/110001319313932853'/><link rel='alternate' type='text/html' href='http://meiyinglim.blogspot.com/2004/11/property-authoring-server-control.html' title='Property Authoring Server Control'/><author><name>Mei Ying</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7647587.post-109884306331499330</id><published>2004-10-27T10:00:00.000+08:00</published><updated>2004-10-27T10:11:03.313+08:00</updated><title type='text'>SIA in $300m outsourcing deal with IBM</title><content type='html'>Singapore Airlines (SIA) has confirmed that it is outsourcing its IT infrastructure functions to IBM in a seven-year contract valued at around $300 million.&lt;br /&gt;&lt;br /&gt;Full story &lt;a href="http://business-times.asia1.com.sg/sub/companies/story/0,4574,133608,00.html?"&gt;here &lt;/a&gt;(registration required)&lt;br /&gt;&lt;br /&gt;And one month ago, on the other side of the planet:&lt;br /&gt;&lt;a href="http://www.silicon.com/research/specialreports/enterprise/0,3800003425,39124018,00.htm"&gt;JP Morgan Cancels $5 Billion IBM Deal&lt;/a&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7647587-109884306331499330?l=meiyinglim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://meiyinglim.blogspot.com/feeds/109884306331499330/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7647587&amp;postID=109884306331499330&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/109884306331499330'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/109884306331499330'/><link rel='alternate' type='text/html' href='http://meiyinglim.blogspot.com/2004/10/sia-in-300m-outsourcing-deal-with-ibm.html' title='SIA in $300m outsourcing deal with IBM'/><author><name>Mei Ying</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7647587.post-109866792157606882</id><published>2004-10-25T09:28:00.000+08:00</published><updated>2004-10-25T09:32:01.576+08:00</updated><title type='text'>Joel has a blog!</title><content type='html'>Joel Ward, the first MVP for MCMS and co-author of upcoming book, &lt;a href="http://www.packtpub.com/book/mcms"&gt;Building Websites for Microsoft Content Management Server&lt;/a&gt; has started a blog:&lt;br /&gt;&lt;a href="http://joelsef.blogspot.com/"&gt;http://joelsef.blogspot.com/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Check it out!&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7647587-109866792157606882?l=meiyinglim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://meiyinglim.blogspot.com/feeds/109866792157606882/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7647587&amp;postID=109866792157606882&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/109866792157606882'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/109866792157606882'/><link rel='alternate' type='text/html' href='http://meiyinglim.blogspot.com/2004/10/joel-has-blog.html' title='Joel has a blog!'/><author><name>Mei Ying</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7647587.post-109825533804194759</id><published>2004-10-20T14:09:00.000+08:00</published><updated>2004-10-20T14:55:38.040+08:00</updated><title type='text'>Containers for Orphaned objects</title><content type='html'>Have you ever wondered where orphans get deposited when using import scripts written with the SDAPI? In Site Deployment Manager, you get to choose the container to store them from the &lt;span style="color:#990000;"&gt;Orphaned Objects &lt;/span&gt;tab. You don't get to do this with the SDAPI, if you looked at the &lt;a href="http://msdn.microsoft.com/library/en-us/sitedevl/htm/cms_sd_ref_comsitedepintro_skpv.asp?frame=true"&gt;documentation&lt;/a&gt;, there aren't any properties or methods to set this programatically. So how does the SDAPI handle orphans?&lt;br /&gt;&lt;br /&gt;Wonder no more!&lt;br /&gt;&lt;br /&gt;Orphans are objects in the site deployment package whose parent container does not exist in both&lt;br /&gt;&lt;ul&gt;&lt;li&gt;the destination server and&lt;/li&gt;&lt;li&gt;the site deployment package.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Without information about the parent, MCMS needs to decide where to place the orphans when running the import. Here's when it gets interesting: After running a few tests, we found that the server-side and client-side SDAPI exhibit different behaviours in deciding where to place orphans.&lt;/p&gt;If you are using the server-side SDAPI, the import script automatically creates a special container named &lt;span style="color:#990000;"&gt;CMS Default Site Deploy Destination&lt;/span&gt; and stores orphaned objects there. Only MCMS Administrators have access to the container.&lt;br /&gt;&lt;br /&gt;The client-side SDAPI handles orphans differently. Orphaned objects are automatically placed in the root container for each object type.&lt;br /&gt;&lt;br /&gt;It's an interesting detail that was uncovered while &lt;a href="http://weblogs.asp.net/stefan_gossner/"&gt;Stefan&lt;/a&gt;, &lt;a href="http://www.wardworks.com/mvp/index.html"&gt;Joel &lt;/a&gt;and I were writing the upcoming book, &lt;a href="http://www.packtpub.com/book/mcms/"&gt;Building Websites with Microsoft Content Management Server&lt;/a&gt; - coming to an online store near you soon! Have you &lt;a href="http://www.packtpub.com/book/mcms"&gt;pre-ordered&lt;/a&gt; your copy yet?&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7647587-109825533804194759?l=meiyinglim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://meiyinglim.blogspot.com/feeds/109825533804194759/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7647587&amp;postID=109825533804194759&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/109825533804194759'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/109825533804194759'/><link rel='alternate' type='text/html' href='http://meiyinglim.blogspot.com/2004/10/containers-for-orphaned-objects.html' title='Containers for Orphaned objects'/><author><name>Mei Ying</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7647587.post-109712275994005379</id><published>2004-10-07T13:01:00.000+08:00</published><updated>2006-10-13T21:54:56.680+08:00</updated><title type='text'>iTunes - a cool MP3 ripper</title><content type='html'>Even if you don't intend to buy music from the online store, &lt;a href="http://www.itunes.com"&gt;iTunes&lt;/a&gt;, by itself is an excellent tool for importing and organising your music files!&lt;br /&gt;&lt;br /&gt;Here are a few reasons why you should use iTunes:&lt;br /&gt;1. It's FREE&lt;br /&gt;2. It supports a wide variety of formats, including MP3&lt;br /&gt;3. It allows you to rip music while listening to it at the same time.&lt;br /&gt;4. It comes with a very friendly Apple style user interface.&lt;br /&gt;&lt;br /&gt;It took a moment before I figured out how to rip my music files into MP3. Well, in case you are trying to do the same thing, here's how:&lt;br /&gt;&lt;br /&gt;1. In the iTunes menu bar, select &lt;span style="color:#990000;"&gt;Edit&gt;Preferences&lt;/span&gt;&lt;br /&gt;2. Click the &lt;span style="color:#990000;"&gt;Importing&lt;/span&gt; tab&lt;br /&gt;3. Choose to &lt;span style="color:#990000;"&gt;Import Using MP3 Encoder&lt;/span&gt;&lt;br /&gt;4. Select the desired sound quality in &lt;span style="color:#990000;"&gt;Setting&lt;/span&gt;. The default is &lt;span style="color:#990000;"&gt;High quality (160 kbps) &lt;/span&gt;&lt;span style="color:#000000;"&gt;which is pretty good.&lt;/span&gt;&lt;br /&gt;5. Click &lt;span style="color:#990000;"&gt;OK&lt;/span&gt; to close the dialog.&lt;br /&gt;&lt;br /&gt;And to import the files to your computer, simply&lt;br /&gt;1. Slot the CD into the tray&lt;br /&gt;2. Click &lt;span style="color:#990000;"&gt;Audio CD&lt;/span&gt; on the &lt;span style="color:#990000;"&gt;Source&lt;/span&gt; panel and&lt;br /&gt;3. Click on the big &lt;span style="color:#990000;"&gt;Import&lt;/span&gt; button on the right hand side of the screen.&lt;br /&gt;&lt;br /&gt;It's that easy and to top it off - it's also really fast. Within minutes, my entire album was added to my library. Whoopee! I've transferred my MP3s to my portable hard drive. Now I get to listen to all my CDs whereever I go :-)&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7647587-109712275994005379?l=meiyinglim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://meiyinglim.blogspot.com/feeds/109712275994005379/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7647587&amp;postID=109712275994005379&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/109712275994005379'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/109712275994005379'/><link rel='alternate' type='text/html' href='http://meiyinglim.blogspot.com/2004/10/itunes-cool-mp3-ripper.html' title='iTunes - a cool MP3 ripper'/><author><name>Mei Ying</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7647587.post-109652763852960364</id><published>2004-09-30T14:59:00.000+08:00</published><updated>2004-09-30T15:09:05.756+08:00</updated><title type='text'>Mystery Server ODBC Error Solved!</title><content type='html'>Several weeks back, I &lt;a href="http://groups.google.com/groups?hl=en&amp;lr=&amp;amp;ie=UTF-8&amp;amp;selm=7fc601c4958f%2464768f50%24a301280a%40phx.gbl"&gt;posted a problem&lt;/a&gt; with updating MCMS channel properties using a custom web form. Each time I set the Channel.StartDate property (or any of the channel's properties for that matter), it sent back a "Server ODBC error. Please contact the administrator" message. No further details were given.&lt;br /&gt;&lt;br /&gt;What's really strange was that we have been using the same set of codes for months now and it didn't give any problems until recently.&lt;br /&gt;&lt;br /&gt;So, after talking to Microsoft Support and running a few tests of our own, here's what we found:&lt;br /&gt;&lt;br /&gt;1. The "Sever ODBC Error" is really a general error message that is sent back from the server whenever an error occurs while updating/reading the database. It could mean anything - from passing in a bad GUID as an input parameter to an unsuccessful attempt to get the lock on the table to be updated.&lt;br /&gt;&lt;br /&gt;2. We ran SQL Profiler. In our case, the error generated by SQL is always: #1222. Error #1222 means that an attempt to get a lock has timed out. And the error occurs at the point in which the channel's properties are being updated on the database.&lt;br /&gt;&lt;br /&gt;3. The error does not always occur. And when it does, it disappears when the web service is restarted.&lt;br /&gt;&lt;br /&gt;2+3 led us to believe that there are locking issues with the database implying potential problems with the code. But what could be wrong with it? Afterall, we are using only methods from the MCMS PAPI.&lt;br /&gt;&lt;br /&gt;Looking at the code on the web form, we observed a pattern. The form contained two key buttons:&lt;br /&gt;a. &lt;strong&gt;Update&lt;/strong&gt; saves the contents of the form.&lt;br /&gt;b. &lt;strong&gt;Publish&lt;/strong&gt; makes it available online.&lt;br /&gt;&lt;br /&gt;When authors work on the web form, they would typically update it before publishing it, clicking &lt;strong&gt;Update&lt;/strong&gt; before &lt;strong&gt;Publish&lt;/strong&gt;.&lt;br /&gt;Update -&gt; Publish&lt;br /&gt;&lt;br /&gt;Behind each button is a call to a CmsApplicationContext in the required publishing mode. And herein lies the problem. When the CmsApplicationContext of Update() does not release the lock, the CmsApplicationContext of the next transaction, Publish(), is not able to get hold of it. As a result, the error is raised.&lt;br /&gt;&lt;br /&gt;The same error is raised when two authors click on the &lt;strong&gt;Publish/Update&lt;/strong&gt; buttons at the same time.&lt;br /&gt;&lt;br /&gt;Okay, so the code was causing this lock contention, but what can be done to prevent it? Looking at the API, there isn't a SignOut/Logout/Close function once a CmsApplicationContext is established. The closest thing we get is the CmsApplicationContext.Dispose() method.&lt;br /&gt;&lt;br /&gt;So I added Dispose() for each CmsApplicationContext created at the end of each transaction... and voila! The errors disappeared.&lt;br /&gt;&lt;br /&gt;Actually, the whole thing has been documented. Take a look at the documentation for the StartDate property which says:&lt;br /&gt;---&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;This property can only be set if the CanSetProperties property has a value of true for the current User and the PublishingMode is Update. However, even if both of these conditions are satisfied, an attempt to set this property can still fail such as when, for example, the object is being edited concurrently by another user. Therefore, setting this property should be enclosed in appropriate try...catch blocks.&lt;/span&gt;&lt;br /&gt;---&lt;br /&gt;&lt;br /&gt;But why oh why doesn't it give a more descriptive error message?&lt;br /&gt;&lt;br /&gt;The conclusion is: Calling Dispose() is a *must* especially when working with the longer running CmsApplicationContext object.&lt;br /&gt;&lt;br /&gt;Thanks to all who have helped solve the problem. Special thanks to Jason Ren, &lt;a href="http://www.anguslogan.com/"&gt;Angus Logan&lt;/a&gt; and &lt;a href="http://weblogs.asp.net/stefan_gossner/"&gt;Stefan Goßner&lt;/a&gt;. We just rolled out the latest release of the site today, and it feels good to have the site running smoothly once again :-)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7647587-109652763852960364?l=meiyinglim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://meiyinglim.blogspot.com/feeds/109652763852960364/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7647587&amp;postID=109652763852960364&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/109652763852960364'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/109652763852960364'/><link rel='alternate' type='text/html' href='http://meiyinglim.blogspot.com/2004/09/mystery-server-odbc-error-solved.html' title='Mystery Server ODBC Error Solved!'/><author><name>Mei Ying</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7647587.post-109634145248004225</id><published>2004-09-30T10:46:00.000+08:00</published><updated>2004-09-30T11:53:01.126+08:00</updated><title type='text'>Yuuki the Jack Russell Terrier</title><content type='html'>A couple of months ago, we adopted a Jack Russell Terrier puppy, named Yuuki. Here's a pic of him at 3 months of age.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p align="center"&gt;&lt;img src="http://im1.shutterfly.com/procserv/47b4d709b3127cceb72eec29bed70000001510" /&gt;&lt;/p&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7647587-109634145248004225?l=meiyinglim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://meiyinglim.blogspot.com/feeds/109634145248004225/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7647587&amp;postID=109634145248004225&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/109634145248004225'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/109634145248004225'/><link rel='alternate' type='text/html' href='http://meiyinglim.blogspot.com/2004/09/yuuki-jack-russell-terrier.html' title='Yuuki the Jack Russell Terrier'/><author><name>Mei Ying</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7647587.post-109591390789260846</id><published>2004-09-23T13:26:00.000+08:00</published><updated>2004-09-23T12:31:47.893+08:00</updated><title type='text'>3G Hits Singapore</title><content type='html'>Finally, the &lt;a href="http://home.singtel.com/news_centre/news_releases/2004_09_22.asp"&gt;first public test of 3G&lt;/a&gt; is available to consumers! SingTel launches a month long trial for 150 users.&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7647587-109591390789260846?l=meiyinglim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://meiyinglim.blogspot.com/feeds/109591390789260846/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7647587&amp;postID=109591390789260846&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/109591390789260846'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/109591390789260846'/><link rel='alternate' type='text/html' href='http://meiyinglim.blogspot.com/2004/09/3g-hits-singapore.html' title='3G Hits Singapore'/><author><name>Mei Ying</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7647587.post-109530426021036943</id><published>2004-09-16T10:28:00.000+08:00</published><updated>2004-09-16T11:22:23.840+08:00</updated><title type='text'>Building Websites with Microsoft Content Management Server 2002</title><content type='html'>&lt;a href="http://www.wardworks.com/mvp/index.html"&gt;Joel Ward&lt;/a&gt;, &lt;a href="http://blogs.msdn.com/stefan_gossner"&gt;Stefan Goßner&lt;/a&gt; and I have written a book that shows you how you can build an MCMS website from the ground up. &lt;table border="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td valign="top"&gt;&lt;br /&gt;&lt;a href="http://www.packtpub.com/book/mcms" border="0"&gt;&lt;img src="http://www.packtpub.com/images/100x123/1904811167.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;td&gt;&lt;br /&gt;A fast-paced and practical tutorial guide for C# developers starting out with MCMS 2002&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;Learn directly from recognized community experts&lt;br /&gt;&lt;li&gt;Rapid developer level tutorials build logically through out the book&lt;br /&gt;&lt;li&gt;Develops a feature rich custom site incrementally&lt;br /&gt;&lt;li&gt;Tips and Tricks from developer newsgroups and online communities&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align="right" colspan="2"&gt;&lt;br /&gt;&lt;a href="http://www.packtpub.com/book/mcms"&gt;More Details &gt;&gt;&lt;/a&gt; &lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;The book is targeted to be available in the October-November time frame. &lt;a href="http://www.packtpub.com/book/mcms"&gt;Pre-order now&lt;/a&gt; and save up to 30% off the list price.&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7647587-109530426021036943?l=meiyinglim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://meiyinglim.blogspot.com/feeds/109530426021036943/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7647587&amp;postID=109530426021036943&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/109530426021036943'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/109530426021036943'/><link rel='alternate' type='text/html' href='http://meiyinglim.blogspot.com/2004/09/building-websites-with-microsoft.html' title='Building Websites with Microsoft Content Management Server 2002'/><author><name>Mei Ying</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7647587.post-109177770111578142</id><published>2004-09-10T16:00:00.000+08:00</published><updated>2004-09-10T19:18:46.016+08:00</updated><title type='text'>Using dtSearch and MCMS</title><content type='html'>So far, every site that we have been asked to do requires a search page. And search, is one component that does not ship with MCMS. Not that it's a bad thing, it gives us the choice to use something that fits our requirements.&lt;br /&gt;&lt;br /&gt;We have looked at some of the solutions that integrate with MCMS. They probably work well. But what we wanted to do was to make use of existing licenses that we have purchased for our other sites. In our case, that is &lt;a href="http://www.dtsearch.com"&gt;dtSearch&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Our requirements for search were simple:&lt;br /&gt;&lt;br /&gt;1. The search engine needed to crawl the entire web site that contains framed pages and add meta tags to its index&lt;br /&gt;2. The results displayed should be filtered according to a user's rights. If he doesn't have rights to a posting, he shouldn't be seeing it in the results&lt;br /&gt;3. The results can be retrieved from an index using simple queries&lt;br /&gt;4. It's got to be able to index a windows authenticated site.&lt;br /&gt;&lt;br /&gt;Requirements (1) , (3) and (4) could be satisfied by the latest version of dtSearch. The only item that required some customization was (2).&lt;br /&gt;&lt;br /&gt;The nice thing about the product is that it is amazingly simple to setup and use. Here's how you can do it too.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;u&gt;Installing dtSearch&lt;/u&gt;&lt;/strong&gt;&lt;br /&gt;First, of course is to install &lt;a href="http://www.dtsearch.com/download.html"&gt;dtSearch &lt;/a&gt;itself. This is fairly simple. Just click the setup.exe application on the CD and when its done installing, apply the latest upgrades downloadable from the web site. If you don't have dtSearch and would like to evaluate the software, you can download a 30-day evaluation copy from the web site.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;u&gt;Indexing Meta Tags&lt;/u&gt;&lt;/strong&gt;&lt;br /&gt;For the search engine to recognize meta tags, we provide dtSearch with a list of meta tags used by the postings.&lt;br /&gt;&lt;br /&gt;With dtSearch Desktop opened, select &lt;span style="color:#990000;"&gt;Options : Preferences &lt;/span&gt;from the toolbar.&lt;br /&gt;&lt;br /&gt;In the Preferences dialog, select &lt;span style="color:#990000;"&gt;Indexing Options : Text fields&lt;/span&gt;. Add each meta tag that you need indexed into the list.  One important piece of information added at this point is the GUID of each posting. Indexing the GUID allows us to use it to get instances of the posting later when coding the search page.&lt;br /&gt;&lt;br /&gt;Later, complex queries that filter postings based on meta tags can be written.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;u&gt;Using Windows Authentication&lt;/u&gt;&lt;/strong&gt;&lt;br /&gt;Our MCMS site uses Windows authentication. So we had to specify a user name and password that would be used by the spider to crawl the site. We chose an account with subsciber access to all the postings that needed to be index. The user name and password were entered into the &lt;span style="color:#990000;"&gt;Indexing : Options Spider&lt;/span&gt; dialog (part of the Preferences dialog).&lt;br /&gt;&lt;br /&gt;One drawback to this particular dialog is that is does not mask the password. Whatever you enter appears as clear text. Fortunately we had a shared account that was used solely for crawling, so this didn't bother us.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;u&gt;Defining the Site Map&lt;/u&gt;&lt;/strong&gt;&lt;br /&gt;Not all postings on the site were linked from an index page. In order to have these postings crawled by the spider, we created a single HTML page that contained links to all postings on the site. This was done by a recursive script coded using the MCMS PAPI.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;u&gt;Creating the Search Index &lt;/u&gt;&lt;/strong&gt;&lt;br /&gt;Next, we create a search index. From the dtSearch Desktop, select &lt;span style="color:#990000;"&gt;Index : Create Index&lt;/span&gt;. Specify the name of the index and it's location on the disk. The empty index will be created.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;u&gt;Crawling the entire web site for the first time&lt;/u&gt;&lt;/strong&gt;&lt;br /&gt;Now that the search engine had been configured, we were ready to build the index.&lt;br /&gt;Because postings don't exists as files in folders, the only way for them to be added to the index is to use a spider to crawl them.&lt;br /&gt;&lt;br /&gt;1. From the desktop, select &lt;span style="color:#990000;"&gt;Index : Update Index&lt;/span&gt;.&lt;br /&gt;2. Select &lt;span style="color:#990000;"&gt;Add web...&lt;/span&gt;&lt;br /&gt;3. set the Starting URL for Spider to point to the sitemap created earlier or the index page of your site.&lt;br /&gt;4. set the crawl depth. For our case, a crawl depth of at least 2 was required for the spider to crawl postings in a framed site.&lt;br /&gt;5. Click &lt;span style="color:#990000;"&gt;OK&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;And that completes the configuration. You can select the other options but these are the required options.&lt;br /&gt;&lt;br /&gt;Click the Start Indexing button on the right of the dialog and watch the spider go!&lt;br /&gt;&lt;br /&gt;The time it takes to index an entire web site depends on a variety of factors. We run ours on a relatively low-end server and the site has roughly 20,000 postings. It takes approximately 6 hours to complete a full job. On a higher-end server, it takes significantly lesser time to index the same number of pages, about 3 hours.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;u&gt;Building the Search web page&lt;/u&gt;&lt;/strong&gt;&lt;br /&gt;Another good thing about dtSearch is the developer's API. You must download and install dtSearch Developer which contains the libraries and documentation in order to work with it.&lt;br /&gt;&lt;br /&gt;You can code with ASP.NET (C# or VB.NET). You can perform just about any kind of query. We have done keyword matches, date comparisons, category filters and so on. I won't go into details here, but samples can be found online on the web.&lt;br /&gt;&lt;br /&gt;Here, requirement (2) was satisfied by checking to see if Searches.GetByGuid() returned a null value. If it did, then the user did not have access to the posting and the posting was not added as part of the search result.&lt;br /&gt;&lt;br /&gt;All in all, the conclusion is: You can use just about any search engine that uses a spider to crawl MCMS web sites. It's more important to find one that has the features you require and the price tag that fits your budget.&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7647587-109177770111578142?l=meiyinglim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://meiyinglim.blogspot.com/feeds/109177770111578142/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7647587&amp;postID=109177770111578142&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/109177770111578142'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/109177770111578142'/><link rel='alternate' type='text/html' href='http://meiyinglim.blogspot.com/2004/09/using-dtsearch-and-mcms.html' title='Using dtSearch and MCMS'/><author><name>Mei Ying</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7647587.post-109357775533064214</id><published>2004-08-27T11:15:00.000+08:00</published><updated>2004-08-27T11:35:55.330+08:00</updated><title type='text'>List of Postings that use a Particular Template</title><content type='html'>Site Manager provides many features that aren't available from the PAPI. One of them is a function that allows you to see a list of postings that make use of a particular template.&lt;br /&gt;&lt;br /&gt;To generate the list:&lt;br /&gt;1. Right-click on the template in Site Manager&lt;br /&gt;2. Select Dependant Report&lt;br /&gt;3. The browser opens, displaying a list of postings that are based on the selected template.&lt;br /&gt;&lt;br /&gt;The dependant report is particularly useful when you are thinking of deleting the template but can't do so because there are postings that depend on it. With the list, you will know which templates you have to tackle before removing the template.&lt;br /&gt;&lt;br /&gt;One drawback of this approach is that if you have a sizeable number of postings attached to the template, the script times out. When that happens, you will have to find other ways to get the information.&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7647587-109357775533064214?l=meiyinglim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://meiyinglim.blogspot.com/feeds/109357775533064214/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7647587&amp;postID=109357775533064214&amp;isPopup=true' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/109357775533064214'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/109357775533064214'/><link rel='alternate' type='text/html' href='http://meiyinglim.blogspot.com/2004/08/list-of-postings-that-use-particular.html' title='List of Postings that use a Particular Template'/><author><name>Mei Ying</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7647587.post-109178324158077278</id><published>2004-08-18T11:10:00.000+08:00</published><updated>2004-08-20T10:15:45.103+08:00</updated><title type='text'>Where are my  Resources?</title><content type='html'>&lt;p&gt;One neat feature about MCMS is the ability to replace resources without the need to scour through all HTML pages to update hyperlinks. Once replaced, all postings that point to it immediately reference the most updated version of the resource. It's a total self-help module where Resource Managers have total ownership over their files. They don't have to bug developers any more about getting that document updated. Neat, eh?&lt;br /&gt;&lt;br /&gt;Well, not quite. They still call. Before replacing a resource, resource managers want to know the pages on the site that are linked to it. Is the resource being used? If not, can it be deleted? Otherwise, where will it be seen? Will anything bad happen to them and their computer if they replaced/deleted the file?&lt;br /&gt;&lt;br /&gt;And here's the point where I usually give that little smile and politely say, "I have no idea..."&lt;br /&gt;&lt;br /&gt;Well, not any more. After being bugged a hundred times by resource managers asking what they should do with a ballooning collection of resources, I've decided to do something about it.&lt;br /&gt;&lt;br /&gt;I have here, a script that scans through the entire site for a list of resources that are linked from placeholder content.&lt;br /&gt;&lt;br /&gt;It uses a simple recursion to look for occurences of /NR/rdonlyres/ and grabs the GUID that comes after it. (Well, I could have used a pattern that matches GUIDs instead, but this allows me to filter out links to non-resource objects like channels and postings and potentially include files added as local attachments).&lt;br /&gt;&lt;br /&gt;Once a resource is found, it writes to a CSV file:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;path of the resource &lt;li&gt;path of the posting and &lt;li&gt;name of the placeholder that contains a link to it.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;You can of course, use a database to store the data. Actually, that's what I'm doing for my sites - querying records from a database is much easier. But I'm sticking to a text file in this example to keep the code simple. &lt;p&gt;The script is good for a one-time scan. The next step would be to add some custom code in the workflow event handlers to scan placeholder content for links to resources when postings get published.&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.gotdotnet.com/Community/UserSamples/Details.aspx?SampleGuid=70dd8545-b467-4763-8085-fff752167e43"&gt;Download it&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/7647587-109178324158077278?l=meiyinglim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://meiyinglim.blogspot.com/feeds/109178324158077278/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7647587&amp;postID=109178324158077278&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/109178324158077278'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/109178324158077278'/><link rel='alternate' type='text/html' href='http://meiyinglim.blogspot.com/2004/08/where-are-my-resources.html' title='Where are my  Resources?'/><author><name>Mei Ying</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7647587.post-109178422860587608</id><published>2004-08-06T17:14:00.000+08:00</published><updated>2004-08-06T17:23:48.606+08:00</updated><title type='text'>Sold a Mobile Phone through a Classifieds Application Managed by MCMS</title><content type='html'>Woohoo! I've just sold my first item through our company's Classifieds hosted on the intranet. Andy from the Billing department just got a fantastic deal for my mobile phone. Cool! What a great way to start the weekend.&lt;br /&gt;&lt;br /&gt;What's also neat is that the Classifieds is an application entirely managed by MCMS!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7647587-109178422860587608?l=meiyinglim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://meiyinglim.blogspot.com/feeds/109178422860587608/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7647587&amp;postID=109178422860587608&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/109178422860587608'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/109178422860587608'/><link rel='alternate' type='text/html' href='http://meiyinglim.blogspot.com/2004/08/sold-mobile-phone-through-classifieds.html' title='Sold a Mobile Phone through a Classifieds Application Managed by MCMS'/><author><name>Mei Ying</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7647587.post-109030203736790814</id><published>2004-07-20T13:32:00.000+08:00</published><updated>2006-03-16T10:13:04.340+08:00</updated><title type='text'>Selected Export Objects not Currently Available for Export</title><content type='html'>I finally tracked down&amp;nbsp;why some&amp;nbsp;postings are listed in the "Selected Export objects not currently available for Export" section of the Export report. It lists Postings: &lt;br /&gt;&lt;ul&gt;&lt;li&gt;that do not have an approved version (e.g. never been published or in a WaitingForModeratorApproval state) &lt;br /&gt;&lt;/li&gt;&lt;li&gt;based on templates which do not have approved versions. You could have created and saved the template but never checked it in.&amp;nbsp;The template must be checked in at least once for an approved version to exist.&lt;/li&gt;&lt;/ul&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/7647587-109030203736790814?l=meiyinglim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://meiyinglim.blogspot.com/feeds/109030203736790814/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7647587&amp;postID=109030203736790814&amp;isPopup=true' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/109030203736790814'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/109030203736790814'/><link rel='alternate' type='text/html' href='http://meiyinglim.blogspot.com/2004/07/selected-export-objects-not-currently.html' title='Selected Export Objects not Currently Available for Export'/><author><name>Mei Ying</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7647587.post-109020390930152358</id><published>2004-07-19T10:10:00.000+08:00</published><updated>2004-08-06T16:54:04.953+08:00</updated><title type='text'>Emptying the Disk Cache</title><content type='html'>Here's a quick way to empty the disk cache: &lt;br /&gt;1. Open the SCA &lt;br /&gt;2. Click on the Security tab &lt;br /&gt;3. Change the MCMS System Account.&amp;nbsp; &lt;br /&gt;4. Stop the WWW Service &lt;br /&gt;5. Stop the AESecurity Service &lt;br /&gt;6. Check that all files in the /rdonlyres/ folder are deleted (otherwise, manually delete them) &lt;br /&gt;7. Start the AESecurity Service &lt;br /&gt;8. Start the WWW Service&lt;br /&gt;&lt;br /&gt;Restarting the AESecurity serives effectively empties the disk cache. &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7647587-109020390930152358?l=meiyinglim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://meiyinglim.blogspot.com/feeds/109020390930152358/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7647587&amp;postID=109020390930152358&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/109020390930152358'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/109020390930152358'/><link rel='alternate' type='text/html' href='http://meiyinglim.blogspot.com/2004/07/emptying-disk-cache.html' title='Emptying the Disk Cache'/><author><name>Mei Ying</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7647587.post-108996576397446529</id><published>2004-07-17T15:46:00.000+08:00</published><updated>2004-07-16T16:21:13.556+08:00</updated><title type='text'>A Test for GUIDs</title><content type='html'>MCMS&amp;nbsp;tags each object with a GUID and one of the most efficient ways of retrieving them from the&amp;nbsp;repository is to use the&amp;nbsp;Searches.GetByGuid() method. Simply pass in valid GUID string and you get&amp;nbsp;the requested&amp;nbsp;HierarchyItem. &lt;br /&gt;&amp;nbsp; &lt;br /&gt;Well, that works, *if* you have the correct GUID.&amp;nbsp;When you&amp;nbsp;pass in a&amp;nbsp;badly form GUID, say when forgetting the opening { and&amp;nbsp;closing } braces, or miss out any of its hyphens,&amp;nbsp;it coughs up this rather obscure message "Server ODBC error. Please contact Administrator".&amp;nbsp;This same&amp;nbsp;message appears&amp;nbsp;on several other kinds&amp;nbsp;of errors but most of the time,&amp;nbsp;the cause is a bad GUID input parameter. &lt;br /&gt;&amp;nbsp; &lt;br /&gt;To get around this, here's an IsGuid()&amp;nbsp;method that returns a boolean indicating whether the input string parameter is&amp;nbsp;a valid string:&amp;nbsp; &lt;br /&gt;&amp;nbsp; &lt;br /&gt;&lt;code&gt;&lt;span style="font-size:85%;"&gt;private static bool IsGuid(string guid) &lt;br /&gt;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp; try &lt;br /&gt;&amp;nbsp;&amp;nbsp; { &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Guid testGuid = new Guid(guid); &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return(true); &lt;br /&gt;&amp;nbsp;&amp;nbsp; } &lt;br /&gt;&amp;nbsp;&amp;nbsp; catch &lt;br /&gt;&amp;nbsp;&amp;nbsp; { &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return (false); &lt;br /&gt;&amp;nbsp;&amp;nbsp; } &lt;br /&gt;} &lt;br /&gt;&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;Before calling the Searches.GetByGuid() method, test the GUID to see if its valid whenever you are not sure. It could save you some hours of troubleshooting :-) &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/7647587-108996576397446529?l=meiyinglim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://meiyinglim.blogspot.com/feeds/108996576397446529/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7647587&amp;postID=108996576397446529&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/108996576397446529'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/108996576397446529'/><link rel='alternate' type='text/html' href='http://meiyinglim.blogspot.com/2004/07/test-for-guids.html' title='A Test for GUIDs'/><author><name>Mei Ying</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7647587.post-108995995485019759</id><published>2004-07-16T05:17:00.000+08:00</published><updated>2004-07-16T15:35:15.803+08:00</updated><title type='text'>Hello</title><content type='html'>For some time now, I've been thinking of starting a blog. I'm a little embarrassed to say that despite having spent most of my life with my trusty computer, I've never tried blogging. &lt;br /&gt;&amp;nbsp; &lt;br /&gt;So here I am now.&amp;nbsp; &lt;br /&gt;&amp;nbsp; &lt;br /&gt;I'm a developer from the tropical sunny island of &lt;a href="http://www.sg/"&gt;Singapore&lt;/a&gt;. We have good weather all year round and lots of good food. It's nice&amp;nbsp;to&amp;nbsp;live and work here.&amp;nbsp;If you are&amp;nbsp;new to the region and are planning&amp;nbsp;a visit, drop me a note and I can recommend you some must-see places. &lt;br /&gt;&amp;nbsp; &lt;br /&gt;Lately, my work centers around&amp;nbsp;content management systems and&amp;nbsp;in particular &lt;a href="http://www.microsoft.com/cmserver"&gt;Microsoft Content Management Server&lt;/a&gt;.&amp;nbsp;I&amp;nbsp;have created&amp;nbsp;and supported several web sites based on it ranging from&amp;nbsp;small department web sites to large critical ones. Here, I plan to write a little about what I do and post some bits of code that have helped me. Hopefully, you will find them useful too. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7647587-108995995485019759?l=meiyinglim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://meiyinglim.blogspot.com/feeds/108995995485019759/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7647587&amp;postID=108995995485019759&amp;isPopup=true' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/108995995485019759'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7647587/posts/default/108995995485019759'/><link rel='alternate' type='text/html' href='http://meiyinglim.blogspot.com/2004/07/hello.html' title='Hello'/><author><name>Mei Ying</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry></feed>
