New Visio Stencils for Office 365 and Azure Integration

Microsoft has released an updated version of its Office 365 stencils for Visio.  The 2014 version contains all the latest shapes for representing Office 365 applications, concepts, services, etc.


In addition, there is now available a new Azure integration stencil on Technet.  It provides symbols for representing integration architectures, hybrid scenarios, BizTalk services, Power BI scenarios, etc.


Read More

No Foundation Version in SharePoint 2016

Microsoft runs a Yammer group called the Office 365 Network where a number of SharePoint experts and Microsoft employees congregate to talk about SharePoint and Office 365.

Within this group, Bill Baer announced that a Foundation version will not be shipped as part of SharePoint 2016.  SharePoint Foundation has been part of SharePoint for many years as a free version shipped with Windows.  As of SharePoint 2016 it looks like this version will be retired.


Bill also put up a tweet here asking for feedback on the issue.  You can see lots of replies from potentially affected customers.  Bill has also provided his email so you can provide feedback directly if you’re worried about losing the Foundation version in the next SharePoint.


Read More

SharePoint Branding Tip: Avoid Corrupting the Existing User Interface

We have been working on creating some custom style sheets and page layouts from an existing public facing web site.  We brought in our existing CSS style sheets, and all of a sudden, our existing SharePoint user interface looked corrupted!


The edit page is even worse:


After several hours of CSS debugging, the cause is conflicts between SharePoint’s existing styles and custom CSS styles being imposed over top.

SharePoint DIV Structure

When SharePoint populates content into a page, it’s composing it out of several distinct elements that include:

  • Master Page
  • Page Layout
  • Populated Field Controls and Web Part Zones

The existing SharePoint user interface (e.g. the top Office 365 bar, the page editing controls, navigation, etc.) are in DIV tags. 

  • suiteBarTop: the Office 365 suite bar
  • s4-ribbonrow: the top ribbon div (e.g. where it says Browse, Page and Publish)
  • s4-workspace: the rest of the page without the ribbon
    • s4-bodyContainer: entire page except for the Office 365 suite bar
    • s4-titlerow: the title area with the logo, the top navigation and the title of the page
    • contentRow: the populated content from the site template

Each of these DIV’s are identified by an ID value – this is key to scoping your CSS styles.

Scoping your Styles to Avoid Clobbering the SharePoint UI

In debugging the custom style sheet we had, there were a few key styles that were being applied as general style sheet instructions that were impacting the existing SharePoint UI:

  • Body: in general, anything you put in the body selector is going to apply to everything on the page.  For example, in our existing CSS we had body setting the line height and this was impacting the existing SharePoint navigation.
  • Img: we had a CSS definition for all images to be width: 100%.  This kills the icons in all the buttons. 
  • H1: H1 is used by the title of the page.  In our CSS we had some changes to line height, margins, etc. which impacted the page title.
  • *: applies styles to everything.  Be careful with this selector as it will impact all sorts of existing elements.

Fixing the problem involves finding these global style selectors and scoping them to the contentRow DIV. 

For example, our style for H1 becomes: #contentRow h1 {.

For any styles in the selector Body, you can use #contentRow as the outside selector instead:

#contentRow {

How SharePoint Manages Icons

SharePoint uses a single Icon master PNG file to store all its icons:


To display the icons, the CSS creates a 32×32 box on the page and then moves the icon image inside it, positioning it so the appropriate icon shows up.

<span unselectable=”on” class=”ms-cui-ctl-largeIconContainer”><span unselectable=”on” class=” ms-cui-img-32by32 ms-cui-img-cont-float”><img unselectable=”on” alt=”” src=”/_layouts/15/1033/images/formatmap32x32.png?rev=39″ style=”top: -239px; left: -409px;”></span></span>

This is why you have to be careful with declaring rules on images such as setting the width or height as this will impact this particular image and your icons won’t show up properly.

The Fixed Version

Here is the version with the CSS adjustments fixed up and working in concert with the existing SharePoint UI.



Read More

Power BI Designer Updated with Two Important Features from Power Pivot

