Before moving on to learning more about custom apps in Microsoft Teams, it is good to have some understanding of the following technologies:
- Azure
- Microsoft 365
- Power Platform
These concepts will be used in most of the apps that you are going to build and host in Teams. Let us have a look at each of them in brief.
Azure
Azure is the core platform that Microsoft Teams is built and hosted on; it takes advantage of core Azure features such as scaling, global footprint, redundancy, and disaster recovery. In this book, we are focusing on apps in Microsoft Teams and these apps can also use Azure services. We will briefly discuss a few of those Azure services, although it would be good for you to explore more about these services as a self-study.
Azure App Service
Azure App Service enables you to quickly build and host web apps, mobile backends, and RESTful APIs in the programming language of your choice without worrying about infrastructure. This platform as a service (PaaS) is offered by Azure so that you can focus on developing your application while the platform takes care of infrastructure needs and scaling based on your business requirements. Speaking of scaling, you can scale your app up or down by adding or removing resources based on demand, which helps control infrastructure costs. Scale-out is another option, increasing the machine instances that your app running on.
QnA Maker
QnA Maker is a cloud-based service that allows you to create a natural conversational layer over your data. QnA Maker lets you import a knowledge base (KB) of question and answer pairs from any FAQs, support websites, manuals, or documents. It also answers questions with the best answers from the QnA in your KB automatically.
Conversational applications are the most common scenario in which to use QnA Maker. A common scenario would be to create a FAQ bot with no code:
Azure Blob Storage
Azure Blob Storage is an optimized solution for storing massive amounts of unstructured data that doesn’t adhere to a particular data model or definition, such as text or binary data. This helps you create data lakes for your analytics needs and provides storage to build powerful cloud-native and mobile apps.
Blob Storage is designed for the following:
- Bringing images or documents directly to a browser
- Storing files for distributed access
- Streaming video and audio
- Writing log files
- Storing data for backup and restoration, disaster recovery, and archiving
- Storing data for analysis by an on-premises or Azure-hosted service
These are the resources that Blob storage offers:
- The storage account: A storage account provides a unique namespace in Azure for your data.
- A container in the storage account: A container organizes a set of blobs, like a directory in a filesystem. A storage account can include an unlimited number of containers, and a container can store an unlimited number of blobs.
- A blob in a container
You can see the relationship between various resources in the following screenshot:
Figure 1.11 – Representation of the relationship between blob storage resources
Azure Storage supports three types of blobs:
- Block blobs: Defined by a list of blocks and predominantly used to store objects such as documents, images, video, and so on.
- Append blobs: An append blob is comprised of blocks and is optimized for append operations, used mostly for scenarios such as logging, big data analytics, output, and so on.
- Page blobs: These are collections of 512-byte pages with the ability to read/write arbitrary ranges of bytes. Also, page blobs are designed for random read/write operations, such as for IaaS disks, Azure Event Hubs, and block-level backup.
Azure Functions
Azure Functions is a serverless event-driven solution that extends Azure App Service on less infrastructure, thereby saving a lot of costs. As a developer, you focus on code and the rest will be handled by Azure Functions.
The following are a few common scenarios for using Azure Functions:
- Building a web API
- Time-based processing
- Images added
- Building a serverless workflow
- Responding to database changes
- Creating reliable message queue systems
- Processing data in real time
- Real-time bot messaging
You can write functions in C#, Java, JavaScript, PowerShell, or Python.
Azure Cognitive Services
Cognitive Services is a collection of intelligent APIs that you can embed into your app, as these REST APIs are very easy to implement. These services can span Vision, Speech, Language, Knowledge, and Web search. There are a variety of domains that give apps a human side, including Speech, Decision, Language, and Vision. Speech-to-text is one feature of the Speech service.
The following figure shows domain-specific pre-trained models:
Figure 1.12 – Screenshot of domain-specific pre-trained models
Microsoft 365
Microsoft 365 is he platform with the most compliant cloud-based subscription service and brings the best tools together with security and compliance.
SharePoint is the technology part of Microsoft 365 that underpins Teams. So, every Microsoft Team instance has a SharePoint site underneath, as well as an Office 365 group.
Office 365 is a service that connects a variety of collaboration tools across Office 365. You can create an Office 365 Group from a SharePoint page or a SharePoint administrator can create one from SharePoint Online Administration.
You can go to the SharePoint start page by clicking on the app launcher and selecting the SharePoint tile or by clicking on SharePoint in the global navigation bar from any site in SharePoint.
Figure 1.13 – SharePoint start page | + Create site
The preceding screen shows you the + Create site option on the SharePoint start page; the following screen shows the option to create a site in the SharePoint admin center window:
Figure 1.14 – SharePoint admin center | + Create | Team site
Power Platform
Power Platform is a low-code or no-code platform that lets you build end-to-end solutions with custom apps using Power Apps, automation processes using Power Automate, and intelligent bots using Power Virtual Agents (PVA), as well as analyze data with Power BI.
This diagram represents all the services from Power Platform in a row:
Figure 1.15 – Power Platform services
Power BI
Power BI provides insights into the value of your data; it can visualize most of your organization’s data on the platform. With the Power BI tab, you can embed interactive reports into Microsoft Teams channels and chats.
Power Apps
Microsoft Power Apps is a SaaS for creating and using custom business apps across different mobile and web platforms. Through this, you can connect to various enterprise systems and data sources that may be used in your organization, such as SAP ERP and Oracle.
Power Apps enables you to build applications with no code or very little code. It will help businesses write their application with minimal help and support from IT organizations.
These apps can be shared with co-workers and even with guests across the web, tablets, and mobile devices.
To view the existing Power Apps or to create new ones, go to https://web.powerapps.com. From there, you can click Apps on the left-hand side to view existing apps and + New app to create a new Power App.
Figure 1.16 – Power Apps with options for creating a new app
Power Apps types
There are three types of Power Apps you can create as shown in the preceding figure:
- Canvas: Canvas apps are Power Apps that start with user experience or data, and will be built using concepts such as screens, controls, formulas, and connections.
- Model-driven: Model-driven apps are apps that start with data models in tables of Dataverse. They are built with components such as site maps, tables, forms, views, charts, dashboards, business processes, and Power Automate.
- Portal: Power Apps portals are external-facing websites that allow users outside your organization to create and modify data in Dataverse tables. These users can be signed via various identities or access content anonymously.
Power Automate
Power Automate helps businesses work smarter by automating workflows with personal productivity and various business apps and services across your organization. In addition, you can also integrate a Power App with Power Automate.
To view the existing Power Automate functionality or to add to it, go to https://flow.microsoft.com.
Figure 1.17 – Power Automate with the option to create new flows
Triggers
Always have one to start Power Automate. You can have the following type of triggers to start Power Automate
- Scheduled Power Automate
- The Power Apps button
- SharePoint items, files, emails, contacts created, HTTP triggers, or webhooks
Actions
You can have as many actions as you like after the trigger condition is successfully met.
The following figure is a sample Power Automate action with a trigger when a new item is created in SharePoint:
Figure 1.18 – Sample Power Automate
PVA
With PVA, you can engage with your customers and employees conversationally. It resolves routine issues easily, freeing up staff to focus on complex matters.
PVA enables you to empower your subject matter experts to easily create powerful bots using a guided, no-code graphical interface – no need for developers or data scientists.
We will discuss more of these technologies in Chapter 7, Microsoft Dataverse for Teams.
To work on PVA or add to it, go to https://powerva.microsoft.com/.
Figure 1.19 – PVA