Hi devs,
As developers, we have to learn new stuff continously. We discover almost each week a new technology, framework, methodology, ... Sometimes, we hear about new trends, but for some reasons, we can't get time to learn more about it. As SharePoint developers, we have done things for years in a way not really up-to-date in terms of current trends. I remember being several times frustrated when hearing about new technologies and not having the opportunity to use them in a real world scenario mainly because of the real world constraints:
- We won't upgrade before 3 years or so...
- We know how to do this kind of development, so stick to it !
- We have to maintain and improve those 8 years old applications, don't try to rewrite it !
- ...
During my missions as a SharePoint consultant and my "real-world work", I had to learn the new techniques and technologies without a real hands-on, but just some short self-training sessions on my free time. Fortunately, the "real-world" is evolving since people use more and more the web in their professional and private life. The decision makers want to bring some user experience they met on the web into their own products. More up-to-date user experiences means for developers more up-to-date technologies. Microsoft realized that as well and have introduced Modern UI for SharePoint. The pages in SharePoint (some of them) are now much more intuitive, reactive, responsive and sexy.
In the same direction, Modern Pages and Modern Web parts have been introduced.
Developers have now to develop client-side "apps" with a specific framework to be integrated in this new UI.
SharePoint Framework
The future of SharePoint relies on new development techniques with a big focus on Client-Side development. You probably have heard somewhere about the SharePoint Framework (aka SPFx). In a few words, it is actually a framework with libraries and tools that allow to develop modern client webparts (and probably full pages in the future).
Modern Toolchain
The SharePoint Framework relies on a wide range of new technologies :
Modern technology
Purpose
.NET Dev comparison
Node.JS
Development web server
IIS / IIS Express
NPM
Packages Manager
Nuget
Yeoman
Project Template scaffolding
Visual Studio project templates
Gulp
Build system
MS Build
TypeScript see my post about Typescript
Preferred and suggested language
C# / VB.NET
When I say that SPFx "relies" on these technologies, it is not actually true, the distributed application will be a full JS application and could possibly be entirely written from scratch, but I think it will be pretty tricky. The technologies mentioned here above are there to improve (significantly) your productivity.
Big advantages of SPFx
Any editor
Since the distributed app will be a JavaScript application, it can be written with any text editor or IDE (VS Code, Sublime, WebStorm, ...). It does not require Visual Studio, which is, by the way, not really well suited with Node.JS style projects. Basically, choose your favorite editor!
Any system
Since the development web server is hosted by Node.JS, and Node.JS can be installed basically on any system (Windows, Linux, MacOSX, Docker, ...). You do not need any specific system to setup a development environment. Basically, choose your favorite system!
Any framework or library
Since the distributed app will be a JavaScript application, any JavaScript framework or library can theoritically be used in your application (jQuery, Angular, React, Lodash, ...). Basically, choose your favorite frameworks! (And the ones that make sense for your application)
No need for a DEV SharePoint environment
The SharePoint Framework also proposes a very interesting and useful feature: The SharePoint Workbench which is actually a page hosted in your local development server that looks exactly like a SharePoint Modern Page. It means that you can develop on your local machine without any connection to a SharePoint tenant.
Get Started with SPFx
I will not in this post rewrite what has already be written by the SPFX folks themselves. So, if you want to get started with SPFX, please go there
SPFx Today and Tomorrow
At the time of this writing, the SharePoint Framework is still in Developer Preview. Back in November, there was an announcement of the release of SPFx in First Release tenants. However, the official Github repo still mentions it is the Developer Preview release.
"Note: SharePoint Framework web parts are not supported for production use." -- SPFx Github homepage
Also, the SharePoint Framework is (currently) only available on SharePoint Online At ESPC16 in Vienna, a few weeks ago, I could hear a few shy words about (Nothing really official here) :
- SPFx used to develop full pages (instead of only webparts)
- SPFx might be released for on-prem in the future
My toughts about SPFx
I really think it is the best opportunity to:
- Higly increase the quality of the SharePoint customization Indeed, SPFx is so portable that web developers from all horizons and with many different backgrounds (specialists in many different technologies) can now become SharePoint developers. It was already the case with SharePoint Addins but not with such a focus on new web technologies
- Highly improve the skills of "classic" SharePoint developers Indeed, classic SharePoint developers (as I used to be not so long ago) have now the opportunity to get up-to-date with the current technical trends, and they will leverage their strong background of SharePoint to build even better applications with Modern user experience.
Tell me what you think and let's discuss !
See you soon!
Yannick