Categories
Microsoft Teams

Best Microsoft Teams vacation calendar

Are you looking for an easy way to share your teams vacation calendar on Microsoft Teams? We’ve rounded up the best ways to do this for you.

Microsoft Shifts (free)

If you’re using a licensed version of Microsoft Teams (and not the free personal edition) then you’ll have access to Microsoft’s rostering app called Shifts. If you can’t see it in your ‘Apps’, check with your Office 365 administrator to ensure the app has been enabled in the Teams admin portal.

Within Shifts you can setup rosters that show when someone is available, on vacation or away ill. Amanda Sterner goes into more detail here about how you can best use Shifts for vacation tracking.

Vacation Tracker (paid)

Vacation Tracker is a third-party app available in the Microsoft Teams app store, but is designed to be a one-stop shop for managing vacations and leave requests.

It features a bot to help create leave requests, as well as a tab page to show leave calendars, leave statistics and more.

You can check it out here.

Leave Request by LTAPPs (paid)

This app is also a paid third-party app from App Source, but it too allows you to setup and manage leave requests and more. This one also has integration with SharePoint, with all data persisted in a SharePoint site.

Leave Request also supports email notifications, reporting, exporting to Excel and Word and more.

You can install the app here.

Channel Calendar app (free)

If you’re looking for a free alternative, and don’t have access to Shifts then using the in-built Channel Calendar app can be useful. While you don’t get the more advanced leave request tracking you get with the paid apps, you can use the free Calendar app to “book out” leave for people within your team. This can be done by creating a meeting during the time that an individual is away.

There are a couple of downsides to this app however. While the app shows as a tab in your channel, each event (or leave request) generates a Microsoft Teams meeting and also gets posted back to your Teams channel when created. The form for creating the event cannot be modified either, so those requesting leave will feel like they’re creating a new meeting.

Categories
Azure

Guide to Azure DevOps certification

Are you looking to become certified in Azure DevOps? If so, read on to find out more about what official Microsoft certifications are available.

The pathway to Azure DevOps certification

The first certification you’ll want to get is for Azure Fundamentals (AZ-900). This covers the basics about Azure, including generic cloud concepts as well as more targeted Azure information such as pricing and a high-level overview of available services.

Note that the content for Fundamentals changed on October 25, 2021 so you might want to check the skills measured list to ensure you’re still studying the right materials.

Once you’ve completed the Fundamentals course, you should target either the Azure Administrator Associate (AZ-104) or Azure Developer Associate (AZ-204) exam.

These will give you a solid understanding of core Azure services, and how to put in place best practice solutions to meet the needs of your organisation.

Finally you can undertake the DevOps Engineer Expert certification (AZ-400), which will entail both hands-on lab work as well as an exam. Note that the content for this course changes on November 30, 2021.

AZ-400 requires you to have completed either AZ-104 or AZ-204 before you can attempt the exam.

Conclusion

In summary, there’s a clear pathway to becoming a certified Azure DevOps engineer.

While it will take time, and a lot of hard work – now that Microsoft have role-based certifications in place it’s much easier to work out what exams you need to sit to be considered an expert in your field.

Categories
Azure

How to query multiple Azure Application Insights instances at once

Do you have multiple Azure Application Insights instances that you’d like to query at once? Perhaps you’re trying to see all errors across multiple environments, each with their own App Insights instance?

When using the Azure Portal, querying multiple instances is straightforward.

How to query across multiple App Insight instances

First, login to the Azure portal using your Microsoft work, school or personal account credentials.

Navigate to one of the App Insight instances you’d like to run a query against.

Then, in the sidebar scroll down until you see ‘Logs’. Click on this menu item.

Application Insights logging screen

You should now see the Application Insights query screen. From here, click ‘Select scope’.

Application Insights scope selector

A new modal will appear, allowing you to select multiple Application Insights instances to run your query against from through out your subscription and across multiple resource groups.

Once you’ve clicked the checkbox next to your selected Application Insights instances, click ‘Apply’ to close the modal and persist your selection.

Now type your query, and click ‘Run’. It will execute the request against all your selected scopes (in this case your Application Insights instances) and return the results.

Categories
Azure DevOps Cloud

How to fix Azure MissingSubscriptionRegistration error

Are you trying to deploy an Azure Resource Manager (ARM) template and getting the error MissingSubscriptionRegistration? In this article we’ll take a look at what the cause of the error is, and how you can easily rectify the problem.

Sometimes when trying to run an ARM template in a new subscription to create Azure resources, customers come across the following error:

MissingSubscriptionRegistration: The subscription is not registered to use namespace 'Microsoft.Web'

The namespace may be different depending on the resources you’re trying to create – but effectively this error is telling you that for your subscription, you cannot create resources belonging to the aforementioned namespace. In the case of this example, that’s Microsoft.Web – specifically an App Service.

By default, a new subscription will have most resource providers disabled as a precautionary security measure. You can see a full list of default enabled providers here.

By having most providers disabled, compromised accounts are unable to create a raft of resources. Therefore it’s critical that you only enable namespaces you need to use.

Normally deploying an ARM template should automatically enable the resource namespace – but sometimes it doesn’t work as expected. Similarly, creating a resource manually in the Azure portal should also automatically enable the resource namespace.

