TUGA IT Conference 2016

The TUGA Association, the non-profit organization behind SQL Saturdays in Lisbon and Porto, is organizing the first TUGA IT Conference which will take place in Microsoft Portugal’s beautiful headquarters, in Lisbon, on May 19th – 21st. You can read all about it in the conference website, but I’ll summarize it anyway.

It will be a 3-day conference, focused on Azure, Office 365, SharePoint, Data Platform and Integration:

  • The first two days (May 19th and 20th) will be for full-day or half-day technical workshops
  • The third day (May 21st) will be for breakout sessions over several simultaneous tracks

With more than 500 expected attendees, this event will be one of the biggest IT events in Portugal, so be sure not to miss it!

Call for Speakers

If you’re an expert on one of the areas mentioned above and you want to share your knowledge with the community, submit your session by filling in the form.

Office Servers and Services MVP

Happy New Year!

2016 is starting off really interesting for me. Microsoft has presented me with the MVP Award for my contribution in the Office Servers and Services (SharePoint and Office 365) communities during the past year, and I’m incredibly honored to be a part of such a select group of individuals. I’m fortunate to know a few MVPs from all around the world and they’re all extremely dedicated and knowledgeable professionals in their respective areas.

Paraphrasing what my friend João Pedro Martins wrote when he was awarded his first MVP title, I hope my contributions to the community continue to deserve Microsoft’s recognition. Thank you.

 

the European SharePoint Conference 2015 was great!

The fourth edition of the European SharePoint Conference has now finished and it was bigger and better than ever. It took place in the wonderful city of Stockholm, in Sweden, from November 9th to November 12th. Like in previous years, the first day was dedicated to pre-conference full-day tutorials and the conference actually started in the second day. It featured a large exposition floor for sponsors to present their products and services, and also a community area with soapbox sessions during session intermissions and meals. The conference got over 1,500 delegates from over 50 different countries.

The programme team did a great job going through over 700 session submissions and putting together a stellar lineup of great speakers while also broadening the scope of the conference to include Office 365 and Microsoft Azure along with the SharePoint-related content. Congratulations to Wim Dierickx, Göran Husman, Adis Jugo and Nicki Borell. I was on the programme team last year and I know how hard it is to select the sessions and speakers, and put together a compelling programme.

The first keynote was delivered by Seth Patton, Jeff Tepper and Bill Baer, and this fact alone demonstrates how much Microsoft is invested in connecting with the community. The keynote was mostly focused on:

  • Usage and adoption statistics for Office 365
  • New and improved features that recently rolled out in Office 365
  • Near future roadmap for Office 365
  • What’s New in SharePoint Server 2016

Regarding usage and adoption, Office 365 has some impressive statistics:

  • Over 75,000 customers which account for more than 160 million users
  • 200% monthly active user growth
  • 7 Billion Office documents stored in OneDrive for Business, team sites and other SharePoint portals, which represents a 500% year-on-year growth in content
  • Runs on 30,000 servers, with 20,000 SQL databases, on 19 datacenters around the world.

As for new features and near future roadmap for Office 365, Jeff Tepper and Bill Baer shared that:

  • OneDrive for Business will now have a new rock-solid sync client (which has been in preview for a few weeks) and already has mobile apps for all devices. It recently got a revamped UI with a better browsing and sharing experience, and better tooling for IT management.
  • SharePoint Online has rolled-out improvements in collaboration, co-authoring and external sharing features.
  • The new Office 365 groups and their tight integration with Outlook 2016 is helping people to be more productive, adapting the technology to the users and not the other way around.
  • Delve and the Office Graph are also evolving, with new APIs and the new analytics features that are now in development.

The biggest announcement was the release of a second and last beta version of SharePoint Server 2016 before the end of the month, which will be nearly feature complete. The new features of SharePoint Server 2016 were already known since Microsoft Ignite a few months back, but it was still interesting to hear about the enhanced mobile experience, robust and cloud inspired infrastructure, and the compliance and data loss prevention features.

My session was about “Content Recommendation with SharePoint Search” and I think it was well received by the 100 or so attendees in the room, but having to deliver a session on the afternoon of the last day usually means I’m not going to enjoy the conference because I’ll be too worried fine tuning the slides and demos, and practicing the presentation until almost the end. If you’re interested in the presentation contents check the slide deck on SlideShare.

