Wednesday, 4 May 2011

SharePoint 2010 Version Numbers with Cumulative Update

Please find the SharePoint 2010 version numbers table listed at below.


SP2010
(with download links)
Version
KB articles
public Beta (rel. 11/2009)
14.0.4536.1000
n/a
RTM (04/2010)
14.0.4763.1000
n/a
14.0.5114.5003
14.0.5123.5000
October CU 10
14.0.5128.5000
December. CU 10
14.0.5130.5002
14.0.5136.5002
14.0.5138.5001
The SharePoint 2010 SP1 is around the corner, Microsoft should release it sometime in June/July.

Thursday, 28 April 2011

SharePoint 2010 - Form Based Authentication with Claims Authentication Part 1/2

Here the summary of how-to configure form based authentication in SharePoint 2010.
  1. Install and configure membership provider, e.g sqlmembershipprovider.
  2. Create a new web application with claim authentication, alternatively update existing web application from basic to claims based.
  3. Configure the SharePoint IIS instance to consume membership provider.
  • (optional) create a custom login page (I will list it in part 2)

I am strongly suggest you try all these steps in test or dev environment first to avoid any unhappy result. :)

Install and configure membership provide
You can choose any membership provider for FBA and for simplicity I had picked SQL membership provider for my demonstration.

First of all, you need a SQL database and it can be Express or full version.

Run the aspnet_regsql.exe execute file from this location.

C:\Windows\Microsoft.NET\Framework64\v2.0.50727 (please note the drive may be varies)



Then select



Point the application to right database and any necessary username and password.



Click finish to complete the configuration



Create or update the Web Application

To create a new web application, go to Central Admin -> Application Management -> Web Application -> Create New Web Application.

Select Claims Based Authentication

(Note: You need the Claims Based Authentication for FBA)




Fill the FBA details  and you need these information in later stage, feel free to change it but make sure you write it down.




And fill the rest details of web application and then select "OK".


For update existing web application to Claims based, run this PowerShell script.

$webapp = Get-SPWebApplication "http://yourwebapplicationurl"
$webapp.UseClaimsAuthentication = "True"
$webapp.Update()


Configure SharePoint IIS instance to use the membership provider

Once above two steps are completed then we can start to configure SP instance in IIS to talk to our SQL memberhsip provider.

Go to Administrative Tools -> Internet Information Services (IIS) Manager.

Select your web instance from tree menu under Site



The first step you need to setup a connection strings first, select Connection String then Add.

Your connection string should be look like this


The server name is the server which we were installed membership provider database to, the database has to same as value put down in previous step.

 GO back to your IIS website root and select Providers.

Select .Net Roles from dropdown and click on Add.



Remember we put down the values in SharePoint Central Adminstration for Role manager in previous step? Now we have to enter it again in Name field and details as below.

Type: SQLRolePRovider
Name: FBARole
ConnectionStringName: FBACon
ApplicationName: /



Once finished then select .Net Users from feature dropdown and select Add.

Fill these values in new window opened.
Type: SQLMembershipProvider
Name: FBA
ConnectionStringName: FBACon
ApplicationName: /



Same steps have to apply on Central Adminstration v4  website and SecurityTokenServiceApplication web service.



Once all set, go to website and you should expect to see screenshot below if all went smoothly.



Select Windows to auto logon if you current user has permission.

You may ask "what if I don't want the login selection box appear when user visit SharePoint site?".

Then you can extend your SharePoint site and have Windows (Site A) and Form authentication (Site B) side-by-side, for those need access to Windows authentication they can access SharePoint site A and the rest for Site B.

Wednesday, 23 March 2011

SharePoint 2010 - Improve the Public Website Performance

This is important for those who working on public SharePoint site the performance impact of default templates, such as default.master and nightdaddy.master masterpage page file.

Out of the box the SharePoint inject a lot of javascript files and controls for various purpose, like page UI functionalities or backward compatible. E.g corev4.js and SharePointWebControls:UIVerisonedContent.

These additional JS files or components were generated huge amount of overhead when loading a page, see the comparison at below.



That is about 4 times smaller (22.36KB and 80.25KB) than out-of-the-box template, some more the customized template (removed edit scripts and control) was consisted more images and content query webpart compare to standard but empty page.

