2010 Beta & Windows 7 N

Some may know that Windows 7 comes with a variant marked 'N'  (media player unbundled). Aside from the unbundling, as far as I know, the oporating system is the same in every other way

BUT.....

SharePoint 2010 does not install on Windows 7 <version> N. So even if you install Windows 7 Enterprise N (as I did today) you cannot install SharePoint 2010. As far as I know, there are no work arounds & the issue will be addressed in the RTM

Until then, if you want to run SharePoint 2010, make sure that not only do you install the appropriate version of Windows 7 (e.g. Professional, Ultimate, Enterprise) but do not install the N variant

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Remember that the XSLT select is case sensitive...

I was customising a people search result web part this week and couldn't figure out why the mobile phone field was not rendering in the results. I could see it was in the AD properties, was making it through user profile import and then helped it through to managed metadata in the search results, I even checked the raw XML for the search results which showed it there as well. So I was down to checking my XSLT, I had camel cased the name of the field in my select code, as is my habit with coding to make it easily readable, but the XSLT was looking to match the case returned by the search results which was all in lower case.

A quick crrection and refresh and they all appeared as they should. Another little puzzle solved...

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Intranet Design Annual 2009

I've started to read the Intranet Design Annual 2009. While a very weighty PDF at nearly 500 pages, it is well worth the read to anyone considering revamping or creating an intranet.

Although these are large corporate intranets, the report includes a lot of comments on areas such as:

  • Company and industry news
  • Integrating internal and external information sources
  • Editorial control of the intranet homepage
  • Keeping the intranet up-to-date
  • CEO blogging
  • Employee and department weblogs
  • Onboarding of new employees
  • Consistent navigation
  • Multilingual intranets; supporting international employees
  • Multimedia and video on intranets
  • Data visualization
  • Web 2.0 features on intranets
  • Community
  • Polls
  • Collaboration tools and discussion boards
  • Internal wikis
  • Employee self service
  • Search
  • Governance
  • Development process for intranet redesigns
  • Web analytics for intranets
  • Staffing of intranet teams; where they report in the organization
  • Updating and maintaining standards and guidelines for intranet design
  • Intranet branding
  • Promoting new intranet features
  • Staff directory and employee profile pages
  • Corporate calendars
  • Personalization
  • Customization
  • Alerts
  • Working with external design agencies
  • Intranet budgets and staffing

Of probably most value to many people are the screen shots which can stimulate ideas, not just on the overall aesthetics, but of content - an item that is porobably still the weakest area in SME Intranets.

The report is £169 but given the detail and stimulus, good value

Currently rated 5.0 by 1 people

  • Currently 5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

SharePoint Best Practices Conference UK - Day 3

The final day of the conference - today I focussed on the IT PRO track – all 5 sessions. So that’s Steve Smith, Spencer Harbar, Daniel Wessels, Spencer again, Bob Fox and Brian Wilson, covering Intranets, Extranets, internet sites, search, Kerberos and Virtualising SharePoint.

Steve Smith started the day with a redefinition of WWW, as the wild wild west. It’s an open world out there and as soon as you attach your servers to the internet they’re insecure, you really don’t know who will be accessing your content or trying to do things they shouldn’t.  You have layers of security at the edge, (that may be ISA), IIS and then again at the SharePoint level, with your content  in the database and that’s what you’re delivering or protecting. I suppose it’s obvious really, but the more complex you make things in these layers, the less likely they are to be secure because of mistakes. 

They continued with best practices for your Web applications and SSL scenarios – where Spencer Harbar put in the one liner – “host headers are evil” – but it transpires  that this is only in the context of SSL, where life really is a lot easier if you use fixed IPs and stick to standard port numbers.

Daniel Wessels took us through Search Infrastructure, Architecture, Setup and Management. It seems there are varying rules of thumb for the size of your search DB, depending on which whitepaper or documentation you read, going from 2x to 6x the size of your index, but you won’t really know what that figure will be for you until you run some tests on the mix of data your farm is indexing. Looking at the servers in the farm, the maximum ratios for Query, index and DB server are 7:1:1, above that the performance actually tails off... time for an extra index server and thus another SSP to scale the capacity and performance.

For your default search content access account this really should not be a farm administrator, in this scenario both minor versions and unpublished documents will be indexed and potentially visible to end users. So although if they have not got permissions to see these versions of the documents they won’t be able to see them when clicking on the search result link, they will see the words around the keyword matched in the search results page. Another interesting point was around the content access account used for external websites, here you need to be using an account that has no permissions on your network, because if challenged the indexer will give up the account’s username and password to the external site and you really don’t want that being used to access your network do you?