Nevertheless, I still managed to attend a few sessions by really good presenters:

  • Radi Atanassov (@RadiAtanassov) presented a great session on Office 365 Dev Patterns and Practices.
  • Chris O’Brien (@ChrisO_Brien) gave some fantastic tips on what you should and shouldn’t do when developing for Office 365.
  • Marius Constantinescu (@c_marius) showed us how to use Lightswitch to build cloud business apps in Visual Studio.
  • Nuno Costa (@ndocosta) and João Oliveira (@joaopcoliveira), fellow Portuguese Microsoft guys, delivered a brilliant talk on Office 365 governance with PowerShell and CSOM.
  • Rodrigo Pinto (@ScoutmanPt), fellow Portuguese MVP, got to present two great sessions: one on PowerShell Desired State Configuration and another one on techniques to migrate full trust solutions to the add-in model.
  • Edin Kapic (@ekapic) made complex topics such as authentication and authorization seem simple as he showed how to build a custom claims provider for SharePoint. Pretty epic stuff.
  • Knut Relbe-Moe (@sharePTkarm) dove deep into the Office 365 group and filled a room even on the last session slot of the conference.

It was a nice surprise to find Pedro Serrano and Daniel Pereira from Cave Digital showing off their Smart Governance product in the expo floor, and Alex Ferreira (@alexaem) and Tiago Duarte (@tduarte85) attending the conference. It’s always great meeting Portuguese friends when we’re far away from home.

Overall it was a great experience and the team in charge of the organization has done a tremendous job. If I had to point out three highlights of the event, those would be:

  • The venue for the awards gala, which was absolutely fantastic, and the venue for the conference. It will be very hard to top that next year.
  • The networking opportunities.
  • The speaker and session lineup, which included top Microsoft executives.

Next year the European SharePoint Conference will take place in Vienna, Austria, on November 14-17, and I hope I can be there again.

Collab365 Global Conference

This year’s 24-hour online conference is almost here! Like last year’s SP24, the new Collab365 Global Conference is a 24-hour online conference about SharePoint (and also about Office 365 and Azure) and it will take place on October 7th/8th. I’ll be presenting a session on “Building Solutions with Office Graph”.

This event is a huge undertaking and it has some impressive statistics:

  • 10,000 expected attendees (SP24 already got 9,000 last year)
  • 6 simultaneous tracks (Office 365, SharePoint, Azure, Business, French track and Spanish track)
  • Over 120 speakers from 6 continents
  • Keynotes by Jeremy Thake and Mark Kashman
  • 62 MVPs and 6 MCMs

You can expect a lot of great content about SharePoint 2016 and Office 365, and it’s FREE. If you’re interested in attending, don’t forget to register.

Microsoft Developer Tech Refresh

Next Monday, June 15th, Microsoft Portugal is hosting the Developer Tech Refresh 2015 event in Lisbon. It’s a developer focused event, with 20 sessions over 5 simultaneous tracks:

  • Windows Dev
  • Azure Dev
  • Office Dev
  • Data Platform / Internet of Things
  • Web

I will be presenting a session on “Office Graph” (and Office Delve) for the Office Dev track and my friend Jota will be presenting a session on “The new Azure App Service Architecture” for the Azure Dev track. It will be a great opportunity to learn about all the new stuff around Microsoft’s technology stack. Don’t forget to register, it’ll be worth it.

SharePoint 2016: News from Ignite

Build and Ignite, the two largest Microsoft technology conferences, have come and gone, leaving us with a lot of new announcements and tons of content to go through. Keeping up with all the new stuff is extremely hard with so much happening.

One of the topics I was really expecting to learn more about was SharePoint 2016 but, although it came up here and there, it got a surprisingly small coverage. Maybe it’s not so surprising, given it’s still a year away, but, nevertheless, I was hoping for more. Most of the information I gathered was presented by Bill Baer on his two sessions about SharePoint 2016 (The Evolution of SharePoint: Overview and Roadmap and What’s New for IT Professionals in SharePoint Server 2016)

Key takeaways

Microsoft is still betting strong in the cloud and Office 365, but they’ve been listening and have understood that many companies are still not ready or not willing to move to the cloud. SharePoint 2016 has been designed to bridge the on-premises world and the cloud, by making it a lot easier to deploy hybrid scenarios. Other investment areas include improved user experiences, compliance and security. It will certainly be an evolution from SharePoint 2013 but don’t expect anything dramatically different.

