New version of PivotPoint web part for SharePoint – v2.2.3

Date:May 15th, 2012 Author: Category: General Comments:0 ;

A new version of our PivotPoint web part for SharePoint (v2.2.3) is ready.

This new version improves performance for large lists, corrects bugs when you have angled brackets (“<” and “>”) in your row or columns, adds support for site column lookups and a 2 new features.

Sort by Title or Total

The new version of PivotPoint allows you to sort by both the Title and Total rows, either ascending or descending.

Title and Total cells

For example, instead of sorting alphabetically by product you can sort by their total sales – showing your best performing products at the top of the table or left of the chart.

PivotPoint showing all columns

More details are in the online manual.

Show Top N

In combination with sorting by the Total you can choose to show the Top N columns or rows.

For example given the following data the vast majority of revenue comes from 2 products (Bottle-o-matic and Can-o-Matic) and we have a ‘Long Tail’ of other products.

We can choose to only display the top 2 columns (products) and optionally group all the other sales into “Other”

PivotPoint for SharePoint showing top 2 columns

 More details are in the online manual.

You can download and upgrade to the latest version without losing any settings.

10 things developers should know about SharePoint

Date:May 4th, 2012 Author: Tags: , , , ,
Category: Community, General, SharePoint Development, Training Comments:0 ;

Many developers walk into the world of SharePoint unaware of the strange and interesting journey of discovery they’re about to begin.

It’s often difficult to know where to being, so here’s the top 10 most useful things I’ve learned since I joined Pentalogic back in 2010.

Pitfalls

1. Know your Editions
2. Don’t even look at the database
3. Get to know the front-end
4. Dispose of your disposables

Building your Knowledge

5. Learn the language
6. Get a good book
7. Love the MSDN documentation
8. Find a SharePoint community that suits you

General advice

9. Learn to live with CAML
10. Remember that SharePoint is enormous
Conclusion


1. Know your Editions

SharePoint comes in many flavours, each of which has it’s own features and shortcomings. Here’s a quick run down of the notable versions:

Release Cheap Expensive MS Hosted
2007 WSS3 MOSS BPOS
2010 Foundation Standard/Enterprise SharePoint Online
/ Office 365

It’s useful to get to know these for when you’re searching for solutions, as you’ll sometimes come across those that are edition specific (e.g. the Standard Edition’s ContentIterator class for querying large lists).

There are few things more frustrating than finding the perfect solution, and then discovering you have the wrong Edition.


2. Don’t even look at the database

To those new to SharePoint this is entirely baffling: Why wouldn’t you want to get data from the database? There are two good reasons for this:

a) Microsoft is very touchy about their database. They will not support any installation with software on it that modifies the SharePoint database.

b) The structure will give you nightmares. At some point in almost every database developer’s career they say: “Why don’t we abstract the table structure, and just have one massive generic table of text data?”

They’re then hit in the head by whatever small throwable object happened to be nearby, and their colleagues point out that although it would be very flexible, it would also be fantastically slow and unwieldy.

Unfortunately either the SharePoint team operated a clean desk policy, or they put an extraordinary value on flexibility, and the result is lurking in the darkness of the SharePoint database.


3. Get to know the front-end

It’s very tempting to dive straight into the code side of things, but when you’re trying to orientate yourself in the API it helps to have a good understanding of what you’re looking at from the front-end.

It’ll also give you a good feel for the site’s design, and hence what sort of layout the users will expect to see.

Many of the actions you perform in code will correlate to actions in the front-end, as well as the structure.

For example, to find a particular list’s view in the front-end, you would:

  • Open the site using the URL
  • Open the sub site
  • Select the list
  • Select the view