So my recommendation for public website when using the SharePoint.
  • Remove the SharePoint script files from masterpage if you not need them, such as <SharePoint:ScriptLink language="javascript" name="core.js" defer="true" runat="server"/>. Only inject those scripts when in edit mode by using PublishingWebControls:EditModePanel.
  • Remove SharePoint editing stylesheets, such as speditingstyle.css, edit-mode-21.css, webtagging.css, wpeditmodev4.css and forms.css. Inject them by using the Editmodepanel.
  • Remove the controls from masterpage or page layouts, not to hide or disable them. As system still generate but hide them by style.

Monday, 7 February 2011

Migrate SharePoint contents to another SharePoint Environment

Why we need deploy contents to another SharePoint site when it is accessible to everyone over the web? This is because in some cases the SharePoint environment has been setup in multiple location or the contents have to be kept in multiple isolated stages. Example:
  • Multiple farms configuration with isolated network or limited network bandwidth within farms. Speed up the response time by deploy contents locally.
  • Staging/production environment, staging for internal and production for public (Internet accessible)
  • Fail-over environment for SharePoint.
  • And etc.

There are number of ways which allow you to deploy contents from SharePoint to another SharePoint environment, but today I just want to show you the approaches I had used most (free) and the advantage and disadvantage.

Here the approach for content deployment on SharePoint.


Content deployment is a feature of SharePoint Server which allow you to deploy content from source site collections to another site collection. 

Advantage
  • Free and system aware feature.
  • Support schedule deployment.
  • Support massive data deployment, but it depend on network connectivity.

Disadvantage
  • No library or item level deployment.
  • Very specific when setting up the deployment destination, e.g. the destination site has to be blank or empty site for initial deployment.


The third party migration tool which supports site, web, library and item deployment.

Advantage
  • Drag and drop UI for content migration, support site, web, library and item deployment.
  • Free but with limitation. (see disadvantage)
  • Crossed platform supported, WSS3.0, SP2007 and SP2010.
Disadvantage
  • 30GB limitation for deployment.
  • The service application has to be installed on source and destination server.
  • No scheduler.

Wednesday, 5 January 2011

Recommendation of Hardware Specification for SharePoint/Fast Search Development

A lot of people asking me about what sort of hardware specification for my SharePoint environment when I am doing testing or development, or what sort of hardware they need when develop SharePoint project in laptop and etc.



In past, I had done number of projects which involved of multi-servers farm configuration, such as Fast Search for SharePoint, SharePoint staging to production deployment or multiple SharePoint web front-end server. Therefore I needs a decent machine at least can run multiple VMs and the same time without too much compromised on portability and performance.


I had done my research on Internet and found out there are not many laptops meet my criteria (year 2010) but with big bucks. Hereafter, I bought a Sony F series laptop with external Solid State (SSD) hard-disk and end result is brilliant!!! I was running three VMs at the same time without any lagging or unresponsive click, the environment consisted of Windows Server 2008R2, Active Directory, SQL 2008R2, SharePoint 2010 Ent, Fast Search for SharePoint and Visual Studio 2010.
Here the details those servers running on laptop:
Server 1 – External SSD
Windows Server 2008R2
Active Directory
384 Memory

Server 2 – External SSD
Windows Server 2008R2
MS SQL 2008R2
Fast Search for SharePoint
3GB memory

Server 3 – Internal HD
Windows Server 2008R2
SharePoint 2010 Enterprise
Visual Studio 2010
3GB memory

As you can see on above configuration it is resource intensive environment on laptop, but everything is running smoothly although I only allocated 3GB memory for Fast and SharePoint and 384MB for AD.
And let me explain why server will running slow when running multiple servers on laptop or desktop,
  1. High CPU usage with long queuing time, system is received a lot of request from users/other servers but cannot complete them on time.
  2. Server’s memory is running low and the system is swapping page files on hard disk, at the same time other applications are access files on hard disk. It causing hard disk has very high activity and take long time read/write file.
