Some observations on the nopCommerce V3.4 upgrade

After nopCommerce announced they had released version 3.4 of their open source ecommerce platform in July, we were hopeful that the latest round of improvements would address the performance issues that were beginning to become more noticeable on larger sites.
Particularly those with over 3500 products, making use of multiple product attributes and grouped products running under v3.2.

If you have modified and extended the behaviour of nopCommerce through the development of plugins and you are considering upgrading from 3.2 to 3.4 then we have documented some of the issues we encountered, in the hope of helping others in a similar situation.


Read More »


Why your next site should be mobile first

Here at Performance Web, we have just completed our first site build using SASS. SASS is an amazing extension language for CSS that provides you with all sorts of useful functions, including variables, nesting and mixins (which are a bit like functions). In addition to SASS, we used a WordPress starter template: Bones. Bones is a well-written and extremely convenient starter template for WordPress. Some of its biggest features: a mobile-first approach to development and utilisation of SASS.

We loved the mobile-first approach. Here are three reasons why you should give it a chance:

 1. Get your priorities straight

It’s easy to spot a desktop-first site. Often, developers are asked to “make it responsive”, and they do. However, without careful planning it is very easy to change a few widths, hide a few divs, and irritate your customers. Although a nicely rendered site on a mobile is welcome by all, it’s very annoying when any useful information seems to have been hidden.

A good (bad) example of this is the Barclays site. The desktop site is what you expect – following familiar conventions and a reasonable amount of content. The mobile site doesn’t really give you much at all. In fact, it’s missing pretty much all useful information except contact details. You end up clicking around, realising there’s nothing there, and eventually opting for their very non-responsive desktop site. This ruins a Sunday evening browsing mortgage deals in the bath.

The Barclays desktop site. Not responsive, but fine if you’re viewing it on a desktop

The Barclays mobile site. Has some functionality, but nothing compared to the desktop site.

2. Mobile content cannot be an afterthought

If my dog had thumbs, he’d probably have a smartphone. Some stats compiled by Super Monitoring and displayed in this pretty info-graphic emphasise how important mobile marketing and commerce has become:

  • 50% of mobile web users primarily access the web via their mobile
  • 80% of consumers plan to buy something on their mobile in the next 12 months
  • 57% of potential customers won’t recommend you to their mates if your mobile site is non-existent/rubbish

They even go on to claim that “not having a mobile optimised website is like closing your store one day each week“. Not good.

3. Your website will be cooler

A problem familiar to all web developers is old browsers – some being more problematic than others. It is harder to predict the capabilities of the end user’s browser when developing for desktop, which can limit innovation. Mobile, on the other hand, is on a stronger foot. Mobile browsers tend to be modern, and the biggest mobile platforms offer additional functionality: location services, advanced touch controls and accelerometer input to name a few.

These functions can be leveraged in mobile development and then gracefully degraded as you scale up to desktop. A common example is the branch finder – you’ll often see mobile sites that ask to use the phone’s location, opposed to desktop sites that ask for a post code.

The next step

If you’re a WordPress developer, I highly recommend the Bones starter template. A quick search on Google will also bring up some fantastic more in-depth blogs on the subject.

If you’d like some advice on an upcoming project, feel free to leave a comment or get in touch!

WordPress vs. DNN (Formerly DotNetNuke)

DNN and WordPress are two of the largest CMSs out there. According to, WordPress powers a colossal 45.97% of the top 10,000 sites. DNN boasts a more modest 0.55%, although is still in the running as one of the top 10 CMSs in the world.

The difference in market share might indicate that the systems have very different uses – although WordPress dominates the market perhaps there are limitations where the more heavy-weight DNN software can step in. This post compares and contrasts the various features of DNN and WordPress, trying to shed some light on when one might be more appropriate than the other.

Use for business

DNN is seen as a more ‘enterprise’ level application – having greater capabilities than other frameworks that suit large, complex websites. Conversely, WordPress for a long time has been seen as a mere blogging platform, suitable for small and simple sites. However, in recent years the popularity of WordPress has grown along with its capabilities. It’s now not uncommon to see large and complicated sites run from WordPress – perhaps the argument of DNN being more ‘enterprise’ is fading?

Of course, DNN does have some advantages over WordPress for some. One is that it’s written in ASP.NET – if your infrastructure is already .NET based this can make hosting and integration easier. Also, as we will discuss, there are perhaps advantages in UI and permissions, depending on your requirements.

Winner: Draw

User experience

It’s no secret that DNN 6 can be clunky. Despite an Ajax-y looking UI it does actually post back for almost every click, even for simple events such as closing the edit setting dialog box. WordPress is a little slicker, with a good looking admin interface and an uncluttered admin bar when viewing the public site.

A big difference between the two platforms is how content is edited. DNN takes a more integrated approach by allowing users to see modules on the page and click through to an edit screen on the same page. WordPress segregates content editing from the front end – the user navigates to an edit screen in the admin area. There’s no best way to do this. Some prefer the WYSIWYG approach of DNN, whereas others will enjoy the more categorised entities of WordPress.

In our experience, CMS users trying to edit pages are less intimidated by the WordPress approach to page editing, while the HTML editor in WordPress also shades it in terms of the ease of actually allowing users to create unstructured page content.

Winner: WordPress

Users and permissions

