Showing posts with label wss. Show all posts
Showing posts with label wss. Show all posts

Monday, October 19, 2009

Things To Get Excited About In SharePoint 2010

Now that Microsoft’s lifted the TAP NDA and is presenting SharePoint 2010 publicly at the SharePoint Conference in Las Vegas, there will be a spurt of queued up blog posts on the net :)

Here are some things I’ve been very excited about, in no particular order. They are fairly developer-centric.

  • Ability to develop against the SharePoint dlls on a developer desktop! ‘Nuff said.
  • Developer Dashboard – makes it easy to see tracing information and web server details when you are working on a SharePoint site.
  • LINQ to SharePoint – this is some nice syntactic sugar that helps replace CAML a little bit. You can created strongly typed SharePoint entities using a utility called SPMetal and then query and manipulate the data in them using standard LINQ syntax. I was hopefully predicting this in another post.
  • Visual Studio 2010 integration – VS2010 will have a lot more tools to make SP2010 development a snap. SharePoint Project and Item Templates, Feature Designer, and Project Packaging, will hide most of the messy details of creating, packaging, and deploying a SharePoint solution from the developers.
  • Business Connectivity Services – the next level of the Business Data Catalogue. BCS uses External Content Types which look a bit like Content Types, and are defined in the new SharePoint Designer or in Visual Studio and then added to SharePoint using a definition file (a bit like the BDC currently works). Users can then create External Lists in their sites, which pull in the data from these external sources.
  • Client Object Model – an abstraction layer that allows developers to write code that will work in client .NET applications, Javascript (for AJAX type operations), and Silverlight. Basically this is a disconnected, batch-style API that will operate on the existing SharePoint web services and handle requests and responses using XML and JSON.
  • SharePoint 2010 Designer – Whereas SPD 2007 was a warmed-over FrontPage, the new version has been rebuilt with a focus purely on SharePoint. The new navigation panel is great because it shows you a list of SharePoint objects, such as Entities, Lists, Master Pages, and Workflows. What’s great about this is it keeps you thinking about what you are trying to do in SharePoint, rather than where that command used hidden in SPD. Another big win is you can export your SPD changes as a .WSP file straight into Visual Studio for further customization.
  • The Office Ribbon makes it into SharePoint. The Ribbon kind of grew on me in Office 2007. I think it was a clever paradigm to surface many commands that used to be buried. Now the many SharePoint menus and Site Action dropdowns will coalesce into the Ribbon. I think this will make training and support a little easier. The big weakness of the Ribbon is that you often have to remember which tab the commands belong in. I found that was the case with the new SharePoint Ribbon but after a little while you get used to it, and it becomes faster to modify SharePoint pages.
  • STSADM is dead, long live PowerShell! Leveraging the great new scripting environment is a huge win for SharePoint. The ability to write .NET code to manipulate the command pipeline means we will start to see some very powerful “no-touch” deployment and management options for SharePoint
  • More events – now you can find out when your web or list was created or deleted. This may sound like a small feature but this enables some provisioning and discovery scenarios that in SP2007 were not even possible!
  • Enterprise Metadata Manager. I’ve blogged a lot about the important of governance and centralizing metadata. The new Enterprise Metadata Manager makes it easy to import and manage term sets, keyword and tags.
  • Service Application Architecture – the Shared Service Provider was a good idea but it was a bit hard to use in practice. Under the new architecture, you can create Service Applications for things like Excel Services, Forms Services, Business Connectivity Services, and other services that you build or buy, and you can mix and match these in your farms as you like. The services get consumed by web front ends via a standard interface. This should allow a lot of plug-and-play customization of farms. I’m even wondering if there is an opportunity for vendors here…create some services and expose them to clients from the cloud.

There are some other big changes like Claims Based Authentication and Solution sandboxing which are intriguing to me. The Solution sandboxing feature gives me this sneaking suspicion we will one day soon see a Microsoft SharePoint App Store where we can buy, download and run SharePoint solutions in our farms.

Anyway, there’s a lot of exciting new stuff in SharePoint and I think SharePoint development is about to become really fun!

Thursday, March 26, 2009

LDAP Authentication – More Tips

After posting about why LDAP authentication for intranets are a bad idea, I received some more emails with some tips I thought I would share.

Although most people commented that they would try to take the approach of synchronizing their e-Directory identity store to a slave Active Directory, a few were in the unfortunate position of having to implement LDAP anyway.

So if you fall into that camp, here are a few more approaches that might help you. As always your mileage might vary:

Wen He posted some great advice on modifying the People Picker for LDAP Membership providers. This is a pretty common problem – even if the profiles are importing successfully, the people picker may not show them. So here’s the quick code to do this:

you will need to add a key specifying the LDAP Membership “LDAPMember” to the <PeoplePickerWildcards> section into the web.config for the web application and Central Admin as shown:

<PeoplePickerWildcards>

<clear />

<add key="AspNetSqlMembershipProvider" value="%" />

<add key="LDAPMember" value="*" />

</PeoplePickerWildcards>

The line with the key="LDAPMember" and the value value="*" that explicitly specify a wildcard enables PeoplePicker to be able to search for People and Groups by enumerating users from LDAP directory. You know that if you don’t add this line, the PeoplePicker will look only for an exact match on the user ID.

Wen He goes on to describe user and group filtering against LDAP in SharePoint. It’s a great post, highly descriptive and comprehensive.

I also received an email from Krzysztof Wolski – after setting up LDAP and trying to log in he was having problems with “Unknown Error” (one of my all-time favourite exception messages ever!):

We have to use LDAP authentication because this
is an official requirement of our client.
I've solved the problem with "Unknown error" - I've changed the default user
for Application pool and set the identity information in web.config for 81
web application to :
<identity impersonate="true" userName="WIN2003\#USER#" password="#PASS#" />
We've used the same user for Application pool and impersonation.

Krzysztof also mentions one other potential gotcha that occurs if your e-Directory store is set to not allow anonymous authentication. He solved it this way:

