ClearPeople: Microsoft Business-Critical SharePoint Partners

Check out the benefits of implementing a Business-Critical SharePoint solution in your business.

http://youtu.be/2V7hs-nB8uw

Learn more at www.clearpeople.com/bcsp

Business Intelligence Event: Thursday April 18th

Microsoft and ClearPeople are proud to co-present this upcoming seminar on Business Intelligence at Microsoft’s office at Cardinal Place in London on Thursday April 18th from 9:30am - 1pm.

  • Learn how to use BI on SharePoint 2013 in the Cloud using Windows Azure.
  • See a live demo of SharePoint 2013 PowerView in Azure IaaS using AdventureWorks and Power Pivot in Excel 2013.
  • Hear how SEGA has implemented BI into their organisation and are now reaping the benefits.
  • Achieve the full potential of your numerous line-of-business systems and learn how to use SharePoint as a central hub to manage them all.
  • We will find ways for your company to increase profitability and increase efficiency in these challenging times.
  • We guarantee that you will learn something new.
  • Quiz Microsoft BIS, SQL and SharePoint experts with any questions you may have.
  • Network with like-minded industry professionals and ClearPeople’s BI & SQL experts
  • It is free to attend.
  • You’ll get a free breakfast - score!
  • And most importantly - people love our events! Don’t just take our word for it; check out some comment from previous attendees here

For those who attended our last event, you’ll know how quickly these seminars fill up. 

Space is limited, so please register now to secure your place.

Please visit our website for more information: www.clearpeople.com/events 

Testing Mobile Websites

When we start to plan for a mobile project here at ClearPeople, some of the key questions we ask ourselves are: ‘How do we test the mobile website?’ and ‘How many new devices do we need to test on??’ 

The first thing that we do is some quick market research - are there any new devices on the market since our last deployment? Have there been any operating system updates that we should be aware of? Next we select key devices for the project; then find/purchase the tools that will help us to deliver a quality mobile project.

There are three primary testing platforms that we use for mobile project testing:

  • desktop browsers
  • emulators or simulators
  • actual devices

Of course, we would recommend to test on actual hardware devices in all cases, but there are so many these days - with new models appearing every other week. A key item for business owners to remember here is that testing on an actual device will always provide the most accurate results. However it would be a very costly exercise. You can borrow devices from your colleagues (as I’m sure you know, all developers love smartphones) or you can try to convince the company to purchase the most popular new mobile devices when they become available (for the purposes of work, of course!). 

However, don’t fret - there are many alternatives to hording your cupboards with dozens of smartphones (which of course are outdated after six months).

Believe it or not, your standard desktop web browsers can be very useful when developing mobile websites. They are free and require no special hardware, and can also be automated using tools such as Telerik Test Studio or Visual Test Studio. Desktop browsers can easily be resized to the average smartphone screen and can be used with developer tools (such as ‘Charles’ on Mac or ‘Fiddler’ on .NET) to monitor performance issues or debug network traffic.

For example, I can use the ‘Chrome’ web browser to test a smartphone application:

Go to: Internet Options -> Tools -> Developer’s Tools.

The ‘Developers Tools’ window in Chrome has many tools to help you find detailed information about any page you open in the browser. Using the ‘Elements’ panel you can view the source HTML or CSS styles and manipulate each of them without changing the live website.

Click on the ‘Settings’ icon in the right bottom corner -> Overrides

image

In the drop down menu you can select the mobile device that you want to use -  there is an extensive list including all the popular makes of iPhone, iPad, Android, BlackBerry, etc.

You can also change screen resolution and then begin your test…

image

The next option is testing on emulators or simulators. These are often free to download and can be very helpful with your test routine.

An emulator is a piece of software “that translates compiled code from an original architecture to the platform where it is running”. Emulators don’t simply simulate a device’s operating system, they provide a means to run a virtual version of it on your computer. Emulators can reflect the true web browser environment, so they are very good for testing and debugging visual design. Unfortunately most automation tools do not work with emulators and must be used manually.