Regarding the release timeline, there are 3 milestones:

  • Q4 2015 – Public Beta (Beta 1)
  • Q1 2016 – Release Candidate
  • Q2 2016 – Final Version (RTM)

Hardware and Software Requirements

The hardware requirements for SharePoint 2016 are mostly the same as for SharePoint 2013:

  • RAM: 16-24 GB (for a single server farm) or 12-16 GB (for a multi-server farm)
  • CPU: 1 quad-core
  • HDD: 80 GB

As for software requirements, there are a few changes:

  • Windows Server 2012 R2 or Windows Server 10
  • SQL Server 2014 or SQL Server vNext
  • .NET Framework 4.5.2 (on Windows Server 2012 R2) or .NET Framework 4.5.6 (on Windows Server 10)

Deployment

Regarding deployment, you can still deploy it on a Domain Controller as long as it’s a development environment, but stand alone mode, using SQL Server Express, is no longer supported. Like SharePoint 2013, you cannot deploy SharePoint 2016 on a client OS or Windows Web Server and dynamic memory is not supported.

Up until now, every SharePoint server was born equal, meaning the install process was the same for every server. The application role of each server was defined later, when you chose which services are started on the machine and which service applications are configured in the farm. For SharePoint 2016, Microsoft identified 4 common roles (called MinRoles) used in most multi-server farms and allows you to select one of them when installing a server:

  • Web Front End – Services end user requests. Servers assigned to this role are optimized for low latency.
  • Application – Services backend jobs or the requests triggered by backend jobs. Servers assigned to this role are optimized for high throughput.
  • Distributed Cache – Serves distributed cache for the farm. Servers assigned to this role can load balance end user requests among the web front ends.
  • Search – A specialized version of the application server, dedicated to the search

There is a fifth role – Specialized Load – for situations that don’t fit any of the above pre-defined roles, allowing you to select any services to run on the server.

The SharePoint Health Analyzer will scan each server daily to check if the service instances running on the server are compliant with the selected role for that server. All roles are scanned, except for Specialized Load.

Upgrade & Migration

Upgrading to SharePoint 2016 will only be supported from SharePoint 2013. If you’re still using SharePoint 2010 or a previous version, you’ll first have to upgrade to SharePoint 2013 and your site collection will have to be converted to 15 mode before you can upgrade to SharePoint 2016. The upgrade is done via the database attach process, so nothing new here. You can also choose to migrate content from a previous version of SharePoint using one of the available third party software applications.

Patching

Patches and updates will have a smaller footprint and will not require any downtime. As with most of the new features, the new patching process was developed for SharePoint Online and SharePoint 2016 will now benefit from the lessons learned from managing SharePoint in the cloud. Just for reference purposes, in SharePoint 2013 an update is comprised of 37 packages and an additional 18 packages for each installed language pack. In SharePoint 2016, an update is comprised of just 4 packages, plus 1 extra package for each installed language pack.

Boundaries and Limits

With each new version of SharePoint, Microsoft stretches the boundaries and limits of the platform.  For SharePoint 2016, here are the main improvements:

  • Supports content databases with TBs (specific number is not yet defined). For SharePoint 2013, general purpose content databases should not be more than 200GB in size.
  • Supports 100,000 site collections per content database (SharePoint 2013 supports 10,000 site collections per content database)
  • List item threshold will be over 5,000 items
  • Max file size is now 10GB and there won’t be character restrictions (SharePoint 2013 support files up to 2GB)
  • Search index can scale to 500 million items (SharePoint 2013’s search index can hold up to 250 million items)

Performance and Reliability Enhancements

Running SharePoint in the cloud required SharePoint to achieve a level of reliability that previous versions of the platform could not muster. Some of these improvements were brought to SharePoint 2016 which is expected to support a four-9s availability level (99.99% which amounts to a maximum of 52 minutes of downtime per year, in case you’re wondering what that means):

  • Server role optimizations
  • Zero downtime patching strategy
  • Improved distributed cache reliability
  • Traffic management with intelligent routing and server health checks

