Avviso: A Content Publishing Framework for SharePoint 2010

words and pictures logo

Last week was really exciting for me and my colleagues here at Black Marble as the work we’ve been doing with a partner came to fruition. Words and Pictures are a communications agency based not far from us, and we’ve been working together on a great product that builds upon SharePoint 2010 to greatly improve content publishing.

I’ll come to the product in a little while, but I’d like to talk about how we created it first, as it’s a great example of how working together within the Microsoft space can help companies build upon their strengths and overcome their weaknesses.

A tale of two specialisms

I first encountered Words and Pictures at one of a series of events Black Marble ran to explain the Microsoft offerings that exist in the creative space, targeted at design and creative agencies. In the event we talked about a range of technologies, including Silverlight, web technologies and SharePoint, and how creative agencies could use those technologies to deliver the kind of vibrant material their clients were looking for. It was a good example of the evangelism we spend a fair amount of our time engaged in, and it was an interesting way for us to explore how we might use our technical skills to fill the gaps experienced by creative agencies.

Black Marble are, as I’m sure you know as readers of the blogs on this site, technical specialist. We are extremely good at delivering solutions to business problems by tailoring or even creating IT systems to meet our customers’ needs.

Words and Pictures have turned out to be a kind of creative analogue of Black Marble. They are a well respected organisation that specialise in delivering great services for businesses centred around communications. Be it for an internal or external audience, Words and Pictures write, design and deliver a range of communication channels for their customers. Historically, this had been predominantly printed content of one form or another, but in today’s fast changing world their customers are starting to shift to digital delivery.

A meeting of minds; clarity of vision

Words and Pictures got in touch with us directly because they thought that SharePoint 2010 might be a good content delivery platform for them to focus on as their customers shifted towards digital delivery. They had already had feedback from the organisations they supported that SharePoint was becoming an almost ubiquitous system across the panoply of Words and Pictures’ customers. This awareness, couple with the demonstrations we had given at our design event around what SharePoint could do for content publishing, had led them to believe that SharePoint was the right choice. Now they had lots of questions about whether it would do what they wanted.

In situations like this, where a client believes SharePoint is the right choice but is unsure how to proceed with implementation, I like to run a Vision Workshop with them. The idea is that we forget they ever mentioned SharePoint and instead talk about what they do as a business – their operations, problems, aims and aspirations. I can then reflect that back at them, matching SharePoint’s capabilities to their needs in the short, medium and long term.

The workshop at Words and Pictures was an eye-opener for me!

I arrived at their very nice offices in a very nice part of Yorkshire and found myself in a room with the biggest whiteboard I’d ever seen. Over the course of the day, that whiteboard was filled, erased and re-filled with ideas, drawings and diagrams to illustrate the ideas, concepts and desire that Words and Pictures had. During that day a small number of very passionate specialists in journalism and content creation emptied their collective experience onto the wall and as I took more and more notes and thought more and more about how SharePoint might help, I became more and more convinced that something great could come out of this.

A panoply of features

The vision workshop threw up a huge amount of information about how Words and Pictures needed to create, manage and publish digital content in the same manner as they currently managed their printed content. We quickly realised that if we extended SharePoint to match these needs, the solution we created would be useful to more than simply Words and Pictures. As we talked it through the idea of a content publishing framework that would sit on top of and extend the capabilities of SharePoint was born. Such a framework would bring SharePoint’s publishing model more in line with the processes used by both an agency like Words and Pictures and the Internal Communications teams within their client organisations. It could also greatly improve the services Black Marble were increasingly finding ourselves working on for customers in both intranet and external web publishing scenarios.

A product is born

avviso logo

Working closely together, building on all of our expertise, Words and Pictures and Black Marble have created Avviso. It was launched last week at events at Black Marble’s offices and Microsoft’s London offices. I was really enthused by the reception we received from the audience at both events. Avviso was met with a great deal of interest and enthusiasm which really made the development journey worthwhile.

Words and Pictures came up with the name. For those who are curious:
An Avviso was a hand-written newsletter used to convey political, military, and economic news quickly and efficiently throughout Europe, and more specifically Italy, during the early modern era (1500-1700). In the beginning avvisi were very similar to letters written from one dignitary to another, but diverged from such letters in the sixteenth century with more standardized practices.

I think it’s a great name. It’s both catchy and memorable, whilst at the same time meaningful and relevant to what the product does.

So what does it do?

