Tools of a SharePoint consultant

Posted on 6/22/2010 @ 10:45 AM in #SharePoint by | Feedback | 7475 views

Also see, Tools of a SharePoint Consultant - the 2010 edition.

Here is a quick post sharing a few tips on what I have learnt out of painful experience in forming the ideal sharepoint development environment for a consultant.

  1. Definitely Virtualize: Unless you are a masochist, you will end up virtualizing. Even within Virtualizing there are plenty of choices. I personally like to use VMWare Workstation 6.0 which I feel is a lot better than Virtual Server or Virtual PC. Here is a convincing screenshot -

     

  2. A Powerful Machine: As a consultant, you have to travel quite a bit. Even if you don't travel, I have found that the convenience, and portability of laptops trumps the added power of a desktop. I do have a desktop at home with huge displays and full size keyboard, mouse, audio system whatever - but - my main workhorse machine, is a laptop. My laptop is a Dell, 17" (1920X1200), T7500 CPU, Santa Rosa, 160G 7200RPM HDD, 3G RAM, High end display card machine. The only place it sucks is in an airplane seat - other than that it totally rocks. Later down the road I will put in a second SSD HDD, so I can virtualize machines on the SSD HDD. You would note that I have 3Gs of RAM, not 4. 4Gs of RAM IMO is waste of $. The extra 300K that you get (Laptops cannot address full 4Gs), is not worth the additional $400.
  3. Operating System: I use Windows Vista 32 bit. Why 32 bit? Because compatibility is important to me, and 64 bit doesn't buy me much as of today. Also, my host OS is purely a business OS, I use it for MS Word, MS Excel, Project, Outlook etc. VMWare Workstation 6.0 runs very well on Vista, so all my real work gets virtualized.
  4. The Virtual Machine: 99% of whatever you wish to do with MOSS2007 can be done on a single machine. No domain controller, No AD. Very rarely do you need to scale beyond multiple machines, and truthfully, running multiple VMs is a dog. My main workhorse sharepoint machine runs the following:
    1. Win2k3
    2. SQL Server Dev edition (not express)
    3. IIS/ASP.NET
    4. VS2005 (though I do have another one snapshotted on Orcas)
    5. Pop3 Server/SMTP ---> No need for full fledged exchange.
    6. MOSS 2007 complete install.
    7. Use Local accounts instead of AD Accounts.
  5. Other Virtual Machines: Rarely, but not never, do you need a domain. For this purpose, I use two additional virtual setups.
    1. The first setup is a PDC with MOSS installed on it. This has significant limitations especially around search. But if I want to write AD Aware code, say in relationship with profiles etc, I can still get by with a single VM running.
    2. The second setup consists of two machines - one is a PDC with POP3/SMTP and SQL Server, and a MOSS WFE. Very very rarely do I ever need to boot into this. If ever I have a usecase that needs this specific configuration (example, testing BDC with impersonation over multiple machines - rare case), I wait till I am around my home machine or in office so I can scale multiple VMs on multiple machines. Clearly not my first choice.
      1. I have toyed with the idea of getting  UMPC and run that as the PDC. Haven't taken that leap of faith yet. Frankly this is not such a huge issue most of the time. The problem with that would be the need to carry a network hub, cables, or connect on Wifi and accidentally pair with an Airbus A380 in the process.
  6. When developing as a team: Use a server based virtualization product such as ESX Server, and leverage domains/seperate sql server/domain seperation etc. Developing as a team is a whole another post frankly.
  7. Sharepoint designer: .. is a pig at times. So I frequently find myself running SPD on the host OS, not on the guest OS.

Sound off but keep it civil:

Older comments..


On 7/29/2007 10:26:05 PM Phil said ..
pretty cool article, what is a pdc?


On 7/29/2007 10:42:30 PM Sahil Malik said ..
PDC = Primary Domain Controller!


On 7/30/2007 9:55:00 AM Geoff Van Brunt said ..
"(Laptops cannot address full 4Gs)"

Are you sure about that? This is usually limited by the OS being 64bit as most modern processors support 64bit. Are intels laptop processors 32 bit only? I hope not cause I was planning to get one and use a 64bit OS with lots of ram to support multiple VMs...


On 7/30/2007 11:10:35 AM Nicolas said ..
Cool post!


I was wondering, have you tested VMWare 6 on linux, an run from there the vms?

Other thing: do you use the VS2005 tools for WSS?


On 7/30/2007 12:32:17 PM Sahil Malik said ..
Geoff, AFAIK even 64 bit OS's cannot address 4Gs. Can anyone confirm otherwise?


On 7/30/2007 12:33:18 PM Sahil Malik said ..
Nicolas -

No I haven't tested VMWare6 on Linux. I have enough that I haven't learnt on windows that I cannot spread out to linux just yet :).

Oh yes, I use VSeWSS all the time. I don't like it for Site Definitions though.

Sahil


On 7/30/2007 1:10:10 PM Rob Garrett said ..
"I use Windows Vista 32 bit. Why 32 bit? Because compatibility is important to me, and 64 bit doesn't buy me much as of today."

What are you running on your box that isn't 64-bit compatible or doesn't operate well on WOW?

I found that my 32bit apps run better on my 64 bit machine, and virtualization under 64 bit is day and night compared with 32 bit.

My only complaint withy 64 bit is IE7 - most of the plugins don't work - like Adobe Flash for instance, but then IE7 - 32bit works fine. :)