Performance was also improved across the board. Two good examples of such improvements are the new file handling protocol and the new site collection creation process.
Regarding file handling, here is a brief history of the enhancements introduced by each SharePoint version:

  • SharePoint 2010 introduced the Cobalt protocol. With Cobalt, when a document is being edited and the user saves it, only the modified portion of the file is sent by the client application to the server, greatly reducing the amount of data transmitted between client and server. However, the server still has to fetch the whole document from the database and merge the existing content with the user changes before saving the whole document back to the content database.
  • SharePoint 2013 brought the Shredded Storage mechanism which allows documents to be stored in small pieces in the content database. Because documents are already “shredded” in the database, the server does not have to fetch the whole document to merge the original contents with the changes, which reduces the server processing overhead.
  • SharePoint 2016 adds BITS (Background Intelligent Transfer Service) protocol which will improve upload and download speeds and resiliency.

The new site collection creation process (named Fast Site Creation) leverages the SPSite.Copy method to clone a pre-configured site collection template at the content database level. This process avoids the overhead of feature activation since the features are already activated in the source site collection.

UI Improvements

SharePoint 2016 looks and feels mostly like the current version of SharePoint Online (in Office 365), but a few improvements were made to the UI, namely:

  • New Authoring Canvas, a new and modern way to create content for a web page using a Sway-like user experience.
  • Support for Durable Links which allows documents to be moved while keeping the URL intact, because it is based on a resource ID.

Cloud Accelerated Experiences

One of the most touted new features of SharePoint 2016 is the support for cloud accelerated experiences or, in other words, the ability to surface features that are only available in the cloud, using a hybrid scenario:

  • Compliance and data loss prevention (DLP) across cloud and on-premises
  • Cloud search service application which unifies the on-premises and cloud search indexes and provides support for Office Graph / Delve experiences on-premises
  • Distributed team sites across SharePoint 2016 and Office 365
  • Hybrid deployment automation with UI-based configuration

Other Announcements

  • There will not be a SharePoint Designer 2016
  • Office Graph / Office Delve will be made available (through a cloud accelerated experience) on SharePoint 2013 via an update later this year

Conclusions

SharePoint 2016 is still a year away which means some features might suffer some changes and new features will likely be announced between now and then. However, it is clear that this release is intended to be a stepping stone in the path to the cloud, given that most new features are already available on SharePoint Online or will be soon enough. Hybrid scenarios are easier than ever to deploy and some of the most compelling new use cases will require this approach, which reinforces that idea. There is still a lot to learn about the new SharePoint, and I’ll be posting my findings along the way.

European SharePoint Conference 2015

The programme for the European SharePoint Conference 2015 was announced yesterday and guess what? I’ll be presenting a session on day 3 (November 12th) about Content Recommendation with SharePoint Search! You’ll also find my good friend and SharePoint MVP Rodrigo Pinto, as well as Nuno Oliveira Costa and João Oliveira, from Microsoft Portugal, among the speakers.

The conference will take place in Stockholm, Sweden, from November 9th to November 12th, and has a fantastic session lineup from some of the best speakers in the business. The programme team did a great job putting it together. I know how hard it is to select 100 breakout sessions and 8 full-day tutorials out of several hundred candidates to build a balanced and interesting session lineup.

If you have not attended in previous years, I highly recommend it. It’s well worth it.
You still have 7 days to grab the ticket at Super Early Booking Rate (ends on April 17th) so, if you’re considering attending, don’t wait!

I’ll see you there!

Webinar: Information Rights Management in SharePoint

On April 7th at 11am CET I will be presenting a live webinar to the European SharePoint Community on Information Rights Management in SharePoint.

Here’s what I’ll be talking about:

Information security is one of the most important concerns when designing a content management solution. Learn about Information Rights Management (IRM) and what it allows you to do to protect your information and control its usage. Learn how it can be applied to SharePoint 2013 and SharePoint Online and the main differences between the way it works in each version.

In this webinar for IT Pro’s you will:

    1. Learn what is Information Rights Management (IRM)
    2. Learn how IRM works in SharePoint 2013 and SharePoint Online
    3. Learn how to manage IRM

You can register for my webinar on Information Rights Management here. I hope you can join me!

Querying SharePoint Search from PowerShell

FAST Search for SharePoint 2010 (FS4SP) is a really powerful, flexible and scalable enterprise search engine. However, when compared with the search landscape in SharePoint 2013, it feels like a separate product, an add-on to SharePoint 2010 that gives you a more powerful alternative to the out-of-the-box search engine.