We've successfully installed Sharepoint with LDAP Authentication.
One more thing we've added to the LdapMembershipProvider in web.config:
    <membership>
      <providers>
        <add server="#IP#" port="389" useSSL="false" useDNAttribute="false"
userDNAttribute="cn" userNameAttribute="cn"
                userContainer="o=MyCompany" userObjectClass="user"
userFilter="(&amp;(ObjectClass=inetOrgPerson))" scope="Subtree"
                otherRequiredUserAttributes="sn,givenName,cn"
name="LdapMembership"
type="Microsoft.Office.Server.Security.LDAPMembershipProvider,
Microsoft.Office.Server, Version=12.0.0.0, Culture=neutral,
PublicKeyToken=71E9BCE111E9429C"
                connectionUsername="#USERNAME#"
                connectionPassword="#PASSWORD#" />
      </providers>
    </membership>
eDirectory configuration in our case was configured to not allow anonymous
access.

Thanks Krzysztof for the great tips!

I hope this information helps those of you doing LDAP integration – but even more I hope you don’t have to do this in the first place :)

Monday, February 09, 2009

SharePoint Best Practices - Another Great Year

P1010386

P1010434

We enjoyed another great year of Mindsharp's SharePoint Best Practices Conference in San Diego. Thanks to Mark Elgersma, Ben Curry, and Bill English as the chief organizers, although I know there are lots of other Mindsharp folks who worked hard to pull this off.

UPDATE: Just heard back from Ben - the primary conference organizers were Bill English, Paul Stork, Paul Schaeflein, Todd Bleeker, Steve Buchannan, Pamela James, Brian Alderman, Ben Curry, and Mark Elgersma. Thanks again guys!

Given the grim economy it was noticeable how many people showed up - over 350 attendees I believe in addition to all the vendors and organizers.

I attended with echoTechnology's Director of Sales, Sean O'Reilly. He's a real hoot - a bit of a legend on the conference circuit. We arrived on the Sunday. Since Sean and I are now using demo laptops and have the exhibit booth process nailed down after numerous conferences, it only took us about 15 minutes to setup the booth before we could unwind.

P1010402

That night the BPC kicked off unofficially with a Super Bowl party in Ben Curry's suite. It was great to watch the game with various attendees and exhibitors.

Joel Oleson gave a funny keynote on Monday morning, talking about the 10 steps to success.  He argued that SharePoint is plastic and so just because you can do something with it, doesn't mean you should. Some of his analogies included Robot Barbie and headless chickens. Also there was a disapproving mother ("IT") and finger-painting baby who got paint all over the wall ("the business").

One quote he mentioned from Gartner says that by 2010 less than 35% of WSS sites will put effective governance in place!

Programming Best Practices

In between exhibit hours and meetings, I was able to attend only one seminar, given by Francis Cheung of Microsoft's Patterns and Practices Group. This was a really neat explanation of best practices for programming against SharePoint.

What was interesting was Francis showed how object oriented patterns like the Repository pattern could be used to abstract out SharePoint-specific resources like list names, loggers, and so on. Francis also pointed out the need to create strongly typed business entities for SharePoint, rather than straight calls against SP objects.

This provides an additional layer of abstraction that allows mocking and unit testing. The idea is that for code testing purposes you should be able to swap in mock interfaces without relying on SharePoint being available. For instance you should be able to run unit tests against SharePoint code without the SQL database even being available.

These entities also make it easier to work with presenters/controllers without worrying about looking up Site or List GUIDs, or provide an easy way to do CRUD operations.

Microsoft currently has a patterns and practices guidance available at www.microsoft.com/spg. From the guidance doc:

This guidance discusses the following:

  • Architectural decisions about patterns, feature factoring, and packaging.
  • Design tradeoffs for common decisions many developers encounter, such as when to use SharePoint lists or a database to store information.
  • Implementation examples that are demonstrated in the Training Management application and in the QuickStarts.
  • How to design for testability, create unit tests, and run continuous integration.
  • How to set up different environments including the development, build, test, staging, and production environments.
  • How to manage the application life cycle through development, test, deployment, and upgrading.
  • Team-based intranet application development.

This approach is actually a standard approach to custom code development but SharePoint has tended to blur the lines a little bit. What is very interesting is that more and more of the BPC seminars were about programming and unit testing. People were even talking about Test Driven Development (TDD) against SharePoint!

What this indicates is that organizations are starting to treat SharePoint seriously as a development platform. This has always held potential but required a steep learning curve. For example, at the Best Practices Conference last year there was very little on these sorts of developer-centric practices. This year it was all about programming against SharePoint in the traditional way - using unit tests, mocking, web smoke tests, and OO patterns.

There hasn't been a killer app for SharePoint yet but it's coming.

Best Practices For Centrally Governing Your Portal and Governance

On Wednesday morning I gave a presentation on helpful tips for centrally managing a portal. I showed a governance site collection I have been working on and talked about how it can be used to make it intuitive and easy to run a portal.

I'm including my powerpoint presentation here.

There are no screenshots of the governance site collection yet although I am uploading a couple as part of this post.

Governance Site Home Page

Governance Site Taxonomy 

Hope this helps!

Thursday, March 20, 2008

Colligo: SharePoint Unplugged

One of the bigger issues with SharePoint is how to make it available to offline or remote users, such as frequent business travellers. There are many vendors working in this space including iOra (now Infonic) and Syntergy, and tools such as Groove are also very useful for this kind of requirement.

One vendor I've heard good things about is Colligo. Colligo has a product that presents SharePoint sites in a seamless online/offline manner so users don't need retraining.

This morning I decided to download the Colligo Reader. It provides a one-way sync from a SharePoint site to a computer or laptop, and is free for non-commercial use. It works for Windows SharePoint Services 2.0 and 3.0 sites, for SharePoint Portal Server 2003, and for Microsoft Office SharePoint Server 2007.

