Office Development–The Good, The Bad and The Ugly?

Office Development - Good Bad Ugly

In my last post we’ve seen that there are just a whole list of options covered under Office Development. Just to get a starting point we start to focus on Office add-ins –without the capital A– first. With Office add-ins I mean Office add-ins in general, that is … from the early start to where we are today.

I know that these days the name Office Add-ins is considered to be the part where Office Add-ins are built using the OfficeJS APIs but in the early years you had Office add-ins in many forms and technologies.

The Ugly

Initially the only option to customize Office was by adding code using Microsoft’s Visual Basic for Applications (VBA). This was, or should I say is – it still exists and you can still use it, the embedded code engine running a subset of the full Visual Basic command set capable in addressing the Office Object Model to quickly build some Office automation functions to make life as an Office Worker easier. The language appeared to be very powerful and in the real world people built some crazy complex stuff with it.

The Bad

To add more structure to building Office add-ins a new development paradigm was developed. Still using the Office Object Model but this time using the managed languages such as VB.NET or C Sharp (C#).

Managing code with VBA could be a pain in the … Code traveled with the documents and when the document was copied another ‘branch’ was created and you would never know you were working on the latest version unless you managed your distributions very strictly. Also the declaration of variables wasn’t always enforced causing all sorts of runtime errors to surface just after releasing the production code.

By using this new way to build your Office add-ins or customizations (I will return on customizations vs. add-ins later in a separate blog post, that’s a story on itself) with the new tools: Microsoft’s “Visual Studio Tools for the Microsoft Office System” (VSTO) at least you had a better control over your source code and you could even use Source Control to keep track of your code versions.

With this, the first versions of VSTO, seemed to be very hard when it came to installing the add-ins. Security was improved a lot, but that came at the high price of tough installation issues.

The Good

In these days, deploying add-ins can’t be limited to the Windows Platform so another change was rising … these are the add-ins built using the combination of well known web technologies and by including a Manifest you are now able to run your Office Add-ins (with the capital A) on all platforms in all supported and still growing number of client applications. Currently the client applications are Excel, Outlook, PowerPoint, Word and recently added Project, Access and OneNote.

Really?

Are these three technologies really The Good, The Bad and The Ugly? Well no, obviously not, you can still build add-ins in all three of these technologies but VBA for instance always had a very bad name, also caused by virus developers using this technology to harm innocent computer users by exploiting the technology to take over the computer and in worst case disable it.

VSTO was considered to be a real improvement but this technology also had his downsides. Deployment could be really hard, but this improved in later versions. Still going multi platform was no option for VSTO.

So is all good with the OfficeJS add-ins? Again, not at all … for starters these technologies used here are in general very hard to understand when you come from the VBA or managed code languages. Also, the APIs are not fully completed.

It still isn’t possible to do all the things that you could do with VSTO. With VSTO there is not really a limit. Whatever you can do with managed code you can do with VSTO as it just is interfacing between Office and .NET. This of course in itself could be very dangerous and should be managed to the max. Also VSTO is used by shady guys building malicious code.

We will get more in detail (we are still diving in, going deeper and deeper at this time) in my following blog posts so subscribe and join me in this adventure called Office Development!

Office Development – Where to Start

Office Development – Where to Start

clip_image002

Starting at dev.office.com you see a wide variety of options related to Office Development. There are a couple of sections to identify when you enter the Getting Started entry

  • Microsoft Graph
  • SharePoint Add-ins
  • Office Add-ins
  • Office 365 Connectors

Apparently, this is not all, as below the four options there is another option:

Can’t find what you’re looking for? Check out this full list of all development options for Office linking to the URL https://msdn.microsoft.com/en-us/office. If you follow this URL you’ll notice that it is redirected to, you might have guessed it: https://dev.office.com/docs, the documentation part of dev.office.com.

Here the options are not limited to the options above but now you can see there are sections for:

  • Microsoft Graph
  • Office Add-ins
  • Office 365 Connectors

And below this

  • Office Clients
  • Outlook.com
  • OneNote
  • SharePoint
  • OneDrive
  • Yammer
  • Exchange
  • Skype

Wait …, what …, why is there a section Office Clients separated from the Office Add-ins?

Well, I don’t know. Looking at this it you might think the ‘older technologies’ are under the ‘subsections’. This is true for Office Clients, covering:

  • Office 2013
  • Office 2010
  • Visual Basic Reference

The last item in the list is in fact incorrect, and should have been called “Visual Basic for Applications Reference” or “VBA Reference” or even better “Language Reference VBA” as it redirects to Language reference VBA. It has nothing to do with Visual Basic. Sure Visual Basic resembles a lot compared to Visual Basic for Applications (I will reference to VBA from now on for Visual Basic for Applications) but it isn’t the same. It’s as if you compare Visual Basic to VB.NET they aren’t the same either.

To continue the ‘older technologies’ theory … under SharePoint you find:

  • SharePoint Framework
  • SharePoint WebHooks
  • SharePoint Add-ins
  • SharePoint 2013
  • SharePoint 2010

In this case you see a combination of older and newer technologies. Also under the other subsections you find a mix of newer and older technologies (Exchange) or just newer technologies (Outlook.com, OneDrive, Skype, OneNote and Yammer).

There are even parts missing on this part of the documentation. What about Microsoft Teams as a newer application of Office or existing applications like Microsoft Access. Office and therefor Office Development is just huge, we can spend so much time on these sections, there is no end in all of this.

To start the research, I first want to focus on the Office Clients and their Add-ins. The reason for this is that this was the part that was applied the most when you look at Office customization (adjusting the Office client applications in a way that it suited the needs of the productivity workers).

So, I will drill down from the part covered under Office Clients and move over from there to the section Office Add-ins. This will provide a sense of history and slowly move into the newer technologies as provided in the OfficeJS APIs.

Enough stuff to dig in, so hang in there … see you in my next blogpost(s)

Office Development 2017

Office Dev Center

After many years of Office Development, starting with Excel Functions, VBA, COM (VSTA/VSTO) it is time to dive in and see how things are in done in 2017. What are your options, is it still possible to do things in VBA or doesn’t it exist anymore?

In my upcoming blog posts I want to look at the options available and look at the Office Platform in general. What clients are there these days and on what platform do they run.

The world changed a lot in the last decade and Microsoft Windows is not the only platform anymore. There is iOS, Android, MacOS, Windows … even Linux distributions are growing in popularity.

Even if you just look at it in the online (web) world many of the ‘old’ clients are now available in an Online version. Think of Word Online or Excel Online where you get your editor or spreadsheet application running in a browser application. Again, not so easy as you might think … browser applications should be running in a wide variety of browsers. Do they run in Internet Explorer, Chrome, Safari, Opera etc. etc.

My goal with these Office Development blogposts is also maybe a bit selfish … coming from the ‘old’ (as you might discover) VSTO world, or even older VBA world, I need to polish my knowledge around the current options available and I can already tell you that this ‘new’ Office Development world is huge compared to what it was as the number of clients increased dramatically with the operating systems that I mentioned above, but there is also a huge amount of mobile applications for Android, iOS and (currently not so many for) Windows Mobile.

So … a big challenge. I have no idea where this ends because Office Development these days also include developing for Microsoft Graph (it was Office Graph before, but it was revamped into Microsoft Graph this year, growing bigger than it already was), SharePoint Framework or Office Connectors to extend your Groups or Teams.

That said, stay tuned and feel free to share your comments, tips or complaints in the comments section below!

For now, your starting point for Office Development (next to my blog off course) is:

https://dev.office.com/  

SDN Cast 53 – ARM, CShell, WWDC and news week 23

SDNCast 53-800

Developments are going fast, according to the rumors from the market that is. There already was the pre-recorded video at Build 2017 about Windows on ARM, this weeks announcement by Qualcomm on full Windows 10 PCs running on its Snapdragon 835 ARM processor with built-in LTE for “Always Connected” devices (https://www.qualcomm.com/news/onq/2017/05/31/windows-10-running-snapdragon-835-mobile-pc-platform-unveiled-computex).

Intel quickly followed with a statement suggesting that certain 3rd parties might have been using their patents without their consent.

At the same time videos appeared online showing the new Windows interface called CShell. CShell has options to scale the user interface depending on the device the applications are running on. A smaller device will adapt to a mobile like interface where on full scale systems all details will emerge. All devices will get their most optimized view.

Overall it seems that a new Windows mobile devices is rising but not with Windows Mobile but with the full version of Windows that will also be running on full PC ARM devices as mentioned above. Devices have been announced, in the official prerecorded video by Microsoft and also in other videos to be arriving Q4 this year already! In other words, ready for Holiday Season 2017…

Besides speculating on this, we also discussed the news items presented at the Apple Developer Conference WWDC 2017. We are talking about the new devices, upgrades to the iMac Pro, HomePod, AIKit APIs and more. So our Dutch speaking viewers get updated in about an hour on the latest news and event updates.

If you are in the neighborhood also don’t forget that our next SDN Event is close. At June 23rd we will have our second SDN Event this year with, as always, a great set of sessions and speakers. A slightly changed program this time, we will start with a generic keynote by Richard Campbell. After that the regular sessions start.

You Dutchies can register at our SDN site:
https://www.sdn.nl/EVENTS/23-juni-2017

Where can you find our 53rd episode of our Dutch SDN Cast?

https://youtu.be/97VVbIKgwx0

Did you subscribe our Dutch SDN Cast channel already?

Subscribe your YouTube channel if you don’t want to miss a single broadcast. Usually we will broadcast on Thursday evenings at 8 PM but there can be a change of plans where we need to move to another time or day. So to be sure Subscribe to our channel on YouTube or go to http://www.sdncast.nl to see when the next episode is due.

Other news:

Announcing Availability of SharePoint Framework Extensions Developer Preview
https://dev.office.com/blogs/announcing-availability-of-sharepoint-framework-extensions-developer-preview

Open Sourcing the Microsoft Graph Explorer
https://dev.office.com/blogs/open-sourcing-the-microsoft-graph-explorer

Performance Improvements in .NET Core
https://blogs.msdn.microsoft.com/dotnet/2017/06/07/performance-improvements-in-net-core/

Android Developer Preview 3
https://developer.android.com/preview/release-notes.html

Android O APIs are final, get your apps ready!
https://android-developers.googleblog.com/2017/06/android-o-apis-are-final-get-your-apps.html

CShell
First Look at CShell on a Windows phone (Exclusive)

Intel seemingly hints of potential patent infringement around x86 emulation on ARM
http://www.zdnet.com/article/intel-seemingly-hints-of-potential-patent-infringement-around-x86-emulation-on-arm/

Important information on the closing of Docs.com
https://support.office.com/en-US/article/Belangrijke-informatie-over-einde-van-service-voor-Docs-com-3b0d4877-1643-457c-9756-8caf28b94da4
https://docs.com

Events

This week’s events

WWDC 2017 – June 5-9, 2017 – San José
https://developer.apple.com/news/?id=02152017a

DevSum 17 – June 8-9, 2017 – Stockholm
http://www.devsum.se/

Next Week events

Goto Amsterdam – June 12-15
https://gotoams.nl/2017

Microsoft Data Insights Summit – June 12-13, 2017 – Seattle
https://www.microsoft.com/en-us/datainsightssummit

NDC Oslo – June 12-16, 2017 – Oslo
http://ndcoslo.com

E3 – June 13-15, 2017 – Los Angeles Convention Center
https://www.e3expo.com/show-info/2895/about-e3/

Global Devops Bootcamp June 17
http://globaldevopsbootcamp.com

Upcoming events

Office365 Engage – June 19-22 – Haarlem
https://office365engage.com/

Google Cloud Next – June 21 – Kromhouthal – Amsterdam
https://cloudplatformonline.com/Next-Amsterdam-2017.html

SDN Event 2 – Zeist – June 23, 2017
www.sdn.nl

Inspire July 9-13 – Washington D.C.
https://partner.microsoft.com/en-us/inspire/

Ignite 2017 – September 25-29 – Orlando
https://ignite.microsoft.com

SDN Event 3 – Zeist, NL – October 6, 2017
www.sdn.nl

TechDays – October 12-13, 2017 RAI Amsterdam
http://www.techdays.nl/

As usual we are always looking for presenters for our own events and Meetup’s so if you want to share something about hot technologies or just about something you implemented at work or in an App that could be interesting to our audience let us know so we can schedule you for one or our next SDN events or Dutch .NET Group Meetups.

This off course also goes for if you want to write a great article for us to publish in our SDN Magazines or at our SDN Website. The downside of publishing a magazine article is that there can be some time between writing the article and publishing the magazine. So, if it is time critical sometimes the best option is to publish it on the www.sdn.nl website to get more speedy attention to the article.

As you see, options enough to address your audience with top notch information. You can even, if you like, be our guest in our SDN Cast shows to discuss the projects you are working on or other topics you master. We will instruct you how to connect with us and what it is you need to join the show.

Hopefully we will see you at our weekly web cast, for the schedule go to www.sdncast.nl for next week’s announcement to find out the day and time of our next broadcast or go to www.sdncast.nl/youtube to watch old episodes and videos that we recorded at our events. Don’t forget to subscribe our YouTube channel www.sdncast.nl/subscribe or go directly to YouTube not to miss any of our shows!

SharePoint Framework Extensions Developer Preview now available

SharePoint Framework Extensions Preview

Today the Office Team announced the availability of the SharePoint Framework Extensions Developer Preview. With this you can build site, list and command extensions.

To start building your own Extension Preview projects you can go and start looking at the Preview documentation. If you don’t already have an Office 365 Developer Tenant you can get one if you go to the Office Developer Program so there is no argument not to start using that.

The preview is obviously meant to serve as a way to collect feedback from the community and while the preview is running you can expect new SharePoint Framework Extension capabilities and changes based on your feedback.

If you want to provide your feedback you can do this by adding issues to the GitHub issues list but on the SharePoint tech community, the SharePoint Developer section on the Microsoft Tech Community site.

To give you an impression of what the SharePoint Framework Extensions Developer Preview brings, here are three:

1. Build your own Custom Banner using the ApplicationCustomizer.

Adding a Custom Banner is now one of your options to build your own banner with exactly the information you want to share on your list page.

1. Custom Banner SP

2. Create your own Custom Field Rendering using the FieldCustomizer.

In this example you see that the fields of the list are blurred to hide sensitive list information.

2. Custom Field Rendering SP

3. Adding Command Extensions with CommandSet

With this option you can add your own custom menu actions to be able to trigger your own custom actions.

3. Custom Extensions

If you are looking for more examples (extensions examples will be added soon) for what you can do with SharePoint there is a special SharePoint Showcase site for you to look at and to enjoy all the great options and examples.

Now go ahead, and build your own Extensions using the SharePoint Framework Extensions Developer Preview!