Category: Microsoft
Category Archives: Microsoft
Transforme o Desenvolvimento com .NET Aspire: Integração com JavaScript e Node.js
No cenário em constante evolução do desenvolvimento de aplicações em nuvem, gerenciar configurações, garantir resiliência e manter a integração perfeita entre vários componentes pode ser bastante desafiador.
E, é justamente nesse caso que entra em cena o .NET Aspire! Uma estrutura de desenvolvimento de aplicação totalmente robusta e projetada para simplificar essas complexidades, permitindo que os desenvolvedores(as) se concentrem na criação de recursos em vez de lidar com extensas configurações.
Neste artigo exploraremos os aspectos centrais do .NET Aspire, examinando seus benefícios, o processo de configuraçao e a integração com JavaScript, conforme apresentado em sua sessão fenomenal no último evento do .NET Aspire Developers Day, pelo Chris Noring que é Senior Developer Advocate na Microsoft.
.NET Aspire Developers Day
No último evento do .NET Aspire Developers Day, que ocorreu no dia 23 de Julho de 2024, foi um evento repleto de sessões técnicas e práticas, com diferentes linguagens de programação e frameworks. Pois esse foi o grande objetivo do evento online: mostrar o quão adaptável, flexível e fácil é desenvolver aplicações modernas com o poder do .NET Aspire!
Caso você tenha perdido o evento, não se preocupe! Deixo aqui o link da gravação do evento para que você possa assistir e aprender mais sobre o .NET Aspire e suas funcionalidades em diferentes cenários de desenvolvimento de software.
.NET Aspire Developer Days – Online Event
Mas, o que seria o .NET Aspire? Vamos descobrir agora mesmo!
Entendendo o .NET Aspire
O .NET Aspire é uma estrutura pronta para a nuvem que ajuda a construir aplicações distribuídas e prontas para produção. Ele vem com pacotes NuGet que facilitam o desenvolvimento de apps que, em vez de serem monolíticos, são formados por pequenos serviços interconectados, os famosos microsserviços.
Objetivo do .NET Aspire
O objetivo do .NET Aspire é melhorar a experiência de desenvolvimento, especialmente quando você está criando apps na nuvem. Ele oferece ferramentas e padrões que tornam tudo mais fácil, desde a configuração até a execução das aplicações distribuídas. A orquestração no .NET Aspire foca em simplificar o ambiente de desenvolvimento local, conectando projetos e suas dependências de forma automática, sem que você precise se preocupar com detalhes técnicos.
Orquestração Simplificada
A orquestração no .NET Aspire foca na simplificação do ambiente de desenvolvimento localm automatizando a configuração e a interconexão de múltiplos projetos e suas dependências. Embora não substitua sistemas robustos usados em produção, como o Kubernetes, o .NET Aspire fornece abstrações que tornam o setup de descoberta de serviços, variáveis de ambiente e configurações de contêiner mais acessíveis e consistentes.
Componentes Prontos para Uso
O .NET Aspire também vem com componentes prontos para uso, como Redis ou PostgreSQL, que você pode adicionar ao seu projeto com poucas linhas de código. Além disso, ele inclui templates de projetos e ferramentas para Visual Studio, Visual Studio Code e CLI do .NET, facilitando ainda mais a criação e gestão dos seus projetos.
Exemplo de Uso
Por exemplo, com algumas linhas de código, você pode adicionar um contêiner Redis e configurar automaticamente a connection string no projeto frontend:
var builder = DistributedApplication.CreateBuilder(args);
var cache = builder.AddRedis(“cache”);
builder.AddProject<Projects.MyFrontend>(“frontend”)
.WithReference(cache);
Se você deseja saber mais sobre o .NET Aspire, recomendo que acesse a documentação oficial do .NET Aspire, que está repleta de informações detalhadas e exemplos práticos para você começar a desenvolver suas aplicações com o .NET Aspire.
Acesse agora mesmo a documentação oficial do .NET Aspire: Documentação Oficial do .NET Aspire
Iniciando com o .NET Aspire
Durante a sessão do .NET Aspire Developers Day, o Chris Noring apresentou uma integração incrível entre o .NET Aspire e JavaScript, mostrando como é possível criar aplicações modernas e distribuídas com o poder do .NET Aspire e a flexibilidade do JavaScript.
Se você deseja assistir a sessão completa do Chris Noring, acesse o link abaixo:
Antes ele começou explicando como é fácil realizar a configuração para começar a usar o .NET Aspire, que há necessidade de instalar:
.NET 8
.NET Aspire Workload
OCI Compatível com o Docker ou Podman
Visual Studio Code ou Visual Studio
Extensão: C# Dev Kit
A estruturação de um projeto .NET Aspire é simples e pode ser feita usando Visual Studio, Visual Studio Code ou simplesmente o terminal.
Por exemplo, você pode criar um novo projeto usando o terminal com o seguinte comando:
dotnet new aspire-starter
Este comando gera uma estrutura de projeto que inclui componentes essenciais como o AppHost (o cérebro da operação), ServiceDefaults e uma aplicação inicial.
Após estruturar o projeto, o próximo passo é justamente executar. Porém se faz necessário se certificar e garantir que o HTTPS esteja habilitado, pois o .NET Aspire requer HTTPS para funcionar.
Para habilitar o HTTPS, você pode usar o seguinte comando:
dotnet dev-certs https –trust
E, finalmente, para executar o projeto, basta usar o comando:
dotnet run
Ao executar o projeto AppHost, abrirá um painel exibindo todos os recursos dentro do seu projeto, como APIs e serviços de front-end. Este painel fornece insights valiosos sobre as métricas, logs e solicitações ativas da sua aplicação, facilitando o monitoramento e a depuração da sua aplicação em nuvem.
Tudo isso o Chris Noring mostrou durante a sessão do .NET Aspire Developers Day, demonstrando como é fácil e prático começar a desenvolver aplicações modernas com o .NET Aspire.
Se desejar, recomendo a leitura do tutorial: “Quickstart: Build your first .NET Aspire project” que está disponível na documentação oficial do .NET Aspire.
Um pouco mais sobre Orquestração com .NET Aspire
Vamos explorar um pouco mais o que o Chris Noring mostrou nessa parte da sessão.
A orquestração de aplicações distribuídas com o .NET Aspire envolve a configuração e a conexão dos vários componentes que compõem a aplicação. O arquivo aspire-manifest.json é uma peça central nesse processo, documentando como os serviços se conectam e configuram dentro da aplicação.
Essa automatização facilita a vida do desenvolvedor, eliminando a necessidade de configurar manualmente cada conexão e dependência.
O Papel do aspire-manifest.json
O aspire-manifest.json é um arquivo JSON gerado automaticamente pelo .NET Aspire, que contém todas as informações necessárias sobre os recursos e componentes da aplicação.
Ele inclui detalhes como strings de conexão, variáveis de ambiente, portas e protocolos de comunicação. Este manifesto garante que todos os serviços da aplicação se conectem corretamente e funcionem em harmonia.
Vejamos o exemplo replicado pelo Chris Noring durante a sessão em como configurar um cache Redis e uma API de Produtos desenvolvida em Node.js utilizando o arquivo Program.cs:
var cache = builder.AddRedis(“cache”);
var productApi = builder.AddNpmApp(“productapi”, “../NodeApi”, “watch”)
.WithReference(cache)
.WithHttpEndpoint(env: “PORT”)
.WithExternalHttpEndpoints()
.PublishAsDockerFile();
Neste exemplo, o Redis é configurado como um serviço de cache, e a API de produtos, desenvolvida em Node.js, é configurada para utilizar esse cache. O método WithReference(cache) assegura que a API de produtos possa se conectar ao Redis. O método PublishAsDockerFile() cria um Dockerfile para a aplicação, permitindo sua execução em um contêiner.
Como o Manifesto Reflete Essas Configurações?
Bom, uma vez que o código é executado o .NET Aspire gera um arquivo aspire-manifest.json que reflete todas as configurações feitas no código. Nessa parte o Chris explica que como o manifesto documenta a configuração do Redis e da API de Produtos:
{
“productapi”: {
“type”: “dockerfile.v0”,
“path”: “../NodeApi/Dockerfile”,
“context”: “../NodeApi”,
“env”: {
“NODE_ENV”: “development”,
“ConnectionStrings__cache”: “{cache.connectionString}”,
“PORT”: “{productapi.bindings.http.port}”
},
“bindings”: {
“http”: {
“scheme”: “http”,
“protocol”: “tcp”,
“transport”: “http”,
“targetPort”: 8000,
“external”: true
}
}
}
}
Neste trecho do manifesto, podemos ver que a API de produtos (productapi) está configurada para utilizar a string de conexão do Redis (ConnectionStrings__cache), que é automaticamente gerada e injetada no ambiente da aplicação. Além disso, o manifesto especifica que a API de produtos será exposta via HTTP na porta 8000.
Como Configurar ou Atualizar o Manifesto?
Para gerar ou atualizar o arquivo aspire-manifest.json, você pode usar o seguinte comando:
dotnet run –publisher manifest –output-path aspire-manifest.json
Esse comando executa a aplicação e gera o manifesto, que é muito importante para a implantação em ambientes de produção ou para testes em desenvolvimento.
Integrando JavaScript com .NET Aspire
A flexibilidade do .NET Aspire se estende à integração com JavaScript, suportando tanto o desenvolvimento de Front-end quanto de Back-end. Essa capacidade permite que os desenvolvedores usem frameworks e bibliotecas JavaScript populares juntamente com componentes .NET, criando um ambiente de desenvolvimento unificado.
Exemplo de Front-End com Angular
Na palestra de Chris Noring, foi demonstrado como o .NET Aspire pode ser integrado a um projeto de front-end desenvolvido em Angular. A configuração de backend e a conexão com APIs são simplificadas com o uso de variáveis de ambiente, que são automaticamente geradas e injetadas no projeto.
Configuração de Backend no Angular
O arquivo proxy.conf.js é utilizado para redirecionar as chamadas de API no ambiente de desenvolvimento para o backend correto. As URLs do backend, que podem variar entre ambientes, são gerenciadas usando variáveis de ambiente. Veja um exemplo de configuração:
module.exports = {
“/api”: {
target: process.env[“services__weatherapi__https__0”] || process.env[“services__weatherapi__http__0”],
secure: process.env[“NODE_ENV”] !== “development”,
pathRewrite: { “^/api”: “” },
},
};
Neste exemplo, o target é definido com base nas variáveis de ambiente services__weatherapi__https__0 ou services__weatherapi__http__0, que são injetadas automaticamente pelo .NET Aspire. Essa configuração garante que o Frontend Angular possa se conectar corretamente ao serviço Backend, independentemente do ambiente (desenvolvimento, teste, produção).
Uso do HttpClient no Angular
No código Angular, a interação com o backend pode ser feita usando o serviço HttpClient, como mostrado no exemplo a seguir:
constructor(private http: HttpClient) {
this.http.get<WeatherForecast[]>(‘api/weatherforecast’).subscribe({
next: result => this.forecasts = result,
error: console.error
});
}
Neste trecho, a chamada à API api/weatherforecast é redirecionada automaticamente para o backend correto, graças à configuração feita no proxy.conf.js. Isso simplifica a comunicação entre o frontend Angular e o backend, garantindo que as variáveis de ambiente configuradas no manifesto do .NET Aspire sejam utilizadas corretamente.
Integração com Node.js e .NET Aspire
O .NET Aspire não só facilita a orquestração de aplicações.NET, mas também integra perfeitamente outras tecnologias como o Node.js. Essa flexibilidade permite que você construa aplicações distribuídas que combinam diferentes stacks tecnológicos de forma eficiente.
Orquestração no AppHost
Na orquestração realizada no AppHost, o .NET Aspire permite que você conecte diferentes componentes de sua aplicação, como um frontend em Node.js e uma API de backend, tudo isso de forma simples e clara.
var cache = builder.AddRedis(“cache”);
var weatherapi = builder.AddProject<Projects.AspireWithNode_AspNetCoreApi>(“weatherapi”);
var frontend = builder.AddNpmApp(“frontend”, “../NodeFrontend”, “watch”)
.WithReference(weatherapi)
.WithReference(cache)
.WithHttpEndpoint(env: “PORT”)
.WithExternalHttpEndpoints()
.PublishAsDockerFile();
Nesse exemplo, o cache é o Redis, o weatherapi é a API de previsão do tempo, e o Frontend é a aplicação Node.js. A função WithReference() conecta esses componentes, garantindo que o frontend tenha acesso tanto ao Redis quanto à API.
O uso de PublishAsDockerFile() permite que o Frontend seja empacotado como um contêiner Docker, facilitando a sua implantação em qualquer ambiente.
No código mostrado na segunda imagem, podemos ver como o AppHost é configurado:
Na Aplicação Node.js…
No exemplo mostrado nas imagens, a aplicação Node.js está configurada para recuperar o endereço do cache e a URL da API diretamente a partir do projeto .NET Aspire.
Isso é feito através de variáveis de ambiente que são geradas automaticamente com base nos recursos definidos no manifesto do Aspire.
const cacheAddress = env[‘ConnectionStrings__cache’];
const apiServer = env[‘services__weatherapi__https__0’] ?? env[‘services__weatherapi__http__0’];
Aqui, ConnectionStrings__cache e services__weatherapi são variáveis de ambiente que o Aspire injeta automaticamente no ambiente de execução da aplicação Node.js. Essas variáveis contêm os valores necessários para que a aplicação se conecte corretamente ao Redis e à API de previsão do tempo.
Com essas informações em mãos, a aplicação pode facilmente acessar o cache e a API, sem a necessidade de hard-coding de URLs ou strings de conexão. Isso não só facilita a manutenção do código como também garante que a aplicação funcione corretamente em diferentes ambientes (desenvolvimento, teste, produção).
Exemplo de Uso em uma Rota Express
Um exemplo de como essa configuração é utilizada em uma rota Express na aplicação Node.js pode ser visto a seguir:
app.get(‘/’, async (req, res) => {
let cachedForecasts = await cache.get(‘forecasts’);
if (cachedForecasts) {
res.render(‘index’, { forecasts: JSON.parse(cachedForecasts) });
return;
}
let response = await fetch(`${apiServer}/weatherforecast`);
let forecasts = await response.json();
await cache.set(‘forecasts’, JSON.stringify(forecasts));
res.render(‘index’, { forecasts });
});
Aqui, a aplicação tenta primeiro recuperar as previsões do tempo a partir do cache Redis. Se os dados estiverem no cache, eles são renderizados diretamente. Caso contrário, a aplicação faz uma requisição à API de previsão do tempo (apiServer), armazena os resultados no cache, e depois os exibe.
Essa lógica melhora significativamente a performance e a eficiência da aplicação, garantindo que os dados sejam recuperados rapidamente a partir do cache sempre que possível.
Conclusão
O .NET Aspire representa um avanço significativo na simplificação do desenvolvimento de aplicações distribuídas e prontas para a nuvem. Com sua capacidade de integrar diferentes tecnologias, como JavaScript e Node.js, ele oferece uma plataforma robusta e flexível para criar soluções modernas e eficientes. Se você deseja levar suas habilidades de desenvolvimento para o próximo nível, aproveite ao máximo o poder do .NET Aspire.
Para aprofundar ainda mais o seu conhecimento, recomendo fortemente que você assista à palestra do Chris Noring, onde ele explora detalhadamente as capacidades e a versatilidade do .NET Aspire. Esta é uma oportunidade imperdível para aprender diretamente com um dos especialistas que está na vanguarda do desenvolvimento de software.
Assista agora à palestra do Chris Noring: Palestra do Chris Noring no .NET Aspire Developers Day
Recursos Adicionais
Para continuar sua jornada no .NET Aspire, explore os seguintes recursos adicionais:
Documentação Oficial – .NET Aspire
Orchestrate Node.js apps in .NET Aspire
Code Sample: .NET Aspire with Angular, React, and Vue
Code Sample: .NET Aspire + Node.js
Curso Grátis: Criar aplicativos distribuídos com o .NET Aspire
Video series: Welcome to .NET Aspire
Espero que este artigo tenha sido útil e inspirador para você. Se tiver alguma dúvida ou sugestão, não hesite em compartilhar nos comentários abaixo. Estou aqui para ajudar e apoiar você em sua jornada de aprendizado e crescimento profissional.
Até a próxima e continue aprendendo, criando e compartilhando!
Microsoft Tech Community – Latest Blogs –Read More
Best way to merge non-profit onmicrosoft.com domain into existing Primary domain
We have an existing Entra tenant (ABCoriginal.net) configured and secured with 100 users. Our NFP was approved with domain AlaskaBCoriginal.onmicrosoft.com. Want to combine the 2 so I can buy NFP lic for ABCoriginal.net and keep all of the users and configurations.
What steps are needed to get this done, and once complete will the Partner relationship with Tech Soup transfer into existing domain?
We have an existing Entra tenant (ABCoriginal.net) configured and secured with 100 users. Our NFP was approved with domain AlaskaBCoriginal.onmicrosoft.com. Want to combine the 2 so I can buy NFP lic for ABCoriginal.net and keep all of the users and configurations.What steps are needed to get this done, and once complete will the Partner relationship with Tech Soup transfer into existing domain? Read More
Logic APP connecting to AOAG Readonly
Hi Everyone,
I have an Always on availability group with the secondary read-only server configured for read only intent.
I noticed that there is no where in logic app where the readonly application intent can be configured as additional parameter.
Am I missing something or it is just the way logic APP works. I have been able to connect ADF successfully. Please, can someone advise.
Hi Everyone, I have an Always on availability group with the secondary read-only server configured for read only intent.I noticed that there is no where in logic app where the readonly application intent can be configured as additional parameter. Am I missing something or it is just the way logic APP works. I have been able to connect ADF successfully. Please, can someone advise. Read More
=IF formula to fill a referenced cell
Hello All,
I am trying to make a fillable worksheet for internal use within our office. I have a cell (B3) that I want to hold placeholder text that tells the user what to put into it. I’m hoping I can make a formula to fill the cell with a text prompt when left blank. In essence this is the “If/Then” statement:
IF REFERENCED CELL IS BLANK THEN FILL REFERENCED CELL WITH “NAME”
My thinking was to write an =IF combined with =ISBLANK formula in a separate cell (i.e. G30) that references B3, and then fills B3 with “Name” if it is blank. The formula works but it understandable is filling G30) with “Name”. Does anyone have any ideas of how I can have the formula fill the cell it is referencing?
Additionally, I’m also anticipating a logic error with this. If I have a formula checking to see if a cell is blank, and then filling that cell, it won’t be blank. Is that a problem?
Hello All, I am trying to make a fillable worksheet for internal use within our office. I have a cell (B3) that I want to hold placeholder text that tells the user what to put into it. I’m hoping I can make a formula to fill the cell with a text prompt when left blank. In essence this is the “If/Then” statement: IF REFERENCED CELL IS BLANK THEN FILL REFERENCED CELL WITH “NAME” My thinking was to write an =IF combined with =ISBLANK formula in a separate cell (i.e. G30) that references B3, and then fills B3 with “Name” if it is blank. The formula works but it understandable is filling G30) with “Name”. Does anyone have any ideas of how I can have the formula fill the cell it is referencing? Additionally, I’m also anticipating a logic error with this. If I have a formula checking to see if a cell is blank, and then filling that cell, it won’t be blank. Is that a problem? Read More
New Outlook not adhering to PersonalAccountsEnabled unless I revert to Classic outlook
We implemented the PersonalAccountsEnabled = $false in out OwaMailboxPolicy, as below
Set-OwaMailboxPolicy -PersonalAccountsEnabled $false -identity OwaMailboxPolicy-Default
I waited overnight and accessed a computer using my account and continue to be able to add Gmail and other personal accounts to my corporate New Outlook. I also removed my corporate account and readded it to New Outlook , restarted and same behavior of being able to add Gmail and other personal accounts.
I reverted back to Classic Outlook and restarted Classic Outlook and enable New Outlook and the policy worked and prevented me from adding Gmail and other personal accounts.
Is this the correct behaviors as I would expect the setting to take affect without having to revert to the Classic Outlook. It seems as if New Outlook is not reading the policy except on the initial movement from Class to New.
We implemented the PersonalAccountsEnabled = $false in out OwaMailboxPolicy, as below Set-OwaMailboxPolicy -PersonalAccountsEnabled $false -identity OwaMailboxPolicy-Default I waited overnight and accessed a computer using my account and continue to be able to add Gmail and other personal accounts to my corporate New Outlook. I also removed my corporate account and readded it to New Outlook , restarted and same behavior of being able to add Gmail and other personal accounts. I reverted back to Classic Outlook and restarted Classic Outlook and enable New Outlook and the policy worked and prevented me from adding Gmail and other personal accounts. Is this the correct behaviors as I would expect the setting to take affect without having to revert to the Classic Outlook. It seems as if New Outlook is not reading the policy except on the initial movement from Class to New. Read More
Session controlled Microsoft apps very slow response
Hello
For the past 2 months we have been receiving complaints regarding D365 slowness off and on. D365 was included in my session controlled policy. I disabled the policy and the complaints have stopped. Is there part of the policy setup that was missed. I really need the benefits of MCAS without impacting the business. Thanks
Hello For the past 2 months we have been receiving complaints regarding D365 slowness off and on. D365 was included in my session controlled policy. I disabled the policy and the complaints have stopped. Is there part of the policy setup that was missed. I really need the benefits of MCAS without impacting the business. Thanks Read More
ZAP/Post-delivery reporting for Teams, Sharepoint & OneDrive
It seems that the email & collaboration report for ‘post-delivery activities’ only covers ZAP activity for emails. While in other E&C reports, a pivot by workload is supported, this doesn’t seem to be the case.
Are there ZAP/Post-delivery reports available for Teams, SPO & ODB?
It seems that the email & collaboration report for ‘post-delivery activities’ only covers ZAP activity for emails. While in other E&C reports, a pivot by workload is supported, this doesn’t seem to be the case. Are there ZAP/Post-delivery reports available for Teams, SPO & ODB? Read More
simplexseed.com and Outlook junk rules
I’ve tried to create rules to send all messages from @simplexseed.com to the deleted folder and while it seems to work when I run the rule, it doesn’t catch items and send them directly to trash before I sort through my junk mail. There are numerous versions of whatever they are “selling” so I can’t simply exclude things like “gutter guard” or “metal roofing.”
What am I missing?
This is in Outlook desktop – the classic version.
Thanks for the help.
I’ve tried to create rules to send all messages from @simplexseed.com to the deleted folder and while it seems to work when I run the rule, it doesn’t catch items and send them directly to trash before I sort through my junk mail. There are numerous versions of whatever they are “selling” so I can’t simply exclude things like “gutter guard” or “metal roofing.” What am I missing?This is in Outlook desktop – the classic version. Thanks for the help. Read More
Recover Tech Community Account
Is it possible to recover an account that I previously had, which is likely associated to my previous work?
Is it possible to recover an account that I previously had, which is likely associated to my previous work? Read More
Outlook proofing tools not working in French
hello
I’m trying to setup French language check in my emails and for some reason in outlook i add the French language restart outlook but when i type email it doesn’t check my French language
Thanks
hello I’m trying to setup French language check in my emails and for some reason in outlook i add the French language restart outlook but when i type email it doesn’t check my French language Thanks Read More
Step by Step: Integrate Advanced CSV RAG Service with your own data into Copilot Studio
This post is going to explain how to use Advanced RAG Service easily verify proper RAG tech performance for your own data, and integrate it as a service endpoint into Copilot Studio.
This time we use CSV as a sample. CSV is text structure data, when we use basic RAG to process a multiple pages CSV file as Vector Index and perform similarity search using Nature Language on it, the grounded data is always chunked and hardly make LLM to understand the whole data picture.
For example, if we have 10,000 rows in a CSV file, when we ask “how many rows does the data contain and what’s the mean value of the visits column”, usually general semantic search service cannot give exact right answers if it just handles the data as unstructured. We need to use different advanced RAG method to handle the CSV data here.
Thanks to LLamaIndex Pandas Query Engine, which provides a good idea of understanding data frame data through natural language way. However to verify its performance among others and integrate to existing Enterprise environment, such as Copilot Studio or other user facing services, it definitely needs AI service developing experience and takes certain learning curve and time efforts from POC to Production.
Advanced RAG Service supports 6 latest advanced indexing techs including CSV Query Eninge, with it developers can leverage it to shorten development POC stage, and achieve Production purpose. Here is detail step to step guideline:
text-embedding-3-small
a. In Docker environment, run this command to clone the dockerfile and related config sample:
b. In the AdvancedRAG folder, rename .env.sample to .env
mv .env.sample .env
c. In the .env file, configure necessary environment variables. In this tutorial, let’s configure:
AZURE_OPENAI_API_KEY=
AZURE_OPENAI_Deployment=gpt-4o-mini
AZURE_OPENAI_EMBEDDING_Deployment=text-embedding-3-small
AZURE_OPENAI_ENDPOINT=https://[name].openai.azure.com/
# Azure Document Intellenigence
DOC_AI_BASE=https://[name].cognitiveservices.azure.com/
DOC_AI_KEY=
NOTE:
d. Build your own docker image:
e. Run this docker:
f. Access http://localhost:8000/
a. Click the CSV Query Engine tab, upload a test CSV file, click Submit
b. Click the Chat Mode tab, now we can use Natural Language to test how good the CSV Query Engine at understanding CSV content:
The Advanced RAG Service is built with Gradio and FAST API. It opens necessary API Endpoints by default. We can turn off any of them in the .env settings.
The Chat endpoint can be used for different index types query/search. Since we are using “CSV Query Engine”, now it is:
content-type: application/json
{
“data”: [
“how many records does it have”,
“”,
“CSV Query Engine”,
“/tmp/gradio/86262b8036b56db1a2ed40087bbc772f619d0df4/titanic_train.csv”,
“You are a friendly AI Assistant” ,
false
]
}
The response is:
“data”: [
“The dataset contains a total of 891 records. If you have any more questions about the data, feel free to ask!”,
null
],
“is_generating”: true,
“duration”: 3.148253917694092,
“average_duration”: 3.148253917694092,
“render_config”: null,
“changed_state_ids”: []
}
Using this method, we can easily integrate the specific RAG capability to our own service, such as Copilot Studio. Before that, let’s publish the service first.
We have different methods to release docker as an app service. Here are the generate steps when we use Azure Contain Registry and Azure Container App.
a. Create Azure Container Registry resource [ACRNAME], upload your tested docker image to it. The command is:
az account set -s [your subscription]
az acr login -n [ACRNAME]
docker push [ACRNAME].azurecr.io/dockerimage:tag
b. Create an Azure Container App, deploy this docker image, and deploy it. Don’t forget enable Session Affinity for the Container App.
To automate the Azure Container App deployment, I provided deploy_acr_app.sh in the repo.
set -e
if [ $# -eq 0 ]
then
echo “No SUF_FIX supplied, it should be an integer or a short string”
docker image list
exit 1
fi
SUF_FIX=$1
RESOURCE_GROUP=”rg-demo-${SUF_FIX}”
LOCATION=”eastus”
ENVIRONMENT=”env-demo-containerapps”
API_NAME=”advrag-demo-${SUF_FIX}”
FRONTEND_NAME=”advrag-ui-${SUF_FIX}”
TARGET_PORT=8000
ACR_NAME=”advragdemo${SUF_FIX}”
az group create –name $RESOURCE_GROUP –location “$LOCATION”
az acr create –resource-group $RESOURCE_GROUP –name $ACR_NAME –sku Basic –admin-enabled true
az acr build –registry $ACR_NAME –image $API_NAME .
az containerapp env create –name $ENVIRONMENT –resource-group $RESOURCE_GROUP –location “$LOCATION”
az containerapp create –name $API_NAME –resource-group $RESOURCE_GROUP –environment $ENVIRONMENT –image $ACR_NAME.azurecr.io/$API_NAME –target-port $TARGET_PORT –ingress external –registry-server $ACR_NAME.azurecr.io –query properties.configuration.ingress.fqdn
az containerapp ingress sticky-sessions set -n $API_NAME -g $RESOURCE_GROUP –affinity sticky
To use it:
./deploy_acr_azure.sh [suffix number]
Note: for more details about this sh, can refer to this guideline.
After around 7~8 minutes, the Azure Container App will be ready. You can check the output and access it directly:
To protect your container app, can follow this guide to enable authentication on it.
Enable authentication and authorization in Azure Container Apps with Microsoft Entra ID
By default, we need to upload a CSV to the AdvRAG service before analysis. The service always saves the uploaded file to its local temp folder on server side. And then we can use temp file path to start the analysis query.
To skip this step, we can save common files in subfolder rules of the AdvancedRAG folder, and then build your docker image. The files will be copy to the docker itself. As a demo, I can put a CSV file in AdvancedRAG/rules/files, and then pubish the docker to Azure.
a. Open Copilot Studio, create a new Topic, use “CSV Query” to trigger it.
b. For demo purpose, I upload a test CSV file and got its path, then put it into a variable:
c. Now let’s add a Question step to ask what question the user want to ask:
d. Click “+”, “Add an Action”, “Create a flow”. We will use this new flow to call AdvancedRAG service endpoint.
e. We need Query, File_Path, System_Message as input variables.
e. In the flow Editor, let’s add an HTTP step. In the step, post the request to the AdvancedRAG endpoint as below:
Save the flow as ADVRAGSVC_CSV, and publish it.
f. Back to Copilot Studio topic, we will add the action as below, and set input variables as need:
g. Publish and open this Custom Copilot in Teams Channel based on this guide.
h. Now we can test this topic lit this, as we see, even I used gpt-4o-mini here, the response accuracy is very good:
From above, it shows how to quickly verify potential useful RAG techs (Pandas Query Engine) in the AdvancedRAG service studio, expose and publish it as REST API endpoint which can be used by other service, such as Copilot Studio.
The overall process can be applied to Knowledge Graph, GraphRAG, Tree Mode Summary and other type indexes with this AdvnacedRAG service. In this way developers can efficiently move from proof of concept to production, leveraging advanced RAG capabilities in their own services.
The AdvancedRAG service focuses on key logic and stability of different important index types, the efficiency to be landed into M365 AI use cases. For any feature improvement ideas, feel free to visit below repos to create issues, fork projects and create PRs.
Docker Deploy Repo: https://github.com/freistli/AdvancedRAG
Source Code Repo: https://github.com/freistli/AdvancedRAG_SVC
Exploring the Advanced RAG (Retrieval Augmented Generation) Service
Microsoft Tech Community – Latest Blogs –Read More
MVP’s Favorite Content: Microsoft Teams and DevOps
In this blog series dedicated to Microsoft’s technical articles, we’ll highlight our MVPs’ favorite article along with their personal insights.
Onyinye Madubuko, M365 MVP, Ireland
Clear Teams cache – Microsoft Teams | Microsoft Learn
“This was helpful in solving new Teams application for users experiencing issues.”
*Relevant Blog: Teams Window keeps flickering and not launching (techiejournals.com)
Laurent Carlier, M365 MVP, France
Overview of meetings, webinars, and town halls – Microsoft Teams | Microsoft Learn
“Teams meetings have evolved significantly over the past few years, with the end of live Team events, the introduction of Town Halls, and the strengthening of Teams Premium features. It’s not always easy to understand what is and isn’t included in Teams Premium licences, or to explain the benefits of purchasing this new plan. This documentation and its comparison tables make my job a lot easier today.”
Edward Kuo, Microsoft Azure MVP, Taiwan
Introduction to Azure DevOps – Training | Microsoft Learn
“I am a DevOps expert and an Azure specialist, primarily responsible for guiding enterprises in using Azure DevOps and establishing DevOps teams.”
*Relevant Blog: DevOps – EK.Technology Learn (edwardkuo.dev)
Kazushi Kamegawa, Developer Technologies MVP, Japan
Managed DevOps Pools – The Origin Story – Engineering@Microsoft
“Using Azure Pipelines for CI/CD in a closed network environment requires the use of self-hosted agents, and managing these images was a very labor-intensive task. Even with automation, updates took 5-6 hours and had to be done once or twice a month. It was probably a challenge for everyone.
In this context, the announcement of the Managed DevOps Pools on this blog was very welcome news. It’s not just me; it’s likely the solution everyone was hoping for, and I am very much looking forward to it.”
(In Japanese: Azure Pipelinesを使って閉域環境でのCI/CDはセルフホストエージェントを使わなければならない上に、イメージの管理は非常に大変な作業でした。更新作業には自動化していても5-6時間かかる上に、月に1-2度は行わなくてはなりません。おそらく皆さん大変だったでしょう。
そんな中、Managed DevOps Poolのアナウンスが本ブログで行われました。私だけではなく、おそらく皆さんが望んだソリューションであり、大変期待しています。)
*Relevant event: Azure DevOpsオンライン Vol.11 ~ Managed DevOps Pool解説 – connpass
Microsoft Tech Community – Latest Blogs –Read More
Email users of devices in Dynamic group with MS 365 group email address
So we have got a Dynamic group that contains devices (based on brand and OS -> all Apple iOS devices) . We have got another Microsoft 365 group with group email address like email address removed for privacy reasons. Now I would like to email all users of the iOS devices using this email address.
As before the situation was that we had groups with assigned members (users) and in the Dynamic Rule of the MS 365 Dynamic group with the email address I just created a rule like: user.memberof -any (group.objectId -in [‘b35f7ce7-f0ba-45b8-a066-e273e6816774’]) (I can add as much other groups as well.
But now it is different. I only have a Dynamic group with all Apple devices. So no members (users) but devices…
Any way to set this up ending up being able to email all device users using the group email address email address removed for privacy reasons ?
So we have got a Dynamic group that contains devices (based on brand and OS -> all Apple iOS devices) . We have got another Microsoft 365 group with group email address like email address removed for privacy reasons. Now I would like to email all users of the iOS devices using this email address. As before the situation was that we had groups with assigned members (users) and in the Dynamic Rule of the MS 365 Dynamic group with the email address I just created a rule like: user.memberof -any (group.objectId -in [‘b35f7ce7-f0ba-45b8-a066-e273e6816774’]) (I can add as much other groups as well. But now it is different. I only have a Dynamic group with all Apple devices. So no members (users) but devices… Any way to set this up ending up being able to email all device users using the group email address email address removed for privacy reasons ? Read More
Microsoft Edge Management Cloud Policy missing “RelatedMatchesCloudServiceEnabled”
Hi,
I can’t locate the policy RelatedMatchesCloudServiceEnabled within the Cloud Management.
Microsoft-edge-policies #relatedmatchescloudserviceenabled
Thanks,
Matt
Hi,I can’t locate the policy RelatedMatchesCloudServiceEnabled within the Cloud Management.Microsoft-edge-policies #relatedmatchescloudserviceenabled Thanks,Matt Read More
Power Shell Script to move mail between mailboxes (ON PREM)
Hi,
I have a mailbox with about 1.3M messages I need moved to a different mailbox. I tried using Outlook rules, but it was too much volume and kept crashing.
If anybody can help me with this script I would appreciate it.
Thanks,
Jeffrey
Hi,I have a mailbox with about 1.3M messages I need moved to a different mailbox. I tried using Outlook rules, but it was too much volume and kept crashing.If anybody can help me with this script I would appreciate it.Thanks,Jeffrey Read More
Formula for moving a range of cells in one row to a new row
Hello All,
On the small sample inserted below, you will see that every student has a unique number in Column A and each student has two rows of data. I would like to move the data so that every student has only one row of data.
For example, the first student is student number 150 (A2 and A3). I would like to move the data from cell range G3:L3 to M2:R2. I want to do this for every student.
How do I do this? Thank you for your help!
Hello All, On the small sample inserted below, you will see that every student has a unique number in Column A and each student has two rows of data. I would like to move the data so that every student has only one row of data. For example, the first student is student number 150 (A2 and A3). I would like to move the data from cell range G3:L3 to M2:R2. I want to do this for every student. How do I do this? Thank you for your help! Read More
MD-102 Change Log
Hi
When the MD-102 exam changes on September 17, will the Learning Path also be changed on that day? If not, is there a timeline on when the learning path will be updated after exam change?
Hi When the MD-102 exam changes on September 17, will the Learning Path also be changed on that day? If not, is there a timeline on when the learning path will be updated after exam change? Read More
Enterprise Custom Field populated in PWA. Data is not populated in Desktop
I have created a resource Enterprise Custom Field called “Role”. The new field shows up on the “Edit Resource” page in PWA. I populate the field with a value (it is a text lookup type using the “Role” lookup table). When I open the resource in Project Desktop, the field is there, but the value I entered in PWA is not there. It is just empty. If I update the value in the Desktop, it stays. Why is the value not showing up in the desktop when I populate through PWA?
I have created a resource Enterprise Custom Field called “Role”. The new field shows up on the “Edit Resource” page in PWA. I populate the field with a value (it is a text lookup type using the “Role” lookup table). When I open the resource in Project Desktop, the field is there, but the value I entered in PWA is not there. It is just empty. If I update the value in the Desktop, it stays. Why is the value not showing up in the desktop when I populate through PWA? Read More
Reverting from (New) Outlook Need some advice.
As the title says I’m running away from the new outlook. But I have a few Questions:
1. I use office 365 and am going back to standard outlook, is it best to set my rules in the cloud/web site or locally? Will the cloud rules affect my local copy of outlook standard?
2. Are there any actual consequences from ditching the new outlook?
As the title says I’m running away from the new outlook. But I have a few Questions: 1. I use office 365 and am going back to standard outlook, is it best to set my rules in the cloud/web site or locally? Will the cloud rules affect my local copy of outlook standard?2. Are there any actual consequences from ditching the new outlook? Read More
New on Azure Marketplace: July 25-31, 2024
We continue to expand the Azure Marketplace ecosystem. For this volume, 142 new offers successfully met the onboarding criteria and went live. See details of the new offers below:
Get it now in our marketplace
AIMMO Core – Smart Curation: AIMMO Core’s AI-powered data curation service streamlines dataset curation by sending image files from the customer’s Azure Blob Storage to AI models using URLs, with the curated results viewable in a web viewer. The service operates directly within the customer’s Azure Storage, ensures data security, and saves time by eliminating the transfer of large data volumes for AI inference.
AlmaLinux 9.3 Generation 2: Rinne Labs offers a lightweight and secure AlmaLinux 9.3 image built from the official ISO for optimal performance. The image reduces storage requirements, optimizes system responsiveness, and is equipped with the latest security patches and updates. It is ideal for rapid deployment of web applications, efficient development and testing environments, stable and secure server infrastructure, data analytics, and machine learning.
AlmaLinux 9.3 Gen 2 Minimal: Rinne Labs offers a lightweight and secure AlmaLinux 9.3 image built from the official ISO with minimal size for faster boot times and reduced resource consumption. The image reduces storage requirements, optimizes system responsiveness, and is equipped with the latest security patches and updates. It is ideal for rapid deployment of web applications, efficient development and testing environments, stable and secure server infrastructure, data analytics, and machine learning.
Archibus: Archibus by Eptura is a web-based platform that optimizes workplace and building operations. It offers a comprehensive suite of tools for space management, asset management, risk and sustainability, capital projects and leases, and more. Archibus integrates with Microsoft Outlook, Teams, and Power BI, and is hosted on Microsoft Azure for select clients and FedRAMP compliant organizations.
Awssome White Label: This SaaS platform from WeTransact offers built-in order management, financial reporting, and marketplace integration maintenance for independent software vendors and enables them to list offers on multiple cloud marketplaces. With ongoing support and no hidden costs, Awssome White Label makes publishing quick and easy. Offers can go live in just days.
Bandit on Debian 11: Bandit is a Python code scanning tool that identifies potential security vulnerabilities. This pre-configured image from Apps4Rent optimized for Microsoft Azure simplifies deployment and provides a consistent environment across different compute resources. Key features include automated security analysis, comprehensive issue detection, and ease of use.
Bandit on Oracle Linux 8.8: Bandit is a Python code scanning tool that identifies potential security vulnerabilities. This pre-configured image from Apps4Rent optimized for Microsoft Azure simplifies deployment and provides a consistent environment across different compute resources. Key features include automated security analysis, comprehensive issue detection, and ease of use.
Bandit on Red Hat 8.7: Bandit is a Python code scanning tool that identifies potential security vulnerabilities. This pre-configured image from Apps4Rent optimized for Microsoft Azure simplifies deployment and provides a consistent environment across different compute resources. Key features include automated security analysis, comprehensive issue detection, and ease of use.
Bandit on Ubuntu 20.04 LTS: Bandit is a Python code scanning tool that identifies potential security vulnerabilities. This pre-configured image from Apps4Rent optimized for Microsoft Azure simplifies deployment and provides a consistent environment across different compute resources. Key features include automated security analysis, comprehensive issue detection, and ease of use.
Bandit on Ubuntu 22.04 LTS: Bandit is a Python code scanning tool that identifies potential security vulnerabilities. This pre-configured image from Apps4Rent optimized for Microsoft Azure simplifies deployment and provides a consistent environment across different compute resources. Key features include automated security analysis, comprehensive issue detection, and ease of use.
Bandit on Ubuntu 24.04 LTS: Bandit is a Python code scanning tool that identifies potential security vulnerabilities. This pre-configured image from Apps4Rent optimized for Microsoft Azure simplifies deployment and provides a consistent environment across different compute resources. Key features include automated security analysis, comprehensive issue detection, and ease of use.
CA Gatekeeper: CA Gatekeeper allows for easy backup and restoration of tenant conditional access policies, with granular management capabilities and safeguards against accidental deletion and compliance issues. It also provides advanced management capabilities, such as change prevention, approval workflows, policy comparison, and user-friendly views of policy settings and changes.
CIS Level 1 Benchmarks for Microsoft Windows 11 Enterprise: This Azure-based virtual machine comes with a pre-configured Windows 11 Enterprise image that meets the Center for Internet Security (CIS) Level 1 compliance needs. CIS benchmarks provide guidelines for securing and configuring server settings to mitigate common security vulnerabilities and threats. Madarson IT images are always up to date, secure, and follow industry standards.
CIS Level 1 Benchmarks for Microsoft Windows Server 2022: This Azure-based virtual machine comes with the latest Microsoft Windows Server 2022 image pre-configured to meet the Center for Internet Security (CIS) Level 1 compliance needs. CIS benchmarks provide guidelines for securing and configuring server settings to mitigate common security vulnerabilities and threats. Madarson IT images are always up-to-date, secure, and built to work right out of the box.
CIS Level 2 Benchmarks for Microsoft Windows Server 2019: This Azure-based virtual machine is pre-configured with the Microsoft Windows Server 2019 image and meets the Center for Internet Security (CIS) Level 2 compliance needs. CIS benchmarks provide guidelines for securing and configuring server settings to mitigate security vulnerabilities and threats. Madarson IT images are always up to date, secure, and follow industry standards.
CIS Level 2 Benchmarks for Microsoft Windows Server 2022: This Azure-based virtual machine is pre-configured with the latest Microsoft Windows Server 2022 image and meets the Center for Internet Security (CIS) Level 2 compliance needs. CIS benchmarks provide guidelines for securing and configuring server settings to mitigate security threats. Madarson IT images are always up to date, secure, and follow industry standards.
Connected Worker (SaaS): Vassar Digital’s Connected Worker solution uses generative AI and LLMs with enterprise knowledge base to improve field operations and boost employee productivity. The platform enables you to elevate customer service, explore new revenue streams, and optimize profitability.
Dagster: Dagster is a cloud-native data orchestration platform that offers integrated lineage and observability, a declarative programming model, and reliable testability. With Azure integration, developers can use Azure Storage Accounts as part of their data pipeline. Dagster empowers developers to observe, optimize, and debug any pipeline on their data platform and collaborate across teams with an intuitive UI.
DataStax HCD (Hyper Converged Database): DataStax HCD is a cloud-native data infrastructure for AI data clouds, designed for enterprises investing in datacenter modernization and hyper converged infrastructure. Built on open-source Apache Cassandra, it is ideal for enterprise operators and architects driving on-premises datacenter modernization initiatives.
Debian 10 with Apache Subversion (SVN) Server: Virtual Pulse offers a pre-configured and cloud hardened Debian 10 with Apache Subversion (SVN) Server image for software developers to maintain current and previous versions of files. SVN is a centralized version control system that ensures atomic operations, retains full revision history, and supports a wide variety of users and projects.
Eclipse IDE for Java and Web on Windows Server 2022: Eclipse IDE is a free and open-source development platform for Java and other programming languages. Nuvemnest provides Eclipse IDE for Java and Web on Windows Server 2022 with a focus on customer-centric approach, expertise in cloud computing, and future-ready technology.
Eclipse IDE for Java on Windows Server 2016: Nuvemnest offers Eclipse IDE, an open-source development platform for Java and other programming languages that enables programmers to streamline the development of Java-based applications using a comprehensive suite of tools and integrations. The Eclipse IDE for Java and Web on Windows Server 2016 solution is built on top-notch technology, ensuring adaptability and sustainability.
Eclipse IDE for Java on Windows Server 2019: Eclipse IDE is a free and open-source development platform for Java and other programming languages. Nuvemnest provides Eclipse IDE for Java on Windows Server 2019 with a focus on customer-centric approach, expertise in cloud computing, and future-ready technology. No commercial licenses are offered.
Eclipse IDE for Java on Windows Server 2022: Eclipse IDE is a free and open-source development platform for Java and other programming languages. Nuvemnest provides Eclipse IDE for Java on Windows Server 2022 with a focus on customer-centric approach, expertise in cloud computing, and future-ready technology. No commercial licenses are offered.
Hybrid Setup for Nutanix Cluster: MDS/LiveRoute will provide you with hands-on assistance in deploying and configuring your Nutanix cluster on Microsoft Azure. Their expert guides will evaluate your environment and ensure efficient migration of your applications and data to Azure while minimizing downtime and disruption. The offer includes assessment, planning, and setup services.
Instant Kubernetes: K8 VM with Minikube: Unlock the power of Kubernetes with Techlatest.net’s cost-effective solution. It comes with Minikube and pre-installed kubectl, making it ideal for pre-production and educational purposes. Test multi-node clusters and explore various Kubernetes configurations without the need for a complex setup. Gain immediate access to the Minikube dashboard for resource management.
Jellyfin on AlmaLinux 8 – Streaming Media Server: Jellyfin Streaming Media Server on AlmaLinux 8 offers a customizable and secure media server solution for media enthusiasts and tech-savvy individuals. With seamless streaming, full customization, scalability, security, and a user-friendly interface, it provides a robust platform for managing and streaming your media library.
Jellyfin on AlmaLinux 9 – Streaming Media Server: Jellyfin on AlmaLinux 9 is a customizable, secure, and efficient media server that allows you to stream your media library in high definition across all your devices. With features like cross-platform support and a customizable interface, it’s perfect for media enthusiasts, families, and small businesses looking to centralize and control their media content.
Jellyfin on Debian 11 – Streaming Media Server: Jellyfin is a free, open-source media server that allows you to organize and stream your media collection with ease. With features like SyncPlay and support for Live TV and TV tuners, Jellyfin offers unparalleled flexibility and customization options. Deploy Debian 11 with Jellyfin Server to take control of your media journey.
Jellyfin on Debian 12 – Streaming Media Server: Jellyfin is an open-source multimedia software that allows you to organize and enjoy your media library from anywhere. It offers transcoding and media format support, customization options, and third-party plugins. With Jellyfin, you have full control over your data and privacy. Turn your home server into a multimedia center with Jellyfin on Debian 12.
Jellyfin on Linux Stream 8 – Streaming Media Server: Jellyfin on Linux Stream 8 is a reliable and high-performing media server solution for personal and professional use. It offers comprehensive media management, security, and community support. With Jellyfin, users can stream their media anytime, anywhere, and on any device.
Jellyfin on Linux Stream 9 – Streaming Media Server: Jellyfin Media Server on Linux Stream 9 is a flexible and secure solution for managing and streaming your digital content. It offers seamless media streaming, comprehensive media organization, customizable user experience, multi-platform support, and privacy and security features.
Jellyfin on Oracle 8 – Streaming Media Server: Jellyfin is an open-source media server that offers complete control over media content. It allows organizing and streaming multimedia on various devices, with support for Live TV, DVR, and SyncPlay. Highly customizable and easy to use, Jellyfin ensures a safe environment for privacy and property rights. Enjoy the freedom of choice and control with Jellyfin on Oracle 8 – Streaming Media Server.
Jellyfin on Red Hat 7 – Streaming Media Server: Jellyfin on Red Hat 7 is an open-source media server solution that allows users to organize, stream, and manage their media collection. It offers complete privacy and control over media resources, live TV support, and personalized playlists. With a user-friendly interface, Jellyfin can meet all your streaming media needs.
Jellyfin on Red Hat 8 – Streaming Media Server: Jellyfin on Red Hat 8 is an open-source media server that allows users to organize, manage, and stream their media content. It offers features such as Live TV and DVR functionality, metadata and subtitle support, and plugin support. With Jellyfin, users have complete control over their media library and can enjoy an immersive viewing experience on any supported device.
Jellyfin on Rocky 8 – Streaming Media Server: Jellyfin on Rocky 8 is a customizable and beginner-friendly media server that offers secure and private access to your media collection. It provides smooth and reliable streaming of content to remote devices and supports cloud synchronization. With its powerful functionality, Jellyfin gives you the tools to create unique and personalized media experiences.
Jellyfin on Rocky 9 – Streaming Media Server: Jellyfin on Rocky 9 is an open-source media server that allows you to organize, stream, and share your media collections across multiple devices. It offers media streaming, Live TV, DVR, and hardware transcoding capabilities, as well as comprehensive subtitle support in multiple languages. With custom permissions and parental controls, you can control who has access to your library and what they can view.
Jellyfin on Ubuntu 22.04 – Streaming Media Server: Jellyfin is a customizable media server that allows you to organize and stream your movies, TV shows, music, and e-books. It supports terrestrial television and TV tuners, and its SyncPlay feature lets multiple users watch and listen to content together in real time. Deploy Jellyfin on Ubuntu 22.04 for a unique entertainment experience.
Jellyfin on Ubuntu 24.04 – Streaming Media Server: Jellyfin is an open-source media server that allows you to organize and manage your media collection and stream it to various devices. It offers features such as subtitle support, user management, and parental controls. With Jellyfin on Ubuntu 24.04, you get freedom and control over your media content without paying for extra features.
Kamiwaza GenAI Engine – Per Node with Outcome Support: Kamiwaza’s GenAI Engine Enterprise Edition is a robust solution for developers building generative AI applications within existing organizational apps. It ensures private and secure AI deployment, compliance and security, efficiency and real-time results, and flexibility and scalability. With over 40 data connectors and multi-cloud, multi-location mesh capabilities, it enhances productivity, security, and scalability for modern enterprises.
Limitless Digital Workplace for Frontline Workers: Limitless Digital Workplace for Frontline Workers from IT-Dev sp. z o.o. enhances communication and collaboration among frontline workers by tailoring essential communication functionalities from the Microsoft 365 suite to the needs of the manufacturing industry. It offers digital proficiency, customizable interface, engaging multimedia, mobile access, and more.
Linux CentOS 7.9 with Apache Subversion (SVN) Server: Apache Subversion is a version control system for software developers that provides conflict resolution, merge tracking, and file locking. It maintains current and historical versions of files such as source code, web pages, and documentation. Virtual Pulse offers this Apache Subversion Server image on Linux CentOS 7.9 that is fully pre-configured and hardened to run in Microsoft Azure environments. No warranty is included.
Linux CentOS 8.3 with Apache Subversion (SVN) Server: Virtual Pulse’s Linux CentOS 8.3 with Apache Subversion (SVN) Server image is a pre-configured and cloud-hardened solution for globally distributed software development teams. Subversion is a reliable, open-source, centralized version control system that supports a wide variety of users and projects. No warranty is included.
Linux Stream 9 Minimal with Jellyfin Server: Jellyfin is an open-source media server that offers universal content accessibility, personalized user profiles, comprehensive metadata integration, remote access, and rich media format support. It turns your gadget into a powerhouse and opens up access to your complete library on any web-enabled device. Deploy Linux Stream 9 Minimal with Jellyfin Server to take control of your media journey.
Linux Stream 9 Minimal with Jitsi: Jitsi Meet is an open-source video-conferencing app that offers high functionality and secure end-to-end TLS encryption. It allows anonymous access, self-hosting, password protection, and low bandwidth settings. Virtual Pulse’s Linux Stream 9 Minimal image with Jitsi provides a seamless user experience for online classes, client conferences, family gatherings, and work meetings.
Linux Stream 9 Minimal with Webmin Server: Webmin simplifies system administration with its user-friendly web-based interface. It offers a comprehensive suite of tools for managing various server functionalities, including user management, software installation, security configurations, and network management. Webmin’s security modules safeguard servers and data against potential threats. Deploy Virtual Pulse’s Linux Stream 9 Minimal image with Webmin Server to gain full control over your servers.
Linux Stream 9 with Jellyfin Server: Jellyfin is a media server that organizes movies, TV shows, music, and images in one location accessible from any device. It fetches metadata and allows personalized user profiles with parental controls. Jellyfin is open source with security features for privacy. Improve your media experience with Virtual Pulse’s Linux Stream 9 image with Jellyfin Server available on Azure.
Linux Stream 9 with Webmin Server: Linux Stream 9 with Webmin Server offers a user-friendly interface for effortless server management. It allows you to add, modify, or delete users, manage file systems, and configure services from a centralized dashboard. The real-time monitoring tools keep an eye on server performance issues, and the built-in cron job manager enables you to automate recurring tasks. It supports popular databases like MySQL and PostgreSQL, making database management easy.
Mendel Hypercube: Hypercube from Mendel AI is an AI copilot suite that uses hypergraph technology to transform clinical analytics workflows for healthcare organizations. It includes features such as Hypercube Cohort for rapid patient cohort creation, Hypercube Charts for a comprehensive understanding of patient journeys, Hypercube Analyst for in-depth analysis, and Hypercube Redact for data privacy and compliance.
MongoDB on Debian 12: Tidal Media has packaged this virtual machine image containing MongoDB on Debian 12. This flexible, scalable, and high-performance NoSQL database solution is designed for developers, data engineers, and organizations seeking a robust solution that can handle complex data requirements efficiently. MongoDB’s flexible schema design, powerful querying and indexing capabilities, and features like sharding and replication ensure high performance and scalability.
MongoDB on SUSE 12 SP5: This offer from Tidal Media provides an image of MongoDB on SUSE 12 SP5. This powerful database solution caters to the demands of modern applications and offers flexible schema design, high performance, scalability, security, and efficient resource management. It is ideal for businesses, developers, and professionals looking to innovate and adapt quickly in a competitive market.
NLTK on Oracle Linux 8.8: NLTK for Natural Language Processing on Oracle Linux 8.8 is a pre-configured image from Apps4Rent that offers a consistent environment for using the NLTK library. It includes all necessary software and is supported by Oracle Linux cloud infrastructure. NLTK is open source, free, and suitable for various NLP tasks.
Odoo 17 on Windows Server 2016: This offer from Nuvemnest provides an image of Odoo 17 on Windows Server 2016 pre-installed on a Microsoft Azure virtual machine. Odoo Community Edition provides a flexible and cost-effective ERP solution for businesses. With a customer-centric approach and expertise in cloud computing, this solution ensures satisfaction and future-readiness.
Singledispatch on Debian 11: This offer from Apps4Rent provides a pre-configured image of singledispatch on Debian 11 on a Microsoft Azure virtual machine. The singledispatch decorator is used for function overloading in Python and provides a consistent environment for easy development and deployment. Key features include efficiency, compatibility, extensibility, ease of use, and high performance.
Singledispatch on Oracle Linux 8.8: This offer from Apps4Rent provides a pre-configured image of singledispatch on Oracle Linux 8.8 optimized for Azure. The singledispatch decorator is used for function overloading in Python and provides a consistent environment for easy development and deployment. Key features include efficiency, compatibility, extensibility, ease of use, and high performance.
Singledispatch on Red Hat 8.7: This offer from Apps4Rent provides a pre-configured image of singledispatch on Red Hat 8.7. The singledispatch decorator is used for function overloading in Python and provides a consistent environment for easy development and deployment. Key features include efficiency, compatibility, extensibility, ease of use, and high performance.
Singledispatch on Ubuntu 20.04 LTS: Apps4Rent’s pre-configured Singledispatch image on Ubuntu 20.04 LTS optimized for Azure provides a consistent environment for easy development and deployment. The singledispatch decorator is used for function overloading in Python and offers efficiency, compatibility, extensibility, ease of use, and high performance. ease of use, and high performance.
Singledispatch on Ubuntu 22.04 LTS: Apps4Rent’s pre-configured Singledispatch image on Ubuntu 22.04 LTS optimized for Azure provides a consistent environment for easy development and deployment. The singledispatch decorator is used for function overloading in Python and offers efficiency, compatibility, extensibility, ease of use, and high performance. ease of use, and high performance.
Singledispatch on Ubuntu 24.04 LTS: Apps4Rent’s pre-configured Singledispatch image on Ubuntu 24.04 LTS optimized for Azure provides a consistent environment for easy development and deployment. The singledispatch decorator is used for function overloading in Python and offers efficiency, compatibility, extensibility, ease of use, and high performance. ease of use, and high performance.
Sitefinity Cloud: Sitefinity Cloud by Progress Software gives businesses a platform designed for agility, performance, and scalability. It offers an expertly configured, flexible scaling environment along with advanced tools to meet audience expectations and ensure operational efficiency. With features like load balancing, autoscaling, and geo-replication, Sitefinity Cloud helps businesses deliver always-on experiences and streamline multisite, multichannel, and multilingual experience management.
Starfish Digital Multi-Bank Connectivity: Starfish Digital is a secure financial connectivity platform that provides real-time connection between businesses and banks. It integrates automated data for seamless access to information, improving efficiency and accuracy. It’s a high-performance, scalable connection between finance/ERP/TMS and all banks.
Symphony Cloud Migrations: Symphony’s full stack cloud management platform offers near-zero downtime migrations, ensuring minimal disruption to critical processes, enhanced reliability, cost savings, and a competitive advantage. The platform enables organizations to swiftly migrate applications to the cloud, unlocking the full potential of cloud computing for business growth and innovation.
Transpyle on Debian 11: Transpyle is a Python framework for source-to-source translation between programming languages. This pre-configured image customized by Apps4Rent simplifies deployment and offers consistent environments across different Azure compute resources. Key features include efficiency, multi-language support, automation of manual tasks, ease of use, and high performance.
Transpyle on Ubuntu 20.04 LTS: Transpyle is a Python framework for source-to-source translation between programming languages. This pre-configured image customized by Apps4Rent simplifies deployment and offers consistent environments across different Azure compute resources. Key features include efficiency, multi-language support, automation of manual tasks, ease of use, and high performance.
Transpyle on Ubuntu 22.04 LTS: Transpyle is a Python framework for source-to-source translation between programming languages. This pre-configured image customized by Apps4Rent simplifies deployment and offers consistent environments across different Azure compute resources. Key features include efficiency, multi-language support, automation of manual tasks, ease of use, and high performance.
Transpyle on Ubuntu 24.04 LTS: Transpyle is a Python framework for source-to-source translation between programming languages. This pre-configured image customized by Apps4Rent simplifies deployment and offers consistent environments across different Azure compute resources. Key features include efficiency, multi-language support, automation of manual tasks, ease of use, and high performance.
UDS Call Center: UDS Call Center from Virtual Cable SLU is a virtualization solution for call centers that delivers continuous secure access to all applications and software from any location and device. An ideal choice for remote work environments with a focus on efficient customer service, the solution enables agents to access all necessary programs and applications through a single, secure web-accessible console and allows for automatic load balancing to optimize performance and efficiency.
UDS Corporate: UDS Corporate from Virtual Cable is a workplace virtualization solution for large enterprises that delivers continuous and secure access to all applications and software from any location and device. It unifies Windows and Linux desktop and application virtualization, along with remote access to physical devices, all within a single console. It can be deployed on-premises or in public, private, hybrid, or multi-cloud environments, ensuring business continuity at all times.
UDS Education: UDS Education from Virtual Cable is a digital workspace solution for the education sector that provides round the clock secure access to all applications and software used by educational institutions. It integrates with Moodle and other LMS platforms, ensuring unified access to all teaching tools from a single portal. It can be deployed on-premises or in public, private, hybrid, or multi-cloud environments, and facilitates online teaching and remote work while maintaining data security and privacy.
UDS Government: UDS Government from Virtual Cable is a virtualization solution for public administrations that provides secure and continuous access to all necessary applications and software from any location and device. It integrates desktop and application virtualization for both Windows and Linux in a single console, as well as remote access to physical devices. UDS Government simplifies deployment of new digital workspaces in high availability, customized for each user profile, with high security and privacy.
UDS Health: UDS Health from Virtual Cable is a virtualization solution for the healthcare sector that provides secure and continuous access to all applications and software used in hospitals, clinics, nursing homes, and primary care centers. It integrates desktop and application virtualization for both Windows and Linux in a single console, as well as remote access to physical devices. It can be deployed on-premises or in public, private, hybrid, or multi-cloud environments.
UDS SMB: UDS SMB from Virtual Cable is a workplace virtualization solution for small and medium-sized businesses, providing secure and round the clock access to all necessary applications and software. It integrates Windows and Linux desktop and application virtualization in a single console and can be deployed on-premises or in public, private, hybrid, or multi-cloud environments. UDS SMB offers maximum performance with all types of applications, including those with high graphical demands, and allows secure, automatic, and centralized management and monitoring of all workstations.
Video Social Listening for Brands: Video Insights Co-Pilot from SocialVoice.ai extracts detailed intelligence from video content at scale, providing structured data or an API for on-demand querying and integration with existing technology stacks. Use cases include brand safety, market intelligence, social listening, alpha data, affiliate and sponsorship analysis, video indexing, content discovery, metadata improvement, and video content enhancement.
Go further with workshops, proofs of concept, and implementations
Apps and Infrastructure: 12-Week Implementation: This service from SSW Consulting offers cloud-native application development and infrastructure modernization that are fully integrated with Microsoft Azure. It includes infrastructure as code, DevOps, security, compliance, monitoring, data migration, performance optimization, and knowledge transfer.
AWS to Azure Migration: 2- to 5-Week Implementation: Saxon Global offers a cost-efficient and seamless migration from AWS to Microsoft Azure, leveraging Azure’s scalable infrastructure for enhanced performance. Their step-by-step methodology includes defining strategy, migration planning, pre-migration, actual migration, and post-migration. A clear roadmap for goals and ROI will be provided.
Azure Kickstarter Pilot: 2-Week Implementation: Bell and FX Innovation offer end-to-end solutions for multi-cloud integrations and connectivity. Their Azure migration kickstarter provides expert guidance, cost analysis, and tailored workshops to accelerate adoption in compliance with governance best practices. The service includes application assessment, pilot environment design, and support for application migration.
Azure Migration Program: 5-Week Implementation: Bell and FX Innovation offer end-to-end solutions for multi-cloud integrations and connectivity. Based on your business objectives and reality, their experts will develop a CI/CD pipeline and infrastructure as code to help automate and streamline the migration process and modernize your critical applications to achieve cloud benefits.
Copilot Studio: 8-Week Jumpstart: Copilot Studio is an AI platform for creating conversational experiences. Perficient’s Copilot Studio Jumpstart helps organizations quickly build their own Copilot with security and governance recommendations. Deliverables include a Copilot solution and roadmap.
Data & AI Solutions Workshop: aConTech GmbH will unlock your data’s potential with the right architecture for an intelligent data platform utilizing Microsoft Azure. Available only in German, this workshop will provide a clear overview of all types of data and address challenges like poor visibility, unclear system integration, slow response times, manual tasks, lack of standards, and inaccurate reporting. The goal is to develop a tailored data architecture and strategic roadmap for successful implementation.
ECommerce Campaign Optimization on Azure: 6-Week Implementation: Sigmoid has developed a variety of ML-based solutions for optimizing display and search campaigns on eCommerce platforms. These solutions utilize technologies such as Azure Data Factory, Azure Data Lake Storage, Microsoft Purview, and Microsoft Power BI to automate the process of finding the right audience, bid values, and other parameters for continuous monitoring and optimization.
GenAI and Prompt Engineering for Business Units: 1-Day Training: Inovex offers a comprehensive course on generative AI, with a focus on OpenAI ChatGPT and Microsoft Azure technologies. Participants will gain knowledge of engineering prompts and do a deep dive into use cases. Inovex’s expertise in AI and collaboration with Microsoft allows them to provide insights and custom solutions for various industries.
GenAI for Leaders: 6-Hour Training: This training provides a comprehensive overview of generative AI, including its use cases, structure, requirements, and risks. Participants will learn how to evaluate the potential and ease of implementation of generative AI applications in their own business, with a focus on OpenAI ChatGPT and Microsoft Azure technologies. Inovex’s training also covers legal and regulatory challenges, as well as change management strategies for implementing generative AI solutions.
Generative AI: 2-Week Consulting and Proof of Concept: ProArch will help businesses prototype their generative AI vision using Microsoft Azure AI technology stack. The engagement includes a discovery call, interactive workshops, and a two-week sprint to deliver a tangible working prototype and an architecture to visualize the solution framework. Implementation recommendations and a high-level guide on non-functional aspects and architectural considerations for scaling to production are also provided.
KubePort: Cloud-Native Managed Container Platform: KubePort by Cegeka is a managed service that allows developers to focus on building cloud-native applications without worrying about infrastructure management. It includes a container platform, cloud-native tooling, and is fully managed by Cegeka on Microsoft Azure. The platform supports DevSecOps principles, leading to shorter delivery times, scalable applications, and increased automation.
RAG Enterprise AI: 3-Month Implementation: CleverIT will provide a personalized, informed, and effective solution for improving user experience and reducing response times. The service uses retrieval-augmented generation (RAG), similar to ChatGPT, and includes a custom frontend and backend integration with Azure Cognitive Search and Azure OpenAI Service.
SharePoint Intranet: 2-Week Implementation: This service from SSW Consulting delivers a tailored Microsoft SharePoint-based intranet solution that utilizes Azure for optimal performance. It includes custom site design, core functionality implementation, information architecture setup, integration and customization, and training and documentation.
Standard Azure Landing Zone: 2-Week Implementation: Bell and FX Innovation offer end-to-end solutions for multi-cloud integrations and connectivity to help organizations migrate and modernize their critical applications. This service will provide a secure landing zone, fast-track migration, and dedicated experts.
Contact our partners
Data Streaming with Active Integration
AnswerRocket Managed Application
Atmosera Managed Security and Managed Governance
Azure Managed Services: 12-Plus Month Implementation
Azure VMs on Windows Server Datacenter
CalcMenu – Recipe Management Software
ChangePilot – Message Centre and Roadmap Management Tool
CIS Level 1 Benchmarks for Microsoft Windows 10 Enterprise 22H2
CIS Level 2 Benchmarks for Microsoft Windows 10 Enterprise 22H2
CIS Level 2 Benchmarks for Microsoft Windows 11 Enterprise
Continuous Adoption Data Platform
DBGallery Digital Asset Management
Eviden’s Vyze for School Safety
FK&A Project Data Foundation and Dashboard Pack
Managed Platform Services for Azure Government Clouds
Microsoft Fabric Adoption and Migration: 2- to 4-Week Assessment
MiEngineering Services by Metisc
OnePact – Renewable Energy Management Software
Palo Alto Networks Cloud NGFW for Microsoft Sentinel
Parallels Remote Application Server (RAS) – Trial or BYOL
PICO Supply Chain Monitoring and Error Proofing Platform
Prodware AI User Insights for Microsoft Dynamics 365
Radiflow OT/ICS Threat and Anomaly Detection Connector for Microsoft Sentinel
ReversingLabs Scanner for Microsoft Defender
Samvaad – Discover Wisdom in Your Data
Microsoft SharePoint Intranet: 2-Day Assessment
Enterprise Data Solution from SLB
Data Driven Rapid Assessment Service
Ubuntu 22.04 with Trusted Launch
This content was generated by Microsoft Azure OpenAI and then revised by human editors.
Microsoft Tech Community – Latest Blogs –Read More