Fixing this error is quite straightforward, assuming you have owner or contributor access to the subscription. If you don’t, you’ll need to get your IT administrator to make these changes on your behalf.

Open the Azure Portal, navigate to Subscriptions and choose the subscription you’re trying to deploy the ARM template into. Then, go to Resource providers in the sidebar.

Now scroll through the list of all resource providers until you see the one mentioned in the error message you received. Click the namespace to highlight it, and then choose Register from the menu bar.

This will now activate the namespace, allowing you to create resources that reside within it and thereby the error will be resolved.

Note however that the namespace may not be activated immediately – you may need to wait up to 15 minutes before running the ARM template deployment again.

The registering status shows in the portal while the namespace is being activated – so a quick refresh of the page will allow you to see when the work is completed.

Categories
.NET Core

Get started with ABP framework on a Mac

In this post we’ll explore setting up the popular ABP framework for .NET Core on a Mac with a Postgres database.

In case you’re unaware, the ABP framework offers a number of out of the box features that can save a tremendous amount of time when starting a new web application. This includes a strong and opinionated architecture based on domain driven design, as well as multi-tenancy, theming and more.

Getting your environment setup

In this post we’ll explore getting the basic ABP app with Blazor up and running on a Mac.

Firstly, if you haven’t already done so download and install the latest .NET Core 5 SDK from Microsoft’s site.

Once installed you’ll want to add the ABP command line tools. These will allow you to quickly scaffold projects and code. This can be installed by opening the Terminal.app on your Mac, and running this line of code:

dotnet tool install -g Volo.Abp.Cli

If you’re running a more recent version of macOS – such as Big Sur – you’ll now be using ZSH by default instead of Bash in the Terminal app.

Try running the command abp --help. If you get a message stating that abp is not a known command, you may need to create a .zshrc file to allow you to access the ABP CLI from ZSH. Within Terminal, run the following commands:

  1. vi ~/.zshrc
  2. Paste export PATH=$HOME/.dotnet/tools:$PATH
  3. Run the command :wq to write the file to disk and quit
  4. Restart Terminal.app and you should be able to run abp --help

Creating the ABP project

Create a new folder called ToDoProject. Navigate to it from within Terminal, and run the following command:

abp new TodoApp -u blazor-server

This creates a new .NET Core solution based on the ABP framework.

If you’re on a Windows machine, normally you would now run the DbMigrator project to setup your database tables. However by default the ABP project uses LocalDB which is unavailable on the Mac.

As an alternative, you can use Postgres which IS available for the Mac.

The easiest way to install Postgres is to download and install the Postgres.app for free. Once launched, you can then install an app like Postico or use the command line to create a new Postgres database.

If using Postico, connect to your localhost Postgres server either via the server settings within Postico, or by double clicking the server from within the Postgres app.

Then, navigate to your server within Postico by clicking localhost in the top navigation bar. Click “+ Database” and add a new database called todoapp.

Click these buttons to setup the new database

Now we need to make some changes to the sample ABP app. Open the TodoApp.sln in your editor of choice (for the Mac this can include Visual Studio for Mac, Visual Studio Code or Rider).

Next replace the SQL package with Postgres. Add the Volo.Abp.EntityFrameworkCore.PostgreSql package via Nuget, and remove Volo.Abp.EntityFrameworkCore.SqlServer.

Then follow the rest of the steps in this article to update your project files to use the new Postgres package.

Lastly you’ll need to update the connection strings for your database.

Open src/TodoApp.Blazor/appsettings.json and update the following line to connect to your Postgres database, updating `<your username>` with your database username (for a Mac this is normally your Mac login username, unless you’ve specified a new user):

"ConnectionStrings": {
  "Default": "Server=localhost;Port=5432;Database=todoapp;User Id=<your username>/;Password="
}

Similarly, open src/TodoApp.DbMigrator/appsettings.json and update the same connection string:

"ConnectionStrings": {
  "Default": "Server=localhost;Port=5432;Database=todoapp;User Id=<your username>/;Password="
}

From within your IDE you should now be able to build and run your app, or from the Terminal app run dotnet run to see your first ABP web app running!

Categories
Microsoft Graph

How to export Microsoft Teams chats

Looking to export chats within Microsoft Teams? Exporting chats from Teams is an oft-requested feature, but at the moment there’s no out of the box functionality available for end users.

If you’re an end user

Looking for an easy way to export Teams chats? Check out our new Chat Exporter for Microsoft Teams tool. You can export conversations as CSV, JSON or PNG files.

If you’re using a personal Microsoft account with Teams, you may be able to export your messages following the steps listed here.

For work accounts, one option is to setup a workflow using Microsoft Flow to call the Microsoft Graph API and convert individual chats to HTML or a PDF file.

An alternative is to call the Graph API endpoints yourself to retrieve messages and conversations yourself as part of your own script/program, although that has a higher degree of complexity when compared to using a tool such as Microsoft Flow. These endpoints are also in beta.

You could also open the Microsoft Teams website in your browser (Chrome or Edge) and use a full page screenshot extension to capture a conversation. Note however that you’ll need to manually scroll back through the chat to ensure that the full history is shown.

If you’re an admin

The options are still quite limited, but you can try and use the eDiscovery tools available in Office 365 to retrieve messages from channels.