In recent time, Office 365 has taken a leap and became Microsoft 365. This is a bigger platform for Microsoft to sell and provide better features and benefits to customers.
With the hardware and software coming together as packaged offering, customers and end users can get more benefits from this solution. The developers in Office 365 world can utilize the capabilities of Azure to build and integrate solutions with Office 365.
As you know there are many possible solution to a problem and the best solution depends on the scenario you have. In SharePoint words – It depends :).
Now, what is best solution in my scenario. Well you have to define and develop as how you would like to develop the solution now and grow in future. I am going to use term Microservices from Azure to define as how to build better solutions for Office 365.
From Microsoft Microservices pages, the difference between traditional approach of layers v/s the Microservice application approach as below –
From <https://azure.microsoft.com/en-au/blog/microservices-an-application-revolution-powered-by-the-cloud/>
As on Microsoft Page, the definition of Microservice is –
Microservice applications are composed of small, independently versioned, and scalable customer-focused services that communicate with each other over standard protocols with well-defined interfaces.
Key characteristics of micro-services design are –
- Written in any programming language and use any framework
- Allows code and state to be independently versioned, deployed, and scaled
- Interacts with other microservices over well-defined interfaces and protocols
- Remains consistent and available in the presence of failures
Now, you might be wondering as how this applies in Office 365 Development world.
Let’s take the example of world known problem of Office 365 Groups governance. Organizations would like to use governance on creation and usage of Office 365 groups. The major concern areas were/are –
- Who can create groups?
- Naming convention of group.
- Ownership of group and defining members
- Archiving office 365 groups
Apart from that, Since Office 365 groups a mix of services including OneNote, Planner, SharePoint and more. The specific concern is around SharePoint site setup and use. SharePoint has been in market and popular for collaboration purpose. Organization may want to control the things on SharePoint site also. To provide solution which meet all above concern, you can create a provisioning solution which could look like below –
Options |
SharePoint List –> New Item event to trigger Azure Web Job for group provisioning –> Create group and manage SharePoint site |
SP List –> Flow approval on item create –> Item approve –> Flow to create group –> Add owner and members |
SP List –> Flow to trigger Azure function –> Azure Function to create groups –> return the Group to Flow –> Call Another Azure Function to manage members –> Notify requestor via Flow |
SP List –> Flow to push request in Azure Queue –> Azure Function to read Queue and process request (this could be 1 for Group creation and 1 for adding members) –> Notify the completion–> Notification via Graph Email via Azure Function to requestor. |
SPFx web part –> Provision using Graph Endpoint –> Provide output of operation to user |
As you see, for 1 problem, there could be multiple solutions and each solution could be connected via multiple channels. To me, this creates services on demand and I can approach multiple services on demand basis to build my solution. The solution building blocks provide better re-usability and independence on calling layer to adapt to Micro-services design/concept.
Please let me know your comments as how you think Office 365 Dev is taking shape in current time and where will it land in future.