<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/atom.xsl" media="screen"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en"><title type="html">fooshen's</title><subtitle type="html">Welcome to my technical blog, where I will be dumping stuffs on SharePoint and .Net in general.</subtitle><id>http://blogs.msdn.com/fooshen/atom.xml</id><link rel="alternate" type="text/html" href="http://blogs.msdn.com/fooshen/default.aspx" /><link rel="self" type="application/atom+xml" href="http://blogs.msdn.com/fooshen/atom.xml" /><generator uri="http://communityserver.org" version="2.1.61025.2">Community Server</generator><updated>2006-10-01T08:41:00Z</updated><entry><title>SharePoint and VHDs...</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/fooshen/archive/2008/12/09/sharepoint-and-vhds.aspx" /><id>http://blogs.msdn.com/fooshen/archive/2008/12/09/sharepoint-and-vhds.aspx</id><published>2008-12-09T05:55:00Z</published><updated>2008-12-09T05:55:00Z</updated><content type="html">&lt;P&gt;If you do a lot of SharePoint demos, chances are you will be using tons of VMs (Virtual PC, Virtual Server, VMWare, anything..). And if you're like me, you would not like to fire up multiple VMs; the less the merrier. This translates to squeezing in as many products/components into a single virtual image - but there are&amp;nbsp;some caveats to know about:&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Installing SharePoint on a Domain Controller&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;- You lose the Document Conversion feature. Document Conversion services can start, but whenever you try to convert a document to web, it simply fails.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Installing SharePoint and Exchange on the same box&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;- You lose the Incoming Email feature. SharePoint relies on IIS' Virtual SMTP to listen for incoming emails. And Exchange cannot co-exist with IIS' Virtual SMTP. I'm not sure if there are some creative work-arounds available, but will post it if I found any.&lt;/P&gt;
&lt;P&gt;On another point (pun-intended), if you want to install &lt;STRONG&gt;Performance Point Server&lt;/STRONG&gt; or &lt;STRONG&gt;Commerce Server&lt;/STRONG&gt; into the same VM as the DC, you will want to &lt;U&gt;install them first, but don't run&lt;/U&gt; its configuration wizards. &lt;U&gt;Promote the VM to DC only after installation&lt;/U&gt;, and then only run the configuration wizard.&lt;/P&gt;
&lt;P&gt;While still on the topic of VMs, here's some guerilla tips&amp;nbsp;to keep your VHDs small and lean (faster to move around) &lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;Shrink all your databases and transaction logs. If you have OCS 2007 installed, this can free up quite a substantial amount of space.&lt;/LI&gt;
&lt;LI&gt;Set Virtual Memory settings to smallest possible&amp;nbsp;minimum size. (I usually allocate 2GB RAM to my VMs, and my minimum virtual memory setting is 1GB).&lt;/LI&gt;
&lt;LI&gt;Restart (so that the Virtual Memory usage will be resized).&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;Delete everything in %temp%. Some files might be locked, probably one or two. You may be able to delete them if its related services are stopped. Also look for *.log files lying around your virtual hard disk, taking up precious space but utterly useless since this is not a production setup anyway.&lt;/LI&gt;
&lt;LI&gt;Clear all Event logs (You can also set maximum size for event logs, you don't need huge allocations for demos - right-click on the Event log categories and select Properties).&lt;/LI&gt;
&lt;LI&gt;Run defrag - sometimes need to run multiple times for better results.&lt;/LI&gt;
&lt;LI&gt;Run the Pre-compactor tool (this is available via an .iso image from the VMAdditions folder).&lt;/LI&gt;
&lt;LI&gt;Run the Virtual Disk wizard, choose "Edit" and "Compact".&lt;/LI&gt;&lt;/OL&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9186201" width="1" height="1"&gt;</content><author><name>fooshen</name><uri>http://blogs.msdn.com/members/fooshen.aspx</uri></author><category term="SharePoint 2007" scheme="http://blogs.msdn.com/fooshen/archive/tags/SharePoint+2007/default.aspx" /><category term="Exchange 2007" scheme="http://blogs.msdn.com/fooshen/archive/tags/Exchange+2007/default.aspx" /><category term="PerformancePoint Server 2007" scheme="http://blogs.msdn.com/fooshen/archive/tags/PerformancePoint+Server+2007/default.aspx" /></entry><entry><title>Performance Point Server 2007 and AJAX on SharePoint</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/fooshen/archive/2008/10/18/performance-point-server-2007-and-ajax-on-sharepoint.aspx" /><id>http://blogs.msdn.com/fooshen/archive/2008/10/18/performance-point-server-2007-and-ajax-on-sharepoint.aspx</id><published>2008-10-18T03:14:00Z</published><updated>2008-10-18T03:14:00Z</updated><content type="html">&lt;P&gt;If you have Microsoft Performance Point Server 2007 installed, and you do not have ASP.Net AJAX extension installed (probably like me, I use .Net 3.5), you will probably get errors in your site when you have a Performance Point Dashboard Item webpart loaded:&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 8pt; COLOR: black; FONT-FAMILY: Calibri; mso-fareast-font-family: +mj-ea; mso-ascii-font-family: Calibri; mso-bidi-font-family: +mj-cs; mso-color-index: 1; mso-font-kerning: 12.0pt; language: en-US"&gt;Could not load file or assembly '&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 8pt; COLOR: black; FONT-FAMILY: Calibri; mso-fareast-font-family: +mj-ea; mso-ascii-font-family: Calibri; mso-bidi-font-family: +mj-cs; mso-color-index: 1; mso-font-kerning: 12.0pt; language: en-US"&gt;System.Web.Extensions&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 8pt; COLOR: black; FONT-FAMILY: Calibri; mso-fareast-font-family: +mj-ea; mso-ascii-font-family: Calibri; mso-bidi-font-family: +mj-cs; mso-color-index: 1; mso-font-kerning: 12.0pt; language: en-US"&gt;, Version=1.0.61025.0, Culture=neutral, &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 8pt; COLOR: black; FONT-FAMILY: Calibri; mso-fareast-font-family: +mj-ea; mso-ascii-font-family: Calibri; mso-bidi-font-family: +mj-cs; mso-color-index: 1; mso-font-kerning: 12.0pt; language: en-US"&gt;PublicKeyToken&lt;/SPAN&gt;&lt;SPAN style="COLOR: black; FONT-FAMILY: Calibri; mso-fareast-font-family: +mj-ea; mso-ascii-font-family: Calibri; mso-bidi-font-family: +mj-cs; mso-color-index: 1; mso-font-kerning: 12.0pt; language: en-US"&gt;=31bf3856ad364e35' or one of its dependencies. The system cannot find the file.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;Well instead of installing ASP.Net AJAX Extension 1.0, we can still make it work via Assembly Redirections. Here's how:&lt;/P&gt;
&lt;P&gt;1. Locate the web.config file for your SharePoint site, as well as the PerformancePoint Monitoring Designer web service and its Preview directory.&lt;/P&gt;
&lt;P&gt;&lt;IMG src="http://img406.imageshack.us/img406/6568/picture1mu1.jpg" border=0 mce_src="http://img406.imageshack.us/img406/6568/picture1mu1.jpg"&gt;&lt;/P&gt;
&lt;P&gt;2. Use any text editor (or Visual Studio), and do a search/replace to replace all references to System.Web.Extensions 1.0.61025.0 to .Net's3.5.0.0.&lt;/P&gt;
&lt;P&gt;&lt;IMG src="http://img375.imageshack.us/img375/5241/picture2iw0.jpg" width=600 border=0&gt;&lt;/P&gt;
&lt;P&gt;3. Add the following line to your web.config under the &amp;lt;configuration&amp;gt; node:&lt;/P&gt;
&lt;P&gt;&amp;lt;runtime&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;dependentAssembly&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;assemblyIdentity name="System.Web.Extensions" publicKeyToken="31bf3856ad364e35" culture="neutral" /&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;bindingRedirect oldVersion="1.0.61025.0" newVersion="3.5.0.0" /&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/dependentAssembly&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/assemblyBinding&amp;gt;&lt;BR&gt;&amp;lt;/runtime&amp;gt;&lt;/P&gt;
&lt;P&gt;Remember there are 3 web.configs that needs to change here:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;under PPSMonitoring/WebService&lt;/LI&gt;
&lt;LI&gt;under PPSMonitoring/Preview&lt;/LI&gt;
&lt;LI&gt;your SharePoint site&lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;Now your PerformancePoint webparts will load fine in SharePoint (and you can use the Dashboard Designer) without having to install ASP.Net AJAX Extension!&lt;/P&gt;
&lt;P&gt;But wait.. there's one more thing - if you tried to put in a custom-built webpart that uses AJAX (System.Web.Extensions 3.5.0.0) on the same page as your PerformancePoint dashboard items, you will get errors complaining that it cannot cast ScriptManager to ScriptManagerLoader. Huh?&lt;/P&gt;
&lt;P&gt;What happens is that PerformancePoint's webparts load its own ScriptManagerLoader, derived from the ScriptManager class. One easy solution to make all webparts AJAX-happy is to declaratively instantiate our ScriptManager in SharePoint's Master Page instead.&lt;/P&gt;
&lt;P&gt;From SharePoint Designer, locate your current Master Page and add the following line at the very top:&lt;/P&gt;
&lt;P&gt;&amp;lt;%@ Register TagPrefix="PPS" Namespace="Microsoft.PerformancePoint.Scorecards.WebParts" Assembly="Microsoft.PerformancePoint.Scorecards.WebParts, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" %&amp;gt;&lt;/P&gt;
&lt;P&gt;Next, right after the &amp;lt;form&amp;gt; tag, add the following:&lt;/P&gt;
&lt;P&gt;&amp;lt;PPS:ScriptManagerLoader runat="server" id="ScriptManager1" EnablePartialRendering="true"/&amp;gt;&lt;/P&gt;
&lt;P&gt;Here, before our AJAX webparts attempt to load its own&amp;nbsp;ScriptManager, it first checks whether an instance is already created on the page. Since we have this on our master page, it won't try to add its ScriptManager again, and ditto to our PerformancePoint web parts. Since PerformancePoint's ScriptManagerLoader is derived from ScriptManager, it will still work if our webpart expects ScriptManager.&lt;/P&gt;
&lt;P&gt;&lt;IMG src="http://img406.imageshack.us/img406/9936/picture3sy1.jpg" border=0&gt;&lt;/P&gt;
&lt;P&gt;AJAX-ified SharePoint and PerformancePoint webparts living in harmony&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9004023" width="1" height="1"&gt;</content><author><name>fooshen</name><uri>http://blogs.msdn.com/members/fooshen.aspx</uri></author><category term="SharePoint 2007" scheme="http://blogs.msdn.com/fooshen/archive/tags/SharePoint+2007/default.aspx" /><category term="PerformancePoint Server 2007" scheme="http://blogs.msdn.com/fooshen/archive/tags/PerformancePoint+Server+2007/default.aspx" /><category term="AJAX" scheme="http://blogs.msdn.com/fooshen/archive/tags/AJAX/default.aspx" /></entry><entry><title>The Form has been closed. Or has it?</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/fooshen/archive/2008/01/03/the-form-has-been-closed-or-is-it.aspx" /><id>http://blogs.msdn.com/fooshen/archive/2008/01/03/the-form-has-been-closed-or-is-it.aspx</id><published>2008-01-03T11:07:00Z</published><updated>2008-01-03T11:07:00Z</updated><content type="html">&lt;P&gt;Developing with forms services, especially with Workflow; usually turns out to be a love-hate affair - it has enough twists and turns to put a bag of pretzels to shame. One of the most frustrating errors (gauged from the amount of "help needed!" posts in newsgroups) - the infamous "The Form has been closed" message, usually occurs to Workflow association, Initiation, or task modification forms. Upon closer inspection in SharePoint's log files, the most common message is: &lt;/P&gt;
&lt;P mce_keep="true"&gt;&lt;EM&gt;"The specified form cannot be found".&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;If the workflow host (in this case, SharePoint) could not see your wickedly awesome form that you have spent the entire week developing, the first place to check is the worfklow xml file (workflow.xml, by default). We have all checked, double-checked, triple-checked the form URNs that was supposed to be the guy who will tell SharePoint how to locate our forms that has been uploaded from our workflow feature, but still it could not locate the forms!&lt;/P&gt;
&lt;P&gt;One item of note is that we have to understand the difference when we "Save" a form template, and when we "Publish" them. Note that if you publish the form under a different name from the one that was saved, the Form URN is different between them. The URN that we need to specify should be the one that we publish. &lt;/P&gt;
&lt;P&gt;Here's an illustration:&lt;/P&gt;
&lt;P&gt;I created a form, and save it as "Test" in C:\. Subsequently, I published it as "Test Form" in C:\ again.&lt;/P&gt;
&lt;P&gt;The Form URN for the saved form (if I did not close my InfoPath designer, and view the ID, this is what I will get):&lt;/P&gt;&lt;IMG src="http://i88.photobucket.com/albums/k189/fooshen/test.jpg" mce_src="http://i88.photobucket.com/albums/k189/fooshen/test.jpg"&gt;&lt;BR&gt;
&lt;P&gt;And if I open the published form from C:\Test Form.xsn, this is the correct ID:&lt;/P&gt;&lt;IMG src="http://i88.photobucket.com/albums/k189/fooshen/testForm.jpg" mce_src="http://i88.photobucket.com/albums/k189/fooshen/testForm.jpg"&gt;&lt;BR&gt;
&lt;P&gt;Cross check that against your workflow.xml, and you should have it ironed-out in no time :)&lt;/P&gt;
&lt;P&gt;Additional tips: After deploying the workflow feature, you can find all the workflow-related forms uploaded from your Central Administration, Application Management, Manage Form Tempates -&amp;gt; Click on the form in question and view its properties. That will reveal the ID that will be "seen" by SharePoint.&lt;/P&gt;
&lt;P&gt;If all else fails, here is a sure-fire way to determine your form's URN: rename the published form to .cab, double-click&amp;nbsp;to open it. Extract the file manifest.xsf and open in notepad.&amp;nbsp;Locate the &lt;EM&gt;xsf:xDocumentClass&lt;/EM&gt;&amp;nbsp;element that should be right at the top, and check the "name" attribute. This is your form's URN.&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=6964959" width="1" height="1"&gt;</content><author><name>fooshen</name><uri>http://blogs.msdn.com/members/fooshen.aspx</uri></author><category term="SharePoint 2007" scheme="http://blogs.msdn.com/fooshen/archive/tags/SharePoint+2007/default.aspx" /><category term="InfoPath 2007" scheme="http://blogs.msdn.com/fooshen/archive/tags/InfoPath+2007/default.aspx" /></entry><entry><title>SharePoint Development - Quick Tips #1</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/fooshen/archive/2007/04/01/sharepoint-development-quick-tips-1.aspx" /><id>http://blogs.msdn.com/fooshen/archive/2007/04/01/sharepoint-development-quick-tips-1.aspx</id><published>2007-04-01T08:15:00Z</published><updated>2007-04-01T08:15:00Z</updated><content type="html">&lt;P&gt;For SharePoint developers, we will visit the "12" hive almost on a daily basis - to deploy features, check log files, deploy custom site definitions, etc. One old trick is to create an environment variable that short-cuts our way to the "12" hive (alternately, most of us would have a shortcut already created on the desktop or the explorer's quick launch).&lt;/P&gt;
&lt;P&gt;From "My Computer", right-click and select "Properties" (or, "Win+Break" - another short-cut). From the "Advanced" tab, select "Environment Variables". Click on "New", and enter a new environment variable: &lt;/P&gt;Name: MOSS&lt;BR&gt;Value: %programfiles%\Common Files\Microsoft Shared\web server extensions\12 &lt;BR&gt;&lt;IMG src="http://i88.photobucket.com/albums/k189/fooshen/moss_shortcut01.jpg" mce_src="http://i88.photobucket.com/albums/k189/fooshen/moss_shortcut01.jpg"&gt; 
&lt;P mce_keep="true"&gt;Notice that I've also used another variable in this variable: "%programfiles%".&amp;nbsp;After saving the variable, we can now easily navigate to the "12" hive from windows explorer simply by typing "%moss%". This applies to the command shell as well.&lt;/P&gt;&lt;BR&gt;&lt;IMG src="http://i88.photobucket.com/albums/k189/fooshen/moss_shortcut02.jpg" mce_src="http://i88.photobucket.com/albums/k189/fooshen/moss_shortcut02.jpg"&gt;&lt;BR&gt;&lt;IMG src="http://i88.photobucket.com/albums/k189/fooshen/moss_shortcut03.jpg" mce_src="http://i88.photobucket.com/albums/k189/fooshen/moss_shortcut03.jpg"&gt;&lt;BR&gt;
&lt;P mce_keep="true"&gt;While at it, we can also add the "bin" folder of our "12" hive into the PATH variable. Now, from the command shell, we could run "stsadm" from any path :) Shaves off a couple of miliseconds, but it does add-up.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=2003599" width="1" height="1"&gt;</content><author><name>fooshen</name><uri>http://blogs.msdn.com/members/fooshen.aspx</uri></author><category term="SharePoint 2007" scheme="http://blogs.msdn.com/fooshen/archive/tags/SharePoint+2007/default.aspx" /></entry><entry><title>Installing SharePoint without AD?</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/fooshen/archive/2007/02/01/installing-moss-without-ad.aspx" /><id>http://blogs.msdn.com/fooshen/archive/2007/02/01/installing-moss-without-ad.aspx</id><published>2007-02-01T03:14:00Z</published><updated>2007-02-01T03:14:00Z</updated><content type="html">&lt;P&gt;&lt;EM&gt;Update:&amp;nbsp;Judging from the comments I've received, no doubt many has tried this path - however it is &lt;U&gt;IMPORTANT to note that this is NOT A SUPPORTED deployment&lt;/U&gt;. Using non-domain account for installing and configuring&amp;nbsp;SharePoint will result in ending up with only ONE web server and ONE database - that's it - NO splitting of roles in the WFE,&amp;nbsp;and NO redundency support, and you CAN'T add more servers.&lt;/EM&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;There has been tons of posts about using Form-based authentication for MOSS (almost all of them are on using the ASP.Net SqlMembership provider). That is really a great improvement over SPS2003. Recently I was helping a customer who had the challenge of deploying MOSS, not just with form-based authentication, but also to deploy SharePoint farm on an SQL server which is not a member of an AD domain. &lt;/P&gt;
&lt;P&gt;At first glance, this may not seem possible - the configuration wizard for setting up the configuration database expects a domain account to connect to the database server (workgroup account will work fine if the entire farm is on one single box) - which is not good if we want to use SQL authentication.&lt;/P&gt;&lt;IMG src="http://i88.photobucket.com/albums/k189/fooshen/Moss_sqlAuth01.jpg" mce_src="http://i88.photobucket.com/albums/k189/fooshen/Moss_sqlAuth01.jpg"&gt; 
&lt;P&gt;Now, here's one of the reason why the SharePoint installation wizard has a checkbox prior to running the configuration wizard:&lt;/P&gt;&lt;IMG src="http://i88.photobucket.com/albums/k189/fooshen/Moss_sqlAuth03.jpg" mce_src="http://i88.photobucket.com/albums/k189/fooshen/Moss_sqlAuth03.jpg"&gt; 
&lt;P&gt;Right after installation, uncheck this checkbox, or if you did and were halted at the "Specify Configuration Database Settings" page, simply close the wizard. What we need to do now is to go to our SQL Management Studio (or SQL Enterprise Manager for SQL2K), and create four databases manually. Make sure these databases are created with the Latin1_General_CI_AS_KS_WS collation (for the curious, C = Case, A = Accent, K = Kana, W = width, and I/S for Insensitive/Sensitive). These four databases would be: the SharePoint Configuration, SharePoint Admin Contents, Shared Services, and Shared Services Search. Assign the SQL login that we are going to use for MOSS as the dbo for these four databases - let's name them as "SharePoint_Config", "SharePoint_AdminContent", "SharedServices_DB" and "SharedServicesSearch_DB".&lt;/P&gt;
&lt;P&gt;Now fire up the command line console and use the following command (from the 12 hive* folder, "bin"): &lt;BR&gt;&lt;EM&gt;*12 hive being the %programfiles%\common files\blah blah blah\12 - you get the idea. &lt;/EM&gt;
&lt;P&gt;&lt;STRONG&gt;PSConfig -cmd -configdb -create -server&lt;/STRONG&gt;&amp;nbsp;&lt;EM&gt;database_servername&lt;/EM&gt; &lt;STRONG&gt;-database&lt;/STRONG&gt; &lt;EM&gt;SharePoint_Config&lt;/EM&gt; &lt;STRONG&gt;-user&lt;/STRONG&gt;&amp;nbsp;&lt;EM&gt;domain/username&lt;/EM&gt; &lt;STRONG&gt;-password&lt;/STRONG&gt;&amp;nbsp;&lt;EM&gt;password&lt;/EM&gt; &lt;BR&gt;&lt;STRONG&gt;-dbuser&lt;/STRONG&gt;&amp;nbsp;&lt;EM&gt;sharepoint_login_username&lt;/EM&gt; &lt;STRONG&gt;-dbpassword&lt;/STRONG&gt;&amp;nbsp;&lt;EM&gt;sharepoint_login_password&lt;/EM&gt; &lt;STRONG&gt;-admincontentdatabase&lt;/STRONG&gt; &lt;EM&gt;SharePoint_AdminContent&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;The&amp;nbsp;arguments for:&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;server&lt;/STRONG&gt; - this would be your SQL Database Server's Instance name&lt;BR&gt;&lt;STRONG&gt;database&lt;/STRONG&gt; - the database name for SharePoint's configuration (we name it SharePoint_Config here)&lt;BR&gt;&lt;STRONG&gt;user&lt;/STRONG&gt; - the windows account used as the server farm's administrator account&lt;BR&gt;&lt;STRONG&gt;dbuser&lt;/STRONG&gt; - the SQL login account to connect to the database&lt;BR&gt;&lt;STRONG&gt;admincontentdatabase&lt;/STRONG&gt; - the database name for SharePoint's Central Administration site (SharePoint_AdminContent)&lt;/P&gt;
&lt;P&gt;Most&amp;nbsp;importantly here&amp;nbsp;are the dbuser and dbuserpassword arguments. These are not available from the configuration wizard UI. &lt;/P&gt;
&lt;P&gt;Running the PSConfig command:&lt;/P&gt;
&lt;P&gt;&lt;IMG src="http://i88.photobucket.com/albums/k189/fooshen/Moss_sqlAuth02.jpg" mce_src="http://i88.photobucket.com/albums/k189/fooshen/Moss_sqlAuth02.jpg"&gt; &lt;/P&gt;
&lt;P mce_keep="true"&gt;Now, we are ready to resume the configuration wizard. Re-start the wizard from the start menu (Start -&amp;gt; Programs -&amp;gt; Office Server -&amp;gt; SharePoint Configuration Wizard...). The configuration wizard is smart enough to detect that we already have the configuration database created:&lt;/P&gt;
&lt;P&gt;&lt;IMG src="http://i88.photobucket.com/albums/k189/fooshen/Moss_sqlAuth04.jpg"&gt; &lt;/P&gt;
&lt;P&gt;Unless we want to recreate the databases again, choose not to disconnect from the server farm. Follow the wizard on as per usual installation. Now when it comes to configuring the farm's services, we can easily configure it to use SQL Authentication:&lt;/P&gt;&lt;IMG src="http://i88.photobucket.com/albums/k189/fooshen/Moss_sqlAuth05.jpg"&gt; 
&lt;P&gt;Ditto for every subsequent content databases that the wizard will need to create for every site in our Farm. Now when it comes to setting up the SSP, simply point the database to the ones that were manually created earlier, and supply the SQL Authentication credentials as well.&lt;/P&gt;
&lt;P mce_keep="true"&gt;So, it's actually possible, and quite easy in fact (once you have figured out the command parameters!) to deploy MOSS that connects to SQL using SQL logins! One BIG caveat with this though: We will be limited to ONLY ONE topology, which is 1 MOSS box, and 1 SQL box. That's it - no farms. Not scalable, but not impossible either.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=1568664" width="1" height="1"&gt;</content><author><name>fooshen</name><uri>http://blogs.msdn.com/members/fooshen.aspx</uri></author><category term="SharePoint 2007" scheme="http://blogs.msdn.com/fooshen/archive/tags/SharePoint+2007/default.aspx" /></entry><entry><title>Throttling SharePoint 2007 Logs</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/fooshen/archive/2007/01/31/throttling-moss-2007-logs.aspx" /><id>http://blogs.msdn.com/fooshen/archive/2007/01/31/throttling-moss-2007-logs.aspx</id><published>2007-01-31T17:53:00Z</published><updated>2007-01-31T17:53:00Z</updated><content type="html">&lt;P&gt;If you have ever developed on SharePoint, there's gotta be at least once when you came across the superbly detailed error message:&lt;/P&gt;
&lt;P&gt;"Unknown error" ...and its likes.&lt;/P&gt;
&lt;P&gt;That's when we have to start ploughing through the humungous amount of log entries in "%programfiles%\Common Files\Microsoft Shared\Web Server Extensions\12\Logs". Well, but there's an easier way - the log files doesn't have to be humungous!&lt;/P&gt;
&lt;P&gt;We can throttle the log file outputs, depending on which area of SharePoint that we are working on. From the SharePoint Central Administration, navigate to Operations and Diagnostic Logging. &lt;/P&gt;
&lt;P&gt;&lt;IMG src="http://i88.photobucket.com/albums/k189/fooshen/Moss_logfiles01.jpg" mce_src="http://i88.photobucket.com/albums/k189/fooshen/Moss_logfiles01.jpg"&gt;&lt;/P&gt;
&lt;P&gt;Turn off every type of log entries by setting the trace log entry to "None" for "All" categories.&lt;/P&gt;&lt;IMG src="http://i88.photobucket.com/albums/k189/fooshen/Moss_logfiles02.jpg"&gt; 
&lt;P&gt;When I'm working with MOSS workflow, I'll set the log entries to "Unexpected" for "Workflow Infrastructure". If I'm working with Forms Services as well, then I'll do the same for Form Services. &lt;/P&gt;&lt;IMG src="http://i88.photobucket.com/albums/k189/fooshen/Moss_logfiles03.jpg"&gt; 
&lt;P&gt;We can also set the number of log files to a smaller number, for a shorter period of time. Typically I will have 5 log files, each log files recording up to 5 minutes of activities.&lt;/P&gt;
&lt;P&gt;&lt;IMG src="http://i88.photobucket.com/albums/k189/fooshen/Moss_logfiles04.jpg"&gt;&lt;/P&gt;
&lt;P&gt;Smaller, fewer log files - with throttled verbosity; translates to faster debugging - and I do suspect there's also a slight performance advantage, without all the unnecessary messages logged :)&lt;/P&gt;&lt;IMG src="http://i88.photobucket.com/albums/k189/fooshen/Moss_logfiles05.jpg"&gt; 
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=1566077" width="1" height="1"&gt;</content><author><name>fooshen</name><uri>http://blogs.msdn.com/members/fooshen.aspx</uri></author><category term="SharePoint 2007" scheme="http://blogs.msdn.com/fooshen/archive/tags/SharePoint+2007/default.aspx" /></entry><entry><title>Writing WSS2.0 WebParts using Visual Studio 2005</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/fooshen/archive/2006/11/27/writing-wss2-0-webparts-using-visual-studio-2005.aspx" /><id>http://blogs.msdn.com/fooshen/archive/2006/11/27/writing-wss2-0-webparts-using-visual-studio-2005.aspx</id><published>2006-11-27T11:17:00Z</published><updated>2006-11-27T11:17:00Z</updated><content type="html">&lt;P&gt;Problem statement:&lt;/P&gt;
&lt;P&gt;Your corporate intranet portal/site is using Sharepoint Portal Server 2003 / Windows Sharepoint Services 2.0. You are mulling over whether to have Visual Studio .Net 2003 or the newer, cooler, and definately awesome Visual Studio 2005 as your corporate development tool of choice. You also want to make sure that you can develop webparts for&amp;nbsp;SPS 2003/WSS2.0 using the same IDE.&lt;/P&gt;
&lt;P&gt;Tough choice? It's really simple.&lt;/P&gt;
&lt;P&gt;Here's how:&lt;/P&gt;
&lt;P&gt;1.) Ditch Sharepoint Portal Server 2003. Upgrade to the latest, baddest kick-ass portal in town,&amp;nbsp;SharePoint Server 2007. Go with Visual Studio 2005, and you will attain unparalleled awesome-ness.&lt;/P&gt;
&lt;P&gt;2.) If you MUST develop for SharePoint Portal Server 2003 with Visual Studio 2005 - see #1 above.&lt;/P&gt;
&lt;P&gt;Ok, seriously. Building web parts for&amp;nbsp;SPS 2003/WSS2.0 using Visual Studio 2005, and you will undoubtedly venture into the problem area where you would want to use VS 2005 to build for .Net 1.1 runtime.&lt;/P&gt;&lt;BR&gt;&lt;STRONG&gt;MSBuild&lt;/STRONG&gt; 
&lt;P&gt;Enter &lt;A href="http://msdn2.microsoft.com/en-us/library/ms171452.aspx" mce_href="http://msdn2.microsoft.com/en-us/library/ms171452.aspx"&gt;MSBuild&lt;/A&gt;,&amp;nbsp;the Microsoft Build Engine for Visual Studio / .Net platform. All it takes is some target specifications to direct MSBuild to build for .Net 1.1 runtime. Sounds easy? Not. &lt;/P&gt;&lt;BR&gt;&lt;STRONG&gt;MSBee&lt;/STRONG&gt; 
&lt;P mce_keep="true"&gt;Unless you have &lt;A href="http://www.microsoft.com/downloads/details.aspx?FamilyID=E0D0776F-25C4-444A-A6B9-71D06826F5B4&amp;amp;displaylang=en"&gt;MSBee&lt;/A&gt;, which will provide us some pre-defined target files to use with MSBuild. To install MSBee, make sure you have all the pre-requisites already installed (as noted in its download page). &lt;/P&gt;
&lt;P mce_keep="true"&gt;Now we are ready to&amp;nbsp;build a webpart&amp;nbsp;on .Net 1.1. Since we don't have any Web Part templates for SPS2003/WSS2.0 in Visual Studio 2005, we will start off with a plain old Class Library project. &lt;/P&gt;
&lt;P&gt;&lt;IMG src="http://i88.photobucket.com/albums/k189/fooshen/sharepoint_vs2005_sps2003_001.jpg" border=0&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;First thing to do is to add a reference to Microsoft.Sharepoint.dll assembly from C:\Program Files\Common Files\Microsoft Shared\web server extensions\60\ISAPI\&lt;/P&gt;
&lt;P mce_keep="true"&gt;Add the "using" redirectives for Microsoft.Sharepoint, and remove the default System.Collections.Generic - we don't have generics in .Net 1.1.&lt;/P&gt;
&lt;P mce_keep="true"&gt;Example:&lt;/P&gt;
&lt;P mce_keep="true"&gt;using System;&lt;BR&gt;using System.Text;&lt;BR&gt;using Microsoft.SharePoint.WebPartPages;&lt;BR&gt;using System.Web.UI;&lt;BR&gt;using System.Web.UI.WebControls;&lt;BR&gt;using System.Reflection;&lt;/P&gt;
&lt;P mce_keep="true"&gt;namespace SharePoint2003WebPart&lt;BR&gt;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public class MyWebPart: WebPart&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; protected override void CreateChildControls()&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Label message = new Label();&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; message.Text = "CLR Version: " + Assembly.GetExecutingAssembly().ImageRuntimeVersion;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.Controls.Add(message);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;}&lt;BR&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;Next, open the .csproj file, and add the following import statements into it:&lt;/P&gt;
&lt;P&gt;&lt;IMG src="http://i88.photobucket.com/albums/k189/fooshen/sharepoint_vs2005_sps2003_004.jpg" border=0&gt; &lt;/P&gt;
&lt;P&gt;Add a reference path to the project so that MSBuild can locate our Microsoft.SharePoint.dll assembly:&lt;/P&gt;
&lt;P&gt;&lt;IMG src="http://i88.photobucket.com/albums/k189/fooshen/sharepoint_vs2005_sps2003_005.jpg" border=0&gt;&lt;/P&gt;
&lt;P&gt;Provide a strong name key and we're ready. We have to sign it the old-fashioned VS.Net 2003 way - use "sn -k yourfile.snk" and adding the attribute [assembly: AssemblyKeyFile(../../yourfile.snk")] into AssemblyInfo.cs. &lt;/P&gt;
&lt;P mce_keep="true"&gt;Now we are ready to &lt;EM&gt;MSBee&lt;/EM&gt; it. From the Visual Studio command prompt, use the following command line:&lt;/P&gt;
&lt;P mce_keep="true"&gt;&lt;STRONG&gt;msbuild&lt;/STRONG&gt; &lt;EM&gt;{your csproj file}&lt;/EM&gt; &lt;STRONG&gt;/p:TargetFX1_1=true&lt;/STRONG&gt;&lt;/P&gt;&lt;IMG src="http://i88.photobucket.com/albums/k189/fooshen/sharepoint_vs2005_sps2003_006.jpg" border=0&gt; 
&lt;P mce_keep="true"&gt;Almost there now... Grab the assembly under the bin\FX1_1\debug (or release)&amp;nbsp;folder, (instead of \bin\debug)&amp;nbsp;and drop it into the Global Assembly Cache.&amp;nbsp;&lt;/P&gt;
&lt;P mce_keep="true"&gt;For SPS2003/WSS2.0 webparts, we need to&amp;nbsp;create&amp;nbsp;a corresponding .dwp file, contrasting to the self-reflected .webpart file in MOSS. In Visual Studio 2005, add a new xml file and name it&amp;nbsp;anything with .dwp extension. Get the PublicKeyToken value from the GAC, or use the -T command line switch with the Strong Name utility: sn -T &lt;EM&gt;assemblyName.&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="COLOR: blue"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: maroon"&gt;?xml&lt;/SPAN&gt; version="1.0"?&lt;SPAN style="COLOR: blue"&gt;&amp;gt;&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="COLOR: blue"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: maroon"&gt;WebPart&lt;/SPAN&gt; xmlns="http://schemas.microsoft.com/WebPart/v2"&lt;SPAN style="COLOR: blue"&gt;&amp;gt;&lt;/SPAN&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: maroon"&gt;Assembly&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;&amp;gt;&lt;/SPAN&gt;AssemblyName(with no .dll extension),&amp;nbsp;Version=VersionNumber, Culture=Culture,&amp;nbsp;PublicKeyToken=PublicKeyToken&lt;SPAN style="COLOR: blue"&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="COLOR: maroon"&gt;Assembly&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;&amp;gt;&lt;/SPAN&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: maroon"&gt;TypeName&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;&amp;gt;&lt;/SPAN&gt;WebPartNamespace.WebPartClassName&lt;SPAN style="COLOR: blue"&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="COLOR: maroon"&gt;TypeName&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;&amp;gt;&lt;/SPAN&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: maroon"&gt;Title&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;&amp;gt;&lt;/SPAN&gt;DefaultWebPartTitle&lt;SPAN style="COLOR: blue"&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="COLOR: maroon"&gt;Title&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;&amp;gt;&lt;/SPAN&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: maroon"&gt;Description&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;&amp;gt;&lt;/SPAN&gt;WebPartDescription&lt;SPAN style="COLOR: blue"&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="COLOR: maroon"&gt;Description&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;&amp;gt;&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="COLOR: blue"&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="COLOR: maroon"&gt;WebPart&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;&amp;gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P mce_keep="true"&gt;From SPS2003/WSS2.0 site, import the newly created dwp file, and we're done!&lt;/P&gt;
&lt;P&gt;&lt;IMG src="http://i88.photobucket.com/albums/k189/fooshen/sharepoint_vs2005_sps2003_007.jpg" border=0&gt; &lt;/P&gt;
&lt;P&gt;Can it be better? You bet. &lt;/P&gt;
&lt;P&gt;Right-click on your Visual Studio&amp;nbsp;2005 menu bar, and select Customize (waaay down below). On the Commands tab, select "Rearrange Commands". Select "Add" and choose "File" and then "Export Template" from the Commands selection.&lt;/P&gt;
&lt;P&gt;&lt;IMG src="http://i88.photobucket.com/albums/k189/fooshen/sharepoint_vs2005_sps2003_008.jpg" border=0&gt; &lt;/P&gt;
&lt;P&gt;When done, the new "Export Template" command will be available from the "File" menu. What this do is to take the existing SharePoint2003WebPart project and convert it into a Project template with all the project import targets and references intact, and the .dwp file is included as well. &lt;IMG src="http://i88.photobucket.com/albums/k189/fooshen/sharepoint_vs2005_sps2003_009.jpg" border=0&gt; &lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=1159852" width="1" height="1"&gt;</content><author><name>fooshen</name><uri>http://blogs.msdn.com/members/fooshen.aspx</uri></author><category term="Visual Studio 2005" scheme="http://blogs.msdn.com/fooshen/archive/tags/Visual+Studio+2005/default.aspx" /><category term="SharePoint 2003" scheme="http://blogs.msdn.com/fooshen/archive/tags/SharePoint+2003/default.aspx" /></entry><entry><title>Enabling Digital Signatures in InfoPath forms created from pre-defined schemas</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/fooshen/archive/2006/11/01/enabling-digital-signatures-in-infopath-forms-created-from-pre-defined-schemas.aspx" /><id>http://blogs.msdn.com/fooshen/archive/2006/11/01/enabling-digital-signatures-in-infopath-forms-created-from-pre-defined-schemas.aspx</id><published>2006-11-01T06:07:00Z</published><updated>2006-11-01T06:07:00Z</updated><content type="html">&lt;P&gt;Recently I was working on some InfoPath samples for United Nation's Electronic Documents standards (UNeDOCs: &lt;A href="http://www.unece.org/etrades/unedocs/" mce_href="http://www.unece.org/etrades/unedocs/"&gt;http://www.unece.org/etrades/unedocs/&lt;/A&gt;), and one of the key requirements I am looking at with InfoPath is the ability to digitally sign the form. Sounds like a no-brainer, since this feature is given with InfoPath.&lt;/P&gt;
&lt;P&gt;However, after I happily imported the schema into InfoPath and attempted to enable digital signature:&lt;/P&gt;
&lt;P&gt;&lt;IMG src="http://i88.photobucket.com/albums/k189/fooshen/blogs/infopath_digitalsignature01.jpg" border=0 mce_src="http://i88.photobucket.com/albums/k189/fooshen/blogs/infopath_digitalsignature01.jpg"&gt; &lt;/P&gt;
&lt;P&gt;Ok, so InfoPath didn't allow me to enable digital signatures. What's wrong with my xsd? &lt;BR&gt;A little click on the least-clicked button in InfoPath (that's the little [?] help button) and a quick search on "Digital Signature" reveals:&lt;/P&gt;
&lt;P&gt;&lt;IMG src="http://i88.photobucket.com/albums/k189/fooshen/blogs/infopath_digitalsignature02.jpg" border=0 mce_src="http://i88.photobucket.com/albums/k189/fooshen/blogs/infopath_digitalsignature02.jpg"&gt; &lt;/P&gt;
&lt;P&gt;Take note of the... well, NOTE. "If a form template was designed based on an XML Schema, you can enable digital signatures for the form template only if the XML Schema has a node that is in the W3C Xml digital signature namespace". Well, that's compliance for you.&lt;/P&gt;
&lt;P&gt;So, using the all-powerfull killer app (that's NOTEPAD.exe), I open the xsd file and added a new element for my digital signature and point it to the W3C digital signature namespace: &lt;STRONG&gt;&lt;A href="http://www.w3.org/2000/09/xmldsig#"&gt;http://www.w3.org/2000/09/xmldsig#&lt;/A&gt;&lt;/STRONG&gt;&lt;BR&gt;as such:&lt;/P&gt;
&lt;P&gt;&amp;lt;xsd:element name="DigitalSignature"&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;lt;xsd:complexType&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;xsd:sequence&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;xsd:any minOccurs="0" maxOccurs="unbounded"&amp;nbsp;namespace="&lt;A href="http://www.w3.org/2000/09/xmldsig"&gt;http://www.w3.org/2000/09/xmldsig&lt;/A&gt;#"&amp;nbsp;processContents="lax"/&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/xsd:sequence&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;lt;/xsd:complexType&amp;gt;&lt;BR&gt;&amp;lt;/xsd:element&amp;gt;&lt;/P&gt;
&lt;P&gt;Source: &lt;A href="http://www.w3.org/TR/xmldsig-core/#sec-Versions"&gt;http://www.w3.org/TR/xmldsig-core/#sec-Versions&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Voila, now InfoPath allows digital signatures&amp;nbsp;on my form!&lt;/P&gt;&lt;IMG src="http://i88.photobucket.com/albums/k189/fooshen/blogs/infopath_digitalsignature03.jpg" border=0 mce_src="http://i88.photobucket.com/albums/k189/fooshen/blogs/infopath_digitalsignature03.jpg"&gt; 
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=916745" width="1" height="1"&gt;</content><author><name>fooshen</name><uri>http://blogs.msdn.com/members/fooshen.aspx</uri></author><category term="InfoPath 2007" scheme="http://blogs.msdn.com/fooshen/archive/tags/InfoPath+2007/default.aspx" /></entry><entry><title>Forms not working after applying B2 Technical Refresh update</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/fooshen/archive/2006/10/15/forms-not-working-after-applying-b2-technical-refresh-update.aspx" /><id>http://blogs.msdn.com/fooshen/archive/2006/10/15/forms-not-working-after-applying-b2-technical-refresh-update.aspx</id><published>2006-10-15T08:26:00Z</published><updated>2006-10-15T08:26:00Z</updated><content type="html">&lt;P&gt;You have just applied the Beta 2 Technical Refresh to your SharePoint farms, and everything look to be in working order. And then, when you try to open a form to submit for your workflow, Forms Server just wouldn't let it be. But, it works before the TR, and you swore you have not done anything to it after the TR patch. &lt;/P&gt;
&lt;P&gt;&lt;IMG src="http://i88.photobucket.com/albums/k189/fooshen/forms_server_b2tr.jpg" width=270 border=0 mce_src="http://i88.photobucket.com/albums/k189/fooshen/forms_server_b2tr.jpg"&gt; &lt;/P&gt;
&lt;P&gt;What happened here?&lt;/P&gt;
&lt;P&gt;It's pretty straight-forward. You will need to run &lt;STRONG&gt;stsadm -o reconvertallformtemplates&lt;/STRONG&gt; after applying TR, because it says so in the installation guide, step #10 in the "&lt;EM&gt;&lt;STRONG&gt;How to upgrade an existing Beta 2 installation to Beta 2 Technical Refresh"&lt;/STRONG&gt;&lt;/EM&gt; section.&lt;/P&gt;
&lt;P&gt;For those who jumps straight into installation without much of a glance at the readmes and guides and important!readme!first!'s, here's two very important links:&lt;/P&gt;
&lt;P&gt;1. The official guide on Installing Microsoft Office SharePoint Server 2007 for Beta 2 Technical Refresh: &lt;A href="http://technet2.microsoft.com/Office/en-us/library/f49862ab-e067-4723-bb90-7eb1182c65ce1033.mspx?mfr=true"&gt;http://technet2.microsoft.com/Office/en-us/library/f49862ab-e067-4723-bb90-7eb1182c65ce1033.mspx?mfr=true&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;2. List of known issues, AND the &lt;STRONG&gt;&lt;U&gt;available workarounds&lt;/U&gt;&lt;/STRONG&gt;: &lt;A href="http://officebeta.iponet.net/en-us/products/FX101517541033.aspx?ofcresset=1"&gt;http://officebeta.iponet.net/en-us/products/FX101517541033.aspx?ofcresset=1&lt;/A&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=827702" width="1" height="1"&gt;</content><author><name>fooshen</name><uri>http://blogs.msdn.com/members/fooshen.aspx</uri></author><category term="SharePoint 2007" scheme="http://blogs.msdn.com/fooshen/archive/tags/SharePoint+2007/default.aspx" /></entry><entry><title>SharePoint's out-going e-mail with Exchange 2007</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/fooshen/archive/2006/10/08/SharePoint_2700_s-out_2D00_going-e_2D00_mail-with-Exchange-2007.aspx" /><id>http://blogs.msdn.com/fooshen/archive/2006/10/08/SharePoint_2700_s-out_2D00_going-e_2D00_mail-with-Exchange-2007.aspx</id><published>2006-10-08T18:33:00Z</published><updated>2006-10-08T18:33:00Z</updated><content type="html">&lt;P&gt;When using SharePoint 2007 with Exchange 2007, I found out that SharePoint just couldn't send out *ANY* e-mails. This could be e-mail notifications from Workflow actions, or simply the "Welcome" e-mail from the "Add User" administration in the site collection. From &lt;STRONG&gt;Site Actions -&amp;gt; Site Settings -&amp;gt; People and Group&lt;/STRONG&gt;, select &lt;STRONG&gt;New -&amp;gt; Add Users&lt;/STRONG&gt;,&lt;/P&gt;
&lt;P&gt;&lt;IMG src="http://i88.photobucket.com/albums/k189/fooshen/blogs/sharepoint_exchange_01.jpg" mce_src="http://i88.photobucket.com/albums/k189/fooshen/blogs/sharepoint_exchange_01.jpg"&gt;&lt;/P&gt;
&lt;P&gt;If you don't see the "&lt;EM&gt;Send welcome e-mail to the new users&lt;/EM&gt;" part, then the "&lt;STRONG&gt;Out-going email settings&lt;/STRONG&gt;" has not been configured in the &lt;STRONG&gt;Central Administration&lt;/STRONG&gt;. (To do so, go to Central Administration's &lt;STRONG&gt;Operations&lt;/STRONG&gt; page, &lt;STRONG&gt;Topology and Services&lt;/STRONG&gt;, &lt;STRONG&gt;Out-going email settings&lt;/STRONG&gt;).&lt;/P&gt;
&lt;P&gt;Now, if our out-going email settings is pointing to Exchange 2007 Beta2, upon clicking on "OK" SharePoint will complain that the e-mail message couldn't be sent out.&lt;/P&gt;
&lt;P&gt;&lt;IMG src="http://i88.photobucket.com/albums/k189/fooshen/blogs/sharepoint_exchange_02.jpg" mce_src="http://i88.photobucket.com/albums/k189/fooshen/blogs/sharepoint_exchange_02.jpg"&gt;&lt;/P&gt;
&lt;P&gt;To check what's going on, we will need to inspect the SharePoint log files, at &amp;lt;program files&amp;gt;\Common Files\Microsoft Shared\web server extensions\12\LOGS. The actual error message is: "&lt;STRONG&gt;#160005: Bad response from SMTP host'master.iventsys.com.my': 530 5.7.1 Client was not authenticated .&lt;/STRONG&gt;" &lt;/P&gt;
&lt;P&gt;Ah.. "&lt;EM&gt;Client was not authenticated&lt;/EM&gt;". Exchange 2007, by it's hardened default state, will not allow anonymous clients to send e-mails. &lt;/P&gt;
&lt;P&gt;First off, we will need to create a Receive Connector in Exchange 2007 to receive e-mail from Internet. From the Exchange Management Console, select &lt;STRONG&gt;Server Configuration -&amp;gt; Hub Transport, New Receive Connector. &lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;IMG src="http://i88.photobucket.com/albums/k189/fooshen/blogs/sharepoint_exchange_03.jpg" mce_src="http://i88.photobucket.com/albums/k189/fooshen/blogs/sharepoint_exchange_03.jpg"&gt;&lt;/P&gt;
&lt;P&gt;Now, if we try to send SharePoint's Welcome E-mail again from the New User page, we will still get the same error on the web page. However, the SharePoint log file turns out a different message:&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;#160005: Bad response from SMTP host'master.iventsys.com.my': 550 5.7.1 Client does not have permissions to send as this sender .&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;"&lt;EM&gt;Client does not have permissions to send as this sender.&lt;/EM&gt;" This is because SharePoint will use the user email in the "&lt;STRONG&gt;From Address&lt;/STRONG&gt;" field of our &lt;STRONG&gt;Out-going Email Settings &lt;/STRONG&gt;from the &lt;STRONG&gt;Central Administration&lt;/STRONG&gt;'s&lt;STRONG&gt; Operations &lt;/STRONG&gt;page.&lt;/P&gt;
&lt;P&gt;&lt;IMG src="http://i88.photobucket.com/albums/k189/fooshen/blogs/sharepoint_exchange_04.jpg" mce_src="http://i88.photobucket.com/albums/k189/fooshen/blogs/sharepoint_exchange_04.jpg"&gt;&lt;/P&gt;
&lt;P&gt;So, how can we enable Exchange 2007 to accept SharePoint's anonymous sender, masquerading as the &lt;A href="mailto:administrator@iventys.com.my"&gt;administrator@iventys.com.my&lt;/A&gt; as above?&lt;/P&gt;
&lt;P&gt;After searching throughout for this setting in Exchange 2007's&amp;nbsp;Management Console, turns out that it never existed in the console. To do this, we have to use the&amp;nbsp;management shell for Exchange. Referring to this article on Exchange 2007 Wiki: &lt;A href="http://www.exchangeninjas.com/TUPMAppA"&gt;http://www.exchangeninjas.com/TUPMAppA&lt;/A&gt;; we need to do the following from the&amp;nbsp;Exchange Management&amp;nbsp;Shell:&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: TH"&gt;&lt;STRONG&gt;add-adpermission '&amp;lt;receivername&amp;gt;' -User 'NT AUTHORITY\ANONYMOUS LOGON' -ExtendedRights ms-Exch-SMTP-Accept-Authoritative-Domain-Sender&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: TH"&gt;where &amp;lt;receivername&amp;gt; is the name of our Receive Connector of Internet type created above.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;IMG src="http://i88.photobucket.com/albums/k189/fooshen/blogs/sharepoint_exchange_05.jpg" mce_src="http://i88.photobucket.com/albums/k189/fooshen/blogs/sharepoint_exchange_05.jpg"&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;And that's it! Now my SharePoint 2007 and Exchange 2007 can live together happily ever after (well, until the RTM at least).&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=805334" width="1" height="1"&gt;</content><author><name>fooshen</name><uri>http://blogs.msdn.com/members/fooshen.aspx</uri></author><category term="SharePoint 2007" scheme="http://blogs.msdn.com/fooshen/archive/tags/SharePoint+2007/default.aspx" /><category term="Exchange 2007" scheme="http://blogs.msdn.com/fooshen/archive/tags/Exchange+2007/default.aspx" /></entry><entry><title>SharePoint's Contact Selector</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/fooshen/archive/2006/10/08/SharePoint_2700_s-Contact-Selector.aspx" /><id>http://blogs.msdn.com/fooshen/archive/2006/10/08/SharePoint_2700_s-Contact-Selector.aspx</id><published>2006-10-08T15:22:00Z</published><updated>2006-10-08T15:22:00Z</updated><content type="html">&lt;P&gt;(Ported from &lt;A href="http://fooshen.blogspot.com/"&gt;fooshen.blogspot.com&lt;/A&gt;)&amp;nbsp;&lt;/P&gt;
&lt;P&gt;After first installing Sharepoint 2007 Beta2 (way back in May), the very first thing I noticed (besides all the bells and whistles), is the superior user interface; souped up with ajax at every turn. There is hardly any dropdownlist box, replaced with a rather sweet DHTML drop down menu that loads asynchronously.&lt;BR&gt;&lt;BR&gt;Now, the one thing that caught my eye is the Contact Selector control (part of Sharepoint's WebControl library). This is used in many security settings page, for example in the site collection adminitration page as shown here.&lt;/P&gt;
&lt;P&gt;&lt;IMG src="http://i88.photobucket.com/albums/k189/fooshen/blogs/sharepoint2k7_001.jpg" mce_src="http://i88.photobucket.com/albums/k189/fooshen/blogs/sharepoint2k7_001.jpg"&gt;&lt;BR&gt;&lt;/P&gt;
&lt;P&gt;What these controls do is quite similar to those outlook email fields, where we can type in an alias, and click on the "Check Names" image button to resolve the actual user name. Once resolved, the name will be underlined, or if unresolved, you will see the red wavy underline, similar to a typical spell-check error in a word processor.&lt;BR&gt;&lt;IMG src="http://i88.photobucket.com/albums/k189/fooshen/blogs/sharepoint2k7_002.jpg" mce_src="http://i88.photobucket.com/albums/k189/fooshen/blogs/sharepoint2k7_002.jpg"&gt;&lt;/P&gt;
&lt;P&gt;Now, &lt;B&gt;How&amp;nbsp;to achieve this effect?&lt;/B&gt;&lt;/P&gt;
&lt;P&gt;Conventionally, we can apply a 'text-decoration: underline' to a text input control (IE-only), to achieve an effect close to the first text-box (the "resolved" name). However, what about the wavy underline? It is not supported by any standard CSS implementations. The trick is to use a small image with a red underline, and set background-repeat attribute to &lt;EM&gt;repeat-x&lt;/EM&gt; in the stylesheet.&lt;BR&gt;&lt;BR&gt;In Sharepoint 2007, the CSS class used is &lt;STRONG&gt;&lt;I&gt;ms-entity-resolved&lt;/I&gt; &lt;/STRONG&gt;and &lt;STRONG&gt;&lt;I&gt;ms-entity-unresolved&lt;/I&gt; &lt;/STRONG&gt;respectively. Now, if we apply these attributes to a normal text-input, we get another problem. If we apply the above styles into a conventional &amp;lt;input type="text"&amp;gt; element, all we got is a textbox that applies the underline/wavy-underline in the &lt;B&gt;entire&lt;/B&gt; input. Not good, as in Sharepoint 2007, we get to see this:&lt;BR&gt;&lt;/P&gt;
&lt;P&gt;&lt;IMG src="http://i88.photobucket.com/albums/k189/fooshen/blogs/sharepoint2k7_003.jpg" mce_src="http://i88.photobucket.com/albums/k189/fooshen/blogs/sharepoint2k7_003.jpg"&gt;&lt;/P&gt;
&lt;P&gt;Furthermore, if we use the left/right arrow, the cursor will actually skip past the resolved/unresolved name, treating the entity as if one single character.&lt;BR&gt;&lt;STRONG&gt;&amp;nbsp;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT size=x-small&gt;&lt;U&gt;How to achieve this effect - the secret is here!&lt;/FONT&gt;&lt;/U&gt;&lt;/STRONG&gt;&lt;BR&gt;So, how the heck.. ? Well, to achieve this level of neatness, Sharepoint 2007 employes various DHTML tricks.. and most are specific to IE only. To achieve the above behaviour, Sharepoint &lt;B&gt;didn't use any textbox&lt;/B&gt; input elements as we were made to believe. Yes, what we see here are not &amp;lt;input type="textbox"&amp;gt; tags; rather these are done using nested div and span, with the IE-specific attribute "&lt;B&gt;contenteditable&lt;/B&gt;" set to "true".&lt;BR&gt;&lt;BR&gt;To try this, use the following snippet:&lt;BR&gt;&lt;SPAN style="FONT-FAMILY: arial"&gt;&lt;SPAN style="COLOR: #3366ff"&gt;&lt;BR&gt;&amp;lt;style&amp;gt;&lt;BR&gt;.squiggle&lt;BR&gt;{&lt;BR&gt;&amp;nbsp;&amp;nbsp; background-image:url("squiggle.gif");&lt;BR&gt;&amp;nbsp;&amp;nbsp; background-repeat:repeat-x;&lt;BR&gt;&amp;nbsp;&amp;nbsp; background-position:left bottom;&lt;BR&gt;&amp;nbsp;&amp;nbsp; padding-bottom:2px;&lt;BR&gt;&amp;nbsp;&amp;nbsp; vertical-align:text-top;&lt;BR&gt;&amp;nbsp;&amp;nbsp; font-style:italic;&lt;BR&gt;}&lt;BR&gt;.container&lt;BR&gt;{&lt;BR&gt;&amp;nbsp;&amp;nbsp; border:1px solid #a5a5a5; &lt;BR&gt;&amp;nbsp;&amp;nbsp; overflow-x: hidden;&lt;BR&gt;&amp;nbsp;&amp;nbsp; width: 100%;&lt;BR&gt;&amp;nbsp;&amp;nbsp; color: windowtext;&lt;BR&gt;&amp;nbsp;&amp;nbsp; height: 18px;&lt;BR&gt;&amp;nbsp;&amp;nbsp; background-color: window&lt;BR&gt;}&lt;BR&gt;&amp;lt;/style&amp;gt;&lt;BR&gt;&amp;lt;div class="container" contenteditable="true" tabindex="0"&amp;gt;&lt;BR&gt;&amp;lt;span class="squiggle" contenteditable="false" tabindex="-1"&amp;gt;&lt;BR&gt;&amp;lt;div style="DISPLAY: none" displaytext="here"&amp;gt;&amp;lt;/div&amp;gt;&lt;BR&gt;&amp;lt;span contenteditable="true" tabindex="-1"&amp;gt;unresolved!&amp;lt;/span&amp;gt;&lt;BR&gt;&amp;lt;/span&amp;gt;&lt;BR&gt;&amp;lt;/div&amp;gt;&lt;BR&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;BR&gt;&lt;BR&gt;By the way, the squiggle.gif image can be found in Sharepoint's Template\Images folder.&lt;BR&gt;&lt;BR&gt;This is the magnified version of it (200x): &lt;/P&gt;
&lt;P&gt;&lt;IMG style="DISPLAY: block; MARGIN: 0px auto 10px; TEXT-ALIGN: center" height=28 src="http://i88.photobucket.com/albums/k189/fooshen/blogs/SQUIGGLE_enlarged200x.png" mce_src="http://i88.photobucket.com/albums/k189/fooshen/blogs/SQUIGGLE_enlarged200x.png" bordercolor="gray"&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;Cool tricks to use, especially if we are creating controls with spell checks capabilities!&lt;BR&gt;However, when rendered in non-IE browser, SharePoint will simply render a normal TextArea element.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=805095" width="1" height="1"&gt;</content><author><name>fooshen</name><uri>http://blogs.msdn.com/members/fooshen.aspx</uri></author><category term="SharePoint 2007" scheme="http://blogs.msdn.com/fooshen/archive/tags/SharePoint+2007/default.aspx" /></entry><entry><title>Vista and the BCD Editor</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/fooshen/archive/2006/10/07/Vista-and-the-BCD-Editor.aspx" /><id>http://blogs.msdn.com/fooshen/archive/2006/10/07/Vista-and-the-BCD-Editor.aspx</id><published>2006-10-07T19:26:00Z</published><updated>2006-10-07T19:26:00Z</updated><content type="html">&lt;P&gt;Okies, just installed Windows Vista RC1, after days of resisting the urge. I've finally managed to move all my data from my second partition and installed Vista as part of my dual-boot laptop. Now...dual-booting with Windows 2003 Server on one side, and Vista on another is neat, but Vista doesn't think so... On my boot up screen, Vista gives me two options: "Earlier Version of Windows", or "Vista". That's like asking me: "Use&amp;nbsp;an antiquated OS or me?" Substitute the word "Earlier" with "Older" and you get the idea. Anyway, I thought that would not be a problem. Open up Boot.ini in notepad and change the description to my heart's content will do. &lt;/P&gt;
&lt;P&gt;But wait.. there's no boot.ini for Vista!&lt;/P&gt;
&lt;P&gt;In comes the new &lt;STRONG&gt;Boot Configuration Data Editor&lt;/STRONG&gt;, or the BCDEdit command line tool.&lt;/P&gt;
&lt;P&gt;For a start, I investigated what my boot options look like with the /v argument:&lt;/P&gt;
&lt;P mce_keep="true"&gt;&lt;IMG src="http://i88.photobucket.com/albums/k189/fooshen/blogs/bcdedit01.jpg" mce_src="http://i88.photobucket.com/albums/k189/fooshen/blogs/bcdedit01.jpg"&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;So how do we go about changing the description field of the Win2k3 partition? &lt;STRONG&gt;BCDEdit /?&lt;/STRONG&gt; gives us a list of available commands (too long to list here). BCDEdit /set is what I'm looking for, and the format goes like this: &lt;STRONG&gt;BCDEdit /set {id} {datatype} {value}&lt;/STRONG&gt;, where {id} will be the identifier value listed in our /v above. The {datatype} that we want to set is "description". To list the available datatypes, we can type "&lt;STRONG&gt;BCDEdit /? TYPES"&lt;/STRONG&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;Thus:&lt;/P&gt;
&lt;P mce_keep="true"&gt;&lt;IMG src="http://i88.photobucket.com/albums/k189/fooshen/blogs/bcdedit02.jpg" mce_src="http://i88.photobucket.com/albums/k189/fooshen/blogs/bcdedit02.jpg"&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;So, there goes my &lt;EM&gt;&lt;STRONG&gt;BOOT.INI&lt;/STRONG&gt;&lt;/EM&gt; :)&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=801073" width="1" height="1"&gt;</content><author><name>fooshen</name><uri>http://blogs.msdn.com/members/fooshen.aspx</uri></author><category term="Vista" scheme="http://blogs.msdn.com/fooshen/archive/tags/Vista/default.aspx" /></entry><entry><title>.ctor</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/fooshen/archive/2006/10/01/.ctor.aspx" /><id>http://blogs.msdn.com/fooshen/archive/2006/10/01/.ctor.aspx</id><published>2006-10-01T10:41:00Z</published><updated>2006-10-01T10:41:00Z</updated><content type="html">&lt;P&gt;&lt;FONT face=Arial size=2&gt;&lt;STRONG&gt;The obligatory Hello World blog post!&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial size=2&gt;After finding out that I could actually host my technical blog at blogs.msdn.com, finally I'm moving over my &lt;A href="http://fooshen.blogspot.com/" mce_href="http://fooshen.blogspot.com"&gt;blogspot&lt;/A&gt; entries. Well, I sure won't get my Google Adsense...but what the hell, it's like $0.50 over three months..&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial size=2&gt;Welcome to my technical blog (yeap, I have another non-technical blog @ &lt;A href="http://fooshen.spaces.live.com/" mce_href="http://fooshen.spaces.live.com"&gt;MSN Space&lt;/A&gt;). &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial size=2&gt;Day job: Technical Solution Professional - Office Platform, Microsoft Malaysia.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial size=2&gt;Alter-ego: EPL junkie, .Net coder (code for anything that interests me at any particular time), and re-tiring Warcraft player.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial size=2&gt;Whatchablogginabout: Sharepoint and Office technologies, .Net in general.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial size=2&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=779178" width="1" height="1"&gt;</content><author><name>fooshen</name><uri>http://blogs.msdn.com/members/fooshen.aspx</uri></author></entry></feed>