Simulators are designed to provide a reasonable facsimile of the experience on a device.

Most of them are free of charge but, like emulators, will never reflect differences in device hardware, performance, network speed etc. Simulators cannot emulate the actual system, so they cannot be relied on to test or debug front-end design or functionality.

A very useful list of the emulators can be found at: http://www.mobilexweb.com/emulators

A couple of my personal favourites are:

Opera Mobile Emulator: http://www.opera.com/developer/tools/mobile/

This is the desktop version of the smart phone browser. It’s very simple to install and renders pages as close as you can get to how it would look on a real phone.

image

image

Windows Phone  SDK 7.1 emulator: http://www.microsoft.com/en-us/download/details.aspx?id=27570

image

If you have any questions, please feel free to leave a comment in the box below.

Mariola Dybas

ClearPeople QA Tester

Is Your Website Flash Content Ready for IE10?

With the release of Windows 8 nearing and the full release of Internet Explorer 10 imminent, Microsoft has released some information for developers regarding the use of Adobe Flash Player on websites when viewed in the new IE10 desktop and metro versions.

Windows 8 and IE 10 will use the same integrated Flash Player - which means users will not need to download and install the Flash Player from Adobe before being able to view content. However, developers will need to make some adjustments to existing pages to ensure the Flash based content on these pages will continue to function in IE10. Sites requiring additional plug-ins can use an HTTP header or META tag to IE10 switch from the IE metro version to the desktop version.

Additionally, the Compatibility View (CV) can specify whether a site needs to run in the desktop version and prompt the user to switch if required.

However, only sites that are on the CV for Flash can play Flash content within IE10 in the new Windows UI.

We highly recommend that developers check out the full post on Microsoft’s IE Developer Network with tips for developers and content publishers to ensure that your site is compliant with the new versions of IE and Windows ready for their release.

 

ClearPeople Free Event: Business-Critical SharePoint - December 4, 2012

ClearPeople SharePoint Event - December 4, 2012

How to save money and increase efficiency with your business-critical SharePoint applications - plus get a glimpse of SharePoint 2013 and much more!

Register now and join us at Microsoft’s office on Tuesday December 4 to take part in this exciting event.

Why attend this ClearPeople SharePoint event?
“Why should I spend the morning away from my desk” I hear your ask… Good question. In these challenging times we know how difficult it is spend time out of the office to attend events such as this. And we completely understand. You are time-poor and need to focus on your business, to generate revenue, and to service your customers.

So why should you invest the time to attend our exciting SharePoint event? Let me spell it out for you in some quick, punchy bullet points…

  • Achieve the full potential of you numerous line-of-business systems and learn how to use SharePoint as a central hub to manage them all.
  • See a real life example of our latest project delivery for The Crown Estate using SharePoint and Azure.
  • Be one of the first to see a preview of SharePoint 2013.
  • We guarantee that you will learn something new.
  • We will find ways for your company to increase profitability and increase efficiency in these challenging times.
  • Quiz a Microsoft BIS and SharePoint expert with any questions you may have.
  • Network with likeminded industry professionals and ClearPeople’s SharePoint experts.
  • You’ll get a free breakfast – score!
  • And most importantly - people love our events! Don’t just take our word for it; check out some comments from previous attendees here

The event is free to attend, but places are limited - so sign up now!

Who should attend?
This specialised SharePoint event is designed for IT directors, IT professionals and business decision makers who want to increase ROI and efficiency in their business.

Event Agenda:
09:00 - 09:30 - Registration
09:30 - 10:00 - Introduction: Are all Portals Useless?
10:00 - 10:30 – Business-Critical SharePoint: How the Pieces Fit Together
10:30 - 11:15 - Breakfast/Networking
11:15 - 12:00 - Client Case Study – The Crown Estate
12:00 - 12:30 - Getting a glimpse of SharePoint 2013
12:30 - 12:45 - Q&A with a Microsoft Representative
12:45 - 13:00 - Summary and Close