Colligo requires a .NET framework client install on the destination computer, and uses the SharePoint web services so it will be fully supportive of any upgrades and does not require any additional components or installs on servers or any other kind of tinkering.

Downloading it required a quick and painless sign-up at Colligo's website, and then a small install process taking only 30 seconds. Following that I had to quickly activate the program over the internet and I was off and running.

The user interface is spartan and SharePoint-like: this is a good thing as such a tool should be simple and effective at displaying and managing the site content rather than tossing up lots of bells and whistles. The SharePoint look-and-feel is also a must as it makes the whole experience seamless to end users. Here's a screenshot of the basic interface.

 Basic View

To create a sync to a SharePoint site, I used a personal WSS 2.0 site I've had for a few years. In the top left-hand side of the screen I selected the "Site" dropdown and clicked "Download Site". This popped up a very simple box that asked for the URL and the security credentials.

In only a few seconds I was connected and presented with the names of all the SharePoint lists in the site. Next to each was a checkbox so I could choose to synchronize with them. Having selected them all, it began to download the contents:

Synchronization

Sync options include sync'ing a particular site, sync'ing multiple sites, and sync'ing everything. At the bottom of the screen is a "Sync Issues" panel that helps manage any items that failed.

Following the successful download, I was able to read all the content on my WSS 2 website. Each list showed the appropriate views and metadata columns. Filter and sorting were enabled to help manage the content display. On the left hand side the Quicklaunch menu items were all present and there was breadcrumb navigation at the top of each list.

One thing I didn't see (at least in the Reader version) was a search functionality. This would have been very useful. One of my main criticisms of Groove is that its lack of search makes it virtually impossible to find offline content once you have a lot of content and folders. Although Colligo Reader does a much better job at presenting and organizing content (due to its SharePoint nature) search is a must-have in any offline synchronization tool.

Security is applied to the site and list content according to the credentials used to access the site. At least in the Reader version this means no switching between various user accounts for different permissions. Frankly I doubt anyone using the Reader would want to do that - that tends to be an administrator / developer activity. For the purposes of such a tool it only makes sense to manage the content using one set of credentials so I don't regard this as a drawback.

You can download Colligo Reader at their website. http://www.colligo.com/products/sharepoint/reader_how_it_works.asp. In addition to the Reader, there is a two-way Contributor version that allows offline modification of SharePoint lists. This is obviously the real value-add for Colligo. According to their website, pricing for this varies depending on the flavour of Contributor you buy - there are versions that integrate with Outlook and others that work on  PocketPCs.

All in all I was favourably impressed with the Colligo Reader - it is simple and intuitive and functioned exactly as I expected, and I plan to use it in the future.

Wednesday, December 12, 2007

SharePoint Service Pack 1 Released

SharePoint Service Pack 1 was released yesterday.

Joel Oleson has a detailed post on the update at http://feeds.feedburner.com/~r/sharepointteamblog/~3/198847357/announcing-the-release-of-wss-3-0-sp1-and-office-sharepoint-server-2007-sp1.aspx.

Joel mentions that a special page has been created on TechNet: http://technet.microsoft.com/en-us/office/sharepointserver/bb735839.aspx to help people evaluate and apply the service pack. He encourages everyone to look before they leap when it comes to applying the service pack.

The SP download is here: http://www.microsoft.com/downloads/details.aspx?FamilyId=9EC51594-992C-4165-A997-25DA01F388F5&displaylang=en

Saturday, December 01, 2007

SharePoint Kits

There's some cool pre-Christmas SharePoint gifts here or almost here:

First off, SharePoint Service Pack 1 is on the way. There are some new stsadm commands, a rollup of the various hotfixes that have come out, and support for creating custom web parts with the AJAX toolkit.

The SharePoint Team Blog dives into all the details at http://blogs.msdn.com/sharepoint/archive/2007/11/29/preview-into-wss-3-0-sp1-and-sharepoint-server-2007-sp1.aspx.

