Month: September 2024
Deeplink Navigation Issue in Published MS Teams Custom App on Mobile Devices (iOS & Android)
Description:
We are experiencing an issue with navigation in our published MS Teams custom app. The app has a Tab with personal scope and a Bot. The problem arises for a few users (mostly on iOS devices) when they navigate to the Tab from the chat section of the Bot by clicking on a button that deeplinks to the Tab.
Expected Behavior:
The button click should trigger the deeplink and open the designated Tab and the specific page within the Tab in MS Teams app.
Actual Behavior:
iOS devices display an error message “Link not Supported. You can’t open this link on the mobile app. Please open it on the desktop or web app.”
Android devices successfully open the Tab, but navigate to the default home page instead of the intended page within the Tab.
Error Message:
Details:
The navigation works perfectly on the Desktop App and Web Browser.
Sample Deeplink Used:
let obj = {
“params”: paramsObj,
“subdomain”: subdomain,
“pageRoute”: “home”
};
let subEntityId = {
“subEntityId”: obj
};
var encodedWebUrl = “”;
var encodedContext = encodeURI(JSON.stringify(subEntityId));
let tabUrl = “https://teams.microsoft.com/l/entity/” + manifestObj.id + “/agentTabId?webUrl=”
+ encodedWebUrl + “&label=entityLabel&context=” + encodedContext;
cardObj = {
…
{
title: ‘Open in Tab’,
type: ‘Action.OpenUrl’,
url: tabUrl,
}
…
}
Request:
We need assistance in resolving this issue to ensure smooth navigation for all users, especially on iOS devices. Additionally, we need guidance on ensuring that Android devices navigate to the correct page within the Tab rather than the default home page.
Thank you for your support.
Description:We are experiencing an issue with navigation in our published MS Teams custom app. The app has a Tab with personal scope and a Bot. The problem arises for a few users (mostly on iOS devices) when they navigate to the Tab from the chat section of the Bot by clicking on a button that deeplinks to the Tab. Expected Behavior:The button click should trigger the deeplink and open the designated Tab and the specific page within the Tab in MS Teams app.Actual Behavior:iOS devices display an error message “Link not Supported. You can’t open this link on the mobile app. Please open it on the desktop or web app.”Android devices successfully open the Tab, but navigate to the default home page instead of the intended page within the Tab.Error Message:Details:The navigation works perfectly on the Desktop App and Web Browser.Sample Deeplink Used: let obj = {
“params”: paramsObj,
“subdomain”: subdomain,
“pageRoute”: “home”
};
let subEntityId = {
“subEntityId”: obj
};
var encodedWebUrl = “”;
var encodedContext = encodeURI(JSON.stringify(subEntityId));
let tabUrl = “https://teams.microsoft.com/l/entity/” + manifestObj.id + “/agentTabId?webUrl=” + encodedWebUrl + “&label=entityLabel&context=” + encodedContext;
cardObj = {
…
{
title: ‘Open in Tab’,
type: ‘Action.OpenUrl’,
url: tabUrl,
}
…
}Request: We need assistance in resolving this issue to ensure smooth navigation for all users, especially on iOS devices. Additionally, we need guidance on ensuring that Android devices navigate to the correct page within the Tab rather than the default home page. Thank you for your support. Read More
Vba
Hey all
I have my excel workbook with a main sheet
that has the table of contents
for each content it is hyperlinked with other sheets .
i want to make a vba code to print my workbook as a pdf.
i want the hyperlinks i made in excel to be preserved in the pdf
I want them to work in the pdf as welll
Hey all I have my excel workbook with a main sheet that has the table of contents for each content it is hyperlinked with other sheets .i want to make a vba code to print my workbook as a pdf.i want the hyperlinks i made in excel to be preserved in the pdf I want them to work in the pdf as welll Read More
How to create a macOS Sequoia bootable USB for installation on Windows 10 PC?
Hello tech experts,
My MacBook Pro M2 can’t get into the desktop anymore after in-place upgrade to macOS Sequoia, which is the latest Mac operating system available for installation recently. We don’t have additional Mac device at home. How can I create a macOS bootable USB on Windows So I can reinstall macOS Sequoia on my MacBook Pro?
I check the official Apple documentation for making Mac bootable installation. But the tool is built for macOS not the Window. We have a spare Windows 10 PC at home and look for a way to make bootable USB for macOS Sequoia on Windows 10.
Hello tech experts, My MacBook Pro M2 can’t get into the desktop anymore after in-place upgrade to macOS Sequoia, which is the latest Mac operating system available for installation recently. We don’t have additional Mac device at home. How can I create a macOS bootable USB on Windows So I can reinstall macOS Sequoia on my MacBook Pro? I check the official Apple documentation for making Mac bootable installation. But the tool is built for macOS not the Window. We have a spare Windows 10 PC at home and look for a way to make bootable USB for macOS Sequoia on Windows 10. Read More
A HYPERLINK bug?
This simple code works as intended in Excel on the Web, but doesn’t in Excel 365:
=HYPERLINK(“#A”&{1, 2, 3, 4, 5})
It should create an array of hyperlinks that take me to A1, A2,…, A5. In Excel 365 it always takes me to A1, in Excel on the Web it works fine. A bug?
This simple code works as intended in Excel on the Web, but doesn’t in Excel 365: =HYPERLINK(“#A”&{1, 2, 3, 4, 5}) It should create an array of hyperlinks that take me to A1, A2,…, A5. In Excel 365 it always takes me to A1, in Excel on the Web it works fine. A bug? Read More
DLP Policy Tips Get New Premium Conditions
MC894577 announces that DLP policy tips displayed in Outlook will soon support a set of new conditions. That’s good, but the text of the announcement is unclear about important points like the clients that will support the new policy tips, what kinds of groups are supported by the conditions, and precise details of how Outlook will differentiate between users with Office 365 E3 and E5 licenses.
https://office365itpros.com/2024/09/25/dlp-policy-tips-premium/
MC894577 announces that DLP policy tips displayed in Outlook will soon support a set of new conditions. That’s good, but the text of the announcement is unclear about important points like the clients that will support the new policy tips, what kinds of groups are supported by the conditions, and precise details of how Outlook will differentiate between users with Office 365 E3 and E5 licenses.
https://office365itpros.com/2024/09/25/dlp-policy-tips-premium/ Read More
Unable to delete recurring calendar invite from someone else who I don’t have contact with anymore
Hello,
I have received an originally accepted an invite to a recurring meeting from someone who I no longer have contact with.
I have tried to delete the series but it doesn’t delete and now I am forced to turn off the calendar that is on ‘My Computer’.
Does anyone know how I can get rid of these meetings?
Hello,I have received an originally accepted an invite to a recurring meeting from someone who I no longer have contact with.I have tried to delete the series but it doesn’t delete and now I am forced to turn off the calendar that is on ‘My Computer’.Does anyone know how I can get rid of these meetings? Read More
Why not possible to create more than 20 reservation pages in Bookings?
concerns Microsoft’s ‘Bookings’ program.
When you have created 20 reservation pages, and you add more pages afterwards, Bookings will still only show you 20 reservation pages… so when you add additional pages (after 20), the system will replace the ‘oldest’ page with the new one that means you can no longer see/find that one reservation page….
The search function doesn’t work either.
We work with 1 reservation page per teacher, so currently there are 21 teachers for whom we have to set up a page, but you only have 20 visible pages…
is this already known to you? is this being worked on?
concerns Microsoft’s ‘Bookings’ program.
When you have created 20 reservation pages, and you add more pages afterwards, Bookings will still only show you 20 reservation pages… so when you add additional pages (after 20), the system will replace the ‘oldest’ page with the new one that means you can no longer see/find that one reservation page….
The search function doesn’t work either.
We work with 1 reservation page per teacher, so currently there are 21 teachers for whom we have to set up a page, but you only have 20 visible pages…
is this already known to you? is this being worked on? Read More
Outlook emails not sending and receiving now??
I’m still using my Microsoft Office Outlook 2007 program for my emails and up till now it has worked but it seems this new Microsoft’s modern authentication methods change has made it impossible to send and receive using this Microsoft program.
I understand that it is an old program but if Thunderbird can be used for the new authentication method server then is it possible for us to use our old Outlook 2007 email program?
Please advise if it is possible and if so how can I arrange the settings.
Thanks in advance
Tony
I’m still using my Microsoft Office Outlook 2007 program for my emails and up till now it has worked but it seems this new Microsoft’s modern authentication methods change has made it impossible to send and receive using this Microsoft program.I understand that it is an old program but if Thunderbird can be used for the new authentication method server then is it possible for us to use our old Outlook 2007 email program?Please advise if it is possible and if so how can I arrange the settings.Thanks in advanceTony Read More
Azure OpenAI image prompt token pricing
When using gpt4-vision, gpt4o, gpt4o-mini, are the image prompt pricings for Azure OpenAI the same as in OpenAI ChatGPT?
When using gpt4-vision, gpt4o, gpt4o-mini, are the image prompt pricings for Azure OpenAI the same as in OpenAI ChatGPT? Read More
Managed Google Play Store App Issue
Hi All,
I have got a strange issue were an app is installing on the Android device but doesn’t appear in the managed play store.
So this app is being deployed to BYOD and CORP (COPE) devices and is being made Available for enrolled devices, so for all the other many apps being deployed to those devices, the apps appear in the managed play store.
However, if you type the name of the app in the managed play store (it doesn’t have access to the full store) the app appears and is able to be installed.
So the app is there to download just not showing up.
I did some testing on a fully managed device and pushed the app to be a required install, the app installed onto the device, but doesn’t show in the managed play store.
I have removed the app from the managed play store and re added it, but still have the same issue.
Is this an app specific issues or am I missing something?
Has anyone come across this before?
Thanks
Hi All, I have got a strange issue were an app is installing on the Android device but doesn’t appear in the managed play store. So this app is being deployed to BYOD and CORP (COPE) devices and is being made Available for enrolled devices, so for all the other many apps being deployed to those devices, the apps appear in the managed play store. However, if you type the name of the app in the managed play store (it doesn’t have access to the full store) the app appears and is able to be installed. So the app is there to download just not showing up. I did some testing on a fully managed device and pushed the app to be a required install, the app installed onto the device, but doesn’t show in the managed play store. I have removed the app from the managed play store and re added it, but still have the same issue. Is this an app specific issues or am I missing something? Has anyone come across this before? Thanks Read More
SP 2019 On-Premise | Apply template to document library | Issue
Hello,
I’m using SharePoint 2019 Server On-Premise.
Task 1: Create a template of an existing document library.
Task 2: Apply the newly created template to a new document library.
Task 1 was successful but I’m failing to succeed with Task 2. I simply do not find the option to use an existing template. For clarification, I do not want to use a document template but a template for the document library, so the columns are copied to the new document library including the column formatting.
I would appreciate pointers.
Thank you and all the best,
VarDumped
Hello, I’m using SharePoint 2019 Server On-Premise. Task 1: Create a template of an existing document library.Task 2: Apply the newly created template to a new document library. Task 1 was successful but I’m failing to succeed with Task 2. I simply do not find the option to use an existing template. For clarification, I do not want to use a document template but a template for the document library, so the columns are copied to the new document library including the column formatting. I would appreciate pointers. Thank you and all the best,VarDumped Read More
Customizing the combo of Azure Developer CLI and .NET Aspire
Inlining extra code
Inlining via Aspire
var clientId = builder.AddParameter(“ClientId”);
var clientSecret = builder.AddParameter(“ClientSecret”,secret:true);
var weatherapi = builder.AddProject<Projects.WeatherAPI>(“weatherapi”)
.WithEnvironment(“TenantId”,tenantId)
.WithEnvironment(“ClientId”,clientId);
var appRegistration = builder.AddBicepTemplate(
name: “Graph”,
bicepFile: “../infra/Graph/app-registration.bicep”
);
var tenantId = appRegistration.GetOutput(“tenantId”);
var clientId = appRegistration.GetOutput(“clientId”);
var weatherapi = builder.AddProject<Projects.WeatherAPI>(“weatherapi”)
.WithEnvironment(“TenantId”,tenantId)
.WithEnvironment(“ClientId”,clientId);
resource app ‘Microsoft.Graph/applications@v1.0’ = {
displayName: ‘azd-custom-01’
uniqueName: ‘azd-custom-01’
}
output tenantId string = tenant().tenantId
output clientId string = app.appId
Inlining via Azure Developer CLI
resource vault ‘Microsoft.KeyVault/vaults@2024-04-01-preview’ = {
name: ‘kv-${resourceToken}’
location: location
properties: {
sku: {
name: ‘standard’
family: ‘A’
}
accessPolicies: []
enableRbacAuthorization: true
enabledForDeployment: true
tenantId: tenant().tenantId
}
}
resource kvMiRoleAssignment ‘Microsoft.Authorization/roleAssignments@2022-04-01’ = {
name: guid(vault.id, managedIdentity.id, subscriptionResourceId(‘Microsoft.Authorization/roleDefinitions’, ‘4633458b-17de-408a-b874-0445c86b69e6’))
scope: vault
properties: {
principalId: managedIdentity.properties.principalId
principalType: ‘ServicePrincipal’
roleDefinitionId: subscriptionResourceId(‘Microsoft.Authorization/roleDefinitions’, ‘4633458b-17de-408a-b874-0445c86b69e6’)
}
}
output KEYVAULT_URL string = vault.properties.vaultUri
– server: {{ .Env.AZURE_CONTAINER_REGISTRY_ENDPOINT }}
identity: {{ .Env.AZURE_CONTAINER_REGISTRY_MANAGED_IDENTITY_ID }}
secrets:
– name: clientsecret
keyVaultUrl: ‘{{ .Env.KEYVAULT_URL }}secrets/clientSecret’
identity: {{ .Env.AZURE_CONTAINER_REGISTRY_MANAGED_IDENTITY_ID }}
…
template:
containers:
– image: {{ .Image }}
name: bff-web-app
env:
– name: ClientSecret
secretRef: clientsecret
var clientId = appRegistration.GetOutput(“clientId”);
var clientSecret = appRegistration.GetSecretOutput(“clientSecret”);
builder.AddProject<Projects.BFF_Web_App>(“bff-web-app”)
.WithReference(weatherapi)
.WithEnvironment(“TenantId”, tenantId)
.WithEnvironment(“ClientId”, clientId)
.WithEnvironment(“ClientSecret”, clientSecret);
CAF Primer
Level 1: Azure Policy, Entra ID, Log Analytics workspaces
Level 2: Virtual networks, DNS zones, Azure Firewall
Level 3: Azure Kubernetes Service, Azure Container App Environments, SQL Server
Level 4: Containers, SQL Databases
Pre-creating out of band
Pre-creating with hooks
hooks:
preprovision:
shell: pwsh
run: az stack sub create –name azd-level-2 –location norwayeast –template-file .infralevel-2main.bicep –parameters .infralevel-2main.bicepparam –action-on-unmanage ‘deleteAll’ –deny-settings-mode none
postdown:
shell: pwsh
run: az stack sub delete –name azd-level-2 –action-on-unmanage deleteAll –yes
services:
app:
language: dotnet
project: ./BFF_Aspire/BFF_Web_App.AppHost/BFF_Web_App.AppHost.csproj
host: containerapp
Complete sample
var clientId = builder.Configuration.GetValue<string>(“ClientId”);
var clientSecret = builder.Configuration.GetValue<string>(“ClientSecret”);
var keyvaultUrl = builder.Configuration.GetValue<string>(“KeyVaultUrl”) ?? “noVault”;
var keyvaultSecret = builder.Configuration.GetValue<string>(“KeyVaultSecret”) ?? “noVault”;
builder.AddServiceDefaults();
builder.Services.AddAuthentication(OpenIdConnectDefaults.AuthenticationScheme)
.AddCookie(“MicrosoftOidc”)
.AddMicrosoftIdentityWebApp(microsoftIdentityOptions =>
{
if (builder.Environment.IsDevelopment())
{
microsoftIdentityOptions.ClientCredentials = new CredentialDescription[] {
CertificateDescription.FromStoreWithDistinguishedName(“CN=MySelfSignedCertificate”,System.Security.Cryptography.X509Certificates.StoreLocation.CurrentUser)};
}
else
{
microsoftIdentityOptions.ClientCredentials = new CredentialDescription[] {
CertificateDescription.FromKeyVault(keyvaultUrl,keyvaultSecret)};
}
microsoftIdentityOptions.ClientId = clientId;
microsoftIdentityOptions.SignInScheme = CookieAuthenticationDefaults.AuthenticationScheme;
microsoftIdentityOptions.CallbackPath = new PathString(“/signin-oidc”);
microsoftIdentityOptions.SignedOutCallbackPath = new PathString(“/signout-callback-oidc”);
microsoftIdentityOptions.Scope.Add($”api://{clientId}/Weather.Get”);
microsoftIdentityOptions.Authority = $”https://login.microsoftonline.com/{tenantId}/v2.0/”;
microsoftIdentityOptions.ResponseType = OpenIdConnectResponseType.Code;
microsoftIdentityOptions.MapInboundClaims = false;
microsoftIdentityOptions.TokenValidationParameters.NameClaimType = JwtRegisteredClaimNames.Name;
microsoftIdentityOptions.TokenValidationParameters.RoleClaimType = “role”;
}).EnableTokenAcquisitionToCallDownstreamApi(confidentialClientApplicationOptions =>
{
confidentialClientApplicationOptions.Instance = “https://login.microsoftonline.com/”;
confidentialClientApplicationOptions.TenantId = tenantId;
confidentialClientApplicationOptions.ClientId = clientId;
})
.AddInMemoryTokenCaches();
builder.Services.ConfigureCookieOidcRefresh(“Cookies”, OpenIdConnectDefaults.AuthenticationScheme);
builder.Services.AddAuthorization();
displayName: ‘azd-custom-03’
uniqueName: ‘azd-custom-03’
keyCredentials: [
{
displayName: ‘Credential from KV’
usage: ‘Verify’
type: ‘AsymmetricX509Cert’
key: createAddCertificate.properties.outputs.certKey
startDateTime: createAddCertificate.properties.outputs.certStart
endDateTime: createAddCertificate.properties.outputs.certEnd
}
]
//The default would be api://<appid> but this creates an invalid (for Bicep) self-referential value
identifierUris: [
identifierUri
]
web: {
redirectUris: [
‘https://localhost:7109/signin-oidc’
‘https://bff-web-app.${caeDomainName}/signin-oidc’
‘https://bff-web-app.internal.${caeDomainName}/signin-oidc’
]
}
api: {
oauth2PermissionScopes: [
{
adminConsentDescription: ‘Weather.Get’
adminConsentDisplayName: ‘Weather.Get’
value: ‘Weather.Get’
type: ‘User’
isEnabled: true
userConsentDescription: ‘Weather.Get’
userConsentDisplayName: ‘Weather.Get’
id: guid(‘Weather.Get’)
}
]
}
}
using Aspire.Hosting.Azure;
var builder = DistributedApplication.CreateBuilder(args);
//Replace with a verified domain in your tenant
var identifierUri = “api://contoso.com”;
//var appRegistration = builder.AddBicepTemplate(
// name: “Graph”,
// bicepFile: “../infra/Graph/app-registration.bicep”
//)
// .WithParameter(“identifierUri”, identifierUri)
// .WithParameter(“subjectName”, “CN=bff.contoso.com”)
// .WithParameter(“keyVaultName”)
// .WithParameter(“certificateName”)
// .WithParameter(“uamiName”)
// .WithParameter(“caeDomainName”);
//var tenantId = appRegistration.GetOutput(“tenantId”);
//var clientId = appRegistration.GetOutput(“clientId”);
//var keyVaultUrl = appRegistration.GetOutput(“keyVaultUrl”);
//var keyVaultSecret = appRegistration.GetOutput(“keyVaultSecret”);
var tenantId = builder.AddParameter(“TenantId”);
var clientId = builder.AddParameter(“ClientId”);
var keyVaultUrl = builder.AddParameter(“keyVaultUrl”);
var keyVaultSecret = builder.AddParameter(“keyVaultSecret”);
var weatherapi = builder.AddProject<Projects.WeatherAPI>(“weatherapi”)
.WithEnvironment(“TenantId”, tenantId)
.WithEnvironment(“ClientId”, clientId)
.WithEnvironment(“IdentifierUri”, identifierUri);
builder.AddProject<Projects.BFF_Web_App>(“bff-web-app”)
.WithReference(weatherapi)
.WithExternalHttpEndpoints()
.WithEnvironment(“TenantId”, tenantId)
.WithEnvironment(“ClientId”, clientId)
.WithEnvironment(“IdentifierUri”, identifierUri)
.WithEnvironment(“KeyVaultUrl”, keyVaultUrl)
.WithEnvironment(“KeyVaultSecret”, keyVaultSecret);
builder.Build().Run();
{
//azd infra synth will not generate code
}
if (!builder.Environment.IsDevelopment())
{
//azd infra synth will generate code
}
//main.bicep
output GRAPH_CLIENTID string = Graph.outputs.clientId
//bff-web-app.tmpl.yaml
– name: ClientId
value: ‘{{ .Env.GRAPH_CLIENTID }}’
/* Parameters */
//main.bicep
param ClientId string
//bff-web-app.tmpl.yaml
– name: ClientId
value: ‘{{ parameter “ClientId” }}’
/* Hard-coded values */
//Program.cs
var identifierUri = “api://contoso.com”;
//bff-web-app.tmpl.yaml
– name: IdentifierUri
value: api://contoso.com
param networkRGName string = ‘rg-azd-level-2’
@description(‘The name of the virtual network to attach resources to.’)
param vnetName string = ‘aca-azd-weu’
resource rg_vnet ‘Microsoft.Resources/resourceGroups@2024-03-01’ existing = {
name: networkRGName
}
resource vnet ‘Microsoft.Network/virtualNetworks@2023-09-01’ existing = {
scope: rg_vnet
name: vnetName
}
…
module resources ‘resources.bicep’ = {
scope: rg
name: ‘resources’
params: {
location: location
vnetId: vnet.id
dnsRGName: networkRGName
tags: tags
principalId: principalId
}
}
// name: replace(‘acr-${resourceToken}’, ‘-‘, ”)
// location: location
// sku: {
// name: ‘Basic’
// }
// tags: tags
// }
module containerRegistry ‘modules/containers/container-registry/main.bicep’ = {
name: replace(‘acr-${resourceToken}’, ‘-‘, ”)
params: {
resourceTags: tags
acrName: replace(‘acr-${resourceToken}’, ‘-‘, ”)
acrSku: ‘Premium’
adminUserEnabled: false
anonymousPullEnabled: false
location: location
managedIdentity: ‘SystemAssigned’
publicNetworkAccess: ‘Enabled’
}
}
resource scopeACR ‘Microsoft.ContainerRegistry/registries@2023-07-01’ existing = {
name: containerRegistry.name
}
//And use it as the scope for a role assignment
resource caeMiRoleAssignment ‘Microsoft.Authorization/roleAssignments@2022-04-01’ = {
name: guid(containerRegistry.name, managedIdentity.id, subscriptionResourceId(‘Microsoft.Authorization/roleDefinitions’, ‘7f951dda-4ed3-4680-a7ca-43fe172d538d’))
scope: scopeACR
properties: {
principalId: managedIdentity.properties.principalId
principalType: ‘ServicePrincipal’
roleDefinitionId: subscriptionResourceId(‘Microsoft.Authorization/roleDefinitions’, ‘7f951dda-4ed3-4680-a7ca-43fe172d538d’)
}
}
name: ‘cae-${resourceToken}’
params: {
resourceTags: tags
location: location
environmentName: ‘cae-${resourceToken}’
snetId: ‘${vnetId}/subnets/snet-cae-01’
//true for connecting CAE to snet (with private IPs)
//false for public IPs
vnetInternal: true
}
}
#resourceGroup: rg-03-E2E
hooks:
preprovision:
– shell: pwsh
run: az stack sub create –name azd-level-2 –location westeurope –template-file .infralevel-2main.bicep –parameters .infralevel-2main.bicepparam –action-on-unmanage ‘deleteAll’ –deny-settings-mode none
postprovision:
– shell: pwsh
run: az stack sub create –name azd-devCenter –location westeurope –template-file .infradevCentermain.bicep –parameters .infradevCentermain.bicepparam –action-on-unmanage ‘deleteAll’ –deny-settings-mode none
postdown:
– shell: pwsh
run: az stack sub delete –name azd-devCenter –action-on-unmanage deleteAll –yes
– shell: pwsh
run: az stack sub delete –name azd-level-2 –action-on-unmanage deleteAll –yes
services:
app:
language: dotnet
project: ./BFF_Web_App.AppHost/BFF_Web_App.AppHost.csproj
host: containerapp
? Enter a new environment name: 03-E2E
PS C:CodePOCsazd_customization3_End-to-EndBFF_Aspire> azd up
? Select an Azure Subscription to use: [Use arrows to move, type to filter]
“Logging”: {
“LogLevel”: {
“Default”: “Information”,
“Microsoft.AspNetCore”: “Warning”,
“Aspire.Hosting.Dcp”: “Warning”
}
},
“Parameters”: {
“TenantId”: “guid”,
“ClientId”: “guid”,
“ClientSecret”: “guid”,
“KeyVaultUrl”: “https://contoso.vault.azure.net”,
“KeyVaultSecret”: “certificateName”
}
}
Microsoft Tech Community – Latest Blogs –Read More
How to Host Your Personal Portfolio Using GitHub Pages
In this era of technology, having a professional portfolio is essential for both academic and career advancement. As we move forward with modernization, our digital footprints become more significant every day. While reading this, you’ve probably guessed what I’m about to suggest — exactly, in today’s blog, I will demonstrate how to host a personal portfolio using GitHub Pages as your hosting platform.
Before we dive into the technical steps, let me introduce myself. I am Raiyan Bin Sarwar, a third year CSE undergraduate student at Bangladesh University of Professionals. Currently, I’m also a Microsoft Student Ambassador (Beta).
Now, let’s move forward with the steps to help you create and host your own personal portfolio using GitHub Pages. The method I’ll share here is beginner friendly, so you don’t need any prior coding experience to follow along.
Step by Step Guide to Hosting a Portfolio Using GitHub Pages
Step 1: Create a GitHub Account
To get started, you’ll need a GitHub account. If you already have one, you can skip this step. If not, follow these instructions:
Visit GitHub and sign up using your email address.
Complete your profile by following the simple setup instructions provided.
Step 2: Create a New Repository
Once you’re logged into GitHub, click the “+” button at the top-right corner of your screen, and select “New Repository”.
Name your repository as your-username.github.io (replacing your-username with your actual GitHub username). This is important as GitHub recognizes this specific naming format to host your portfolio.
Ensure the repository is set to Public and check the box to “Add a README file”.
Finally, click “Create repository” to set it up.
Step 3: Customize Your README (Portfolio Content)
The README.md file is where you’ll place the content for your portfolio. GitHub Pages uses Markdown language to structure content, so you can format text easily using it.
Navigate to the repository you just created, and click on the README.md file.
Click the pencil icon to edit the file.
Now, you can add your portfolio content. Here’s a basic example:
# Raiyan Bin Sarwar
Welcome to my personal portfolio! I’m a third-year CSE undergraduate at Bangladesh University of Professionals and a Microsoft Student Ambassador (Beta).
## About Me
I have experience in cloud computing, low-code platforms, and technology communities.
## Skills
– Cloud Computing
– GitHub & Git
– Microsoft Power Platform
## Contact
You can reach me at [LinkedIn](https://www.linkedin.com/username) or [GitHub](https://github.com/username).
Once you’ve written your content, click “Commit changes” to save it.
Step 4: Enable GitHub Pages
Next, you’ll need to enable GitHub Pages to host your portfolio.
In your repository, click on Settings at the top.
Scroll down to the GitHub Pages section.
Under Source, select main (or master) from the dropdown menu and click Save.
After enabling GitHub Pages, you’ll receive a live URL for your portfolio, which will be in the format https://your-username.github.io/.
Step 5: (Optional) Customize Your Portfolio with a Template
To make your portfolio look more appealing, you can choose a theme from GitHub’s collection:
Visit GitHub Pages Themes and select a theme you like.
Go back to the Settings of your repository and scroll to the GitHub Pages section.
Click on “Choose a theme”, pick your desired theme, and apply it by clicking “Select theme”.
Once selected, commit the changes to apply the theme to your portfolio.
Sharing some necessary resourced that you may like:
1. Create and host web sites by using GitHub Pages – Training
2. Upload your project by using GitHub best practices – Training
Final Thoughts
By following these steps, you will have successfully hosted your personal portfolio using GitHub Pages without needing any prior coding experience. As you get more comfortable with GitHub, you can further enhance your portfolio by adding new sections, showcasing your projects, or even diving into custom HTML and CSS for advanced customization.
Building a digital presence is key to standing out in today’s competitive environment. A personal portfolio not only highlights your achievements but also serves as an online resume, making it easier for potential employers or collaborators to learn more about you.
Microsoft Tech Community – Latest Blogs –Read More
DLP Policy Tips Get New Premium Conditions
Announcement of New DLP Policy Tips Masked by Unclear Text
As described in message center notification MC894577 (21 Sept 2024), Microsoft plans to make some changes to the Data Loss Prevention (DLP) policy tips exposed to Outlook users. Regretfully, the text of the notification raises several questions that deserve clarification. This might happen as Microsoft rolls out the update in late October 2024. At least, let’s hope so.
The first issue is client support. The notification specifies the new Outlook for Windows but doesn’t mention OWA. Typically, any new feature now introduced for the new Outlook also turns up in OWA, if not in Outlook classic.
Microsoft has committed to support Outlook Classic until at least 2029). Enterprise customers are not rushing to adopt the new Outlook due to its functionality deficit want to see new features being delivered, especially anything related to security. What’s curious here is that Microsoft’s documentation for conditions that support policy tips for Outlook explicitly include Outlook classic in the clients due to support the new conditions. According to the documentation, you can expect to see the policy in production version 2303 & Build 16.0 16216.10000 or higher, and semi-annual channel version 2302 & Build 16.0.16130.20478 or higher.
Groups, What Groups?
The documentation also mentions that the Sender is a Member of condition is supported by Azure-based dynamic distribution groups. The other two supported group types are distribution lists and mail-enabled security groups. The three group types are Exchange Online objects and dynamic distribution groups are not found in Entra ID (or Azure AD as it was). I have no idea what Microsoft means by Azure-based dynamic distribution groups.
The Advent of Premium DLP Policy Tips
The larger issue is revealed in the warning that “any existing conditions outside this updated list, which may currently trigger Policy Tips in New Outlook, will stop working after October 18th, 2024.”The updated list is the set detailed in MC894577 and the documentation, so that’s clear. What’s not known is what existing conditions (Figure 1) will suddenly stop working on October 18.
Figure 1: Defining conditions for a rule in a DLP policy
Until now, there hasn’t been much differentiation between the DLP policy tips displayed in Outlook to accounts with Office 365 E3 licenses and those with Office 365 E5 licenses (or equivalents). This is unlike Teams, where DLP support has always required Office 365 E5 licenses.
The warning might mean that from October 18, 2024, Microsoft will differentiate between Office 365 E3 and E5 licenses when DLP decides what policy tips to display in Outlook. Even if a policy match dictates that a specific policy tip should appear, it won’t show up in Outlook unless the account has an appropriate license. The way the documentation is laid out and the clear separation of sets of policy tips into basic (E3) and premium (E5) conditions support this interpretation, as does the bald statement that “Features mentioned above are enabled based on Licenses.”
Premium DLP Policy Tips Are Another Reason for Customers to Upgrade
The text of MC894577 is unclear and misleading. Discovering that Microsoft wants to introduce premium DLP conditions isn’t surprising because it aligns with the general direction throughout Microsoft 365 to find places to introduce new functionality that requires high-end licenses. As I have noted many times. Microsoft wants to grow the annual revenue per user (ARPU) they generate from the Office 365 installed base to increase cloud revenues and profits. Increasing the ARPU by selling add-on licenses or convincing customers to move from low-price to higher-price bundles has been happening for years, but it is becoming increasingly obvious.
Updating DLP to increase the set of conditions that can indicate potential data leakage issues to users through policy tips is a good thing. Making the new conditions a premium feature is OK too, even if it makes management of DLP policies a little more complex and potentially more expensive, if you decide that the new conditions are a must-have.
Insight like this doesn’t come easily. You’ve got to know the technology and understand how to look behind the scenes. Benefit from the knowledge and experience of the Office 365 for IT Pros team by subscribing to the best eBook covering Office 365 and the wider Microsoft 365 ecosystem.
Automating Email Sending with Different Mailboxes
Hi everyone,
I’m working on building an automated email sender system that utilizes the OpenAI API to generate emails. I’ve been reading through the documentation regarding the Full Access and Send As permissions in Outlook, and I have a specific implementation in mind.
I need to create a system that allows me to send emails from different individuals’ mailboxes within my company while also being able to view the reply threads. My question is:
Is it possible to achieve this by obtaining the OAuth token just once and then using it to send emails from different mailboxes, provided my IT admin has configured the necessary permissions accordingly?
Any insights, experiences, or additional considerations would be greatly appreciated!
Thanks in advance!
Hi everyone,I’m working on building an automated email sender system that utilizes the OpenAI API to generate emails. I’ve been reading through the documentation regarding the Full Access and Send As permissions in Outlook, and I have a specific implementation in mind.I need to create a system that allows me to send emails from different individuals’ mailboxes within my company while also being able to view the reply threads. My question is:Is it possible to achieve this by obtaining the OAuth token just once and then using it to send emails from different mailboxes, provided my IT admin has configured the necessary permissions accordingly?Any insights, experiences, or additional considerations would be greatly appreciated!Thanks in advance! Read More
Reschedule meeting by copy in calendar
Our staff would like to have the ability to copy a meeting to a later time so they can easily re-book a follow-up meeting with the client. This to avoid that the staff or client need to go through the booking process and need to answer all the questions again.
Our staff would like to have the ability to copy a meeting to a later time so they can easily re-book a follow-up meeting with the client. This to avoid that the staff or client need to go through the booking process and need to answer all the questions again. Read More
How can I convert arw to jpg on Windows PC in bulk?
Hi all members,
I am new to photography and bought a Sony camera two weeks ago. When I imported the photos from the camera to my Windows 10 PC, the photos are in ARW image format that I was not familiar with.
Currently, I am using Adobe Dreamweaver for building my own websites. But, it does not accept .arw images by default. I have to convert arw to jpg so I can use the photos within Dreamweaver app. Please kindly suggest a working arw to jpg converter software to do this in bulk.
Thanks
Hi all members, I am new to photography and bought a Sony camera two weeks ago. When I imported the photos from the camera to my Windows 10 PC, the photos are in ARW image format that I was not familiar with. Currently, I am using Adobe Dreamweaver for building my own websites. But, it does not accept .arw images by default. I have to convert arw to jpg so I can use the photos within Dreamweaver app. Please kindly suggest a working arw to jpg converter software to do this in bulk. Thanks Read More
Microsoft Learn to prepare for the Azure Solutions Architect Expert – Emmanuel Katto Uganda
Hi everyone,
My name is Emmanuel Katto. I’m currently studying for the Azure Solutions Architect Expert certification and I want to make the most out of Microsoft Learn. I have a few questions:
What learning paths or modules would you recommend that specifically align with the exam content?Are there any tips or strategies you’ve found helpful while using Microsoft Learn for exam preparation?How can I best integrate hands-on labs and practical experience alongside the theoretical knowledge from Microsoft Learn?
Thank you for your assistance!
Looking forward to your insights.
Best,
Emmanuel Katto
Hi everyone, My name is Emmanuel Katto. I’m currently studying for the Azure Solutions Architect Expert certification and I want to make the most out of Microsoft Learn. I have a few questions:What learning paths or modules would you recommend that specifically align with the exam content?Are there any tips or strategies you’ve found helpful while using Microsoft Learn for exam preparation?How can I best integrate hands-on labs and practical experience alongside the theoretical knowledge from Microsoft Learn?Thank you for your assistance! Looking forward to your insights. Best,Emmanuel Katto Read More
Prove your data engineering skills and join the AI transformation
In this era of rapid technological advancement, data engineering skills are indispensable. This is particularly true as organizations strive to harness the power of AI. Data engineers play a pivotal role in designing and implementing the infrastructure and data processing that enable efficient data analysis. And these are foundational elements for any successful data and AI initiative.
Data engineering skills are essential for transforming data at scale and for training and deploying AI models. The Microsoft Fabric software as a service (SaaS) model frees up data engineers to focus on crucial tasks, such as data transformation, scalability, and optimization, without worrying about setting up infrastructure—it just works! And Azure Synapse Analytics offers data engineers more control over the infrastructure they need to transform data within a platform as a service (PaaS) framework.
Announcing the new Fabric Data Engineer Associate Certification
Microsoft Certifications verify world-class technical proficiency for in-demand job roles and are a vital part of our flexible credential portfolio. In keeping with our continued investment, we’re pleased to announce the upcoming Microsoft Certified: Fabric Data Engineer Associate Certification and its related Exam DP-700: Implementing data engineering solutions using Microsoft Fabric (beta), both of which will be available in late October 2024.
Fabric data engineers have subject matter expertise in data loading patterns, data architectures, and orchestration processes. This Certification measures the following Fabric data engineer skills:
Implementing and managing an analytics solution
Ingesting and transforming data
Monitoring and optimizing an analytics solution
These professionals work closely with analytics engineers, architects, analysts, and administrators to design and deploy data engineering solutions for analytics.
Hone your skills with Microsoft Credentials for analytics and data science
The new Fabric Data Engineer Associate Certification strengthens Microsoft’s credentials portfolio. It helps you to prove your skills for critical roles and key scenarios that involve using Fabric and Azure in areas like data engineering, data analytics, or data science. Depending on your current or desired role, the projects you’re working on, or those you want to work on, there are several suggested combinations of credentials for you to explore.
Certifications validate broad role-based competencies while Microsoft Applied Skills help you demonstrate your capabilities in specific scenarios or workloads. Applied Skills complement the broader skill set validated by Certifications. You can combine these two types of Microsoft Credentials to demonstrate a comprehensive skill set in data and AI.
Explore the many combinations of Microsoft Credentials to validate your skills in data engineering, data science, and data analytics.
Grow your data engineering skills. If you’ve already earned the Azure Data Engineer Associate Certification (Exam DP-203), consider earning the new Fabric Data Engineer Associate Certification to help future-proof your skills, since Fabric is the next-generation analytics platform. By doing so, you can expand your skills from data engineering with PaaS to SaaS models in the context of Microsoft data services.
To prove your skills for common data projects, like building data lakehouses, Real-Time Intelligence solutions, or data warehouses, consider the relevant Applied Skills, as itemized in the illustration. These credentials are logical complements for the Azure Data Engineer Associate, the new Fabric Data Engineer Associate, the Fabric Analytics Engineer Associate, or the Power BI Data Analyst Associate Certification, since they demonstrate your ability to perform additional skills by using Fabric.
Connect with complementary roles in data projects. End-to-end analytics focused on data engineering and data science supports machine learning model training and AI development. After data engineers ensure that the data is on the platform, they work closely with people in analytics and data science roles, and some skills can be transferable from one role to another. For example, as a data engineer, you can benefit from combining skills proven by the Fabric Analytics Engineer Associate or the Azure Data Scientist Associate Certification, or scenario-specific data science skills validated by Applied Skills. Data analysts can also combine skills to enrich data for analytics, proven by the Fabric Analytics Engineer Associate Certification.
Start now to help future-proof your data engineering skills
The new Exam DP-700 will be available in late October 2024, but you can start building your skills now as you prepare to take the exam and earn the Certification:
See what to expect on the exam and explore potential topics it covers in our Exam DP-700 study guide.
Work through the Prepare for the Fabric Data Engineer Certification Official Collection of curated content to help you get ready.
Explore the capabilities of Fabric, with the Get started with Microsoft Fabric learning path.
Join the Microsoft Learn Learning Room: Microsoft Fabric Café, and stay updated with the latest trends, features, and updates in Microsoft Fabric.
Read the European Microsoft Fabric Community Conference (FabCon) 2024 announcements.
Build your technical skills for any role or project
No matter what your current or desired role, we have the resources and offerings you need to build and prove your technical skills. Check out the many options on Microsoft Learn.
And stay tuned for the Fabric Data Engineer Associate Certification and Exam DP-700: Implementing data engineering solutions using Microsoft Fabric (beta)—available in late October 2024—and get ready to prove your data engineering skills in Fabric.
Microsoft Tech Community – Latest Blogs –Read More