Avviso contains a wealth of extensions to the SharePoint platform that enables better creation of rich, impactful published content: Crisp template-based pages as well as the ability to produce unique, vibrant designs; the ability to create features and article series; better categorisation and aggregation of content; richer content management for published pages. Importantly, we’ve only begun to tackle the list of ideas that came out of that original vision workshop, so there is a solid roadmap for new features that will be delivered through regular version updates.

I’m not going to detail features here. There is a product website at avvisosharepoint.co.uk and if you want to know more, get in touch with us. We have more events planned for the new year, both in the north and south of the UK so we can offer you a chance to see it in the flesh.

Here are some examples of the kind of pages Avviso can help you build, using some sample content from Words and Pictures.

riverhomepageAn intranet home page with aggregated content and rich multimedia.

flintfocus
An article with bespoke design applied

futurefeature
A feature splash page, with links to articles in the feature

challengearticle
An article built using a standard template

The London launch

The London launch event was at the Microsoft offices in Cardinal Place. Andy Holt, Creative Director of Words and Pictures, and myself were the presenters, ably assisted by Jon Eland, also from Words and Pictures. It was a great room and it was good to see so many enthusiastic attendees. We were lucky that it didn’t snow until the evening! Words and Pictures had designed some great bags and pamphlets for the guests and Black Marble made sure that chocolates were close at hand!

I really enjoy presenting with Andy. We have a similar dynamic to how Andy Dawson and I present at Black Marble events, but at the same time our differing backgrounds of creativity and technology allow us to bounce off each other and really explain how Avviso works and what we’re trying to deliver.

jonprepandypresentavvisobags

Lessons learned

I’ve learned a great deal from my experiences during the conception and creation of Avviso. I think one of the most important things has been to reinforce my thoughts about approaching SharePoint solutions. By ignoring SharePoint and focusing on what Words and Pictures needed as an organisation in terms of their process we were able to generate a rich wish-list of functionality that could then be matched against existing SharePoint features and inform what we would need to develop from scratch. The things that Words and Pictures described added so much to my understanding of the needs of content publishing that I can help other customers deliver better intranets, extranets and internet sites (hopefully using Avviso!).

  • Ignore the technology. Talk about process, business needs, problems and goals.
  • Teach and learn. Understand each other’s specialism and explain domain terminology.
  • Concentrate on your area of expertise. Don’t try to second-guess each other’s approach to a problem.
  • Draw lots of pictures and diagrams. Write lots of notes.
  • Relationships are important. Build the team with individuals who can work well together. Time invested in getting to know each other is time well spent.

Server Core, Hyper-V and VLANs: An Odyssey

A sensible plan

This is a torrid tale of frustration and annoyance, tempered by the fun of digging through system commands and registry entries to try and get things working.

We’ve been restructuring our network at Black Marble. The old single subnet was creaking and we were short of addresses so we decided to subnet with network subnets for physical, virtual internal and virtual development servers, desktops, wifi etc. We don’t have a huge amount of network equipment, and we needed to put virtual servers hosted on hyper-v on separate networks so we decided to use VLANs.

Our new infrastructure has one clever switch that can generate all the VLANs we need, link those VLANs to IP subnets and provide all the routing between them. By doing it this way we can present any subnet to any port on any switch with careful configuration and use of the 802.1Q VLAN standard. Hyper-V servers can have a single physical interface with traffic from multiple VLANs flowing across it to the virtual switch, with individual VMs assigned to specific VLANs.

We did the heavy lifting of the network move without touching our Hyper-V cluster, placing all the NICs of all the servers on the VLAN corresponding to our old IP subnet. We then tested VLANs over the virtual switch in Hyper-V using a separate server and made sure we knew how to configure the switch and Hyper-V to make it all work.

Then we came to the cluster. Running Windows 2008 R2 Server Core.

Since we built the cluster Andy and I have come to decide that if we ever rebuild it, server core will not be used. It’s just too darn hard to configure when you really need to, and this is one of those times.

A tricky situation

Before we began to muck around with the VLAN settings, we needed to change the default gateway that the servers used. The old default gateway was the address of our ISA (now a shiny TMG) server. That box is still there, but now we have the router at the heart of the network, whose address is the new default gateway.

To change the default gateway on server core we need a command line tool. Enter Netsh, stage left.

We first need to list the interfaces so we know what we’re doing. IPConfig will list the interfaces and their IP settings. Old lags will no doubt abbreviate the netsh commands that we need next but I’ll write them out in full so they make sense.

Give me a list of the physical network adapters and their connection status: netsh interface show interface