Nowadays, most desktop/laptop equipped with very decent cpu, such as Intel i3, i5, i7 or AMD qual/six cores therefore issue number one should not causing too much problem. But issue number two which low on memory for most laptop or desktop, laptop beyond 8GB will be expensive and desktop’s memory is cheaper but not so portable compare to desktop if you development to be mobile. Even you have plenty of memory but running all server on same mechanical hard disk also will causing some I/O bottleneck due to low Input/Output Per Second (IOPS).
The issue can be addressed easily with separate SSD hard disk, this also cheaper compare to get super-duper machine. This is because the SSD gives better performance compare to normal hard disk, like transfer speed and random access time. The OCz Vertex 2 SSD featured with Read=285MB, write=275MB and 50,000 IOPS. The servers allocated with low memory but if it installed on SSD it will not affected that much even high on swapping page files and disk activities. The SSD works similar to memory as low on access time (less waiting time) and high transfer rate. In order to fully utilise performance of the SSD hard disk the ESATA, FireWire or USB3.0 is recommended, anything slower than those will not see significant improvement over SSD.
I had attached my laptop specification for your reference, all these cost less than GBP 1,700 (year 2010)

The laptop specification:
Sony F-Series with 16.4 inches screen.
Windows 7 64 bits
Vmware Workstation
Intel i7 CPU 740 with Qual Cores
8GB of memory
500GB internal hard disk with 7200rpm
Geforce GT 330M 1024 MB graphic card
ESATA OCZ 2.5 Vertex 2 SSD hard disk

Thursday, 30 December 2010

Jmeter Stress/Load Testing for SharePoint 2007 and 2010

What I want to share today is the free Java tool which can use for functional or non-functional testing on SharePoint application. The Jmeter is very powerful Java  load test tool for web application or SharePoint, it is free and easy to use. Although it is Java based but it work perfectly fine on ASP .Net application with JavaScript, in this case the SharePoint 2007 or 2010.
Here the features list from offcial website.
  • Can load and performance test many different server types:
    • Web - HTTP, HTTPS
    • SOAP
    • Database via JDBC
    • LDAP
    • JMS
    • Mail - POP3(S) and IMAP(S)
  • Complete portability and 100% Java purity.
  • Full multithreading framework allows concurrent sampling by many threads and simultaneous sampling of different functions by seperate thread groups.
  • Careful GUI design allows faster operation and more precise timings.
  • Caching and offline analysis/replaying of test results.
  • Highly Extensible:
    • Pluggable Samplers allow unlimited testing capabilities.
    • Several load statistics may be choosen with pluggable timers.
    • Data analysis and visualization plugins allow great extendibility as well as personalization.
    • Functions can be used to provide dynamic input to a test or provide data manipulation.
    • Scriptable Samplers (BeanShell is fully supported; and there is a sampler which supports BSF-compatible languages)
So, what you can do with SharePoint using JMeter?
  • Stress test SharePoint farm or standalone topology.
  • Record and analysis the response time  of SharePoint tasks, such as file upload, create a new item, read page, search and etc.
  • Test the SharePoint's web services.
Some of you may say creating those scripts are very hassle and may take very long time to do so, but luckily the Jmeter does support http traffic  recording which can track the activities on Internet browser and replay them in future. Here the how-do-I recording file upload activities on SharePoint 2007.
  1. Record the browser traffic events  in Jmeter by registering  a HTTP proxy server and recording controller in WorkBench, events captured can be re-used for repetitive testing.
  1. Click “Start” on HTTP Proxy server and then go back to browser to upload or create a new list item on SharePoint, if Jmeter does not recording the events then change the browser to use 127.0.0.1 in connection proxy.
You might have this certificate error, but that is normal due to Jmeter issued a temporary certificate when using a proxy.
  1. Once completed the recording your Jmeter should be look like this.
Delete unwanted items from list and copy/move them to your test plan.
  1. In your test plan, add appropriate reports for analysis, like View Result Tree, Summary report and etc.
  1. Before run any recorded test, make sure you have Security validation check switch off in Web Application -> General Settings under Central Administration. Otherwise it will caused test failed to run.
SP2007
SP 2010

Tuesday, 28 December 2010

Enable the Item Count for SharePoint 2010 Search Refiner

In SharePoint 2010 you can modify the search refiner's xml text to show count on each category, the links listed at below which show you step-by-step for configure the refiner webpart.


But one thing have to bear in mind the SharePoint 2010 item count does not same as Fast Search for SharePoint's deep refiner, the SharePoint item count will shown only 50 items by default and hard limit to 500 items. What this mean is the item count will not go beyond  limit even if search results have more than 500, the system only update counting when user select next page or next result set.

As told by relevant personnel who work in Microsoft, it is because of SharePoint search index not same as Fast Search advance index algorithm.