Oh well, guess it's personal preference at the end of the day. Nice machine though :)


On 7/30/2007 2:22:27 PM Peter {faa780ce-0f0a-4c28-81d2-3667b71287fd} said ..
Re: 4GB of RAM, Sahil, we all agree that in July 2007, no one is running more than 4GB of RAM on a laptop anyway. In THEORY, at SOME POINT IN THE FUTURE, we can run gobs of GB of RAM on laptops, and thus we can justify 64-bit host and guest OS's.

But for now, you're right--3GB of RAM is fine on a laptop.

Incidentally, how much RAM do you allocate to your VM/"guest OS"? I grant 1.5GB of RAM to my guest OS, and the only drawback is that it takes a while to "save state" whenever I close the VM. What do you run?

The other thing I'd like to ask is: what other tools do you run? Are there any tiny third-party tools you install? I have the U2U CAML tools in mind--any others you recommend?


On 7/30/2007 5:27:30 PM Sahil Malik said ..
Rob -

I am not booting a virtual machine to watch family guy on youtube when I go potty!


32 bit is worth it IMO. Seriously dude, how do you get through life without youtube :)

SM


On 7/30/2007 5:28:27 PM Sahil Malik said ..
Peter - I do 2048. Yes the save state times are ridiculous.

Hmm .. other tools .. !! Nothing in specific really, it's on an demand basis I guess.

SM


On 7/30/2007 10:19:12 PM Nicolas said ..
Hi Peter.

I install The application pool recycler http://www.harbar.net/articles/APM.aspx

I read about this tool some time ago, and it really helps when deploying.


It's a lot faster than iisreset all the time, and it warms up the VM when starting.


On 7/31/2007 2:57:52 AM Sahil Malik said ..
Nicolas - what does "warm up the VM" mean? :)


On 7/31/2007 7:05:27 PM Nicolas said ..
It makes URL requests to your sites, so it reduces time after you boot your VM or recycle its application pool. You can configure what sites you want it to visit, and when you recycle an application pool, those get visited, so the processes are started, and when you navigate them its faster.


On 7/31/2007 7:27:24 PM Sahil Malik said ..
Wow neat. I could definitely find that useful.


On 8/2/2007 10:34:51 AM Jim Holmes said ..
Are you using any automation tools for deployment, activation, and testing?

I've wrapped stsadm feature/solution package tasks in MSBuild tasks, and have used WatirRecorder++ to make a few Watir scripts for things like deleting and re-binding workflows to lists. I've also done a very few Watir scripts for testing of workflows, but haven't gone far down that route.

I'd also be interested in hearing if you're using any PowerShell commandlets for anything in MOSS.


On 8/2/2007 1:21:00 PM Sahil Malik said ..
Jim - The answer is "no" and "no" :).


On 8/3/2007 11:32:04 AM Carlos F P Rocha said ..
Sahil,

I have never heard about that laptop memory limitation before and got very interested in it. Could you point me to any place where I can learn more about that limitations reason?

Yes, I am a 32-bit OS can handle tops 4GB, but why cant a laptop handle that too? Please, point me to your source.


On 8/3/2007 1:36:25 PM Sahil Malik said ..
Carlos,

I think it's got something to do with the chipset being used on laptops today.


I haven't seen or heard of a laptop that can handle 4 gigs, but seriously they need to make 1.

Sahil


On 8/20/2007 10:21:59 PM Aaron Weiker said ..
So when dealing with 4GB of memory on a laptop you have a few choices.

a) Don't do it and save yourself some money, stress, and dissapointment.


b) Run a 64bit OS and have the chipset re-route the memory above the memory hole that is used for the PCI devices.

Obviously running a 64 bit OS is only worthwhile if you have a hardware vendor that supports it. If you don't there is way too much pain. Additionally the motherboard needs to actually support remapping the memory and not all of them do.


On 8/21/2007 9:34:29 AM Sahil Malik said ..
Hey Aaron,

I hear the next Dell M90 will have 8 gigs of RAM.

Sahil


On 8/22/2007 7:16:27 AM Neville said ..
Hi there,

Some of us are not Uber rich, when you create a virtual PC do you not have to pay for a licence for windows server, MOSS, SQL 2005 etc. for each one that you create?


On 8/22/2007 7:35:26 AM Sahil Malik said ..
Neville - I am not a licensing expert, but it is my understanding that as long as you install on a single machine (which in snapshotting you do), and as long as it isn't a production machine, you can use your MSDN subscription towards this. Is that incorrect?


On 9/29/2008 7:50:35 AM Sathish said ..
I'm not a masochist but why the hell should i virtualize? Why can i just not install MOSS and everything else on my windows server 2003? I'm a sharepoint newbie but never had to virtualize in my years of programming .NET. Can someone throw some light on this?


On 6/22/2010 10:24:25 AM Kim Ryan said ..
Sahil,

Can you please post an update to this article? What are you using now for SharePoint 2010?

-Kim


On 6/22/2010 10:32:28 AM Sahil Malik said ..
Kim - ok on my TODO to update! w00t!


On 7/26/2010 12:38:12 PM Susan said ..
Sahil -

I second Kim's suggestion. An update would be nice.

Susan


Converge Point


http://www.convergepoint.com


On 7/26/2010 4:51:33 PM Sahil Malik said ..