Thursday, September 30, 2010

SharePoint 2010 limits

I love Microsoft. No where can you expect a definitive answer.

The one article will tell you that the acceptable limit for site collections per web application is 500'000 (http://technet.microsoft.com/en-us/library/ff758647.aspx) and the next article in the same series will tell you it is 250'000 (http://technet.microsoft.com/en-us/library/cc262787.aspx)

Best of all, they both use the same wording!

"An example of a supported limit is the number of site collections per Web application. The supported limit is 500,000, which is the largest number of site collections per Web application that met performance benchmarks during testing. "

vs

"An example of a supported limit is the number of site collections per Web application. The supported limit is 250,000, which is the largest number of site collections per Web application that met performance benchmarks during testing."

In the end these limits are based on benchmark testing. I.e. when the performance of the farm starts falling below an acceptable level. It is not saying that the farm is running at top speed with 249999 site collections and then drops off. No, it is a curve. So imagine the performance curve starting high at 100%, dropping to 95% at 100'000, dropping to 90% at 250'000 and dropping to 80% at 500'000. The key question is, what is an acceptable level of performance. Looks like the author either changed his mind from one article to another, or two authors differed. In the end both are right, I guess. Because only you can define for yourself what acceptable performance is.

And don't forget, these benchmarks are tested in isolation. so when you store tens of thousands of 50MB documents in a document library hundreds of times per site and thousands of times per site collection, the 500'000 benchmark will never hold up. 50 would sound more realistic.

How to Pass 70-667

So you wanna become SharePoint certified? At least now, with SharePoint 2010, we have the MCITP SharePoint Administrator and SharePoint Developer accreditations.

70-667 is the first of two exams to achieve your MCITP SharePoint 2010 Administrator certification
http://www.microsoft.com/learning/en/us/exam.aspx?ID=70-667

And although I can't tell you what the questions will be, let me assure you, they are not trick questions.
I'd say about half of the questions are relevant to 2007 and 2010 alike, some are 2010 specific and others are there to catch you out where something has changed from 2007 to 2010.

The best way of making sure you pass any Microsoft exam on the first go is to use practice tests. Measureup and selftest provide some really good ones for all things techie. Sadly, none of them have gotten round to publishing SharePoint 2010 mock exams yet.

The best way of making sure you fully understand the material is sitting a Microsoft course:  10174 Configuring and Administering Microsoft SharePoint Server 2010
This course contains all the stuff you need to know to feel confident about installing, configuring and running a SharePoint farm. Although officially Microsoft Courses and the exams are not directly related, there are strong overlaps of the material being taught and the questions being asked.

And here is the best news of all! I'm down to teach 10174 at Auldhouse in Wellington the week of 18/10/10.
https://www.auldhouse.co.nz/content/5f8ac4c7-9c13-4a6f-8d51-30762e93882b.html?loc=Wellington
So sign up now to get one step closer to your SharePoint 2010 certificate. I'll even dish out some tips during the course on how to tackle certain types of questions in the exam.

SharePoint 2010 to CAS or not to CAS

Came across a statement by MS which got me thinking

"Untrusted solutions – Deploying custom code in bin folders can cause slow server performance. Every time a page containing untrusted code is requested, SharePoint Server 2010 must perform security checks before the page can be loaded.Unless there is a specific reason to deploy untrusted code, you should install custom assemblies in the GAC to avoid unnecessary security checking."

http://technet.microsoft.com/en-us/library/ff758647.aspx

So now GAC is good and CAS is bad?

Ok folks, let's all stop adhering to a least priviledge concept and start giving our code full trust every time we deploy something. Because if we don't, we'll slow down SharePoint.

I don't think so!

Although I understand the implications of having to check security of the code when Code Access Security Policies are involved, is the overhead of checking the policy when the assembly is loaded really that high? So far I have found no evidence of this causing a noticeable performance degradation other than in theory.

But hey, we have Sandboxed solutions now! So no need for CAS?
Although Sandboxed solutions take away a lot of headache from Server Administrators that previously had to chase down developers to find out why their server just crashed, they are not the golden bullet to all security issues. The question still remains, how much do you trust the code to do what it is supposed to do and not expose loopholes for others to exploit? Especially when installing third party features I personally would think twice about putting the dlls into the GAC of my production machines.

Sadly enough, there are loads of scenarios where you have no other choice but to run the code in the GAC and thus I am very grateful for the Sandbox, where I can run the code in a controlled environment before letting it loose on the whole farm.

For those of you who actually want to know how CAS works in practice, check out this little gem. It is based on .NET 1.1, but is still relevant today.
http://msdn.microsoft.com/en-us/library/ff648663.aspx

oh, and in .NET 4.0 some things have changed in regards to CAS, especially when calling GAC assemblies from partially trusted dlls. check it out here:
http://msdn.microsoft.com/en-us/library/dd984947.aspx