Event Details:
Where: Microsoft Office, 100 Victoria Street, London, SW1E 5JD. See Map (Nearest Tube Station: Victoria)
Date:
Tuesday, December 4, 2012
Time:
9:00am - 1:00pm
Cost:
Free of charge; includes free breakfast
RSVP:
November 20, 2012

Have any questions?
If you would like some more information on this event, or feel like talking to one of ClearPeople’s SharePoint experts, please give us a call on 020 3376 9500 or drop us a line on events@clearpeople.com

Register now to book your place at this free event. Spaces are limited, so get in quick to avoid disappointment.

ClearPeople Business-Critical SharePoint partner video

A little bit of shameless self-promotion here, but we felt the need to spread the love and disperse this snazzy video clip outlining the benefits ClearPeople offer as a Microsoft Business-Critical SharePoint partner. Enjoy!

http://youtu.be/6UCRln7AwxU 

Sitecore Advanced System Reporter

I recently found a good, open source reporting framework, ready to install on the Sitecore Shared Source Modules, called Advanced System Reporter

ASR is a framework which allows creating many types of reports in a very short time, such as:

  • Get the Alias of an Item
  • Audit users Actions
  • Find broken links
  • Find broken link in publishable items
  • Expired media items
  • Item History
  • Items with invalid names
  • Items with security for an account
  • Links
  • Locked Items
  • Login errors
  • Logged In users
  • Multiple Versions
  • My owned Items
  • Not recently modified
  • Orphaned media assets
  • Owners of items
  • Workflow history
  • Items recently modified
  • Search with regular Expression (regex)
  • Renderings
  • Stale workflow items (Items in a workflow status for a long time)
  • Validation Errors

I will now explain how this module works, how to configure a scheduled task and how to send an email showing the list of items that have been modified during the past week.

Install the module

You’ll find a ready-to-use Sitecore module by clicking the link above. You just need to run the installation Wizard (on Sitecore Desktop), upload the zip file and follow the wizard to the end. Keep in mind that according to the module’s documentation, this module needs Sitecore CMS V6.0, v.6.4.1, or v.6.5


Setup and test

By default, you’ll find a link to the application under main menu à All Applications à Reporting Tools.

This tool lets you configure, run, export and save previously generated reports. We’re going to use the report “Recently modified”, so let’s click on the Open button (upper left corner) and select the appropriate item.

We have to choose the root item, usually “content\home”, because we want to get the modified items. Now just press “Run” on the top menu bar and there is our list of modified items. If you’re an admin, it is possible to export all that valuable information as a .csv, .xls (or html file, but with a Microsoft Excel extension), or .xml by clicking on the button “Export”.

Once our report is ready, we only have to save it, so it can be run selecting the parameters manually. But what happens behind the scenes? By default, all the preconfigured items are stored under “/sitecore/system/Modules/ASR/Reports”. Now, the application has saved our “report” as a child of the “/sitecore/system/Modules/ASR/Reports/Recently Modified”, using the template “/sitecore/templates/System/ASR/Saved Report”. So, what we’ve saved is not a report, just a “report parameter set” associated to a report.

Set up the task to be done by the scheduler

In order to have the schedule execute the task, we need a specific item. The ASR comes with a template to simplify this task under “/sitecore/templates/System/ASR/Report Email Task”.

So, let’s select the commands folder under “/sitecore/system/Tasks”, right click and “Insert à Insert from template”, on the next window, we have to choose the mentioned item “/sitecore/templates/System/ASR/Report Email Task”. We must fill the fields under the “report Email section”.

  • Active: If the report must be executed.
  • To, Subject and text: The properties of the email to be sent.
  • Send if empty: By default, the application won’t send the email, if after running the report, it returns 0 items. If you want to send the email anyway, mark this option.
  • Report:  Here we can choose all the reports we need on the same email. Notice, it will only run “Saved Reports” because you can’t run reports without parameters.

Save it and the task is ready.

Schedule the task

The specific ASR steps are done. Now we only need to set up the default Sitecore Schedule Item. Select the “Schedules” folder under “/sitecore/system/Tasks/Schedules”, right click à Insert à Insert Schedule.

