BM-Bloggers

The blogs of Black Marble staff

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.

“SetConfigurationSettingPublisher needs to be called before FromConfigurationSetting can be used” Error on Azure SDK 1.3

Last week I was trying to demonstrate accessing Azure Table Storage after I upgraded to the Azure SDK 1.3. During the demo I kept getting the exception “SetConfigurationSettingPublisher needs to be called before FromConfigurationSetting can be used” even though I had written this code and my demos all worked fine previously. After some digging and some help from a delegate who had seen this problem before I removed the sites configuration from my ServiceDefinition.csdef file.

<Sites>
   <Site name="Web">
     <Bindings>
       <Binding name="HttpIn" endpointName="HttpIn" />
     </Bindings>
   </Site>
</Sites>

My demo’s suddenly started working. The sites configuration is part of a feature to allow you to host multiple websites within a single web role. (This also explained why all my projects wanted to be upgraded when they were opened). Steve Marx has written a blog post which details the fixes and reasons why this issue arises. I have now moved my code for SetConfigurationSettingPublisher from my web role OnStart to my Global.asax.cs Application_Start. My demo’s now work correctly :)

Azure Jumpstart and Accelerator links

Thanks for attending the Azure Jumpstart and Accelerator events in Dublin and Belfast (also the Galway Live Meeting).

Here are the list of links from my presentations:

Azure HOL (August labs = VS2008, November Labs = VS2010)

http://bit.ly/d16e3M (Update: 7 Jan 2011 : Looks like this link does not give the 2008 option any more)

Also include the December update for Azure SDK 1.3 for VS2010 (http://www.microsoft.com/downloads/en/details.aspx?FamilyID=413E88F8-5966-4A83-B309-53B7B77EDF78&displaylang=en#RelatedResources)

Shared Access signatures

http://blog.smarx.com/posts/shared-access-signatures-are-easy-these-days

CNAME mappings to CDN URLs

http://blog.smarx.com/posts/using-the-new-windows-azure-cdn-with-a-custom-domain

Adaptive Streaming can be made to work with the CDN too

http://blog.smarx.com/posts/smooth-streaming-with-windows-azure-blobs-and-cdn

Ticket Direct Case study

http://www.microsoft.com/casestudies/Case_Study_Detail.aspx?casestudyid=4000005890

MSDN offers

http://www.microsoft.com/windowsazure/offers/default.aspx

Patterns Azure Guidance

http://wag.codeplex.com/

Windows Azure AppFabric Labs (to see the latest changes to App Fabric)

https://portal.appfabriclabs.com/

Holidays are coming … Part 3 of ‘Going Postal’ now live!

Banner01In case you hadn’t realised it, but at Black Marble we LOVE Xmas!  Not only have we decorated the office … but we’ve XmasJumpersalso added some festive fun to our website! 

The top banner looks great this year, and as ever the Managers have slipped into their Xmas finery ….

And of course, not forgetting our Xmas card … another 7-part outing for the BM Brigade, as they uses their Windows Phone 7s to spring into action and save Santa from Junk-Mail!Episode3

Plus Part Three of ‘Going Postal’ is now live on our website … this time, Windows Phone 7 proves its versatility in saving our heroes!  Can your app do that?

Plus, don’t forget we are supporting Bletchley Park and The National Museum of Computing with every card we send … please contribute too, and help maintain these great institutions for the future!

And finally … do you have Visual Studio TFS installed?  Think it could do with a check-up?  Invite one of our consultants on site in December and be in with a chance of winning an XBox with Kinect!  What better way to enjoy Xmas!

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.

Episode 2 of the BMXmas Adventure–Going Postal–Now Live!

Episode2

Episode Two of this year’s Xmas Card Adventure is now live on our website – want to know what the BMBrigade find on reaching their destination?  What has happened to Santa?!  Can our heroes’ Windows Phone 7’s help save the world this Xmas??

Enjoying the adventure?  Watch out for Episode Three on 8th December, when General Junk-Mail’s fiendish plot is revealed!

And this year, find out how our customers can benefit from our skills in Visual Studio with an ALM Health Check … and gain the opportunity to win an XBox with Kinect!

5 Great Reasons to get a Visual Studio TFS Health Check …

… from Black Marble this December

Black Marble has always been proud of its strong credentials for the work we do, and this year we are encouraging our customers to take advantage of them too!

This year we have 5 Great Reasons for you to take out a Visual Studio Health Check from Black Marble:

1. Gold ALM Partner – Black Marble is the first UK partner to achieve the new Gold standard in the ALM competency.  Microsoft re-launched the Partner ALM Ranger RichardNetwork this autumn, and to ensure customers know they are getting experts in their field, they raised the bar for companies to reach the Gold standard in individual competencies.  At Black Marble we ensured our staff were suitably qualified and experienced, in order to be ready to achieve Gold when the new competencies were launched and we were delighted to be the first UK partner to do so!

2. Engineering Director Richard Fennell – Microsoft Most Valuable Professional in Visual Studio (ALM).  Richard is in his third year as a Microsoft MVP – recognised as one of the best and brightest from technology communities around the world for his contributions on Visual Studio (ALM).

3. And Richard is also an ALM Ranger (see right)!  ALM Rangers are selected from Microsoft Staff, MVPs and Industry Leaders and deliver out-of-band solutions for missing features or guidance.

4. Black Marble is an Inner Circle Partner – Black Marble has been a member of the Microsoft Visual Studio Inner Circle programme for over a year.  The programme is an initiative from Microsoft to engage with key application life-cycle management (ALM) partners worldwide, and Black Marble is one of only a few in the UK. As an Inner Circle partner we work closely in a reciprocal relationship with the Microsoft experts, both nationally and internationally, receiving specialised training and early access to the next generation of Microsoft Developer Tools.

Elf Lisa

5. Our Xmas Elf Check offer

And this December, we are giving away FOUR sets of XBox with Kinect to customers who engage Black Marble in December to carry out a VS TFS Health Check.  With one draw a week, this is a great opportunity to get hold of the fast-selling, must-have gift for Xmas … and for your business to benefit from our skills, knowledge and experience!

To find out more, call 01274 300175 or visit:

http://www.blackmarble.com/XBoxElfCheck

While you are stuck at home due to snow why not vote for your favourite DDD9 session?

The voting has opened for DDD9, As with all the DDD style events the agenda is set by you, the attendees, so get in there any say what you are interested in, it is not as if there is not a great choice this time.

I have a session up on writing custom build activities for TFS 2010 which I hope some of you will find interesting, but I do fear it is a rather specialist area!

So vote early, vote often….