During the lunch session Andrew Woodward and Alex Pearce gave us a view on some of what is happening in the education space in the UK with SharePoint and showed us a great looking interface for a VLE built with Silverlight sitting on top of the SharePoint Learning Kit for a UK Learning Gateway.

After lunch, Spencer Harbar and Bob Fox took us through setting up Shared Services and Excel Calculation Services to use Kerberos and it went well, apart from the demo on shared services causing some problems, but hey nothing like a live demo to go wrong... but there was good discussion and questions while Spence battled with IIS & SP to get it to work.

Some key pointers from the session – case matters when you are setting your SPNs, and all the SSPs in your farm must be either all NTM or all Kerberos, you can’t mix them.

Brian Wilson finished off the speaker sessions for the day covering virtualisation of SharePoint in a production farm. He addressed the issues of resource usage and how you need to look at this from both a physical and virtual perspective. A key point is that restoring snapshots of a server in the farm is not supported – you are likely to get all sorts of mess and probably database corruption as timer jobs are likely to go out of sync.

The conference was finished off with open mike sessions in all the tracks, it’s great to have the opportunity to ask the experts those questions you find really hard to get answers to. In the IT Pro track we had discussion around admin accounts, should you use a shared account among a team or assign the permissions to users  directly? Generally using a shared account is likely to end up being less secure as those details get shared around, and you would be better assigning the farm admin permissions to the users’ own accounts. This also gives you an audit trail as to who has made the changes. Large databases came up again and some of the issues around that, sometimes you have to remind people to ask the question whether data should really be in SharePoint in the first place.

A good question was how should you structure a support team? Well it depends... :) but a minimum would be one and a half people dedicated to it, so that when that one person is on holiday the half can still pick things up and know how to fix things if problems arise!

And so from SharePoint by day to SharePint by night, the guys at Syntergy gave us a pot for the beer, thanks guys! It was a good chance to chat to some more people and enjoy a beer or two or three... sadly I needed to be on the train home this evening so had to leave early.

And finally, thanks to Steve and co at Combined Knowledge, you have done a great job of this conference and we look forward to the next one...

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

SharePoint Best Practices Conference UK - Day 2

The conference continues to inform and inspire...  Today I started off with Eric Shupps’ session on Custom Site Definitions, very entertaining but also very informative, he took us through packaging up our site definitions, the pros and cons of SPD and even some places where it is good – rapid prototyping of a master page before building it for real into a solution, so often internally we tend to only use it for DVWPs.

Next up was Maurice Prather with Secure Coding for The Administrator, it’s amazing the ongoing banter between dev’s and admins . We took a look at Secure Code, what does it mean?

·         The practice of writing code that can withstand malicious attacks

·         Secure code is Robust Code

Maurice expanded on this and then took us through the extra protection that SharePoint puts in place for us, stopping code from doing what it shouldn’t, but also the cases where Full trust can creep in and prevent these safeguards from working. Watch out for changes to PageParserPaths settings in your web.config files.

Neil Hodgkinson on Patching SharePoint – I thought I would know most of the content of this session, how wrong could I be? Neil gave us a really thorough tour of Hotfixes, Cumulative Updates and Service Packs. I hadn’t realised that the Revision number in a build number, e.g. the 1000 part of 12.0.6219.1000, had any meaning beyond just an arbitrary number, but it does:

1000 – Service Pack

30xx – Private build – you really should not be running these in production

5000 – Hotfix or CU

500x – COD Build

He also clarified the differences between Microsoft’s minimum supported build, recommended build and the latest and greatest build and how these affect the type of response you will get from PSS.

Building High Performance Solutions on Moss 2007 or should that be how do I cut down the bandwidth that Moss eats when we use it for Internet facing websites? Andrew Connell gave us some good solutions touching on your site topology for location of secured items, “customised” pages came up once again, reducing the page payload, how to speed up the CQWP and instant improvements with the art of IIS HTTP compression. A  slip on who should be in the kitchen, whilst explaining that you should just crank up the compression level to start with, will his wife hear about it though, did it make it to twitter?

The final session I sat in on was the IW Open mike session, and heard my favourite quote for the day, in answer to a question about the size of content DBs Rob Foster said “if you let content DBs grow bigger than 100GB then you run out of hours in the day to do the daily backups” to which the reply came “That’ll be a limitation of the solar system then!”.

I can’t believe it’s the final day tomorrow, it’s gone very quick and no sign of flagging. Just need to choose where to eat tonight...

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