Just released is the Accessibility Kit for SharePoint from HiSoftware and Microsoft. I've blogged about this in the past and it will be important to many organizations that have been unable or unwilling to consider MOSS for public portals due to accessibility requirements. It's available on CodePlex. The nice touch with this kit is that it is intended to incorporate community contributions (as you'd expect on CodePlex) so the kit will improve as people contribute to it. The full details are at http://blogs.msdn.com/sharepoint/archive/2007/11/28/announcing-the-accessibility-kit-for-sharepoint-aks-1-0.aspx.

Finally, if you work with Business Objects, you'll be pleased to know they just released a free integration kit for SharePoint called the "BusinessObjects Enterprise XI R2 SharePoint 2007 Portal Integration Kit" (or BO E XI R2 SP 2007 PIK for short). You can download that here (5 mb zip file). The kit includes document and list view web parts to help create dashboards.

Each of these releases opens up worlds of development possibilities. The depth of SharePoint's integration capabilities continues to increase, and this is just Year One!

Sunday, November 18, 2007

SharePointPedia Is Live

The Microsoft SharePoint group has launched SharePointPedia, which is intended to be a community site for sharing knowledge around SharePoint. Although the name might imply a Wikipedia style wiki collaboration system, the site is really an easy way to link to, find, and rate articles that exist elsewhere on the net. As the site itself says:

SharePointPedia is not a wiki. It’s a “pedia” in the sense of being a compendium of useful content, but rather than being limited by just wiki functionality, it leverages the much broader set of capabilities in SharePoint. SharePointPedia is also about community, where you can find and connect with others, who have similar interests as you or who have recommended content relevant to you.

It is easy to submit new content and there are a variety of folksonomy tags such as "Collaboration", "Personalization", "Web Publishing" to tag against the article submission.

The value of the site will largely depend on the community submissions but since there is so much content out there it may prove to be a useful launching pad. Right now everyone spends a great deal of time tracking all over the net trying to research particular SharePoint issues and hopefully this compendium will help streamline that.

You log in using your Windows Live ID and get ratings based on your contributions. The 'pedia is built using MOSS 2007 (of course!) and is located at http://sharepoint.microsoft.com/pedia/Pages/Home.aspx.

Monday, November 12, 2007

SharePoint Migration With MetaLogix

I recently had the chance to evaluate a number of SharePoint content and site migration tools. Past migrations I've done have been performed using the out-of-the-box content migration using the Pre-Upgrade scan, but I have an upcoming requirement to leave the existing SharePoint Portal Server 2003 site and content in place and migrate it slowly to the new MOSS 2007 server over time.

This required an evaluation of third-party site migration tools. One of the ones I looked at was the MetaLogix SharePoint Site Migration Manager. The evaluation license allows you to migrate 50% of the content for a few days, which is enough to run the software through its paces.

The Migration tool installs on a client desktop and this GUI handles 95% of the migration tasks. However if you want the migration process to do things like map the user accounts you'll also need to install a special service on the target server.

I liked MetaLogix Migration Manager's intuitive interface. After the installation it was easy for me to add a reference to both the test SPS 2003 portal and the test MOSS 2007 portal. This is done by typing in the URL and either using the default portal access account or manually specifying it.

The interface has three major views:

  1. The default "Explorer" view, which is a complete site hierarchy view of the sites you have added;
  2. "Browser" view, which renders whatever site node you have selected in the explorer view. It's a great way to quickly view the content of a site or list; and
  3. "Item" view, which shows you the content of lists and libraries.

Migrating content or sites between portals was as easy as right-clicking the source node, clicking "Copy", and right-clicking on the target site and clicking "Paste". A dialog box shows the progress and the result appears in the Log window at the bottom of the screen, which you can always refer to. There is verbose logging in a text file.

Paste Shared Documents List

Other nice features:

  • Batch mode, so that all actions can be scripted to run at scheduled times. The batch file is in XML format so it can be programmed and is human-readable.
  • Delta migration: You can choose to only migrate the changesets instead of all the content each time.
  • List copy: You can choose to append and concatenate multiple libraries or lists together which helps merge them in the new portal.
  • You can migrate versioning and security permissions
  • Replace Within Field: This is a quick string search that allows you to replace text in content you've migrated, such as URLs. In the future I'm told this will be an automatic step in the migration.
  • Mapping to site templates. You can explicitly map SharePoint 2003 site templates to the new MOSS templates (it will attempt to map them automatically by default). I noticed the mapping options seemed to include the Fantastic 40 site templates which was a nice touch.

The only issue I found with the product occurred when I tried to migrate the content on an SPS 2003 Area over to MOSS 2007. It brought all the content, web parts, lists, and libraries over with the exception of the Area Detail and Browse Area By web parts. However as those two web parts relate to the old SharePoint 2003 Area concept which no longer applies, I'm not too fussed. The MetaLogix staff were keen to help me investigate this, if I had been willing.

During the course of the trial I spoke to Julien Sellgren and Rasool Rayani at MetaLogix. They were helpful and responsive to my questions, giving me a walkthrough via a webcast and extending the evaluation period while I was testing area migration. Rasool also explained to me that they are releasing feature packs and updates on a 6-week basis so the product is evolving quickly.

You can learn more about MetaLogix and download the evaluation version at their website.

Wednesday, October 31, 2007

SharePoint As a Development Platform Debate

There's a very heartfelt debate raging at CodeBetter.com over whether SharePoint is a good development platform. The breakdown seems to be between "developers" and "SPs" or "SharePoint People".

Jeffrey Palermo kicked the discussion off by discussing what he feels makes a good development platform and then contrasting those points with the current state of SharePoint 2007 development.

I can understand the concerns of those who don't feel it is an ideal development environment. One of their biggest issues is how to manage the artefacts that SharePoint generates, especially the settings that can be made via the browser but not easily replicated to a source repository for sharing and versioning.

Many of these changes only live in one of SharePoint databases and so are hard to track. It goes against a programmer's mindset when these things are intangible and hard to track and synchronize.

Microsoft and the community are releasing more tools that can help manage this and perhaps in Office 14 there will be some easy facility to export and import configuration settings as an XML file. This would make it simpler to do proper change management with SharePoint.

There is also the fact that SharePoint is good at glossing over a lot of very complex interactions. Running underneath the hood is a SQL Server database, web services, a complex object model, Windows Server interactions, office integration, ASP.NET and Windows Workflow Foundation, a series of providers...it's very complicated but SharePoint makes it look easy. So when anything goes wrong somewhere in the stack it can be hard to figure out. In this sense it's a victim of its own success at abstracting the lower level plumbing.

The best SharePoint solution results occur when the customization points are kept in line with the core things SharePoint does well, such as workflow, collaboration, search, content management and publishing, and document management.

Whenever possible I recommend limiting SharePoint customization to things that can be done via the browser or through modifying XML or XSL properties (for instance for Search Results web parts). This also helps to protect the solution from service packs and future versions of SharePoint as any customizations are likely to be minor and easily tracked (and upgraded).

When new requirements come in, it's helpful to have the entire team of SharePoint developers compare notes on what the platform allows and how it can be customized. It's noteworthy how many times a 30-minute requirements-gathering discussion can end up with a shared agreement on how the out-of-the-box SharePoint components can be combined to deliver something that at first blush seemed to require half a dozen custom web parts.

The fact that so much can be done with so little effort actually makes SharePoint a killer development platform - the trick is to use a bit of imagination to align as much as possible to what SharePoint provides and go with the SharePoint flow. If SharePoint development is difficult and painful it's probably time to reassess the proposed solution to see if there's a more elegant, SharePoint-centric approach.

Anyway, there's a lot of fascinating insight being posted on Jeffrey's blog and anyone who hopes to develop on the SharePoint platform should at least give it a look. The full discussion thread is here

Thursday, October 25, 2007

OneNote and SharePoint: Better Together!

OneNote 2007 is great for note-taking. My colleagues and I have been using it for the last little while and we love it. There's always something new to learn about it.

After many months of using it individually, we decided to start sharing our OneNote notebooks with each other. Here's the cool bit: the notebooks can back onto a WSS 3 or MOSS library.

If you create a new document library somewhere on your SharePoint portal, you can choose a OneNote Section as the document template rather than the default Word template (although any library document template will apparently work just fine).

Now if you go back into OneNote, you can choose to share a notebook and host it in the document library you just built. It's easy to do; just click "Share" on the top menu and then "Create Shared Notebook". Give it a title and pick a template (we use "Shared Notebook - Reference Materials" or "Shared Notebook - Group Project").

Then when it asks "Who will use this notebook", just click "Multiple people will share this notebook" and choose to share it on a server.You will be asked to confirm the location: paste the URL of your site into the path textbox and then you can browse to the OneNote document library. 

Once created, you'll find a new folder in the SharePoint document library with the title of the notebook. Inside the folder there are OneNote files, one for each section (OneNote pages and subpages aren't actually individual "files").