On the Command field, choose the command created in the previous step.

On the Schedule field, we set up when to run the command. This field is a bit strange: I will explain it with an example. In the value ||127|23:59:59 each “|”, is a separator; the first value, is blank and would normally be the first day to run the task in yyyyMMdd format. The second is the last day; again, this is blank because it means the task will be executed indefinitely. The third one is the day of the week, 127 means every day. Why? 1=Sunday, 2=Monday, 4=Tuesday, 8=Wednesday, 16=Thursday, 32=Friday, and 64=Saturday, so everyday =1+2+4+8+16+32+64=127, and the fourth parameter is the minimum interval between invocations. 23:59:59 means once a day. Obviously, the report will not be executed at exactly the same time every day, but this is the best approach. If we try to use 24:00:00, the system will translate it to 00:00:00, so the task will be executed every second. That’s it; Sitecore will run the report and send the result via email, once a day.

You can read more about scheduling a task on Sitecore here.

Advanced configuration

At this point, you may have realised that the report will send you the email with the items modified since any given day we chose, but what if we want the items modified yesterday or last week? Well, this is possible too.

We have to modify the “Saved report”, so let’s go to: “/sitecore/system/Modules/ASR/Reports/Recently Modified” and click on the item created in step 3. There’s only one field, with all the parameters of the report separated by the character “^”. Find the parameter AgeISO and replace the value with one of these variables:

  • $sc_lastyear
  • $sc_lastweek
  • $sc_lastmonth
  • $sc_yesterday
  • $sc_today
  • $sc_now


A framework, why?

The application comes with 23 preconfigured reports, but we can create as many records as we want, adding filters, parameters, scanners, viewers, etc., so we have the tools to easily create our own custom report. How do you do this? Well, maybe this is for another blog post.

Some reports are not working: why?

First, check your logs and look for something like “WARN  ASR: cannot assign value to property…”. If you find this error you’re lucky since these errors are easy to fix.

The module is using Sitecore utilities to set the attributes of the different configuration items as filters, scanners, etc. Those elements have the assembly, class and attributes, configured on Sitecore fields for this purpose.  

If you open the filter /sitecore/system/Modules/ASR/Configuration/Filters/Audit, you’ll see the field “Attributes”, with this value: “verb={Verb}|user={User}”. This means that the code is going to try to set the attribute “verb” and the attribute “user”, of one object of type “AuditFilter” (namespace: ASR.Reports.Logs), but if you check the code (Downloading the code, or with a decompiler like “Telerik just decompile”), you’ll see that this type has two properties: “Verb” and “User”. So, as you would expect the method “Sitecore.Reflection.ReflectionUtil.SetProperty” is not able to find the property “verb” and “user”.

The solution: edit the ‘attributes’ field in the sitecore item, change the first letter of the parameters to uppercase and save. Your report will now run properly.

Feel free to ask me any questions or leave me a comment in the box below.


Contributed by: Vicent Galiana

SharePoint 2007 error: “Form control does not have ControlMode set”

One of the most common tasks when branding a SharePoint installation is to generate a custom master page to be used in your freshly branded site. As a front end developer, in an attempt to simplify the master page, and further management and maintenance of the master page, you tend to (or at least, I tend to) try and remove all the unnecessary code and placeholders you’re not going to use. In a SharePoint master page this can be hundreds of lines!

However, if you start removing items from the Master Page you will soon learn that you cannot simply remove every item you don’t need, because SharePoint needs some of them! This becomes more complex when you test your new master page because you get a generic error page without any description of the problem! To make the error page more meaningful you need to modify the custom error configuration of your test web site to be able to find the error.

To do this Open the file web.config at “c:\Inetpub\wwwroot\wss\VirtualDirectories\yousitecollection”, and modify the line <customErrors mode=RemoteOnly /> and set the mode to Off. Now you’ll get the typical asp.net error page with a clear message complaining about some missing placeholder.