When using FS4SP in a production environment, you need a separate farm just for FAST. That is, you need a set of servers where you install FS4SP and then you connect that FAST farm to a SharePoint farm, by means of two Search Service Applications. These FAST servers don’t have SharePoint installed on them and they have their own PowerShell snap-in that allows you to perform a whole bunch of administration tasks on FS4SP.

Suppose you want to query your search index, for testing or maintenance purposes, in PowerShell. The easiest solution would be to open your SharePoint 2010 Administration PowerShell console, and use the Server Side Object Model to create a new KeywordQuery object and invoke the Execute method on it. You can find many blog posts that teach how to do this. Here’s one example. If, for some reason, you need to run that PowerShell script from one of the FAST servers it won’t work because these servers don’t have SharePoint installed and are not part of the SharePoint farm, hence you can’t use the Server Object Model.

In this case, you’ll need to use the search web service, which can be called from any server as long as it can communicate with the SharePoint farm. The script below shows how you can do this.

$WebApplicationURL = "http://myserver:9999"
$SearchServiceURL = "/_vti_bin/search.asmx"

# Create a proxy to call the search web service
$SearchWS = New-WebServiceProxy -Uri ($WebApplicationURL + $SearchServiceURL) -UseDefaultCredential

# Build the query XML. You can use FQL or KQL.
$queryXml = @"
<QueryPacket Revision="1000">
  <Query>
    <Context>
      <QueryText language="en-US" type="FQL">SharePoint</QueryText>
    </Context>
    <SupportedFormats Format="urn:Microsoft.Search.Response.Document.Document" />
    <ResultProvider>FASTSearch</ResultProvider>
    <Range>
      <StartAt>1</StartAt>
      <Count>100</Count>
    </Range>
    <EnableStemming>On</EnableStemming>
    <EnableSpellCheck>Off</EnableSpellCheck>
    <IncludeSpecialTermsResults>true</IncludeSpecialTermsResults>
    <IncludeRelevantResults>true</IncludeRelevantResults>
    <ImplicitAndBehavior>true</ImplicitAndBehavior>
    <TrimDuplicates>true</TrimDuplicates>
    <Properties>
      <Property name="Rank" />
      <Property name="Title" />
      <Property name="Author" />
      <Property name="Write" />
      <Property name="Path" />
    </Properties>
  </Query>
</QueryPacket>
"@

# call the web service
$results = $SearchWS.QueryEx($queryXml)

# process the results
if ($results -ne $null -And $results.Tables["RelevantResults"] -ne $null)
{
    # check the result count (this page) and the total result count (all pages)
    $resultCount = $results.Tables["RelevantResults"].Rows.Count
    $totalCount = $results.Tables["RelevantResults"].ExtendedProperties["TotalRows"]
    Write-Host "Retrieved $resultCount (from a total of $totalCount) results."
   
    # write the title of each result in the console window
    foreach ($row in $results.Tables["RelevantResults"].Rows)
    {
        Write-Host $row["Title"]
     }
}

Microsoft WebCamp 2014: Working with AngularJS

Last week I delivered a session at Microsoft WebCamp 2014 event. A full-day event, with 3 simultaneous session tracks, focused on web technologies, not only from Microsoft but also open source, and design/communication topics. A lot of good stuff was shown, from node.js to service stack.

My session was about Working with AngularJS, a fantastic Single Page Application framework in JavaScript. It’s an introductory session, meant to give attendees a basic understanding of the framework and its components. I had a packed room, with around 200 people, and the feedback was great so I felt it might be worth sharing the slides and demos I wrote for the session:

You’re probably wondering why would I, a SharePoint guy, be talking about AngularJS. SharePoint guys are not exactly known for embracing the latest and greatest web technologies, mostly because when a new SharePoint version is released, it’s already one .Net version behind, not to mention all the new JavaScript frameworks. With SharePoint 2013, all that is changed. The new SharePoint App Model allows us to build our apps in any technology we want, and that means we can use all the big boys toys now such as ASP.NET MVC and, of course, AngularJS.

Also presenting a session on WebCamp about KnockoutJS was my good friend and colleague João “Jota” Martins, which is a great JavaScript data-binding library. Although they share some concepts, Knockout and Angular are very different technologies, on very different abstraction levels, so it’s good to know when to use one or the other. Checkout his slides and code samples here.

SharePoint, Office, FAST Search, Azure, .NET