SharePoint Best Practices Conference UK - Round up of My Day 1

Well, a fantastic first day at the conference. Steve Smith and the team at Combined Knowledge have done a sterling job of organising the event. A great line up of speakers and a plentiful supply of refreshments and delicious pastries to keep us awake during the day.  There’s 20 or more sessions each day, I can’t yet clone myself so here’s a taste of the sessions I attended.

Keynote

Joel Oleson kicked the speaking  off with a great Keynote giving us 10 steps to a successful deployment. He started out with the Killer bunnies from Monty Python, a very apt analogy for SharePoint. So many people rush in and deploy it without fully assessing the size of the task and planning it out. This led nicely into the first step being “overcome the denial to confront Reality”, and finishing with the one we are oft prone to forget “Keep it simple stupid”.  Spencer Harbar kindly demonstrated how to suggest to the speaker that he has overrun by putting his stuff in place on the platform as Joel was still speaking.

There’s 4 tracks to choose from throughout the day, IT Pro, Developer, Information Worker and Business Adoption.  Not deliberately, but just from choice of what was most interesting to me I managed to attend a session from each track today.

Collaboration vs. Publishing Sites. – IW Track

Interesting stuff from Mark Eichenberger on using Collaboration, Publishing or his suggestion of Hybrid Sites.  He highlighted a number of differences between collaboration and publishing at page, site and site collection levels, and then ably demonstrated an alternative approach that gives us quick launch navigation on the web part pages and removes the web part page icon without tweaking the files in the 12 hive. Very nice solution.

A Case study in Governance, Business Adoption Track - Natalya Voskresenskaya. ( I hope that’s spelt right!)

Natalya took us through her Best Practice for Governance –

·         Start with Thorough Discovery

·         Implement a Governance Plan

·         Define your growth strategy

She took us through the case study and gave us a really good understanding of Governance Plans and how to go about them. She took us clearly through all the parts she felt necessary to a governance plan, and the fact that it needs to be a living document  not just 40 pages that sit there and no on e reads. My favourite quote from the session was “Do not engage with a company until it is ready forSharePoint”.

How can I kill my file servers? IT Pro Track, Joel Oleson

I thought the title for this session sounded great. Joel shared some great examples for approaches to moving data from file servers, not just to SharePoint but also to nearline or off-line storage. Is all that data on your file servers really necessary to be instantly available? Ask yourself how knows the data best? IT or the Business Users? And so therefore who is best placed to move the data?

Test Driven SharePoint Development, Dev Track, Andrew Woodward

Whilst I had come across this I still hadn’t really grasped how it would work in practice, and this is exactly what Andy showed us, not only TDD but how we can achieve this with SharePoint using Typemock Isolator to “fake” SharePoint. Few slides and lots of code, just the way I like a dev session to be.

Andy had been concerned that we wouldn’t be able to see the screen from the back of the room, but it was fine, nice and clear, I think a nice touch was that the mike picked up the keyboard tapping...

Anyhow great stuff, the fog has cleared and I now understand better what he’s been talking about, or should that be evangelising?

Vendor night

Roulette and Blackjack, with free chips... great fun, loads of vendor prizes in the draw, but sadly my name was not called out.

More tomorrow...

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

A ‘Whats New’ web part

A recent prototype involved creating a ‘Whats New’ web part. This was required to display a total of the new of recent new content and the latest 5 items.

We had a number of options when creating this, but we chose to build it quickly using SharePoint Designer and the Search web service.

Before we start, a note on the use of SharePoint designer.
There is a lot of debate about when (or even if) this tool should be used, but for me it is a great tool to write xslt and transform web services. It can do a heck of a lot even before you start jumping in and typing xslt. I use it on development servers only and export the created web part. If you want to use designer on your live servers then please research and understand the implications of ghosted / unghosted pages.

OK – our webpart. The key to this prototype is the SharePoint search webservice. In this case, I’m using search.asmx (the MOSS search) rather than spsearch.asmx.

Why use search.asmx?

Our prototype (and many client implementations) are comprised of multiple site collections. Becuse of this, out of the box tools like the Content Query Web Part or 3rd party tools like Jan Tielmans ‘Whats New’ part wouldn’t help us as they only work across the current site collection.
Another thing to note – using search.asmx means we are getting security trimmed results – you are only seeing new items that you have access to.
I’m assuming that readers of this will know and understand how to open pages, add data sources and the basic principles of XSLT
In designer, our first task is to hook onto the search service. It’s accessed via the URL ‘http://<portal>/_vti_bin/search.asmx. For details on the service, look at http://msdn.microsoft.com/en-us/library/ms470518.aspx. We are adding a WebService datasource. Check out http://office.microsoft.com/en-us/sharepointdesigner/HA101171541033.aspx  for details on doing this