Microsoft has just released a new version of Power BI Designer with some great new features borrowed from Power Pivot.

Calculated Columns

In Power Pivot, you can create a “calculated column” based on existing data in your table.  This is a great way to format dates, create profit calculations from existing raw data or to transform your data.  This is now supported in Power BI Designer – huge improvement!

Sort by Another Column

When working with dates, you might have a column for “Month” that has the values January, February, March, etc.  If you try to sort them, they’ll sort by default in alphabetical order instead of in date order. 

In Power Pivot, you can take column like this and have the sort order driven by another column.  In this scenario, you have a separate column that has the date representation of the month (e.g. January = 01/01/2015, February=01/02/2015, March=01/03/2015, etc.) and you can specify that your month column should be sorted not by its own natural sort order but by your date column which is sorted in date order.  This is a key requirement for any plotting of graphs based on dates.

This is now also available in Power BI Designer!

Read More

MySQL Running on Azure VM A0 Rock Solid So Far…

This blog runs on WordPress using Azure Web Sites.  When I first launched the site, I used the Clear DB free MySQL tier and it worked quite well until about 300-400 page views per day.  The free tier has a connection limit of 4 connections and when it exceeds that limit you start getting errors.

I then re-launched the site with an Azure SQL backend using the Brandoo plugin.  At the time, this was an option in Azure Web Sites template selection (it’s no longer available).  This worked well until I upgraded to WordPress 4.2 and then it broke completely.  I had been warned by the original developer that this would happen eventually because it was impossible to keep up with all the WordPress changes to the MySQL schema. 

I then went back to MySQL using a dedicated Azure VM running Ubuntu and MySQL.  The VM is an A0 VM which means it runs on a shared core (e.g. not even a full core) and 768 MB of memory. 

The results so far have been very good, with no downtime and no errors.  If I look at the VM performance, it’s rock solid and barely uses up the available CPU or memory available:



As you can see by the charts, the VM is running at about 2-3% of CPU and MySQL runs at about 14% of available memory.  Given this is a shared core and 768 MB only of memory, that’s pretty remarkable and a better deal than running through Clear DB at least at my current scale (peak load is about 1500 page views per day).

Read More

Connecting to Azure SQL from Power BI Preview

Azure SQL is now available in Power BI Preview and it supports live connections to the database.  The query connection is live back to the database and the tile refresh interval is 15 minutes (e.g. time to refresh your dashboard visualization).

Note that there are some limitations currently on the data refresh in general:

  • Refresh is not supported for Power BI Designer files.
  • If you’ve manually entered a SQL statement to execute, this cannot be scheduled for refresh. The alternative is to build the query by selecting the tables or views through the UI.

Once you have connected to your Azure SQL database, you can create standard Power PI Preview dashboards.  Here is an example dashboard of the posts from this blog by year and by tag.



Read More

Power BI vs. Power BI Preview: What’s the Difference?

Power BI Preview is the upcoming version of Power BI. Power BI is the current “production” version of Power BI that lives within Office 365. How do they compare? Here are some of the key differences.

Power BI is Production, Power BI Preview is Preview

The current Power BI service is considered production quality, is managed by Microsoft under the Office 365 SLA and is reasonably stable as a product.

Power BI Preview is just that – it’s still in preview. It’s clearly not a complete product yet and should be viewed as Beta. There are clearly some pieces in the service that are not quite ready for prime time and the product is evolving rapidly as Microsoft adds more functionality.

Power BI is based on Excel and SharePoint, Power BI Preview is New Technology

Power BI comes from a longer history of Excel and SharePoint. Power BI is the Office 365 extension of Power View which is a technology built into Excel 2013 that allows you to create interactive dashboards based on Power Pivot models. SharePoint 2013 on premise and Office 365 support Excel Services which allows you to host an Excel file as a web page without the need for the Excel client.

The new Power BI Preview is built from newer technologies and while it can ingest Excel files and Power View / Power Pivot models, it isn’t based on them. It has its own model and visualization technologies that can leverage data from a number of other data sources and provide a different user experience.