You can invite people to the site just by giving them the library URL. Clicking on the OneNote notebook file will download a cached copy of it and open it in their OneNote client on their desktop.

We had a lot of fun adding content and pages, and watching as the clients synchronized changes first to the master files in SharePoint, and then down to each others' desktops. It's a very seamless process.

OneNote is very effective at synchronizing changes, although it doesn't use Groove apparently (Groove does file-based synchronization while OneNote seems to do more in the nature of content merging). 

You can view the standard Document Management panel in OneNote by clicking "Tools" and then "Document Management", which will allow you to view the site membership, see what's been updated, and set alerts if you want to keep on top of changes.

In order to search the OneNote content in MOSS 2007, you'll have to install OneNote 2007 on the Index server to get the OneNote 2007 iFilter, and then add the .one filetype to the Shared Service Provider's search settings. Instructions on how to do that are here.

This OneNote-SharePoin t combo is like a team Knowledge Base on steroids: fully searchable, disconnected, synchronizing, shareable, and with all the rich SharePoint functionality of any other library. Yet another example of the power of client software leveraging SharePoint's rich repository services!

Wednesday, October 17, 2007

Public Facing WSS Sites + Silverlight

Last night was another interesting Sydney SharePoint User Group. There were two presentations, one on using Windows SharePoint Services as a public facing CMS site given by Jon Matthes, and another by Michael Kordahi on Silverlight (+ SharePoint!).

Jon gave a very interesting talk about using WSS to rewrite a legacy web application for The Scottish Banner, an online community newsletter for Scots abroad. His aim was to improve on the old PHP website, retain its general design, allow online feedback forms, and produce minimal impact on end users in a cost effective way. He also hoped it would be an opportunity to learn about WSS 3.

The way he approached the site migration was to replicate as much of the existing structure as he could, with the only exception being the addition of the WSS administration area. He created anonymous access to a list to allow people to make submissions to the site while not logged in. An additional feature was the use of image libraries to serve as a simple product catalog, which was a new feature for the site.

Best of all, none of this required code. This turned out to be a good thing, as Jon had no access to the server and the US-based ISP was difficult to reach due to the time zone differences. Unfortunately he was unable to use Themes so some options were unavailable to him while he was doing the redesign.

Jon suggested some take-away lessons from his experience. He pointed out how important it is to use a hosting provider who has knowledge around SharePoint (and preferably one in the same time zone!). Research on what WSS could do and not do out of the box was important, and he also recommended making end user training an important component of any moves to SharePoint.


