<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://weblogs.asp.net/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Sharad Kumar : Software Development</title><link>http://weblogs.asp.net/sharadkumar/archive/tags/Software+Development/default.aspx</link><description>Tags: Software Development</description><dc:language>en</dc:language><generator>CommunityServer 2007 SP1 (Build: 20510.895)</generator><item><title>VHD Lifestyle – My SharePoint 2007/2010 Development and Home/Media-Network Setup!</title><link>http://weblogs.asp.net/sharadkumar/archive/2009/09/02/vhd-lifestyle-my-sharepoint-2007-2010-development-and-home-media-network-setup.aspx</link><pubDate>Wed, 02 Sep 2009 20:15:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:7189488</guid><dc:creator>eJugnoo</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/sharadkumar/rsscomments.aspx?PostID=7189488</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/sharadkumar/commentapi.aspx?PostID=7189488</wfw:comment><comments>http://weblogs.asp.net/sharadkumar/archive/2009/09/02/vhd-lifestyle-my-sharepoint-2007-2010-development-and-home-media-network-setup.aspx#comments</comments><description>&lt;P&gt;First - Many thanks to Windows 7 (and 2008 R2), there has been some very useful enhancements in my “Digital Lifestyle” recently!&lt;/P&gt;
&lt;P&gt;Windows Vista didn’t fly with me so well as development machine, and I’d always go back to Windows 2003… mostly for SharePoint development setup on my working desktops.&lt;/P&gt;
&lt;P&gt;Once Windows 7 was RTM, I was quick to jump off RC (no stability reason really). That also gave me a reason to re-look at my existing setup, which wasn’t working comfortably well for me. So without much ado, let’s see what all I have in my setup and what I did to improve, and what is perhaps missing that you can suggest I can do to further improve...&lt;/P&gt;
&lt;H3&gt;What do I have and wanted to improve – and did?&lt;/H3&gt;
&lt;OL&gt;
&lt;LI&gt;&lt;STRONG&gt;Desktop&lt;/STRONG&gt;: AMD Quad CPU, 4 GB DDR2 800, 2 SATA-II drives (500 GB each, RAID 1), with a 24” screens.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Server&lt;/STRONG&gt;: AMD Dual CPU 64X2, 8 GB DDR2 800, 4 SATA-II drives (2X500GB RAID 1, 2X2TB &lt;STRIKE&gt;RAID 1&lt;/STRIKE&gt; as WHS "duplicated" storage)&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Laptop&lt;/STRONG&gt;: A Lenovo T-61 laptop with 2 GB RAM!!! Wi-fi connected.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;GBit Linksys Router&lt;/STRONG&gt;, with &lt;STRONG&gt;Xbox 360 &lt;/STRONG&gt;Elite and Epson photo &lt;STRONG&gt;printer &lt;/STRONG&gt;on it’s network.&lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;With this primary hardware, I wanted to maximize productivity with ease and flexibility of supporting demanding SharePoint environment needs. So I did following:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;&lt;STRONG&gt;Server&lt;/STRONG&gt;: Setup my server as Hyper-V (on R2) and instead move my Windows Home Server (WHS) as Virtual. I also host nifty website or two (on demand) from Home (using DynDns) on a 2mbps line! (that’s almost the best in India at the minute, with unlimited bandwidth use) So I also setup a Web Server as virtual. Shared 8 GB amongst the three, with sufficient 2 GB for WHS.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Desktop&lt;/STRONG&gt;: I’ve either utilized hack from Bamboo solutions for setting up SharePoint on Vista, or had depended on VPC for Win 2003 SharePoint VMs in past. So I now setup Windows 7 Ultimate on desktop as prime. I also have 4 VHDs created to desired setup, and attached to boot from using BCDEdit. So when I now want to work on SharePoint exclusively, I simply re-boot quickly. (I don’t mind anymore, since its so fast!)&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;VHD Lifestyle&lt;/STRONG&gt; – I was super excited to try new support of VHDs for booting from. There has lot already been said about VHD benefits, and I referred following to get me Native Boot on Server (for Hyper-V) and multiple-boots on desktop (as in diagram). This gave me flexible and on-demand environments that I can kill and build in minutes, not hours. And I’m truly loving the flexibility.&lt;/LI&gt;
&lt;OL&gt;
&lt;LI&gt;&lt;A href="http://blogs.technet.com/virtualization/archive/2009/05/14/native-vhd-support-in-windows-7.aspx" target=_blank mce_href="http://blogs.technet.com/virtualization/archive/2009/05/14/native-vhd-support-in-windows-7.aspx"&gt;Native VHD Support in Windows 7&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://blogs.technet.com/michw/attachment/3270048.ashx" target=_blank mce_href="http://blogs.technet.com/michw/attachment/3270048.ashx"&gt;Native Boot&lt;/A&gt; Scenarios: Advanced deployment – page 29 onwards&lt;/LI&gt;
&lt;LI&gt;Scott Hanselman talks about his lifestyle. &lt;A href="http://www.hanselman.com/blog/StepByStepTurningAWindows7DVDOrISOIntoABootableVHDVirtualMachine.aspx" target=_blank mce_href="http://www.hanselman.com/blog/StepByStepTurningAWindows7DVDOrISOIntoABootableVHDVirtualMachine.aspx"&gt;Here&lt;/A&gt; and &lt;A href="http://www.hanselman.com/blog/LessVirtualMoreMachineWindows7AndTheMagicOfBootToVHD.aspx" target=_blank mce_href="http://www.hanselman.com/blog/LessVirtualMoreMachineWindows7AndTheMagicOfBootToVHD.aspx"&gt;here&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://code.msdn.microsoft.com/wim2vhd" target=_blank mce_href="http://code.msdn.microsoft.com/wim2vhd"&gt;Wim2VHD&lt;/A&gt; – Convert Wim to sysprepped VHD.&lt;/LI&gt;&lt;/OL&gt;
&lt;LI&gt;Utilized Media Center on desktop and Extender on Xbox, with all Media content centralized and managed by WHS on 2 TB (RAID and duplicated, with self-managed full backup of all my VHDs and drives!!!). Virtual WHS maps physical TB drives.&lt;/LI&gt;
&lt;LI&gt;Laptop, Desktop are Windows 7, Home Server is Windows Home Server, and all others are Windows 2008 R2 (VHD boots or virtual machines).&lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;&lt;A href="http://weblogs.asp.net/blogs/sharadkumar/image_6DB5DE9B.png" mce_href="http://weblogs.asp.net/blogs/sharadkumar/image_6DB5DE9B.png"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title=image border=0 alt=image src="http://weblogs.asp.net/blogs/sharadkumar/image_thumb_2DBC4856.png" width=971 height=520 mce_src="http://weblogs.asp.net/blogs/sharadkumar/image_thumb_2DBC4856.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;Planned configuration… (* SP 2010 on Win 7 assumes that hack from Bamboo will be available at the time of public beta, to install on Win 7)&lt;/P&gt;
&lt;P&gt;&lt;A href="http://weblogs.asp.net/blogs/sharadkumar/image_2577FCF2.png" mce_href="http://weblogs.asp.net/blogs/sharadkumar/image_2577FCF2.png"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title=image border=0 alt=image src="http://weblogs.asp.net/blogs/sharadkumar/image_thumb_0599736A.png" width=1024 height=399 mce_src="http://weblogs.asp.net/blogs/sharadkumar/image_thumb_0599736A.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;There is so much of goodness, and also feature completeness I now find with combination of Windows 7, 2008 R2, WHS, and updated Xbox Media networking features (with Win 7)… that Digital Lifestyle and desired dev productivity at home is certainly coming full circle! My content is now much more accessible (thanks to HomeGroup and WHS), and with a comfort that it all is being backed up. I’m still missing SSD on my laptop (or perhaps desktop as well), but RAID 1 is keeping me quite happy and works well for SharePoint.&lt;/P&gt;
&lt;P&gt;What am I critically missing?&lt;/P&gt;
&lt;P&gt;--Sharad&lt;/P&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=7189488" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/sharadkumar/archive/tags/SharePoint/default.aspx">SharePoint</category><category domain="http://weblogs.asp.net/sharadkumar/archive/tags/Xbox/default.aspx">Xbox</category><category domain="http://weblogs.asp.net/sharadkumar/archive/tags/Windows/default.aspx">Windows</category><category domain="http://weblogs.asp.net/sharadkumar/archive/tags/Software+Development/default.aspx">Software Development</category><category domain="http://weblogs.asp.net/sharadkumar/archive/tags/Office+2010/default.aspx">Office 2010</category></item><item><title>SharePoint 2007 – 12 Hive System-File Changes: One Feature to rule them all!</title><link>http://weblogs.asp.net/sharadkumar/archive/2009/06/21/sharepoint-2007-12-hive-system-file-changes-one-feature-to-rule-them-all.aspx</link><pubDate>Mon, 22 Jun 2009 02:31:55 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:7131760</guid><dc:creator>eJugnoo</dc:creator><slash:comments>6</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/sharadkumar/rsscomments.aspx?PostID=7131760</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/sharadkumar/commentapi.aspx?PostID=7131760</wfw:comment><comments>http://weblogs.asp.net/sharadkumar/archive/2009/06/21/sharepoint-2007-12-hive-system-file-changes-one-feature-to-rule-them-all.aspx#comments</comments><description>&lt;p&gt;Making system-file changes in “12 hive” folder of SharePoint is always a hot topic. Microsoft doesn’t recommend that unless you know what you are doing, and also has support clause against it. Despite that, there are numerous KBs at their support site which point to directions of making necessary changes by following steps that leads us to opening a file in “12 hive” and modifying to achieve the desired effect. I think – without much ado – that its important to assess what you intend to do, and when you certainly need to then there should be a manageable way to make changes to system-files that are otherwise part of SharePoint release. In my &lt;a title="SharePoint 2007 – How to enable left navigation, quick launch, for all web-part pages in a farm?" href="http://weblogs.asp.net/sharadkumar/archive/2009/06/19/sharepoint-2007-how-to-enable-left-navigation-quick-launch-for-all-web-part-pages-in-a-farm.aspx" target="_blank"&gt;previous post&lt;/a&gt; I gave an example of a case when one needs to make “12 hive” changes; here are the high-level objectives…&lt;/p&gt;  &lt;h3&gt;Objectives&lt;/h3&gt;  &lt;ol&gt;   &lt;li&gt;A uniform, automated, repeatable, efficient and centrally manageable way for making “12 hive” changes.&lt;/li&gt;    &lt;li&gt;It should take least of coding or none to introduce changes – be it xml modification, aspx/ascx, masterpage, images, css etc.&lt;/li&gt;    &lt;li&gt;It should be possible to roll-back the changes on demand.&lt;/li&gt;    &lt;li&gt;It should be possible for changes to be applied to all servers in the farm, not just local.&lt;/li&gt; &lt;/ol&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;u&gt;Note&lt;/u&gt;: This is a standard caution that your changes to “12 Hive” may be over-written by subsequent Cumulative Updates (CU) and/or Service Packs. Hence we need to plan for this as well.&lt;/p&gt; &lt;/blockquote&gt;  &lt;h3&gt;One SharePoint Feature to rule them all!&lt;/h3&gt;  &lt;p&gt;Since the release of SharePoint 2007, I’ve come across numerous tips &amp;amp; tricks, open-source projects, and blog posts that show how to make desired change and most often employ a code-based approach that runs on Feature Activation to open the required file in “12 Hive”, make your changes – via code - and save the file. Reverse the changes on Deactivation of Feature.&lt;/p&gt;  &lt;p&gt;Now, one must realize that this requires significant coding effort and consistency checks (testing) to make minor changes in – say – some xml file somewhere. For example, a simple case of enabling PDF file icon support in SharePoint means creating a feature to open DocIcon.xml, parse the elements, make an entry for pdf element, and saving the xml. Many many lines of code to be written for mere single element entry. There should be a simpler way to this!&lt;/p&gt;  &lt;p&gt;Another problem is that you have to deal with the issue that where the code runs, it will pick local file only. What about other servers in farm? You have to further write code to make changes on all servers in farm. Than there are propagation concerns to be dealt, should new servers be added to farm later.&lt;/p&gt;  &lt;p&gt;Having said that, I think its better to have one universal and generic mechanism (SP Feature) of deploying your changes. To do that, I create a new VS project using &lt;a title="WSPBuilder (SharePoint WSP tool) - Home" href="http://wspbuilder.codeplex.com/" target="_blank"&gt;WSPBuilder&lt;/a&gt; and create a SP Feature and call it HiveSwap with the idea that we’ll have a mechanism of swapping system-files with ours instead of each time writing code to directly modify/merge required files…&lt;/p&gt;  &lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/sharadkumar/image_7FC619A6.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://weblogs.asp.net/blogs/sharadkumar/image_thumb_6EFE6EF8.png" width="254" height="272" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;So you get the idea – we want to build a generic feature (to rule them all) that becomes central to us for deploying all changes by mechanism of swapping. Deliver desired files (with manual changes already in place) via feature in a solution (.wsp), activate the Farm feature and it will backup system file, replace with its own. When needing to rollback/remove, it will use backup and replace the original file back.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/sharadkumar/image_0C9049F8.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://weblogs.asp.net/blogs/sharadkumar/image_thumb_48F898D5.png" width="697" height="247" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;We need a place to keep all “12 Hive” files we want to deliver to swap system files with. I create another /12 folder inside our Feature folder. This will be a place where I just recreate the folder structure where all I want to make desired changes, copy the original file, make the changes – manually – and deploy the solution. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/sharadkumar/image_0D588A15.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://weblogs.asp.net/blogs/sharadkumar/image_thumb_6AB44B99.png" width="254" height="380" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Before that, we need our Feature receiver to do the job of swapping files both ways on Activation and Deactivation. Here is an example code I’ve quickly put together.    &lt;br /&gt;&lt;strong&gt;Note:&lt;/strong&gt; Consider this as pseudo code, is not production tested and you’d want to test at your end before finalizing it… (can’t share the complete/tested code for NDA)&lt;/p&gt;  &lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/sharadkumar/image_682B19DB.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://weblogs.asp.net/blogs/sharadkumar/image_thumb_6A37F2D7.png" width="889" height="650" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;That’s it. Your feature is ready for single-server farm. For multi-server farm, you can enhance above code to run with elevated privileges, map C$ of each server in farm (which you can get from object model) at runtime, assuming each server’s “12 hive” is same local path. Since service account is local admin on these servers, system file moves isn’t a issue.&lt;/p&gt;  &lt;h3&gt;Conclusion&lt;/h3&gt;  &lt;p&gt;I’d like to hear from readers the pros/cons of above approach, here is my take:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;Advantages&lt;/strong&gt;       &lt;ol&gt;       &lt;li&gt;Modifications are easy to do and simple. &lt;/li&gt;        &lt;li&gt;Leverage support of VS for things like intellisense for xml, aspx (partial), ascx (partial), master pages, css etc. &lt;/li&gt;        &lt;li&gt;Control over deployment/rollback with Feature activation/deactivation. &lt;/li&gt;        &lt;li&gt;Backup of system files. Should the service pack be deployed, simply deactivate the feature to bring “12 hive” to original state, implement MS changes, and reactivate. &lt;/li&gt;        &lt;li&gt;Scalable to any number of files you need to modify/replace. Lines of code has no proportionality to number of such files! &lt;/li&gt;     &lt;/ol&gt;   &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Disadvantages&lt;/strong&gt;       &lt;ol&gt;       &lt;li&gt;All “12 Hive” system-file changes/replacements better be done by a single Feature alone. Else you may end up over-stepping with others, changing same files. If you have single administrative solution for your farm you should be okay to use above. &lt;/li&gt;        &lt;li&gt;If you are using &lt;a title="WSPBuilder (SharePoint WSP tool) - Home" href="http://wspbuilder.codeplex.com/" target="_blank"&gt;WSPBuilder&lt;/a&gt;, beware of using “Copy to 12 hive” command from menu, if feature is already activated in your local Dev farm. It will simply overwrite the backup! Feature deactivation will not rollback to originals as a result. &lt;/li&gt;     &lt;/ol&gt;   &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Hope this SP Feature is productive and of use for most, if not all.&lt;/p&gt;  &lt;p&gt;Thanks for reading.&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;--Sharad&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=7131760" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/sharadkumar/archive/tags/SharePoint/default.aspx">SharePoint</category><category domain="http://weblogs.asp.net/sharadkumar/archive/tags/Visual+Studio/default.aspx">Visual Studio</category><category domain="http://weblogs.asp.net/sharadkumar/archive/tags/Software+Development/default.aspx">Software Development</category></item></channel></rss>