Once accessed, we are going to use the QueryEx method. There is a similar Query method that will return an XML formatted result packet, but QueryEx will allow us to work with the resulting dataset inside Designer.

After connecting, we have to pass our search query (the QueryXML property). We can pass a complex SQL (http://msdn.microsoft.com/en-us/library/bb219479.aspx ). In our case, we are going to ask for all content created within the last 7 days.

The query we used was...

<QueryPacket xmlns="urn:Microsoft.Search.Query" Revision ="1000">
<Query domain="QDomain">
<SupportedFormats>
<Format>urn:Microsoft.Search.Response.Document.Document</Format>
</SupportedFormats>
<Context>
<QueryText language ="en-US" type ="MSSQLFT">SELECT Rank, Title, Path, Author, Write, WorkId, Size, Description, SiteName, CollapsingStatus, ContentClass, IsDocument, HitHighlightedSummary, HitHighlightedProperties FROM Scope() WHERE Write > DATEADD(DAY, -7, GETGMTDATE())</QueryText>
</Context>
</Query>
</QueryPacket>

An important note – the QueryXML property is a complete XML string, we can’t just pass the query itself. The string above has been split across multiple lines to adi readability but when entering we have to enter as a single row

Once input, click on the DataView and choose Show Data.


 
If all is well, we should see a dataset result, similar to the screen below. Note – if there is no new content, no results!

Now we have the data, we can quickly build our webpart.
Firstly, click in a webpart zone on the page and add a basic DataView using the fields TITLE, WRITE and DESCRIPTION.
I now changed some properties. I changed the layout to the second option (rather than the default row/column view).

We also changed the sort options to sore by WRITE (so we are showing the latest content in date descending order)

Parameters

I added some parameters to make adding to other servers slightly easier. These were for More Details link, images path, maximum number of items etc as seen below

Showing the number of new items...
In the <xsl:template name="dvt_1"> template, I added a new row and inside the row put the following....

<tr>
<td valign="middle">
<div class="wpTitleZone" style="width:236px; height:35px;   background-color:#ccc; background-image: url({$ImagePath}/blueTitle1.gif); background-repeat: repeat-x">
<a class="TitleZone" href="{$MoreDetailsLink}">
<div class="TitleZone" style="width:236px; height:35px;   text-align: center; line-height:35px;  cursor: hand; background-image: url({$ImagePath}/iconBlue1News.gif); background-repeat: no-repeat; background-position: left center;">
<xsl:value-of select="$TitleText"/>
</div>
</a>
</div>
 </td>
</tr>

Showing Icons

The next change was to include the icons to represent the type of content. These icons are those used in standard search results.
Inside the <xsl:template name="dvt_1.rowview"> template, we added the following....(extract only)

<xsl:choose>
<xsl:when test="CONTENTCLASS = 'STS_Site'">
 <img>
   <xsl:attribute name="src">
   _layouts/images/<xsl:value-of select="CONTENTCLASS"/>16.gif
  </xsl:attribute>
  </img>
 </xsl:when>
<xsl:when test="CONTENTCLASS = 'STS_Web'">
<img>
<xsl:attribute name="src">
_layouts/images/<xsl:value-of select="CONTENTCLASS"/>16.gif
</xsl:attribute>
</img>
</xsl:when>
<xsl:when test="CONTENTCLASS = 'STS_Document'">
<img src="_layouts/images/html16.gif"></img>
</xsl:when>
<xsl:when test="contains(CONTENTCLASS,'ListItem')">
<img>
<xsl:attribute name="src">
_layouts/images/<xsl:value-of select="substring(CONTENTCLASS,1,12)"/>16.gif
</xsl:attribute>
</img>
</xsl:when>
<xsl:when test="contains(CONTENTCLASS,'_List_')">
<img>
<xsl:attribute name="src">
_layouts/images/<xsl:value-of select="CONTENTCLASS"/>16.gif
</xsl:attribute>
</img>
</xsl:when>
<xsl:otherwise>
<xsl:variable name="displayTitle" select="substring-after(CONTENTCLASS,'_')"/>
<img>
<xsl:attribute name="src">
_layouts/images/<xsl:value-of select="CONTENTCLASS"/>16.gif
</xsl:attribute>
</img>
</xsl:otherwise>
</xsl:choose>


From this you should see that we are interrogating the CONTENTCLASS property and mapping an image to it. Again, this is similar to search and fortunately, there are a lot of icons that map direct to the CONTENTCLASS

Formatting the title and update date

We format the title as a link. This is a simple xslt in the format of

<a href="{$MoreDetailsLink }"><xsl:value-of select="TITLE" /></a>

 we are using the $MoreDetailsLink parameter for the URL and the Title for the display text.
For the date, we are applying the DD-MMM-YY hh:mm format using

<xsl:value-of select="ddwrt:FormatDateTime(string(WRITE) ,1033 ,'dd-MMM-yy hh:mm tt')"/>

For both of the above, you can get Designer to do this for you. Right click the text you want to format and then you can choose the format options –e.g. hyperlink, datetime etc.

We set the properties of the DataView web part to set the maximum number of items to 5, then in the opening of the XSLT we set

<xsl:variable name="RowLimit" select="$NumberOfItems" />

you can see we are setting the maximum number of items to a parameter value. We do this so that we only need to modify parameters in the Web UI rather than asking administrators to open the XSLT in future.

Finally, in the template, we added another row to link to a more details page.

<tr>
<td class="ms-vb">
<a href={$MoreDetailsLink}>See All New Items...</a>
</td>
</tr>

This is our prototype linked to a page that contained as similar web part, but was showing all results and had pagination etc.

You can download a version of the prototype web part here. As always, be aware that this is a prototype and the normal disclaimers apply (e.g. make sure this web part goes through a code review before putting onto a production server).

 

Whats_New.zip (3.65 kb)

Currently rated 4.0 by 3 people

  • Currently 4/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Displaying a Single Users Profile Details

Following the previous post on search, this shows how to simply and quickly show a single users profile details on a page. Note, that this intended for MOSS (where we have the profile database) but could be re-worked for WSS to show details from the user list.

On our page, we need to add the People Search Core Results Part

 

Once added, open the web part properties so we can configure the part. We need to make several changes....

a) Under the Results Display / View group, set the Results Default View to Relveance and Results per page to 1