Power BI Preview is also only cloud based where Power BI has a similar feature set with SharePoint 2013 on premise (Power BI has some features that are only available on the cloud).

Power BI Requires Office 365 and Excel 2013, Power BI Preview is Standalone

One of the key differences between Power BI and Power BI Preview is that Power BI Preview does not depend on Office 365 or Excel 2013 either for authoring or viewing. Power BI Preview has been designed in a similar way to the Office Online experience in that you can access Power BI Preview through its own URL and you can start working with the tool.

Power BI Preview Has New Data Sources

Power BI data sources are based on Power Query and Power Pivot and include traditional data sources such as Oracle, SQL Server, Azure SQL, Excel Files, CSV Files, etc. Available data sources were managed by Microsoft as part of the product.

With Power BI Preview, there have been a number of additional data sources announced already with additional data sources expected including:

  • Git Hub
  • Google Analytics
  • Marketo
  • Zen desk
  • Send Grid
  • Azure Stream Analytics
  • Visual Studio Online

In addition, Microsoft has built APIs for developing third party data connectors that will presumably allow many more data sources to be feeding into Power BI Preview in the future. They have for example just announced a new Office 365 administration content pack that will push data into Power BI Preview in the future.

Power BI is A Disconnected Experience, Power BI Preview is Semi-Disconnected

Power BI is based on Excel’s Power Pivot and Power Query engines, which create local caches of data when they pull data from their data sources. This is what creates the performance by loading up a bunch of rows into memory and caching them locally. When you refresh a power pivot table, the entire table is refreshed from the underlying data source which depending on the size of your table can take a considerable amount of time. In Office 365, you can configure your Excel sheet to use a data source that can be periodically refreshed but it’s the same basic technology.

Power BI Preview is semi-disconnected in that there certain data sources that are “live”, namely the connector to SQL Server SQL Analysis Services. In addition, the Power BI Preview architecture allows you to push data into tables incrementally instead of having the entire table refreshing. This is fundamentally more interesting, in particular for scenarios where there are streaming analytics coming in that need to be visualized.

It’s not altogether clear whether Power BI Preview will support other “live” data source connections in the future.

Power BI Preview has Additional Visualizations

Power BI Preview comes with some additional visualizations including:

Combo Chart




Tree Map


Filled Map


Funnel Chart


Power BI Preview Has an IPhone App, with Android and Windows Phone Coming Soon

Power BI had a Windows 8 app but limited support for phones. Power BI Preview already has an IPhone App available with Android and Windows Phone coming soon.


Power BI Is Not Responsive, Power BI Preview Is Not Responsive

One of the glaring omissions that Microsoft still continues to make is lack of support for mobile web and responsive design. Power BI is definitely not responsive, and the dashboards created by Excel are locked width and height and they sit in a non-responsive SharePoint portal.

Power BI Preview so far isn’t responsive either. Power BI Preview does however have an IPhone App available which works reasonably well.

Power BI Preview has a REST API

One of the intriguing new developments with Power BI Preview is the new REST API. You can use it to push just about any data you want into the Power BI service using basic JSON. You can create tables, add rows, etc. The API is missing some key functionality at the moment (for example, you cannot delete a dataset through the API) but the potential is huge for custom applications needing to push data into the service.

Power BI Preview Now Has Alerts, Annotations and Favorites

Power BI Preview has alerts which allow you to be notified when data changes, exceeds a threshold or exceeds a target.


Power BI Preview also supports annotations which work quite nicely in the IPhone App. You can add drawing lines and text to your dashboard before mailing them out to your colleagues.


Power BI Preview also supports the concept of favorites where you can tag dashboards, KPIs and data to your personal favorites dashboard.


Power BI Preview Pricing is Cheaper than Power BI Pricing

Power BI pricing started out as a separate subscription with different subscription levels. This quickly became an add-on price for those customers with E3 or E4 Office 365 subscription because of the overlap between Power BI and the features in E3 and E4. For $20 / month, you can have Power BI tacked on to your month E3 or E4 subscription.

