Friday, September 30, 2011

SharePoint 2010 Version Numbers, KB Articles and Update Links

Build Release Component Download
14.0.4763.1000 RTM All components Download
14.0.4762.1000 RTM Farm Build Version
14.0.5114.5003 June 2010 CU SharePoint Foundation 2010 KB2028568
14.0.5114.5003 June 2010 CU Microsoft Shared Components KB2281364
14.0.5114.5003 June 2010 CU Microsoft SharePoint Portal KB983497
14.0.5114.5003 June 2010 CU Microsoft User Profiles
14.0.5114.5003 June 2010 CU Microsoft Search Server 2010 Core
14.0.5114.5003 June 2010 CU Web Analytics WFE Components KB2204024
14.0.5123.5000 August 2010 CU SharePoint Foundation​ 2010 KB2352346
14.0.5123.5000 August 2010 CU SharePoint Server 2010 KB2352342
14.0.5128.5000​ October 2010 CU​ SharePoint Foundation​ 2010 KB2394323
14.0.5128.5000​ October 2010 CU​ SharePoint Server 2010​ KB2394320
14.0.5130.5002​ ​December 2010 CU SharePoint Foundation 2010​ KB2459125
14.0.5130.5002​​ December 2010 CU​ SharePoint Server 2010​ KB2459257
14.0.5136.5002​ February 2011 CU​ SharePoint Foundation 2010​ KB2475880​
14.0.5136.5002​ February 2011 CU​ SharePoint Server 2010​ KB2475878
14.0.5138.5000 ​April 2011 CU ​SharePoint Foundation 2010 KB2512804​
14.0.5138.5000 ​April 2011 CU SharePoint Server 2010​ KB2512800
14.0.5138.5000 ​April 2011 CU ​Project Server 2010 KB2512801
​14.0.6029.1000 ​Service Pack 1 ​SharePoint Server 2010​ KB2460045
​14.0.6029.1000 ​Service Pack 1 ​Office Web Apps KB2460073
​​14.0.6029.1000 ​Service Pack 1 ​Project Server 2010 KB2460047
​14.0.6029.1000 ​Service Pack 1 ​SharePoint Foundation 2010 KB2460058
​14.0.6105.5000 ​June 2011 CU ​​SharePoint Server 2010​ KB2536599
​14.0.6105.5000 ​June 2011 CU ​SharePoint Foundation 2010 KB2536601
​14.0.6105.5000 ​June 2011 CU ​Project Server 2010 KB2536590
​14.0.6106.5002 ​June 2011 CU Rev ​​SharePoint Server 2010​ KB2536599
​​14.0.6106.5002 ​June 2011 CU Rev ​SharePoint Foundation 2010 KB2536601
​​14.0.6106.5002 ​June 2011 CU Rev ​Project Server 2010 KB2536590

Wednesday, August 10, 2011

Getting SharePoint Feature IDs (the easy way)…

 

So I needed to grab the id of a feature so that I could programmatically activate it during a site / web provision process.  Google gives me a couple of lists with the standard features and ids.  It also tells me I can do a file contents search against the features directory once I’ve obtained the resource key from the global resources file (eek).

I wondered that, if in like rendering an OOB new/edit/display form, the SharePoint Developers at MS put the info I needed hidden in HTML?

Sure enough – the corresponding feature id is there as the ‘id’ of the div surrounding the button (input) element:

image

(Obviously, this only works for features that aren't hidden)

Thursday, August 4, 2011

Programmatically Enumerating Databases in SharePoint 2010

See below -

using (SPSite site = new SPSite(url))

{

    using (SPWeb web = site.OpenWeb())

    {

        SPFarm f = site.WebApplication.Farm;

        foreach (SPDatabaseService s in f.Services.OfType<SPDatabaseService>())

        {

            Console.WriteLine(string.Format("Found Database service {0} of type {1}",

                s.Name, s.GetType().Name));

            foreach (SPDatabaseServiceInstance spdsi in s.Instances)

            {

                Console.WriteLine(string.Format("|-Found Database Service Instance {0} ({1})",

                    spdsi.DisplayName, spdsi.Name));

                foreach (SPDatabase spdb in spdsi.Databases)

                {

                    Console.WriteLine(

                        string.Format("  |-DB: {0}\r\n    |-TYPE: {1}\r\n    |-HOST: {2} ",

                        spdb.Name.Length > 70 ? spdb.Name.Substring(0, 65) + "..." : spdb.Name,

                        spdb.GetType().Name, spdb.Server.Name)

                        );

                }

            }

        }

    }

}

Results look something like:

image

Breadcrumbs in SharePoint 2010

(That don’t require a click)

 

One of the biggest surprises I came across in moving to 2010 was the lack of breadcrumbs?!

I came across a few articles that explained/showed how you could enable v3 based controls to show – but these didn’t work on all pages.

Anyway, without spending hours of time testing – try this:

  1. Add reference to jquery (Master Page Edit, Control Delegate or inline content editor web part)
  2. Add the following Javascript (again – via a master page edit, control delegate or inline content editor web part)


$(document).ready(function () {
    $('table.s4-titletable > tbody > tr').append('<td id="crum"></td>');
    $('td#crum').html($('.s4-breadcrumb').html());
    $('td#crum li > span > span > img').first().css('top', '');
    $('td#crum span.s4-breadcrumbCurrentNode').css('font-weight', 'bold');
    $('td#crum span.s4-breadcrumbCurrentNode').css('color', 'gray');
    $('td#crum').css('white-space', 'nowrap');
    $('td#crum li').css('padding-right', '2px');
});

 

You should get a result similar to below:

(Yes, they are clickable / functional and completely dynamic)

image

Wednesday, July 27, 2011

Workflow ?

In an ideal world, workflows would not be required. Any business/system transaction could be executed immediately as the mechanism performing the transaction would have immediate/unlimited access to the data produced by sub systems, components and users it requires to perform said transaction.

In a realistic world, this isn't the case and we need a mechanism to perform a transaction over a period of time that can withstand server and/or system restarts. These time delays are generally due to the fact users or systems aren't always immediately available to provide the information required to the mechanism to complete the transaction. To overcome this 'workflows' provide just that - a tool to facilitate transaction state during long running transactions that can withstand server and system reboots.

Workflow should be used to maintain the state of this transaction where the business/system transaction is awaiting data from a sub system/user and no where else.
The ability of the workflow to provide time based execution is an unfortunate and misused side effect. Keep it real and use the right tool for the job.



Chris Rumel