Show me the IPV4 interfaces: netsh interface ipv4 show interface

To change the default gateway we must issue a set command with all the IP settings – just entering the gateway will not work as all the current settings get wiped first:
netsh interface ipv4 set address name="<name>" source=static address=x.x.x.x mask=255.255.255.0 gateway=x.x.x.x
Where <name> is the name shown in the IPV4 interface list, which will match the one shown in the ipconfig output that you want to change the gateway for. We’re using a class C subnet structure – your network mask may vary.

It’s worth pointing out that we stopped the cluster service on the server whilst we did this (changing servers one by one so we kept our services runnning).

We had two interfaces to change. Once corresponded to the NIC used to manage the server and the other corresponded to the one used by the virtual switch for Hyper-V. That accounted for two of the four NICs on our Sun X2200-M2’s, with the SAN iSCSI network taking a third. The SAN used a Broadcom, the spare was the other Broadcom and the others used each of the two nVidia NICs on the Sun (that will become important shortly).

A sudden problem

Having sorted the IP networking our next step was to sort out the VLAN configuration. To do that we changed the switch port that the NIC hosting the hyper-V virtual switch was connected to from being an untagged member of only our server subnet VLAN to being a tagged member of that VLAN and a tagged member of the new VLAN corresponding to our subnet for virtual internal servers.

The next step was to set the VLAN id for a test VM (we could ignore the host as it doesn’t share the virtual switch – it has it’s own dedicated NIC).

The snag was, the checkbox to enable VLAN ids was disabled when we looking in Hyper-V manager, both for the virtual switch and for the NIC in the VM.

Some investigation and checking of our test server showed that the physical network driver had a setting, Priority and VLAN, that needed to be set to enable priority and VLAN tagging of traffic, and that the default state was priority only. On full server that’s a checkbox in the driver setting. On server core…?

So, first of all we tried to find the device itself. Sadly, the server decided that remove management of devices from another server wasn’t going to be allowed, despite reporting that it should be. So we searched for command line tools.

To query the machine so it lists visible hardware devices: sc query type= driver (note the space before ‘driver’)

That will give you a list, allowing you to find the network device name.

For our server, that came back with nvenetfd – the nVidia NIC.

To use that name and find the file responsible: sc qc <device name> (in our case nvenetfd )

That returned the nvm62x64.sys driver file. Nothing about settings, but it allowed us to check the driver versions. Hold that thought, I’ll come back to it shortly.

Meanwhile

We’d also been poking at the test server, looking at the NIC settings. Logic suggested that the settings should be in the registry – all we have to do was find them.

I’ll save you the hunt:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002BE10318}

That key holds all the Network Adapters. There are keys beneath that are numbered (0000, 0001, etc). The contents of those keys enabled us to figure out which key matched which adapter. Looking at the test server and comparing it to the server- core hyper-v box we found a string value call *PriorityVlanTag which had a value of 3 on the test server (priority and vlan enabled) and 1 on the hyper-v box. We set the hyper-v box to 3. Nothing. No change. We rebooted. Still nothing.

Then we noticed that in the key for the NIC there was a subkey: \Ndi\params. In there was a key called *PriorityVlanTag. In that key were settings listing the options that were displayed in the GUI settings dialog, along with the value that got set. For the nVidia the value was 2, not 3. We duly changed the value and tried again. Nothing.

So we decided to update the drivers. This brings us back to where I left us earlier with the sc command.

To update a driver on server core, you need to unpack the driver files into a folder and then run the following:
pnputil –i –a <explicit path to driver inf file>

After failing to get any other drivers to install it looked like we had the latest version and the system was not letting go. So we did some more research on the internet (what did we ever do before the internet?).

It transpires, for those of you with Sun servers, that the nVidia cards appear not to support VLAN ids on traffic, despite having all the settings to suggest that they do.

Darn.

A way forward

Fortunately we have a spare broadcom on each of our hyper-v host servers. We are now switching the virtual switch binding from the nVidia to the broadcom on each of our servers. We didn’t even have to hack around with registry settings once we did that the VLAN id settings in Hyper-V simply sprang into life.

The moral of this story is that if you want to use VLAN id’s with Hyper-V and your server has nVidia network adapters (and certainly if it’s a Sun X2200-M2) then stop now before you lose your hair. You need to use another NIC, if you have one, or install one if you don’t. Hopefully, however, the command line tools and registry keys above will help other travellers who find themselves in a similar situation to ourselves.