So what’s next? You add this placeholder again. After repeating these steps, you’ll find a page like this, explaining the minimal placeholders that your master page must have and some tricks to have a working SharePoint Site. So, what is the first lesson when modifying the Master Page? Do it the SharePoint way! This means don’t remove things you don’t know or don’t need, just hide them!

This is all relatively simple and there are lots of resources about this, so it’s “easy” to create an apparently working master page. My struggle began when I tested it with a “News archive” page, of a “News Site”, suddenly the error: Server error in “/” application Form control does not have ControlMode set

Photobucket

So what did I do? After rechecking all the possible placeholders, and my Master Page with the default master page and other minimal master pages I found on internet, I decided to trace the application to try to find the problem.

After a bit of work I finally found the line that was generating the error was the “<SharePoint:FormField runat=”server” id=”TitleField” FieldName=”Title” />” in the file C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\12\TEMPLATE\SiteTemplates\SPSNHOME. 

This is great to know but it is not of much use, as I know I shouldn’t modify the SharePoint installation pages, so… back to my master page. After many hours moving, removing, copying and comparing, I found the issue. So take this as lesson number 2: The order of the placeholders in the master page is important too!!!

In my master page, the placeholder for the “PlaceHolderPageTitleInTitleArea” was before the delegate control for the publishing Console (<SharePoint:DelegateControl runat=”server” ControlId=”PublishingConsole”/>). I just moved the PlaceHolderPageTitleInTitleArea placeholder after the console and problem solved!

After digging a bit more, I got to this conclusion: The formField (Microsoft.SharePoint.WebControls.FormField) control needs the ControlMode to know how to render the value of the field. You could set it in the same control but then, it would render always the same way, independently if the page is in edit mode, view mode, etc. All you have to do is let the publishing console set the ControlMode.

So when working with SharePoint Master Pages you have the following 3 constraints:

  1. You should not modify the SharePoint installation files.
  2. You can’t use the control SharePoint:FormField before the publishing console (Or something else has to set the ControlMode).
  3. You don’t know where SharePoint is using this control.

So this has led me to the following two conclusions: 

  1. When planning for a new Master Page, adapt your design to insert the publishing console as soon as possible.
  2. Move any placeholder that you’re not using explicitly to the end of the form inside a hidden panel.

Contributed by: Vicent Galiana

Testing the Search Function on websites

Software Testing is a process that involves making sure the client’s requirements are satisfied and that a fully functional solution is delivered. To ensure that your testing validates the solution is working correctly and meets specification, it is vital that you determine what functionality you want to test, and how the solution should function before you begin.

This is done through the use of test cases (or scenarios), so to get you started I would like to share with you some tips on what to think about when testing, using the example of a search tool.

Although there are differences between software platforms and different types of searches, fundamentally search works by having little “robots” that “crawl” over content in a system. When the robots find a piece of content they add details about it into an “Index”, which is kind of like a short hand summary of all the systems content. When you perform a search, the search engine then uses one of those famous algorithms that you hear about (For example: People say that Google’s Algorithm “Rules the Web”) to scan through the Index, and find the appropriate results. The results shown from the index then link to the real content.

So know this we need to identify what can be tested. The test cases depend on the documentation provided by the client and their requirements. The more situations you can think of, and the more tests you can run within your timeframe, add more value to your test plan.

Test Case / Scenario Examples:

Search Values:

  1.  Find out the minimum and maximum range of variables in the search query (how long can my test string be?
  2. Find out the depth of the search – does it search document titles?, for words inside document?, how does image search work? 
  3. Are there advanced search features like properties, where we can search by document or image type?
  4.  Does search does work if no keywords are entered?
  5. Test that search works for capital letters (is it case sensitive? Should it be?)
  6. Does search work for numbers?
  7. Should search work for special characters such as:
  8. If I just search for a symbol, do I get results? Are results impacted by using special characters (such as XOR approach)?


     {      [              (              ~             !              @            #             $              %            ^             &             *             `               |        \              :               ”              ;               ’               <             >             ?              ,               .               /              *             -        +             )              ]              }

     
  9. Do you have wildcard searching? Enter “a*” and ensure that the results display all characters starting with a.
  10. Try pressing “Enter” key instead of clicking “Search button”


Search Results (do the results reflect your search parameters?):

  1. Do you have phonetic searching? So if a keyword is typed incorrectly, then the relevant result message should be displayed. For example, if ?search !Func^tionality} is enteredinto the search box, the search functionality results should be displayed.
  2. How does navigating back and forward in a search impact the results? Does the page expire? Should it?
  3. Search response time should be checked, does this meet performance expectations?
  4. Do the search results look as expected? The specification states each search result should contain a link and a few lines containing the searched keywords and the link should navigate to the page where the keywords exist, do they look like that?
  5. Depending on the search tool, searched keyword should be highlighted in the search result page and also in the page where the keyword exists
  6. Check the total number of results that are displayed on the search result page, does this look correct?
  7. Do you have results refiners? Are the correct results refiners showing on the screen, when you use a search refiner, and the results refined correctly?


Advanced Tests:

  1. Search Security: Some content in the system may be hidden from users, but when they search can they see these items? Change the security settings on some content, see if it disappears from the search results.
  2. Search Indexing: The robots must find and index new content, how long is this supposed to take? Add a new item, see how long it takes before you find it in the search results!


Depending on your clients’ specification, this list can be even longer!

If you have any questions feel free to contact us or leave a comment in the box below.

Contributed by: Mariola Dybas

Sitecore Content Migration Considerations

Why move material across?

Yes getting all that work and precious IP across is a primary consideration in upgrading a website or moving to a new platform. It’s worth taking the time to consider the impact.

It is good to reflect on the value of the content that is being considered and whilst it’s increasingly common to allow external site visitors to rate and comment on pages this is rarely carried out by content authors or reviewers in a CMS environment. Consequently powerful images and informative articles can get lost amongst outdated or largely irrelevant material.

So before work can begin it’s a good idea to get a sense of the scale of the project. This can be best done by carrying out a content audit.

The audit

Establishing the sheer volume of content is a primary consideration. Typically reports can be extracted to help. The understanding how much of the content can be automatically migrated through scripts will give an indication as to the amount of man hours required. A proof of concept is worth running at some stage.

Steps in an audit

Typically this is carried out by a number of complimentary approaches such as reviewing the page usage stats (if they are available), issuing content authors with a questionnaire, and lastly by taking content offline (albeit temporarily) until requests or searches are made for articles that feature the requested content (content should therefore still be made available for indexing and retrieving by the search engine for this agreed phase).

Agreeing the deadline for authors to recommend their content for migration is key. Time needs to be allowed for a ‘just remembered’ window whilst not impeding the need to begin the content mapping to the new site.

Typically, on an intranet for example, people can become quite precious about their content or ‘mysite’ but the business overhead and their limited value means that these may be ideal candidates to be retired and supporting statistics and surveys will help the business case for doing so.  

Note: The content migration and specifically the audit phase allows a review not just of the quantity but (if the schedule permits it) a worthwhile review of the quality.

Retention Schedules

In the wonderful world of Sitecore it is very straightforward to set up retentions schedules that enforce an automated set of business rules.

For example we like to assign retention policies to content by ‘type’ so that News Articles are reviewed after a designated period by the author. Since Sitecore supports multiple publishing versions, whereby content can be queued, this can help ensure that ‘smart’ information that has a value is retained on the live site whilst other content can be retired. Specific schedules can also be set up for certain content areas of the site, for example banners on the homepage may be changed or refreshed to keep the site lively.

A retention schedule may also have a direct relationship with broader business policies regarding information retention such as records management policies.

Information Architecture

The ‘new’ content that has been agreed to be moved across needs to be assigned to both a content type, and templates or view, and subsequently a site publishing location. Automated scripts can help with a preliminary intelligent ‘dump’ but a separate exercise to ensure the content material resides in the correct architecture is vital.

Systems such as Sitecore make this easier by separating the content from the final publishing location – effectively making the whole task easier to segment.

Contributed by: David Gunnell