Out of the box, DNN has more granular permissions than WordPress. Administrators are able to grant permissions to a user role on a per-module basis, allowing different content to be displayed on a page depending on the user viewing it. WordPress also has the concept of user roles, however the capabilities of the roles are not as granular as DNN (capabilities include things like “edit_themes” and “publish_pages”). However, there are plugins available that provide more granular permissions for user roles. For example, the user role editor plugin allows per-post/page access management and provides shortcodes that allows enclosed content in posts/pages to be shown only to specific roles.

Winner: DNN


Both systems have a directory of plugins. WordPress has an impressive 30,000+ plugins available, whereas the DNN store currently lists just over 1,000 modules. For developers, both systems are built to be extended. WordPress is event driven, meaning that extending the framework involves hooking into actions and filters and running your own code. This means small functionality changes can be implemented very quickly. DNN plugins are more complex – the documentation isn’t great and the lack of event hooks makes it difficult to apply small changes to existing logic. Essentially, all you get is the ability to create new controls.

Winner: WordPress

Ownership and community

DNN, although open source (the community addition), has a closed development process. It is owned and maintained by DNN Corp who offer paid versions of the software (professional and enterprise). These editions give you access to support and various other features.

WordPress is an open source application – anyone can contribute bug fixes and new features. WordPress is ‘owned’ by the WordPress foundation, a charity. Their mission is to “ensure free access, in perpetuity, to the software projects we support”. This includes WordPress.

Winner: WordPress

Auditing and workflow

One of the reasons DNN might be seen as more enterprise is the workflow capabilities offered in the paid versions. This is valuable for very large sites where it’s hard to keep track of content and who’s editing what. In addition to this, there is also more logging in DNN, providing an audit trail. WordPress can be extended to provide more logging, and there are some plugins that allow workflows to be applied. However, none of this is out-of-the-box.

Winner: DNN


We think that DNN and WordPress are great systems to use in the right context. Using either of the systems in an inappropriate situation can lead to frustrated users and developers. There is no doubt that DNN is a bit overkill for very small sites, whereas WordPress can offer more of a “quick start”. However, when talking about larger and more complex sites there is a lot more to think about when selecting a platform.

If you’d like some advice on what might be best for your business, please get in touch!

nopCommerce Plugin Development – Part 2 – Creating your first nopCommerce plugin (development template)

Part 2 – Creating your first plugin

Now we’ve been introduced to the basics of nopCommerce, we can crack on with writing the plugin. I have included a VS starter project to download – if you feel comfortable with everything below feel free to download this solution (see end of this post) and skip to the next post.


Read More »

The consequences of changing entity states from plug-ins in Microsoft Dynamics CRM 2013

Changing the state of an entity from within a Plugin in Dynamics CRM has always been a fairly well documented process.

You create the following object:

var stateRequest = newSetStateRequest() {
    EntityMoniker = newEntityReference("entitylogicalname", entityId),
    State = newOptionSetValue(stateValue),
    Status = newOptionSetValue(statusValue)

And pass it to the OrganizationService to execute the request like so:

Read More »

nopCommerce Plugin Development – Part 1 – The Fundamentals

Part 1: Introduction to nopCommerce and fundamentals

Writing your first plugin for nopCommerce can be an intimidating experience. Tutorials and in-depth documentation is thin on the ground, probably due to the relative recentness of the framework.

This tutorial series aims to bridge this gap and provide an easier first approach to developing for nopCommerce

By the end of this series, you will have built a plugin that allows simple key-value meta data for products to be inserted into a new table. This data will be displayed on the home page via a widget, and new data will be added when an order is placed (using the events capabilities built into the framework).

Read More »

Why we use Backbone.js


By Paul Clift

1      Requirement

Create a rich and interactive user experience on a website that performs smoothly for the user.

2      The traditional approach

The traditional approach to creating a rich client side user experience would be to use a JavaScript library such as Jquery.  While this is not the wrong approach, and we can still use Jquery, it does introduce a number of pit falls….

Read More »

Partnerships: Web Developer meets Graphic Designer

3 years ago we set out to grow our business and find a niche set of partnerships that would develop for us in the long-term. Jim (the boss) identified that Graphic Designers often needed a software developer to satisfy the needs of the clients, who are increasingly wanting more than a simple flat brochure website. As websites have evolved over time the complexity on the back end and on the UI has grown.

We started off in a simple old fashioned way, identifying local graphic design agencies and calling them to offer our services. In return we would often require theirs too, as UI design is not part of our skillset.

Read More »

Do I need a mobile responsive website for my business?

By: Fiona Blake

Do I need a mobile responsive website for my business?

First of all let’s start by asking if you have ever visited a website on your phone/tablet and couldn’t see the website properly. You probably had to zoom in to see pictures and/or scroll from one side to the other to read the text. On a scale of 1-10 I bet the experience was no better than 6. I visit websites all the time on both my phone and my tablet at home and it’s very frustrating when companies haven’t put any thought/time/care/attention into their end users or customer experience.

What is a mobile website (as opposed to a mobile responsive website)?

Read More »

What’s the best project management tool for software developers?

We have spent the past month evaluating a number of project management products and we are pleased to announce that Performance Web has selected Jira by Atlassian as our Development and Support issue tracking solution.


Performance Web were looking for a system to manage development tasks and track support tickets. We were looking for a system that would meet the needs of managers, developers, testers, project managers and clients. Working in a variety of environments, a flexible and dynamic solution was needed and Jira was the best solution for our needs.


Read More »