Power BI Preview has a free version, similar to Office online. If you want to try out the service or use it to visualize a single dashboard, you can start using it immediately. However, there are limitations on throughput for the free version and there is no support for live connectivity or on premise integration with your data sources.

Power BI Preview is priced at $9.99 / user / month which is about 50% cheaper than Power BI.  The pricing is independent of Office 365 – you no longer need an Office 365 subscription to obtain this pricing. 

Microsoft has imposed some caps for that price including:

  • Data capacity limit of 10 GB
  • Scheduled data refresh of 1 hour
  • Streaming capability limit of 1 million rows per hour

It’s not currently clear what happens if you exceed these limits or whether this is even an option, e.g. do you pay additional fees if you exceed the quota or does the service simply stop you from exceeding the limits?

Read More

Latest Advice on Office 365 Branding

SharePoint Branding is a perennial challenge and continues to be so with Office 365.  Users want to be able to customize the branding, user experience and controls to reflect corporate branding standards, enable custom user experiences and enable new functionality.  With Office 365, this becomes more complex because it is an ever evolving service that changes constantly.  At Microsoft Ignite, there was a good presentation that illustrates the latest recommended approaches to custom branding. 

Office 365 Branding is Becoming More Complex

As Office 365 evolves, the branding picture is becoming more complex simply because the Office 365 service is becoming more complex.  For example, with the addition of the Office 365 App Bar, mobile clients, next gen portals, Delve etc. there are now multiple surfaces for content to be surfaced compared to older versions of SharePoint. 

In addition, the Office 365 user experience is continually evolving, which means that the CSS styles and UI elements that your custom branding depends on today may not be there in the future or your customizations may disable or hide UI features that Microsoft rolls out in the future.

Custom Master Pages are Support but Not Recommended


Master Pages are custom developed HTML pages that are then converted into ASP.NET pages.  They control all of the chrome, CSS, JavaScript, etc.  and have been used traditionally for creating custom branding experiences on premise.


Microsoft is recommending explicitly to avoid using custom Master Pages for Office 365.  Instead, they recommend using alternative methods for customization instead  of deploying custom master pages and/or sandbox solutions.

When you create a master page, you inherit from the current Office 365 master page and customize it.  The challenge is that the Office 365 standards are evolving constantly and after a while, your old custom master page is now lagging behind the standard.


SharePoint Branding Doesn’t Extend to Other Services

If you custom brand SharePoint using custom master pages and/or alternative CSS, this only extends to SharePoint.  If you go to Yammer, next gen portals, Delve, etc. they don’t pick up any of that branding.

Instead, you have the option to define an Office 365 theme which does apply to all of the Office 365 services consistently.  However, it is limited to basic colors, fonts, etc.

Minimize Branding for Collaboration Sites

Microsoft put up this question: why do you need to branding on collaboration sites?  In general, Microsoft is recommending to use branding selectively and only for publishing portals.  For collaboration sites, Microsoft is recommending to see collaboration sites as tools, not experiences.  image

One of the key reasons why using custom CSS branding or master pages with collaboration sites is that there are literally hundreds of CSS styles used by the various UI components in collaboration sites.  With a read only, publishing style intranet your workload is primarily people reading content but with collaboration sites you have teams interacting in a wide variety of different ways.

SharePoint Themes

One of the recommended options to branding is custom SharePoint themes.  Instead of creating a new master page, you use a theme to define colors, fonts, etc. to support corporate brand standards without creating a completely newly designed user experience.


There is a tool for creating themes called the SharePoint Color Palette tool for creating themes using a graphical user interface or you can code themes from scratch.

Office 365 Themes

Use the Office 365 theme to control the top bar and overall colors, fonts and background images.  The Office 365 theme is applied to all of the Office 365 services including Yammer, Outlook, Delve, etc.


Note that if you apply a custom theme specifically to SharePoint, it will override the Office 365 theme.

Alternative CSS

You can add your own CSS to further control layout of the SharePoint UI elements as well as your own custom solutions.  CSS can be added to the site through PowerShell, the UI or through CSOM.  It can also be removed as well.