The code version of which is very similar in structure and information needed:

    using (SPSite site = new SPSite(http://site))
     {
         using (SPWeb web = site.OpenWeb("subsite"))
         {
             SPList list = web.Lists["List name"];
             SPView view = list.Views["View name"];
         }
     }

4. Dispose of your disposables

Some SharePoint objects (in particular SPWeb and SPSite) won’t automatically dispose of themselves when they’re no longer used. If you’re unaware of this, then you may easily run into post-deployment problems caused by the ensuing memory leaks.

The code in the previous section shows one method of dealing with this problem, and here is Microsoft’s advice on the subject: Disposing Objects

Interestingly, you shouldn’t always dispose of these objects; for example you shouldn’t dispose of  SPContext.Current.Web. As a general rule of thumb:

If you made it, dispose of it. If you were given it, leave it.

5. Learn the language

There is a huge amount of SharePoint-specific terminology, and some of it can be inconsistent and often misleading. For example, a Site Collection is an SPSite object, but a Site is an SPWeb object.

Another example that caught me off guard at first was that there’s a difference between the Object Model (the server-side SharePoint API) and the Client Object Model (client-side API). Whereas I was under the impression that one was an abbreviated form of the other.

Microsoft has published an enormous glossary, which seems to cover quite a lot of it: Glossary for SharePoint 2010. Although as with any jargon or language, most of it is learned along the way.

6. Get a good book

A good reference guide is infinitely more useful than an enormous glossary when getting to know the components of SharePoint. It’s vitally important that you get an overview of all of these components, to avoid inadvertently reinventing the wheel.

There are two I can personally recommend (having read them both cover-to-cover):

Building the SharePoint User Experience (Furuknap): Written for 2007, but still covers the mainstay of SharePoint. An easy and interesting read: If you’re quickly bored by dry textbooks, then this is definitely the book for you.

Inside Microsoft SharePoint 2010 (Various): A good follow-on from Furuknap’s book. A solid foundation of 2010 knowledge, and a good one to refer to now and again. Don’t start with this book though, or you’ll find yourself climbing a pretty steep cliff.

As your SharePoint knowledge grows, revisiting the books can also be quite useful. Parts you may have glossed over previously will suddenly start to make more sense, and you may find some useful tips you missed first time.

7. Love the MSDN documentation

Having developed and worked with a great many third party APIs and interfaces in the past, I can say with considerable confidence that the MSDN documentation is phenomenal.

Every class, method, and property is documented. Even the most obscure properties have at least a placeholder page, which in itself offers more information than many specifications. On top of this is the community comments on each page add clarification and often links to useful related articles.

However, there are two minor shortcomings. The first is that the background documentation (such as “Disposing Objects” mentioned above) is usually painfully boring to read and often skims around subjects rather than getting to the point.

The second is that the CAML documentation is very bizarrely structured: Elements used for almost completed different things share the same page just because they have the same name. There is also missing documentation where the CAML is more obscure, such as the elements used in SPWeb.ProcessBatchData().

8. Find a SharePoint community that suits you

Sometimes no amount of Googling or searching of MSDN’s documentation will find you the answer to the problem that’s been bugging you. In these circumstances it’s good to have a community of like-minded SharePoint developers to help you with your problem.

Being an active member of a community will also help you to expand your knowledge of SharePoint in general.

Here are a couple of the more notable SharePoint developer-friendly communities:

I’ve previously discussed the differences between the two in the following article: SharePoint Questions: MSDN versus Stack Exchange

9. Learn to live with CAML

Collaborative Application Markup Language (CAML) is another example where flexibility seemed to take precedence over usability. In certain circumstances you’ll be forced to write unserializable and poorly validated XML to perform seemingly simple tasks, such as importing comparatively small quantities of data (a few thousand rows).

However, it isn’t all bad: As I mentioned, CAML does allow a great deal of flexibility, and also has very easily readable syntax. The core resource for CAML can be found here: Collaborative Application Markup Language Core Schemas

When querying data you can avoid CAML by using LINQ, which is reputedly faster and easier to use. If you have no fear of CAML (or are working on 2007), the following tool may be of use to you: U2U CAML Query Builder

P.S. While we’re talking about tools, I should mention the extensive and impressive list of SharePoint development tools found here: List of SharePoint 2007 development tools

10. Remember that SharePoint is enormous

It’s important to bear in mind that SharePoint is a mind bogglingly large framework, with dark corners that even the SharePoint Development Team themselves haven’t visited in years.

This is important because occasionally you’ll find an area that’s poorly documented or has strange known issues, and it helps to have a little perspective on the scale of the system you’re dealing with.

You also need to be aware that there’s an awful lot you don’t know, and some of which you may never know. Getting a good overview of the components is essential. I wouldn’t recommend designing a project to use a component (such as a Custom Field Type or Site Template) until you’ve at least made a prototype in that area; to appreciate the depth of what you’re tackling.

The variety of customizable components in SharePoint also means that there is almost always more than one solution to a problem, as you can see in some of my previous posts: How to do list highlighting in SharePoint

Conclusion

The first challenge in SharePoint is discovering the existence of all the things you don’t understand yet. Once you’ve got a vague idea of all the different components, then you can really start to learn what each is about.

To borrow Mr Rumsfeld’s turn of phrase: Once all your unknown unknowns are known unknowns, you can start learning known knowns.

SPrello – an open source UI for SharePoint 2010 inspired by trello.com

Date:February 14th, 2012 Author: Category: General Comments:0 ;

Even with all the fancy project management and collaboration tools available I bet most offices still rely to some extent on the more traditional methods – white boards and post it notes!

Last year Fog Creek Software released very swish app called Trello that aims to move these post-it notes into the 21st century.

“Trello is an online collaboration tool that organizes projects into boards. In one glance, Trello tells you what’s being worked on, who’s working on what, and where something is in a process.”

As we use SharePoint for much of our day to day collaboration (no surprise there) I wondered if a similar interface could be made for SharePoint?

Hence SPrello was born. It’s pretty basic (at the moment) and will likely never have the real time features of Trello but I hope it can be useful and as it’s an open source project you can adapt and build upon it to fit your requirements.

It’s been released as an open source project on Codeplex http://sprello.codeplex.com

  • SharePoint 2010 sandbox web part
  • EMCAScript Client Object Modell
  • JQuery/JQueryUI libraries

If you find it useful please come back here and let us know how you’re using it!

SharePoint TeamTime 1.3: Unlocking the Toolbox

Date:February 8th, 2012 Author: Tags: , , , ,
Category: SharePoint TeamTime Comments:0 ;


SharePoint TeamTime (our time tracking software for SharePoint) has been upgraded with shiny new extensibility features, to make integrating it into your organisation even more seamless:

  • Get raw timesheet data
  • Import and export Projects and Tasks
  • View Approval logs
  • Attach workflows

All you have to do to install or upgrade is download and run the new installer, which will automatically upgrade any existing sites:

SharePoint TeamTime Download

What’s in the upgrade

Access to the lists used in the internal workings of TeamTime. Below is a short description of each list. More information is available on the Extensibility Manual Page

Timesheets List

This list is a read-only copy of the main Timesheet list, which allows you direct access to the data your users record. Once a timesheet is approved, its entries will be copied across to this list.

This allows you to generate your own custom reporting and to integrate TeamTime’s data into external applications.

Project and Task lists

You can now view and edit the Project and Task lists directly. Using the Datasheet view on these lists will allow you to bulk import your existing Projects and Tasks, and to quickly edit or extract data.

These lists can also be used with third party list synchronisation software, to keep TeamTime’s data in line with your data in lists elsewhere. Or alternatively workflows can be attached to these lists, and used to push changes elsewhere.

Approvals list

Now you can see who’s approving what and when; especially useful when self-approval is enabled.

You could also attach a workflow to this list to perform actions on approval: For example, letting users know when their timesheets have been approved.

Free HTML Calculated Column for SharePoint

Date:January 11th, 2012 Author: Tags: , , , ,
Category: Calculated Columns, Highlighter, SharePoint HTML Calculated Column Comments:0 ;

logo-wordy

A free calculated column for SharePoint 2007 and 2010 that allows you to display HTML: SharePoint HTML Calculated Column

html-formula2

Why did you make this?

I spent a long time working on SharePoint Highlighter, and then later unsuccessfully trying to make a [Today] Calculated Column. During both these projects we kept coming back to this glaring hole in SharePoint: You can’t use HTML in a calculated column.

After unsuccessfully looking for open source projects (or even commercial alternatives) for some time, the only solution I could find was Christophe’s JavaScript workaround using a normal calculated column and a Content Editor Web Part. A nice solution, but unfortunately not without its drawbacks.

So when it came to deciding what I wanted to do in my 10% time, the answer was clear.

Having listened to me rant, rave, swear, and finally give up and denounce all Custom Field Type development (at least once a week during Highlighter, and several times during the [Today] incident), Ryan’s reaction to my choice of project was a typically understated “I’m… surprised?”.

So during the TeamTime project I spent my Friday afternoons creating the first of hopefully many pet projects from us at Pentalogic: SharePoint HTML Calculated Column

htmlccss

How is this different to Christophe’s solution?

Using the SharePoint HTML Calculated Column avoids the need to add Content Editor Web Parts (containing JavaScript) to every page you want the HTML to be displayed on.

Adding the CEWPs can be a bit of a chore in some cases, and are vulnerable to being accidentally broken by end users editing the pages. They can also be lost on 2007 to 2010 upgrades.

However, HTMLCC requires that a System Administrator install it on the SharePoint server; which in many organisations is a real pain in the ears. Whereas Christophe’s solution can be implemented by most power users.

Isn’t this the same as Highlighter?

SharePoint Highlighter offers quite a lot more than this solution on it’s own. I won’t go into enormous detail, but here’s a sample of what Highlighter offers over the HTML Calculated Column:

  • Row highlighting
  • Countdowns
  • Conditional formatting
  • Built-in icon library

Most notably, all of this is offered through a polished and intuitive interface.

Finally

So, you get to plug the hole in SharePoint that’s bothered so many people over so much time, and we get to plug SharePoint Highlighter whenever we mention it. Everybody’s happy. Smile

Date Range filtering with the new version of FilterPoint, PivotPoint and Planner.

Date:December 13th, 2011 Author: Tags: , , , ,
Category: Calculated Columns, Filter, FilterPoint Web Part, PivotPoint Web Part, SharePoint Planner, SharePoint webparts Comments:0 ;

FilterPoint has had the ability to send Date Filters but a common request has been Date Ranges – like showing everything this month, last year or between two arbitrary dates.

FilterPoint - Date Range Filtering

The good news is that we’ve added this in to FilterPoint as of version 1.2

The bad news is that this will only work with our other SharePoint products – Planner and PivotPoint – it won’t work with SharePoints built in List View web part (LVWP).

That’s disappointing!

Yes it is – it’s just a limitation of SharePoints filtering I am afraid, but all is not lost!

This page shows how you can do things like Month filtering using calculated columns and this blog article shows how you can setup “Current Month/Previous Month” views using nothing more than Calculated Columns and View filters.

Upgrading

As always you can upgrade without losing any settings by downloading and running the latest trial version and selecting “Upgrade” when prompted (don’t forget you need the a recent version of Planner (v2.6.9+) and PivotPoint (2.2.0+) to accept date range filters.

SharePoint TeamTime is out now!

Date:December 12th, 2011 Author: Tags: , , , ,
Category: SharePoint TeamTime, SharePoint Timesheets Comments:0 ;

teamtime-big-noshadow

Track and analyze your team’s time with our newest product: SharePoint TeamTime! A ready-to-use timesheet site template for SharePoint 2007 and 2010.

What’s so great about TeamTime you ask? Well let me tell you:

Log your time your way

Want to log your time as you work? Then simply punch in on your personal dashboard to begin the timer:

TeamTime Punchcard

Want to write up your timesheets when it’s convenient for you? Your dashboard has this covered too:

TeamTime Timesheet

Make those numbers work for youTeamTime Analysis

Logging the time is all well and good, but what we really want is to see what all that data adds up to. Don’t waste time working for the numbers; make the numbers work for you.

Using the Analysis page you can drill down to the data you want, and view read-made summaries and graphs.

If you still want more from your numbers, pick the data you want from the Reporting page and export it straight to Excel.

Need more?

  • Per-server licensing: No wasting time trying to license and set up every user; buy it once and forget licensing ever happened.
  • Take the tour: Watch our TeamTime Demo; see if you can count how many times the word ‘time’ is used. It’s a lot, trust me.
  • Free 30 day trial: Download and try it out!

SharePoint Highlighter v1.5: If wishes were trees

Date:November 22nd, 2011 Author: Tags: , , ,
Category: Highlighter Comments:0 ;

Since SharePoint Highlighter’s release in May we’ve had some great suggestions and requests for features and improvements; one of the more surprising was the request for performance enhancements for those with 20 or more Highlighter columns in a view (and really big screens, no doubt).

Although we’ve added odds and ends during other projects, the Highlighter wishlist has steadily grown; fed by the suggestions from its growing user base and our own drive for continuous improvement.

So while TeamTime was being tested and prepared for beta, we stroked our collective beards (it is Movember after all) and decided to clear it down. Here are some highlights:

  • Row highlighting columns hide themselves
  • Highlighter displays on View Item form
  • Lookup columns now supported

Hidden Row Highlighting Columns

If you have a Highlighter column which displays Row Highlighting you’ll no doubt have noticed that the empty Highlighter column has to be visible on the page on order for the highlighting to work:

v1_5_rh_a

In Highlighter v1.5 the column will automatically hide itself from the page if it is only used for Row Highlighting:

v1_5_rh_b

View Item Form Display

Previously Highlighter columns would not display on the View Item form (or customized versions of it):

v1_5_df_a

Highlighter columns will now display on this form, with the exception of those used only for row highlighting (which will be hidden entirely):

v1_5_df_b

Lookup Columns

You can now use Lookups as source columns, which act in much the same way as Choice columns:

v1_5_lu

Upgrading

Please see the manual for instructions on downloading and upgrading to the latest version of SharePoint Highlighter.

What’s on your wishlist?

The more suggestions we have the better we can make our products. Every feature request is reviewed and added to the product’s wishlist. Once a wishlist hits a certain size, the most popular (and/or the best ideas) are rounded up and herded into the next version.

Contact us at support@pentalogic.net and tell us what’s on your wishlist!

SharePoint TeamTime: It’s Time for Beta!

Date:November 16th, 2011 Author: Tags: , , , , , , ,
Category: SharePoint TeamTime, SharePoint Timesheets Comments:1 ;

teamtime-big-noshadowWe have started beta testing our newest product SharePoint TeamTime and we expect it to be finished in the next couple of weeks!

Sign me up! Wait… what is it again?

TeamTime is a time tracking site template for SharePoint. Users track their time by entering it into a timesheet (a.k.a. timecard) or by punching in and out of tasks.

You can then get an overview of everyone’s time logged using our custom reporting tool and embedded versions of PivotPoint and FilterPoint that come preconfigured in the site.

Tell me more!

They say a picture is worth a thousand words, so here’s a glimpse of what’s inside:

‘My Dashboard’

tt_mydashboard

‘Analysis by Week’

tt_analysis

To look in more detail at how it works (or just to see more pictures), you can have a glance at our manual: SharePoint TeamTime manual.

If you want to be notified when its released then signup here.

Whats a Beta test and can I help?

Its the final stage in testing a software product before its released into the real world. All the major bugs should have been squashed but there may be some minor problems left. The idea is to get broad feedback from ‘real’ users that will help pick up problems, omissions or things that are just a little confusing that you wouldn’t find otherwise.

Beta testing isn’t for everyone – these are the things you should bear in mind :-

  • You need to be reasonably proficient with SharePoint.
  • You will need an in-house deployment of SharePoint 2010 or 2007 – its not suitable for BPOS/Office 365
  • You should have a “non-production” environment to test in.
  • You will need to have some time free to give it a good test and provide feedback.

If you would like to help us Beta test this then please e-mail us: support@pentalogic.net

SharePoint Timesheets – What are your options? Part 3: Free Solutions

Date:November 10th, 2011 Author: Tags: , , , ,
Category: General, SharePoint TeamTime, SharePoint Timesheets Comments:2 ;

Following on from Clare’s previous two posts on Native SharePoint Timesheets and Plug-in one, I’ll be running you through the options for creating SharePoint Timesheets for free.

During the early development of SharePoint TeamTime we looked at our potential competition, including the free alternatives. Of those we found, the following three were the most notable:

  • Fab 40 – Timecard Management: One of the famous Fab 40 templates (2007 only)
  • Built-in Timecard List: A little known built-in Timecard list (2010 only)
  • Open Source Project: Paul Beck has kindly published an open source solution (2010 only)

Fab 40 – Timecard Management

The Timecard Management template was produced by Microsoft as a demonstration of the capabilities of WSS 3. In Microsoft’s own words:

The Timecard Management application template helps teams track hours spent working on various projects. The site enables team members to ‘punch in’ on a particular project and ‘punch out’ when they cease work. The system automatically generates the time worked by project, and can show managers who is working on a particular project…

This was one of the favorites out of all the templates we tried. In fact, the punching in and out functionality was a feature we emulated into TeamTime. I’d like to think of TeamTime as a spiritual successor to this template.

Built-in Timecard List

SharePoint 2010 has a built-in Timecard list, that is hidden from normal view for some reason. Although this is by no means a complete solution, it’s freely available to anyone able (or willing) to activate the feature and create it though SharePoint Designer 2010.

Laura Rogers has a very helpful walk-through for creating one of these lists: Out of the Box Timecard and Holiday Lists. Here is a description from her blog:

In SharePoint 2010, there’s a little-known built in feature.  There are list templates that can be used for time card tracking, with a holiday calendar that ties into the time card.

Open Source Project

Paul Beck has published a four part blog series on creating a Timesheet solution from scratch, entitled Timesheet solution for SharePoint 2010. He then went a step further and published his code to CodePlex for anyone to use. In his own words:

A common requirement on Intranets is to have a timesheet template on SharePoint.  There are solution for company timesheets.  I wanted to build a timesheet application that was scalable, reportable and friendly for SharePoint.

If you want to skip the source code, his third article in the series (Part 3 – Installation) has a link to the pre-built package.

This solution is slightly different from the others, as it stores its data in a separate SQL Server database; which may not be an option for everyone.

Lastly

I hope you’ve found our  SharePoint Timesheet series useful. If you know of any better alternatives, please let us know. We’re not afraid of a bit of competition. Winking smile