b) Under the Results Query Options group, change the Cross Web Part Query ID to Query 2 (see also note below)

c) Under the Miscellanous group, uncheck all the options except  Show Search Results

d) Finally, in the Fixed Keyword Query option, enter the query required (e.g. LastName:Piper)

Save the changes.

The final result will be basic details from the profile databse about our user

If the appearance needs to be changed, then you can edit the XSLT (another future post I think!) to suit.

Note - you may need more than one profile - in this case, the Cross Web Part Query ID needs to unique for each part on the page.

If you have more than 3 user profiles to display, then consider using different queries to get multiple results. For example, to show all users who have the property Department:Sales to show all sales members. If doing this, the number of search results should be increased from 1!

Currently rated 5.0 by 3 people

  • Currently 5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Visio stencil for Sharepoint Site planning

When planning a Sharepoint implementation, I often use Visio to diagram a site hierarchy. In the past, I've used standard shapes, but wante something a bit more representative of the sites / lists / libraries.

Maxime has produced a basic stencil set, but this didnt include everything I wanted (plus I really wanted to use the WSS 3 style icons! Smile ) and TamTam has one for page design

I've attached my stencil for the community. This is the first pass, and is very much work in progress!

The shapes are taken from the Sharepoint icons, as shown below. Each shape has the option of attaching data (URL, Template, Title) and I hope to be able to extend this in future (what about linking to Kivati to graphically build a portal?)

Site Collection 

If there are any comment, please send them in so we can improve

MOSSSiteStructureStencils.zip (193.73 kb)

Currently rated 5.0 by 1 people

  • Currently 5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Sharepoint and Accessibility

A common requirement when undertaking interface design for Sharepoint is to make the interface accessible (accessible meaning that users with visual or other impairment).

In the UK, the Disability Discrimination Act implicitly states that an intranet should be accessible to all employees, so even your private intranet should be capable of coping with user impairments.

The Sharepoint Team issued a statement a while back (pre release) about the accesibilty capabilites of Sharepoint

Customising the Sharepoint interface to make this work can be a real uphill task. The interface uses a lot of nested tables making relative font sizing difficult as noted by Diantha. The Sharepoint accessibility kit can be your friend here though.

An example of the kits usage is show below - a resizing tool to change absolute to relative sizing

 

But beware, this does not 'magically' fix your accessibility problems and you still need to consider the interface requirements early on.

The kit also includes a set of more accessible style sheets that can be applied

Another great resource for Sharepoint design, including accessibility is Heather Solomon

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

 

Dilbert of the day