This approach to custom branding is better than custom master pages because it overlays on top of the Office 365 master page instead of replacing it with your own customer one.  Using CSS, you can relocate elements, add responsive behavior, etc.

If Microsoft introduces new styles or removes old ones, your CSS always takes precedence so it won’t break your existing site. 

Enabling Responsive in SharePoint

SharePoint is not responsive (e.g. scales the UI based on the size of the screen) by default.  There have been open source projects to develop a responsive master page but this is based on the custom master page approach now not recommended by Microsoft.


The recommended approach is to use the Alternative CSS instead as a mechanism to enable responsive design.  The amount of CSS required is extensive and there are many web parts in SharePoint that aren’t responsive.  For a publishing intranet with only read only content, a responsive intranet might be possible but once you enable collaboration, sharing, and other SharePoint native web parts you’ll experience challenges with implementing a responsive intranet design.

The recommended approach is to inject CSS into the site to make it responsive instead of using custom master pages.  However, based on my experience, I would wait until Microsoft improves the default responsive experience in Office 365 before tackling trying to re-write the CSS for all their various dialogue boxes, controls, etc.

Using JavaScript Embedding to Enable Custom UI Behavior

Microsoft is recommending using JavaScript Embedding to enable custom UI functionality instead of custom master pages.



This approach allows you to inject JavaScript behavior (and presumably frameworks such as AngularJS) into your sites without needing to embed the code into a custom master page.  The JavaScript is applied on top of the Office 365 master page instead of replacing it altogether.

Read More

New Features Coming in SharePoint 2016

A number of details were announced at Ignite today on SharePoint 2016.  Here are some of the key highlights and interesting features that were announced at various sessions.


Easier Hybrid Setup

There are a number of new features in SharePoint 2016 to enable hybrid scenarios and to provide a more seamless experience to users who have a mixed environment and who are looking to take advantage of some of the cloud based offerings in Office 365 while still keeping SharePoint running on premise for some workloads.

A new hybrid configuration wizard replaces complex PowerShell scripts with a wizard experience for common scenario.

True Hybrid Search

In the current hybrid search scenario, you can enable searching of on premise content from Office 365 and vice versa.  However, in the current scenario, the indexes are still separate from each other and when you search they are treated as separate.

In SharePoint 2016, you can now create a true hybrid index that combines search results from Office 365 and SharePoint 2016 on premise in a single index.


Surfacing of On Premise Content in Delve

Delve will support surfacing of on premise content from SharePoint 2016.  This means that you can have a single delve activity feed that provides access to both Office 365 and SharePoint on premise content in a single view.


This delve feature will also be coming to SharePoint 2013 as an update later this year!

Mobile UI Coming to SharePoint 2016

Office 365 has a touch mobile UI and this will be coming to SharePoint 2016. 


Durable Links

One of the key features that have been a challenge for many versions is the management of URLs as durable instead of changing as documents are moved around.  In previous versions  of SharePoint, you could turn on the Document ID service to generate unique IDs for your documents but it was specific to a site collection. 


The service also handles the context switching of URLs as documents are shared on premise, through guest access, or through external sharing.

New Boundaries and Limits

SharePoint 2016 will have expanded boundaries and overcome some of the existing limits in SharePoint 2013.


New Infrastructure Roles

There is a concept around application service roles for setting up the SharePoint 2016 infrastructure.  There is a new Server Role installation wizard that better isolates and segments the tiers in the infrastructure.  This will also help to reduce the data center footprint compared to previous versions and make it easier to patch the farm.


Zero Downtime Patching

Microsoft is promising “zero downtime patching” which will mean you can apply patches while keeping the SharePoint farm online!

Read More

New Office 365 Administration Dashboards Coming via Power BI

Microsoft has announced a new set of administration dashboards for Office 365.  Powered by Power BI, the dashboards will provide administrators access to analytics on user activity within their tenants.  Roll-out is expected in Q3 2015.

Whats new in Office 365 Administration from Microsoft Ignite 1The new Power BI content pack will integrate with Active Directory data for more interesting reports – for example, you could create a dashboard related to a particular group of users.


Read More