Michael Kordahi (http://delicategeniusblog.com) from Microsoft then presented Silverlight for us. This is Microsoft's intended Flash killer.

Its selling point is that it's a cross-browser/platform implementation of .NET for "building and delivering the next generation of media and rich applications for the web". Michael explained that its value is intended to lie in its flexible programming model combined with its ability to create rich media experiences.

A key component is its use of XAML, which will be the next generation declarative XML syntax for separating presentation from code and is already used in Windows Presentation Foundation. The goal is to have designers do their creative work in tools such as Expression Blend, and then have developers take the XAML code and code to it in Visual Studio.

There were some pointed questions from members of the user group. Flash can do all of these things currently, but it seems that the case for Silverlight might appear more convincing over time. Version 1.1 allows .NET code to be written on the server, and no doubt future versions will add increased functionality and productivity options. Already in version 1.0, it is easy to create animations and manipulate design objects, and then code to the Silverlight canvas using JavaScript.

Some people also remained unconvinced that the developer/designer split would be solved by this technology - after all that was an intended goal of code-behind. I haven't worked directly with enough designers to assess this problem for myself so I'm reserving judgement.

What was particularly cool about this presentation were all the demos Michael showed us. Tafiti is a neat experiment in changing the search interface to amalgamate multiple search content types. Inkable Search Tip uses the Vista handwriting recognition technology to do freehand searches on Google. Top Banana allowed browser-based video editing. A Chess Game written by Scott Guthrie rounded out the demos.

You can view many of these showcase applications at http://www.silverlight.net. Most of them are proof-of-concepts and showcases of what Silverlight can do, rather than real-world examples. 

All in all, it seems to be a very cool technology and one that'll become a very big deal. Silverlight 1.1 is currently in Alpha release and a preview version of Expression Blend 2 is available to MSDN subscribers.  For more information, Scott Guthrie has some excellent posts on Silverlight at http://weblogs.asp.net/scottgu/archive/tags/Silverlight.

Monday, October 15, 2007

Microsoft Releases End User Training Kit For SharePoint

Microsoft's SharePoint team is releasing a SharePoint End User Training Kit. This will be a helpful offering to clients who may not have lined up full training plans, or for use in self-service scenarios.

All of this content has been written by Microsoft's Office Online User Assistance team, evidently after some real-world experience responding to customers' questions.

The SharePoint Learning Kit version of the Training Kit is SCORM 2004 compliant and allows an organization to brand and customize the content delivery experience. A follow-up standalone deployment version will be available for individual use.

It's quite easy to convince end users of the power and convenience of SharePoint, but they may still feel overwhelmed by the options once they are sitting in front of the browser. Therefore user support and training is a key part of SharePoint governance and this training kit will be a welcome addition in the toolbox.

The SCORM version of the kit can be downloaded from the new SharePoint "Get the 'Point" blog. Incidentally this blog is focused on the SharePoint end user and has some very helpful walkthroughs of cool ways people can use SharePoint. It features some guest bloggers, postings from the Microsoft team, and links and tips to get the most of out a portal.

Thursday, October 11, 2007

October Sydney SharePoint Usergroup and Office DevCon

Next Tuesday will be this month's SharePoint Usergroup. The main presentation will be given by Microsoft's SilverLight Evangelist, Micheal Kordahi. He'll be demonstrating SilverLight and talk about how it can be incorporated in SharePoint portals. This should be really interesting as it can probably add a lot of pizzazz to any SharePoint site.

Another presentation will discuss how to use WSS sites for public websites.

On a related note, the SSUG now has its own dedicated website, at http://SharePointUsers.org.au/sydney. It is a SharePoint site that uses the slick-looking Community Kit.

Finally, Microsoft will be hosting Office DevCon at their Ryde campus on Saturday November 3 and Sunday November 4. There will be many speakers and sessions covering all aspects of Office 2007 and the intended audience is developers and power users. The conference is free and you can register at http://www.block.net.au/devcon/index.htm.

Wednesday, September 05, 2007

SharePoint Accessibility

One of the most painstaking web programming tasks is achieving web accessibility. Although estimates vary, between 5 and 10% of web users have some sort of accessibility need.

There are several standards, and determining which ones to support depends largely on your business needs and location. The US Government for instance has Section 508 compliance while the Canadian Government has Common Look And Feel 2.0 Accessibility standards.

Generally all of these standards build upon the specifications of the W3C's Web Content Accessibility Guidelines, specifically the Priority 1 and 2 requirements.

Some examples of WCAG requirements are that all web pages must have valid HTML and CSS code, images must have alternative descriptive text, and there must be alternative methods of viewing data or accessing page functionality. Accessible browsers such as JAWS cannot interpret client scripts or view images in the way that a regular browser can, but they can still provide a spoken translation of the markup code.

What happens if you have a SharePoint site that needs to be accessible? Well, unfortunately SharePoint currently outputs a lot of non-compliant code. Luckily, there is a lot of interest in the community in finding the workarounds, and SharePoint is nothing if not flexible.

 

Accessibility Options Within SharePoint

There seem to be a collection of elements that can go into creating a web accessible SharePoint site.

To begin with, you might wish to start with the Microsoft Minimal Master Page and a blank page layout. This will give you a fighting chance generating XHTML code, which is the first vital step. Zac Smith blogs about how to do this in detail.

Another requirement is to change the markup that the SharePoint web parts and user controls generate.

The easiest way to do this is to use a native SharePoint feature called "More Accessible Mode" that you can enable. This changes the UI rendering by applying Microsoft Active Accessibility (MSAA) standards for assistive devices. From the Microsoft Office Online site:

You turn More Accessible Mode on or off by pressing the TAB key immediately after placing focus on the page in a browser. Press the TAB key until you reach the Turn on more accessible mode or Turn off more accessible mode link. Even though the link to turn on More Accessible Mode is the first element in the tab order — which means that it is the first option that you interact with on the page — you may need to press the TAB key more than once to activate the feature.

Another way to change the rendering is to rewrite the output of web and user controls.

Web Parts are generally problematic as the HTML the web parts and the web part zones render is non-compliant. User Controls however are more easily changed. You could choose to do this using delegate controls.

At run time, the delegate control on the page selects the search control that has the lowest sequence number and displays the control to the user.

Another option is to use the .NET CSS Friendly Adapters that were introduced last year to help cleanup the markup the existing controls generate. John Ross (aka "Mossman") talks about this in his blog posting, "CSS Friendly Control Adapters in SharePoint 2007 (A Walk-Through)".

Client side scripts can be modified by using Regular Expressions to modify them at runtime (in the OnLoad methods of a page), but this may pose problems for future upgrades.

 

Third Party Solutions

HiSoftware has just announced that it will be partnering with Microsoft to create a Web Accessibility Kit for SharePoint:

The Accessibility Kit for Office SharePoint Server will include site templates, Web parts, documentation, instruction and tutorials enabling partners and customers to develop Web sites that conform to the guidelines set out in Section 508 of the U.S. Rehabilitation Act and the W3C’s Web Content Accessibility Guidelines (WCAG). The solution will also provide accessibility updates for Office SharePoint Server templates and Web parts for Web publishing, corporate intranet, team and project collaboration sites and more. This allows users to create a site and replace “out-of-the-box” MOSS components with accessibility kit templates, reusable Web content and Web parts.

Telerik offers a Rich Content Editor for SharePoint that contains more accessibility options and may be worth investigating.

I've heard SiteCore recommended as a good front-end for MOSS and it could be a useful alternative to a MOSS internet portal if meeting accessibility standards is a core requirement.

Third party web part vendors may generate more compliant markup.

Finally, you can follow the Glu Mobile approach and use SharePoint as a platform to help with content management and other functionality, but build an ASP.NET application on top of it, which will give you full control over what markup is generated.

 

More Information

If you have any tips or advice on how MOSS can be made more accessible, or any real world examples of MOSS portals that meet compliance standards, please feel free to post!

Thursday, August 30, 2007

Hotfix City

I was cleaning up a portal today and ran into a wide variety of errors. Several of them turned out to have the same root cause. The symptoms were wildly varying event errors like this:

Microsoft.Office.Server.Administration.ApplicationServerAdministrationServiceJob threw an exception:

"Message: Old format or invalid type library"

Or

Microsoft.Office.Server.Administration.ApplicationServerAdministrationServiceJob threw an exception:

"Message: Not Enough Storage"

The resolution required not one but two hotfixes, both of which target the .NET 2.0 framework.

I applied the first hotfix, KB 923028, after reading about it on Gayan Peiris' blog. After rebooting I started getting another error which read:

Unable to open shim database version registry key - v2.0.50727.00000

Err....what?  Speculating wildly here (something I'm good at), I'm guessing the "shim database" was holding some key in the windows registry that the Timer job wanted to know about but couldn't get at.

Anyhow, I did a quick search to figure out how to resolve it, and there again Gayan's blog popped up, suggesting I download and run KB 918642. I figure he was two steps ahead of me the whole way!

By the way, Gayan's the new SharePoint MVP at Microsoft in Sydney. Check out his blog here. It's got a huge amount of SharePoint fixes. Hopefully you won't need any of them!

Sunday, August 26, 2007

News Bits

Various bits of news and rumours:

  • K2 blackpearl has gone RTM. You can download it from the K2 website after logging in with your user ID. Chris O'Connor is already blogging about the installation...check out his blog postings here and here.
  • There is a SharePoint Asset Management Toolkit currently in beta at Microsoft. The intention behind it is to give an organization an overview of all the SharePoint assets floating around on the network: WSS sites, portals, etc. The idea being to get more of a handle on what's being built out there by enthusiastic 'Pointers.
  • If you're keen on exploring LINQ, you'll probably be interested in the LINQ to SharePoint community project. Led by Bart De Smet, C# MVP, the project is currently in Alpha 0.2.3 (which is only four light years away), and the aim is to provide some of these following features (taken from Dimitri Clement):  

    • Custom query provider that translates LINQ queries to CAML, the Collaborative Application Markup Language used by SharePoint for querying.

    • Support for LINQ in C# 3.0 and Visual Basic 9.0.
    • Entity creation tool SpMetal to export SharePoint list definitions to entity classes used for querying.
    • Visual Studio 2008 integration for entity creation (a.k.a. SPML).
    • Can connect to a SharePoint site either using the SharePoint object model or via the SharePoint web services.
    • Planned support for updating through entity types.

    You can find the bits at LINQtoSharePoint on CodePlex and the team blog is at http://community.bartdesmet.net/blogs/LINQtoSharePoint/.

Thursday, August 23, 2007

The Microsoft SharePoint Team has just announced a major release to the SDKs - version 1.2 of each. The full details are here: http://blogs.msdn.com/randalli/archive/2007/08/22/just-published-major-update-to-the-moss-and-wss-downloadable-sdks-8-22-2007.aspx

This is wonderful news - not only will it make developing to the object model more understandable but there are numerous samples and, best of all, a BDC editor tool! Check this page out:

The Business Data Catalog Definition Editor provides a visual tool for creating an Application Definition for BDC in MOSS 2007. Features include:

  • Underlying XML is abstracted by the design surface and properties window
  • Drag and drop web methods, tables, or views to create line of business (LOB) connections.
  • Entities and methods are created automatically from database metadata and WSDLs.
  • Additional method instances can be added to further enhance the database or web service connection.
  • Method instances can be tested from within the tool, enabling incremental development of LOB connections
Background

Currently, writing an application definition to connect the BDC to a LOB system is a manual process. This requires an understanding of both how the LOB system is configured and what must be included in the XML to satisfy the BDC. Having a tool to simplify this process not only lowers the initial knowledge threshold for administering the BDC, it also lessens the required work of the user (such as testing, making modifications, etc.).

[...]

Highlights
  • Tool supports databases (SQL, Oracle, OLEDB, and ODBC) and web services
  • Drag and drop design surface for selecting DB tables or web methods:
  • Metadata is automatically extracted from databases by dragging and dropping tables
  • Web Services require a few additional steps to completely configure the connection
  • Users can import and export Application Definition XML files
  • Users are able to test method instances incrementally from within the tool
  • The tool is not required to run on a web front-end
  • Associations are created automatically when foreign keys are selected; they can also be created easily for web services by adding an Association method instance

Objectively speaking, the SDK and tool release just made life 100% easier (32.4% of the time)1. You can't argue with those numbers!

The Microsoft team has also stated that it has doubled the resources working on the SDKs, which means we can look forward to even more improvements in the future. They're obviously listening to the community -they even make that point in their announcement - and it's very welcome indeed.

1 Actual results may vary.

Friday, August 10, 2007

Tech.Ed 2007 Gold Coast Day 1

So Tech.Ed 2007 came and went on the sunny Gold Coast and over the next few days I'm going to be sleeping and blogging (not necessarily at the same time). Here's my recap of the first day:

The keynote speech was given by Michael Twigg, the Production Resource Manager of AnimalLogic, an Australian animation firm that makes special effects for movies, TV, and commercials. Some of their achievements include effects work for the Matrix (the ghost twins), 300, and Happy Feet. It was an interesting example of IT in an industry I'm not familiar with.

They can spend months designing a shot that will be used for two seconds. As one example Michael showed us how many levels of matte painting, 3d effects, and live shots that all had to be pasted together to create a two-second shot of Xerxes' army crossing into Greece for the movie 300.

We also learned the surprising fact that all their servers run Windows NT! Well, at least he didn't mention the "L" word (no, not that "L" Word - the other one).


The first seminar I attended was "Lap Around Visual Studio 2008" by Tony Goodhew, the Product Planner for the product. Tony described the major goals of the product version, namely language advances, web development improvements, and increased support for AJAX and JavaScript, and CSS.

He covered some of the neat new features in VS2008, including framework targeting, nested master pages, the CSS property windows, split pane view, and LINQ to SQL.

Other things he touched  on:

  • Hitting CTRL while using IntelliSense makes it translucent so you can see the code that is below it.  Highlighting code while hitting CTRL-K-D formats it, which  is useful when you are pasting XML or HTML fragments into a page.
  • Tony also talked about XAML and how Visual Studio is the developer's platform, while XAML presentation can be handled in the new Expression suite that Microsoft has released. XAML separates the concerns so both roles can work in parallel and neither overwrites the other's work.
  • There is a service editor in Visual Studio for WCF projects. Not sure if this is included in the previous WCF extensions toolset but it looks quite useful.
  • There is support for local data caching using the SCCE-based local data cache. This is intended to help provide a standard solution for applications that may have infrequent access to a network. Tony demonstrated how to setup the wizard driven cache and then showed an app connecting and disconnecting to prove that the local cache would synchronize properly.


"Project 2007 Timesheets and Reporting" was the next seminar on the list. It covered the various options for using Project 2007 and Project Server 2007 for creating timesheets, assigning and tracking human resources, and presenting and reporting on this information. 

As expected, the new version of Project Server 2007 uses WSS 3 project sites to host Project actions, plans, and reports.

When an employee logs in to the Project Timesheet site, he is presented with a series of links, grouped into "Tasks", "Timesheets", "Approvals", "Status Reports", and "Issues and Risks".

Each employee has a "My Timesheets" view, which seems to be a list using a custom content type. The content type allows him to create a new Timesheet entry, and the items in the entry can be divided up into project- and non project-related tasks (for administration, research and development, or other purposes). There is also the obvious notion of billable and non-billable hours.

Project Managers and Timesheet Managers get top-level approval and rollups of all the timesheets and project plans, as you would expect from such a tool.

Managers can also view predictions of future timesheet entries, for instance when an employee submits a request for leave. On the My Timesheets screen there is a handy little icon that shows whether a vacation request has been approved or not (it looks like a KPI).


Next I attended a seminar called "Web 2.0 Programming", by Microsoft's Director of Web 2.0, Michael Platt. I found this to be so insightful and it dovetails so well with a couple of other seminars that I am going to blog about those separately.


After the last seminar of the day (using Dynamics CRM 4 for handling events - basically hooking CRM up into your business platforms) I headed off to the K2 Underground Party, hosted at Onyx just down the road from the Conference Centre.

At the party I finally had a chance to meet some of the people whose names I have heard or blogs I enjoy reading. I met Jey Srikantha and Chris O'Connor, aka "Grumpy Wookie" (who turns out to be a fellow Ontarian by birth!) , and I also met Anthony Petro who I had previously interviewed and Chris who worked on programming K2 against the SharePoint object model (I'm sure he enjoyed it!).

Some of my colleagues from Dimension Data - Jeremy Hancock, Ben Johnston, and Alan Coulter - were also there, and we caught up with some former team members, amongst them K2 Insider Bruce Swiegers (who blogs at http://k2insider.blogspot.com) and Ian Newark, who is a Business Development Manager at K2 now.

It was a good group of people and lots of fun. Best of luck to K2 with their product; it seems like they are seeing a lot of interest from the dev community so far. I even saw one Tech.Ed attendee covered head to toe with K2 Underground stickers - I guess you could say he is committed (or should be)!

Saturday, August 04, 2007

Currently Team Foundation Server uses Windows SharePoint Services sites to host project sites. This provides a useful central point to collect development documentation, workspaces, meeting spaces, and allows people without TFS to at least view the related information (although now there is an additional option, the very cool TeamPlain Web Access for Team System, which is free for all licensed TFS users!).



Unfortunately the current version only supports WSS 2.0 sites. There are some work arounds, but they can be flaky.

The good news is that TFS 2008 will support WSS 3 sites - Abdelhamid Abdou talks about this on his blog in this posting. Better yet, when you setup TFS you are now given the choice to have the SharePoint integration on the same box, or point to an existing SharePoint application on another server.

To learn more about the current workaround, you can read Brian Keller's blog posting here. Brian is a Technical Evangelist for TFS and makes it clear that any modifications to current TFS installations to make them work with WSS 3 are hacks and may not be supported. He does point to Mike Glaser who blogged extensively about how to upgrade to WSS 3 sites.

Incidentally, as of July 30, Readify in Australia has released TFS hosting "in the cloud"! This could be very huge for small ISVs or consultants that want to have enterprise development tools without the upfront expense or maintenance effort! The service starts at $995 AUD a month and more info can be found at http://www.tfsnow.com/.

Sunday, July 29, 2007

Billion Dollar Bet

At its 2007 Financial Analyst Meeting on July 26, Microsoft announced that revenue for Microsoft Office SharePoint Server 2007 surpassed $800 M US in fiscal year 2007. This is a growth rate of over 35% from last year.

This success appears to be floating the Microsoft Business Division's bottom line, which increased its revenue by nearly $1.5 billion over the last quarter. The Q4 FY2007 earnings are detailed on Microsoft's site.

There's more information on CNN Money here.

I particularly like this quote taken from Todd Bishop's Blog, at the Seattle Post-Intelligencer website:

The company says the trend puts SharePoint on track to become a billion-dollar product, based on annual revenue.

Something worth noting is that these figures can't take account of Windows SharePoint Services 3.0 adoption, which is technically "free" on a licensed Windows Server 2003 installation. I've seen many organizations that are building solutions on top of WSS and won't count directly as generating SharePoint revenue.

However, each successful WSS project is a factor in purchasing and maintaining Office and Windows Server licenses and I feel these projects are just as key to Microsoft's SharePoint platform roadmap as fully fledged MOSS installations are.

Anecdotally, apart from VMWare, I can't ever recall seeing such a rapid take-up and so much enthusiasm for an enterprise product. I think the SharePoint numbers would be even higher, but one of the things slowing adoption is the need for many companies to address their internal business processes and infrastructure, something which they recognize might be lagging, and which a proper SharePoint implementation seems to act as a catalyst for.

Increasingly, standardizing on the SharePoint platform looks like a good bet.