Category: News
March 2024 Viva Glint newsletter
Welcome to the March edition of our Viva Glint newsletter. Our recurring communications will help you get the most out of the Viva Glint product. You can always access the current edition and past editions of the newsletter on our Viva Glint blog.
Our next features release date
Viva Glint’s next feature release is scheduled for March 9, 2024*. Your dashboard will provide date and timing details two or three days before the release.
In your Viva Glint programs
The Microsoft Copilot Impact Survey template has premiered in the Viva Glint platform. AI tools are increasingly integrated into the workplace to enhance workforce productivity and the employee experience. This transformational shift in work means leaders need to understand their early investments in Microsoft Copilot and how it is being adopted. Deploying the Copilot Impact Survey template in Viva Glint, organizations can measure the impact of Microsoft Copilot enabling leaders to plan AI readiness, drive adoption, and measure their ROI. Learn about the Copilot Impact survey here.
Changing item IDs for expired cycles will be self-serve. Comparing survey trend is essential to tracking focus area progress over time. When a survey is retired, you can still use the data for an item from that survey as a comparison in a new survey which uses the identical item. And you can do it quickly and independently! Learn how to change survey item IDs here.
We’ve updated our Action Plan templates! Action Plan templates provide resources to help organizations act on feedback. Content comes from our new learning modules, WorkLab articles, and LinkedIn Learning. Now we’re exploring opportunities across all Viva and Copilot products to harness sentiment and data to enhance the employee experience and surface relevant, contextualized action recommendations. Check out Action Plan guidance here.
Support survey takers with new help content
Simplify your support process during live Viva Glint surveys to help users easily submit their valuable feedback. Use support guidance as an admin to communicate proactively and create resources to address commonly asked questions by survey takers. Share help content directly with your organization so that survey takers have answers to all their questions.
Announcing our new Viva Glint product council
Viva Glint is launching a product council! We are keen to listen to you, our customers, to help inform the future of our product. By enrolling, you will hear directly from our product and design teams, have an impact in shaping our product, and connect with like-minded customers to discuss your Viva Glint journey. To learn more and express an interest in signing up, visit this blog post.
Connect and learn with Viva Glint
We are officially launching our badging program! We are excited to announce that Viva Glint users can now earn badges upon completion of recommended training modules and then publish them to their social media networks. We’re kicking off this program by offering both a Foundations Admin badge and a Manager badge course. Learn more here about badging.
Get ready for our next Viva Glint: Ask the Experts session on March 12. Geared towards new Viva Glint customers who are in the process of deploying their first programs, this session focuses on User Roles and Permissions. You must be registered to attend the session. Bring your questions! Register here for Ask the Experts.
Join us at our upcoming Microsoft and Viva hosted events
Attend our Think like a People Scientist webinar series. Premiering in February (if you missed it, you can catch the recording here!), this series, created based on customer feedback, will deep dive into important topics that you may encounter on your Viva Glint journey. Register for our upcoming sessions below:
March 20: Telling a compelling story with your data
April 23: Influencing action without authority
May 28: Designing a survey that meets your organization’s needs
We are also kicking off our People Science x AI Empowerment series. Check out and register for our upcoming events that will help empower HR leaders with the knowledge and resources to feel confident, excited, and ready to bring AI to their organizations:
March 14: AI overview and developments for Viva Glint featuring Viva Glint People Science and Product leaders
April 18: AI: the game-changer for the employee experience featuring Microsoft research and applied science leaders
For those in the Vancouver area, join us for Microsoft Discovery Day on March 6. During this in-person event at Microsoft Vancouver you will learn from Microsoft leaders and industry experts about fundamental shifts in the workplace and the implications for your business. Gain an understanding of the value of AI-powered insights and experiences to build engagement and inspire creativity. Register.
Join the Viva People Science team at upcoming industry events
Are you attending the Wharton People Analytics Conference on March 14-15? As sponsors of the event, we will be there, and we would love to see you at our booth! This conference explores the latest advances and urgent questions in people analytics, including AI and human teaming, neurodiversity, new research on hybrid and remote work, and the advancement of frontline workers. Learn more about the conference here.
Our Microsoft Viva People Scientists are among the featured speakers at the Society for Industrial and Organizational Psychology (SIOP) annual conference in April. Live in Chicago, and also available virtually, the SIOP conference inspires and galvanizes our community through sharing knowledge, building connections, fostering inclusion, and stimulating new ideas. Learn more here.
Join Rick Pollak on April 18 for a panel discussion, Your Employee Survey is Done. Now What? Rick and leading experts will address best practices and advice about survey reporting, action taking, and more.
Join Caribay Garcia and other industrial organizational psychology innovators on April 19 for IGNITE-ing Innovation: Uses of Generative AI in Industrial Organization Psychology. This session will help psychologists conduct timelier research by fostering cross-collaborative communication between academics and practitioners.
Join Stephanie Downey and other industry experts on April 19 for Ask the Experts: Crowdsource Solutions to Your Top Talent Challenges. This session brings together industry experts to facilitate roundtable discussions focused on key talent and HR challenges.
Again, join Stephanie Downey on April 19 for Alliance: Unlocking Whole Person Management: Benefits, Hidden Costs, and Solutions. Explore the multifaceted dimensions of whole person management (WPM) by delving into the benefits and challenges this approach creates.
Join Carolyn Kalafut on April 19 for Path to Product. This seminar provides an intro to understanding product and the ability to influence the software development lifecycle and to embed responsible and robust I-O principles in it.
Join Caribay Garcia on April 20 for Harnessing Large Language Models in I-O Psychology: A Revolution in HR Offerings. Delve into the practical implications, ethical concerns, and the future of large language models (LLMs) in HR.
Check out our most recent blog content on the Microsoft Viva Community
Assess how your organization feels about Microsoft Copilot
Viva People Science Industry Trends: Retail
How are we doing?
If you have any feedback on this newsletter, please reply to this email. Also, if there are people on your teams that should be receiving this update, please have them sign up using this link.
*Viva Glint is committed to consistently improving the customer experience. The cloud-based platform maintains an agile production cycle with fixes, enhancements, and new features. Planned program release dates are provided with the best intentions of releasing on these dates, but dates may change due to unforeseen circumstances. Schedule updates will be provided as appropriate.
Microsoft Tech Community – Latest Blogs –Read More
Implementing MLOps for Training Custom Models with Azure AI Document Intelligence
Addressing the challenges of effectively maintaining custom models in Azure AI Document Intelligence, this article explores adapting the concepts of MLOps into your delivery strategy. The goal is to provide guidance on how to ensure that custom document analysis models are not only accurate but remain effective for users throughout their lifecycle.
Key Challenges
Balancing model accuracy with operational scalability
Ensuring that custom models remain accurate over time while also scalable and efficient in operation is challenging. Teams are required to collect and process many documents while exploring techniques to improve accuracy. The operational overhead of managing document storage, running pre-processing flows, training models, and ensuring they are efficiently deployed without affecting the user experience requires a meticulous approach.
Implementing strategies for model improvement
Finding the right approach to model retraining presents many complexities. Teams are required to establish seamless mechanisms for monitoring, collecting feedback, and recreating training data to retrain a model. While automations establish best practices with faster delivery, they pose challenges for malicious actors to affect a model’s analysis. Introducing manual processes need to be carefully managed to also prevent compromising the integrity of a model.
Managing multiple models and versions
Teams building custom models with Azure AI Document Intelligence will create multiple variants. This poses a challenge for future maintenance when identifying models and whether they are still relevant or in use. Teams need to consider strategies to ensure effective management, providing rollback capabilities, and minimizing disruptions to end-users during updates.
Recommendations
As teams adopting MLOps practices when utilizing Azure AI Document Intelligence to build custom models for document analysis, you should:
Adopt MLOps practices to streamline the end-to-end lifecycle management of custom models. Utilize automation pipelines to perform model training, evaluation, and deployment to reduce manual errors. Adopt a semantic versioning strategy to improve the management of models. Leverage Azure Blob Storage for document collection to organize and manage training data efficiently.
Establish continuous feedback and retraining mechanisms. Embed feedback mechanisms into intelligence applications to allow users to submit changes and inform retraining activities. Establish a human-in-the-loop to oversee user feedback and submit recommendations for retraining. Utilize established automation pipelines that can be triggered by reviewers to rollout changes continuously without manual intervention.
Enhance model deployment strategies to minimize user impact when establishing multiple model versions. Utilize approaches such as blue/green deployments and feature flags to manage model updates, enabling gradual rollout with rollback capabilities. Implement monitoring to track model performance, usage, and identify potential issues early. Use the data to inform decisions regarding model retraining.
Challenge Overview
In an ever-evolving demand for AI integration in SaaS products, leveraging the Azure AI services to enhance user experience is no longer just an advantage; it’s a necessity. Azure AI Document Intelligence provides a powerful platform for extracting valuable data from a variety of document types, transforming manual, time-consuming tasks into automated, efficient processes. However, the challenges many engineering teams integrating this service face in analyzing and generating a custom model accurately mirror the complexities that any data science team face in building custom machine learning models.
This is leading engineering teams to ask, “How do we effectively implement continuous improvement to custom document analysis models?”
This article focuses on adapting the concepts of MLOps to custom models created within Azure AI Document Intelligence. The goal is to provide you with guidance to ensure that models are not only accurate but remaining effective for users consuming them throughout their lifecycle.
What is MLOps?
MLOps represents the blend of machine learning with DevOps practices, aiming to streamline the lifecycle of ML projects. At its core, MLOps is about enhancing efficiency and reliability in deploying ML models, taking advantage of automation, team collaboration, continuous integration (CI), deployment (CD), testing, and monitoring of changes made.
Implementing these practices is important because:
Automation is crucial in reducing manual errors and increasing efficiency. It allows for the automatic training, evaluation, and deployment of models. This minimizes the need for human intervention and speeding up iteration cycles.
Collaboration among team members is essential to ensure that models are not only accurate but also deployable and maintainable in production environments.
Transparency in the processes ensures that all stakeholders have visibility into the model’s performance, the changes being made, and the impact the changes make. This is critical for maintaining trust and for continuous improvement.
To understand more about MLOps, dive deeper into our Microsoft Learn training paths.
Applying MLOps to Azure AI Document Intelligence
Building and deploying a custom model in Azure AI Document Intelligence doesn’t require deep machine learning understanding. However, the process mirrors the same challenges that are resolved by implementing MLOps in a machine learning model’s lifecycle.
This approach provides a transformative strategy that ensures the seamless integration of AI into document processing workflows, to enhance the efficiency and accuracy of the models over time. Let’s delve into best practices for preparing custom models in Azure AI Document Intelligence for production, highlighting the implementation of MLOps to achieve operational excellence and scalability.
Collecting and processing documents for custom models in Azure AI Document Intelligence
The foundation of creating an accurate custom model in Azure AI Document Intelligence with MLOps starts with the collection and processing of relevant documents of a given type. This step is critical as the quality and diversity of the content in the documents directly impact the model’s performance.
To improve how you collect and process documents, consider the following:
Diverse sources of the same document type: Aim to gather documents from a variety of sources of the same type, e.g., an invoice, but also consider documents with various layouts, e.g., tables that span multiple pages, signatures in different locations, handwritten and digitized. Ensure you have enough volume of documents to provide variety to the model, but not too much that you lose quality and introduce noise.
Storing your training data: Storing your model’s training documents in Azure Blob Storage will ease the model creation, enabling you to use both Azure AI Document Intelligence Studio, as well as interacting with the APIs via code. This will be important for automating the process of retraining later. Track the documents that are being used in your model so that you can manage ones that are included in the trained model.
Implement pre-processing: Before feeding documents into your custom model, apply pre-processing techniques to standardize your document formats, e.g., de-skewing scanned documents, ensuring correct page ordering. Using the Azure AI Document Intelligence Studio, analyze and accurately label the key detail you want to extract from your documents. High-quality labeling is crucial for training successful models.
With your documents ready, we can now start considering how we build, manage, and deploy our models to customers.
Continuous integration and deployment of Document Intelligence models
Continuous integration and continuous deployment (CI/CD) practices are central to MLOps, enabling teams to integrate changes, automate testing, and deploy models more reliably and quickly. To apply these MLOps practices in Azure AI Document Intelligence, let’s explore some important factors that apply to the training of custom models once we have collected and pre-processed our documents.
Model versioning
Model versioning is the cornerstone of effective MLOps practices. Using versions for models allows teams to track, manage, and rollback models to previous states. This ensures that only the best-performing versions are available in a production environment.
For Azure AI Document Intelligence, consider using semantic versioning in the model ID. When implementing semantic versioning, establish a strategy for what you consider a major, minor, or patch change in collaboration across your team. This ensures that everyone understands the scope for deploying new model versions and eases the identification of changes in models.
As an example for implementing semantic versioning in Azure AI Document Intelligence models, consider:
Major: Breaking changes in the document template or field labels which invalidates previous models.
Minor: New training data based on the current document template.
Patch: Fixes to previously processed documents such as correcting pre-processing steps, e.g., de-skewing, page ordering, and labelling.
With a versioning strategy established, we can start to train and register our models with Azure AI Document Intelligence.
Testing model changes
Testing changes is a crucial aspect of MLOps, ensuring that updates maintain or improve performance without introducing regressions. A comprehensive testing strategy should encompass several layers, from data validation to performance testing.
Consider the following for effectively testing model changes:
Establish a baseline for quality and performance: With each training of a model, it is critical to have an established baseline to compare against for both the accuracy of the results, as well as the time taken to analyze the documents. Establish a defined training set of analyzed documents and their results to compare against for consistency in subsequent changes.
Running automated tests to validate changes: With an established set of test data, it is important to monitor for significant changes in the accuracy of new model versions compared to data previously established through testing. Performing this manually can be cumbersome when working with a large training set. Consider implementing an automated process that calls the Azure AI Document Intelligence APIs to analyze results for new models.
Deploying custom Azure AI Document Intelligence models
When you’re ready for your customers to start consuming your model, establishing a deployment strategy is critical to minimizing downtime and ensuring a smooth user experience during updates.
For applications integrating with Azure AI Document Intelligence, implementing an API gateway allows you to rollout changes while minimizing application updates. The proxy allows you to establish model deployment strategies such as:
Blue/green deployments: This strategy involves deploying the new (green) version alongside the current (blue) within an identical environment. After testing and validating with a select user group, traffic can gradually shift from the blue to green model. This approach minimizes downtime and risk by allowing an instant rollback if issues arise.
Feature flags: Implementing feature flags allows you to dynamically toggle between model versions without redeploying changes. This is particularly useful for A/B testing, as well as gradually introducing new features or models to users.
API versioning: With a proxy in front of your Azure AI Document Intelligence, you can run multiple models simultaneously while you phase them out and update client applications. Consider providing an endpoint for a model with API versioning that matches your deployed model versions.
MLOps techniques for gathering user feedback for Document Intelligence model retraining
Enhancing the performance and accuracy of custom models is important to maintain long-term value for customers. An effective approach to achieve this is through monitoring in the Document Intelligence model’s lifecycle as defined by MLOps.
Let’s explore approaches to monitoring via feedback from users and leveraging it for efficient model retraining.
User Feedback Loops
User feedback loops provide a critical step in the iterative improvement of custom models. As well as the expected performance and usage monitoring, user feedback loops enable the collection of real-world insights. User feedback provides details into how the model is performing under scenarios you may not be able to test otherwise.
Implementing a robust user feedback loop involves:
Direct integration into client applications: It is important to embed a feedback mechanism directly into the applications that take advantage of Azure AI Document Intelligence models. Use intuitive UI elements that encourage users to report inaccuracies or provide suggestions without disrupting their work. An implementation can start with a simple form that allows users to correct the extracted data and submit back. For more interactive feedback, implement a UI that mimics the capabilities of Azure AI Document Intelligence Studio for users to analyze documents and re-label them using the existing fields of the model.
Streamlining feedback collection: The process of user feedback should be as seamless as possible. It is important to create structured feedback that you can easily convert to the required format for retraining. Consider using the existing schemas from Azure AI Document Intelligence to map user feedback to shorten the lifecycle. You must also securely store the analyzed documents and OCR analysis results to enable effective retraining with the user feedback.
Human-in-the-loop Reviews
While user feedback can be directly integrated via automated retraining, human oversight is crucial to prevent malicious use. A human-in-the-loop, providing a review, ensures that feedback is accurately interpreted and applied into the model.
When implementing a strategy for feedback reviews, consider:
Establishing a review panel: Gather a group of subject matter experts, e.g., the team responsible for model creation, to review feedback from users on a regular basis. Implement alerts for user submissions to ensure that feedback is actioned. The review panel should be empowered to follow the MLOps process, integrate feedback, test, and rollout changes.
Routine quality assurance: Implement routine checks on the submitted feedback queue to ensure that the feedback is relevant and is being correctly users to inform model retraining efforts. It is also important to review feedback that has previously been integrated into the model for continued relevance.
Efficient Model Retraining
To capitalize on the insights from user feedback and human-in-the-loop reviews, it is important to establish an effective model retraining process. Here is where automation plays a key role in making this viable at scale by:
Triggering automated CI/CD pipelines: Model retraining should be integrated in a workflow that can be triggered in an event, such as a schedule or submission of a user feedback review. The workflow should automate the guidance provided in this article including model versioning, testing, and deployment. This ensures that model updates are readily available with the latest feedback-driven improvements and deployed seamlessly.
Conclusion
As the demand for intelligent AI applications grows, teams must establish best practices for production readiness. The challenges and complexities of implementing effective strategies for model improvement highlight the need for a robust, iterative approach. Applying the principles of MLOps enhances the longevity of custom models in Azure AI Document intelligence.
By adopting these MLOps practices, teams can leverage a well-defined framework to deliver reliable AI solutions that meet their ever evolving customer expectations.
Further Reading
Introduction to machine learning operations (MLOps) | Microsoft Learn
Using the Azure AI Document Intelligence SDKs | Microsoft Learn
Custom document models in Azure AI Document Intelligence | Microsoft Learn
Semantic Versioning 2.0.0 | Semantic Versioning
Azure Document Intelligence Custom Template User Feedback Loop Experiment | GitHub (jamesmcroft)
Microsoft Tech Community – Latest Blogs –Read More
Microsoft and open-source software
Microsoft has embraced open-source software—from offering tools for coding and managing open-source projects to making some of its own technologies open source, such as .NET and TypeScript. Even Visual Studio Code is built on open source. For March, we’re celebrating this culture of open-source software at Microsoft.
Explore some of the open-source projects at Microsoft, such as .NET on GitHub. Learn about tools and best practices to help you start contributing to open-source projects. And check out resources to help you work more productively with open-source tools, like Python in Visual Studio Code.
.NET is open source
Did you know .NET is open source? .NET is open source and cross-platform, and it’s maintained by Microsoft and the .NET community. Check it out on GitHub.
Python Data Science Day 2024: Unleashing the Power of Python in Data Analysis
Celebrate Pi Day (3.14) with a journey into data science with Python. Set for March 14, Python Data Science Day is an online event for developers, data scientists, students, and researchers who want to explore modern solutions for data pipelines and complex queries.
C# Dev Kit for Visual Studio Code
Learn how to use the C# Dev Kit for Visual Studio Code. Get details and download the C# Dev Kit from the Visual Studio Marketplace.
Visual Studio Code: C# and .NET development for beginners
Have questions about Visual Studio Code and C# Dev Kit? Watch the C# and .NET Development in VS Code for Beginners series and start writing C# applications in VS Code.
Reactor series: GenAI for software developers
Step into the future of software development with the Reactor series. GenAI for Software Developers explores cutting-edge AI tools and techniques for developers, revolutionizing the way you build and deploy applications. Register today and elevate your coding skills.
Use GitHub Copilot for your Python coding
Discover a better way to code in Python. Check out this free Microsoft Learn module on how GitHub Copilot provides suggestions while you code in Python.
Getting started with the Fluent UI Blazor library
The Fluent UI Blazor library is an open-source set of Blazor components used for building applications that have a Fluent design. Watch this Open at Microsoft episode for an overview and find out how to get started with the Fluent UI Blazor library.
Remote development with Visual Studio Code
Find out how to tap into more powerful hardware and develop on different platforms from your local machine. Check out this Microsoft Learn path to explore tools in VS Code for remote development setups and discover tips for personalizing your own remote dev workflow.
Using GitHub Copilot with JavaScript
Use GitHub Copilot while you work with JavaScript. This Microsoft Learn module will tell you everything you need to know to get started with this AI pair programmer.
Generative AI for Beginners
Want to build your own GenAI application? The free Generative AI for Beginners course on GitHub is the perfect place to start. Work through 18 in-depth lessons and learn everything from setting up your environment to using open-source models available on Hugging Face.
Use OpenAI Assistants API to build your own cooking advisor bot on Teams
Find out how to build an AI assistant right into your app using the new OpenAI Assistants API. Learn about the open playground for experimenting and watch a step-by-step demo for creating a cooking assistant that will suggest recipes based on what’s in your fridge.
What’s new in Teams Toolkit for Visual Studio 17.9
What’s new in Teams Toolkit for Visual Studio? Get an overview of new tools and capabilities for .NET developers building apps for Microsoft Teams.
Embed a custom webpage in Teams
Find out how to share a custom web page, such as a dashboard or portal, inside a Teams app. It’s easier than you might think. This short video shows how to do this using Teams Toolkit for Visual Studio and Blazor.
Get to know GitHub Copilot in VS Code and be more productive
Get to know GitHub Copilot in VS Code and find out how to use it. Watch this video to see how incredibly easy it is to start working with GitHub Copilot…Just start coding and watch the AI go to work.
Customize Dev Containers in VS Code with Dockerfiles and Docker Compose
Dev containers offer a convenient way to deliver consistent and reproducible environments. Follow along with this video demo to customize your dev containers using Dockerfiles and Docker Compose.
Designing for Trust
Learn how to design trustworthy experiences in the world of AI. Watch a demo of an AI prompt injection attack and learn about setting up guardrails to protect the system.
AI Show: LLM Evaluations in Azure AI Studio
Don’t deploy your LLM application without testing it first! Watch the AI Show to see how to use Azure AI Studio to evaluate your app’s performance and ensure it’s ready to go live. Watch now.
What’s winget.pro?
The Windows Package Manager (winget) is a free, open-source package manager. So what is winget.pro? Watch this special edition of the Open at Microsoft show for an overview of winget.pro and to find out how it differs from the well-known winget.
Use Visual Studio for modern development
Want to learn more about using Visual Studio to develop and test apps. Start here. In this free learning path, you’ll dig into key features for debugging, editing, and publishing your apps.
Build your own assistant for Microsoft Teams
Creating your own assistant app is super easy. Learn how in under 3 minutes! Watch a demo using the OpenAI Assistants, Teams AI Library, and the new AI Assistant Bot template in VS Code.
GitHub Copilot fundamentals – Understand the AI pair programmer
Improve developer productivity and foster innovation with GitHub Copilot. Explore the fundamentals of GitHub Copilot in this free training path from Microsoft Learn.
How to get GraphQL endpoints with Data API Builder
The Open at Microsoft show takes a look at using Data API Builder to easily create Graph QL endpoints. See how you can use this no-code solution to quickly enable advanced—and efficient—data interactions.
Microsoft, GitHub, and DX release new research into the business ROI of investing in Developer Experience
Investing in the developer experience has many benefits and improves business outcomes. Dive into our groundbreaking research (with data from more than 2000 developers at companies around the world) to discover what your business can gain with better DevEx.
Build your custom copilot with your data on Teams featuring Azure the AI Dragon
Build your own copilot for Microsoft Teams in minutes. Watch this video to see how in this demo that builds an AI Dragon that will take your team on a cyber role-playing adventure.
Microsoft Graph Toolkit v4.0 is now generally available
Microsoft Graph Toolkit v4.0 is now available. Learn about its new features, bug fixes, and improvements to the developer experience.
Microsoft Mesh: Now available for creating innovative multi-user 3D experiences
Microsoft Mesh is now generally available, providing a immersive 3D experience for the virtual workplace. Get an overview of Microsoft Mesh and find out how to start building your own custom experiences.
Global AI Bootcamp 2024
Global AI Bootcamp is a worldwide annual event that runs throughout the month of March for developers and AI enthusiasts. Learn about AI through workshops, sessions, and discussions. Find an in-person bootcamp event near you.
Microsoft JDConf 2024
Get ready for JDConf 2024—a free virtual event for Java developers. Explore the latest in tooling, architecture, cloud integration, frameworks, and AI. It all happens online March 27-28. Learn more and register now.
Microsoft Tech Community – Latest Blogs –Read More
How to Develop Your AI Coding Skills with Azure Enablement Show (Part Two)
As the tech world constantly evolves, artificial intelligence (AI) has become an integral part of innovative development. If you’re a developer, an Azure user, or simply an AI enthusiast, improving your AI coding skills is no longer just a competitive edge—it’s a necessity. This blog delves into the Azure Enablement Show’s How to Develop your AI Coding Skills (Part Two) and all of the various resources that will be a valuable to your AI learning journey.
Tips for Developing AI Coding Skills
Emerging as a skilled AI developer involves understanding robust platforms like Azure deeply. Azure Skilling Expert Natalie Mickey and I dive into some of the tips and resources to get you started:
Start with the Basics: Take note of the “Get started with Azure OpenAI Service” module to build a strong foundation.
Engage with Microsoft Learn Collections: The Official Collection, Essentials for Building Intelligent Apps, offers an in-depth selection of modules will lead you from beginner-level concepts right through to developing solutions that use Azure Cosmos DB and Azure Kubernetes Service.
Get Hands-On Practice: Make the most of exercises available within the modules to practically apply your knowledge. Build natural language solutions with Azure OpenAI Service and Apply prompt engineering with Azure OpenAI Service. These learning paths build on experience, guiding you through the entire process.
Learn from the Experts: Microsoft Reactor’s “Make Azure AI Real” series features Microsoft Cloud Advocates who speak on the latest AI trends, best practices, and how to leverage all of your Azure AI Tools and Services such as Azure OpenAI Service.
Get Started Building Intelligent Apps on Azure
Start developing your AI skills with Azure today and take your first step towards becoming an AI-development savant. Make sure to watch the Azure Enablement Show now and take that initial step towards becoming an AI architect of tomorrow.
Microsoft’s AI Learning Hub is your one-stop-shop for accessing all these resources. It covers new technology offerings through Azure, different modules, learning paths, and certifications that will keep you up to date with everything we have to offer.
As AI developers, the horizon is yours to broaden. We encourage you to harness the potential of AI with Microsoft Azure, let this be the start—or the escalation—of your AI coding skills development journey.
Microsoft Tech Community – Latest Blogs –Read More
Optimize and secure your cloud with new Azure Optimization skilling events
Optimizing existing cloud environments is consistently the top cloud initiative for nearly every tech company, and the benefits of skilling your organization on optimization abound. Optimizing your cloud usage means saving money, improving efficiency, security, and resiliency, as well as innovating faster, and gaining a competitive advantage in your industry. In this blog you’ll discover how the tools and learning resources of Azure Optimization can be a value driver for your organization with comprehensive learning opportunities to put you on the right path.
Join us for an exclusive virtual event
To help you learn to manage your Azure investments and architecture in key areas—managing costs, boosting resiliency and reliability, and keeping security tight—we’ve launched exclusive, no-cost events that give you the tools required to optimize your cloud investment.
Our Azure Optimization Virtual Training Days aim to funnel Microsoft’s know-how into helping you optimize and manage your cloud investment. Guided by a Microsoft Technical Trainer, you’ll discover how Azure guidance, resources, and practices can streamline your cloud spend, enable modernization, and fuel innovation in the cloud.
Participation for these upcoming events is limited, so please check the event calendar frequently to sign up as soon as new event registrations go live.
In two days of class, in four-hour sessions—translated in 28 languages—we tackle cloud optimization best practices and the frameworks that will power your team to adopt them. You’ll get a comprehensive look into our collected Azure Optimization learning modules, see demos and use cases, and get hands-on practice deploying workloads for cost optimization, operational excellence, performance efficiency, reliability, and security.
Whether you’re just starting to migrate to the cloud or already have Azure workloads in place, our Azure Optimization Virtual Training Day will put you on the road to maximizing your cloud investment, innovation, security, and modernization.
Engage with live instruction or watch on your own time
If you’re unable to attend the Virtual Training Day event, we have other flexible learning options to fit your availability. Our upcoming series of Learn Live sessions will highlight the frameworks and tools for Azure Optimization to help you strategically manage your cloud architecture and workloads.
Delivering technical readiness and skilling programming in a television format, Learn Live sessions are typically broadcasted live with instructor Q&A, and then available on-demand. Each session is 90 minutes, and you can get familiar with the content beforehand by checking out the associated learning modules.
Learn Live episode
Learning module
Date and time
Design for optimization: Getting started
Getting started with the Microsoft Cloud Adoption Framework for Azure
Landing Zones
Choose the best Azure landing zone to support your requirements for cloud operations
Continuous improvement: Optimize the architecture of your workloads
Introduction to the Microsoft Azure Well-Architected Framework
Optimizing with Azure Advisor and Cost Management
Describe cost management in Azure and Get started with Azure Advisor
Optimize costs with Reserved Instances and Azure savings plan for compute
Save money with reserved instances and Azure savings plan for compute
30 Day Challenge: Climb the leaderboard with our Azure Optimization Cloud Skills Challenge
For those looking to sharpen their skills at their own pace—but also want some friendly competition—Microsoft’s Cloud Skills Challenges are part interactive learning sprint, part good-natured tournament between you and thousands of your peers around the globe. These immersive, gamified learning experiences are a blend of hands-on exercises, tutorials, and assessments to ensure a well-rounded learning experience.
With the Azure Optimization Cloud Skills Challenge, you’ll have 30 days to complete a series of learning objectives focused on how to optimize cloud architecture and workloads. Sign up and climb the leaderboard as you learn how to drive continuous improvement of your architecture and workloads while managing and optimizing cloud costs.
Optimize your cloud architecture so you can focus on what matters most
Cloud optimization is a process of continuous improvement. It isn’t a question of “why”—it’s “how soon can we start and how do we keep improving?” Azure and our optimization guidance are ready when you are, both in technical capacity and as a collection of easily accessible, free educational resources. As an industry leader in cloud computing, we’re with you every step of the way. Whether that means examining and analyzing your workloads to maximize efficiency, advising you on cost management, or providing expert troubleshooting with our Azure engineers, optimizing your cloud is our priority.
Build more secure workloads: Help secure your future with reliable, futureproofed designs.
Cloud cashflow optimization: Unleash the cost-cutting power of the cloud by harnessing smart spend management and cost-trimming strategies.
Tech upgrade, budget upgrade: Unlock innovation by dynamically allocating cloud resources. Refine your tech investments for continuous improvements.
Future-proof your foundation: Design reliable and secure workloads for a launchpad to accelerated development.
Cost-conscious cloud, competitive edge: Manage your cloud spend to unlock savings and innovate with newfound resources.
Tailor your skilling experience with the Azure Optimization Collection
Whether you’re in the process of migrating to the cloud or already have established Azure workloads, we have assembled a handpicked collection of training and resources to help you on our journey. The collection is tailored to support the ongoing enhancement of your architecture and workloads, all while effectively managing and optimizing your cloud expenses.
Describe cost management in Azure
Get started with Azure Advisor
Purchase Azure savings plan for compute
Save money with Azure Reserved Instances
Getting started with the Microsoft Cloud Adoption Framework for Azure
Address tangible risks with the Govern methodology of the Cloud Adoption Framework for Azure
Ensure stable operations and optimization across all supported workloads deployed to the cloud
Choose the best Azure landing zone to support your requirements for cloud operations
Introduction to the Microsoft Azure Well-Architected Framework
Microsoft Azure Well-Architected Framework: Operational excellence
Microsoft Azure Well-Architected Framework: Cost optimization
Microsoft Azure Well-Architected Framework: Performance efficiency
Microsoft Azure Well-Architected Framework: Security
Microsoft Azure Well-Architected Framework: Reliability
Discover more in the Azure Optimization Collection, including e-books and further reading, at the Microsoft Learn site.
Don’t miss out on Azure Optimization skilling
Optimizing your cloud resources unlocks hidden savings, boosts performance, and fuels innovation. Stop overpaying for unused space, automate tedious tasks, and redirect those freed-up resources to projects that drive real growth. With our roster of Azure Optimization resources, you can start realizing newfound value today.
Microsoft Tech Community – Latest Blogs –Read More
Upcoming changes for SQL Server Management Studio (SSMS) – Part 2
The second post in our series about SQL Server Management Studio (SSMS) coincides with the SSMS 20 Preview 1 release – now available! However, before you download and install the Preview release to check out the updated SSMS 20 connection dialog, we recommend you read (or review) the first post to familiarize yourself with the changes.
In addition, if you are not the person who manages your SQL Server, we highly recommend talking to your SQL Server administrator to verify what options you should select when connecting, based on whether your installation is configured to support encryption.
If you are the SQL Server administrator, and you’ve read the first post, you might be all set. But if you are interested in additional details of what’s new as it relates to the SSMS 20 connection dialog, read on. If you’re not, then please review the release notes for SSMS 20 Preview 1 before you download and install it.
As a reminder…if you encounter issues navigating the connection changes in SSMS 20, you can temporarily workaround them with SSMS 19.x installed side-by-side.
Terminology review – TDS, TLS, and Encryption
The Tabular Data Stream (TDS) protocol is an application layer protocol used by clients to connect to SQL Server.
SQL Server uses Transport Layer Security (TLS) to encrypt data that is transmitted across a network between an instance of SQL Server and a client application. TLS has different versions, each with different levels of security and performance. The latest version is TLS 1.3, which was published in 2018.
Encryption is a process of converting data into an unreadable, encoded format to protect it from unauthorized access. Encryption can be applied to data at rest (stored on disk) or in transit (transferred over a network).
TDS 8.0 was introduced to support mandatory encryption when using SQL Server, and the TLS handshake precedes any TDS message. TDS 8.0 is compatible with TLS 1.3, as well as TLS 1.2 and earlier.
Know before you go: Strict encryption in SSMS 20
SSMS 20 is the first major version of SSMS that supports Strict encryption and TLS 1.3, thanks to the migration to Microsoft.Data.SqlClient (MDS) 5.1.4. MDS is the data access library used by SSMS 19 and higher, as well as other SQL Server tools.
Strict is a new option for the encryption property, introduced in MDS 5, and strict encryption requires the use of TLS 1.3 and a trusted server certificate for encrypted connections. This means that the client and the server must both support TLS 1.3 and have a trusted certificate installed. Strict encryption is the most secure option for encryption in transit and is recommended for connections to Azure SQL Database and Azure SQL Managed Instance, which both support TDS 8.0 and are configured with trusted certificates. In addition, with SSMS 20, Federal Risk and Authorization Management Program (FedRamp) customers have the option of end-to-end encryption support for TLS 1.3.
Enabling encryption for SQL Server
Support for encryption typically starts with enabling Force Encryption or Force Strict Encryption on the server. For more information, see Configure SQL Server Encryption.
Using the highest level of encryption that is supported by both the client and the server provides the highest level of security. For Azure SQL Database and Azure SQL Managed Instance, that is Strict encryption. For SQL Server 2022 you can use Strict encryption if you have a trusted certificate installed. For SQL Server 2019 and lower, Mandatory encryption provides the highest level of encryption.
Connecting from SSMS
We’ve provided a new Learn page, Connect with SQL Server Management Studio, to help folks navigate the changes in SSMS 20 connection dialog. These changes will affect any user connecting to SQL Server. Again, we strongly recommend you understand these changes and their impact before end users install SSMS 20 and try to connect.
If you import connections from a previous version of SSMS, we recommend that you review the options selected before connecting.
New connections require reviewing the properties which have moved to the Login page of the dialog, and understanding how your SQL Server is configured.
Take note: the default value for Encryption is now Mandatory. With the default value of Mandatory, any connection to a SQL Server installation that does not have a trusted certificate installed generates the error:
For more information, see “The certificate received from the remote server was issued by an untrusted certificate authority” error when you connect to SQL Server.
Features that don’t support strict encryption
There are some features of SQL Server that do not support strict encryption. The current list can be found in TDS 8.0 – SQL Server. Unsupported scenarios specific to SSMS are documented in the release notes.
What’s next?
For the SQL and SSMS enthusiasts out there, we’ve heard you’re curious about the upcoming changes in SSMS. While SSMS 20 brings some important security features, we’re already planning for the next major release: SSMS 21. We will cover the roadmap in the next post in this series.
As a friendly reminder, we regularly review items on the SQL Feedback site. If you spot something you love, give it an upvote and add a comment. Comments help us understand your scenario, and how the change or feature solves it.
If you don’t find your desired functionality after searching the site, add your request! Tell us how that change or feature would be useful, and how it solves your problem.
Votes and comments are our currency. Bugs get priority, but beyond that, we look at your requests and consider things like…Does it improve user efficiency or solve a workflow problem? Will it benefit the broader SSMS community?
“But wait,” you say, “what about dark mode and the debugger?” Rest assured, we will discuss both, and more, in our third post. Stay tuned!
In the meantime, we encourage you explore the SSMS 20 release notes and the updated documentation. We’ve focused on the connection dialog for this release, and we hope you’ll embrace these changes as they pave the way for an updated SSMS and continued investment in its future.
Microsoft Tech Community – Latest Blogs –Read More
Step-by-step: Gather a detailed dataset on SharePoint Sites using the Microsoft Graph Data Connect
0. Overview
This blog shows a step-by-step guide to getting SharePoint Sites information using the Microsoft Graph Data Connect for SharePoint. This includes detailed instructions on how to extract SharePoint and OneDrive site information and use that to run analytics for your tenant. If you follow these steps, you will have a Power BI dashboard like the one shown below, which includes total bytes per site type, number of sites by owner, and total file count by month created. You can also use the many other properties available in the SharePoint Site dataset.
To get there, you can split the process into 3 distinct parts:
Set up your tenant for the Microsoft Graph Data Connect, configuring its prerequisites.
Configure and run a pipeline to get SharePoint Sites using Azure Synapse.
Use Power BI to read the data about SharePoint Sites and show it in a dashboard.
1. Setting up the Microsoft Graph Data Connect
The first step in the process is to enable the Microsoft Graph Data Connect and its prerequisites. You will need to do a few things to make sure everything is ready to run the pipeline:
Enable Data Connect in your Microsoft 365 Admin Center. This is where your Tenant Admin will check the boxes to enable the Data Connect and enable the use of SharePoint datasets.
Create an application identity to run your pipelines. This is an application created in Azure Active Directory which will be granted the right permissions to run your pipelines and access your Azure Storage account.
Create an Azure Resource Group for all the resources we will use for Data Connect, like the Azure Storage account and the Azure Synapse workspace.
Create an Azure Storage account. This is the place in your Azure account where you will store the data coming from your pipeline. This is also the place where Power BI will read the data for creating the dashboards.
Create a container and folder in your Storage Account. This is the location where the data will go.
Grant the application identity the required access to the Storage account. This makes sure that the application identity has permission to write to the storage.
Add your Microsoft Graph Data Connect application in the Azure Portal. Your Microsoft Graph Data Connect application needs to be associated with a subscription, resource group, storage account, application identity and datasets.
Finally, your Global Administrator needs to use the Microsoft Admin Center to approve the Microsoft Graph Data Connect application access.
Let us look at each one of these.
1a. Enable the Microsoft Graph Data Connect
The final preparation step is to go into the Microsoft 365 Admin Center and enable the Microsoft Graph Data Connect.
Navigate to the Microsoft 365 Admin Center at http://admin.microsoft.com/ and make sure you are signed in as a Global Administrator.
Select the option to Show all options on the left.
Click on Settings, then on Org settings.
Select the settings for Microsoft Graph Data Connect.
Check the box to turn Data Connect on.
Make sure to also check the box to enable access to the SharePoint and OneDrive datasets.
IMPORTANT: You must wait 48 hours for onboarding your tenant and another 48 hours for the initial data collection and curation. For example, if you check the boxes on August 1st, you will be able to run your first data pull on August 5th, targeting the data for August 3rd. You can continue with the configuration, but do not trigger your pipeline before that.
1b. Create the Application Identity
You will need to create an Application in Microsoft Entra ID (formerly Azure Active Directory) and setup an authentication mechanism, like a certificate or a secret. You will use this Application later when you configure the pipeline. Here are the steps:
Navigate to the Azure Portal at https://portal.azure.com
Find the Microsoft Entra ID service in the list of Azure services.
Select the option for App Registration on the list on the left.
Click the link to New Registration to create a new one.
Enter an app name, select “this organizational directory only” and click on the Register button.
On the resulting screen, select the link to Add a certificate or secret.
Select the “Client secrets” tab and click on the option for New client secret.
Enter a description, select an expiration period, and click the Add button.
Copy the secret value (there is a copy button next to it). We will need that secret value later.
Secret values can only be viewed immediately after creation. Save the secret before leaving the page.
Click on the Overview link on the left to view the details about your app registration.
Make sure to copy the application (client) ID. We will need that value later as well.
1c. Create the Azure Resource Group
You will need to create an Azure Resource Group for all the resources we will use for Data Connect, including the Storage Account and Synapse Workspace. Here are the steps.
Navigate to the Azure Portal at https://portal.azure.com
Find the Resource Groups in the list of Azure services.
Click on the Create link to create a new resource group.
Select a name and a region.
IMPORTANT: You must use a region that matches the region of your Microsoft 365 tenant.
Click on Review + Create, make sure you have everything correctly entered and click Create.
1d. Create the Azure Storage Account
You will need to create an Azure Storage Account to store the data coming from SharePoint. This should be an Azure Data Lake Gen2 storage account. You should also authorize the Application you created to write to this storage account. Here are the steps.
Navigate to the Azure Portal at https://portal.azure.com
Find the Storage accounts service in the list of Azure services.
Click on the Create link to create a new storage account.
Select a subscription, resource group (created in step 1d), account name, region, and type (standard is fine).
Make sure your new account name contains only lowercase letters and numbers.
IMPORTANT: You must use a region that matches the region of your Microsoft 365 tenant.
Click on the Advanced tab. Under Data Lake Storage Gen2 check the box to Enable hierarchical namespace.
Click on Review, make sure you have everything correctly entered and click Create.
Wait until the deployment is completed and click on Go to resource.
Click on the Access keys option on the left to see the keys to access the storage account.
Click on Show for one of the two keys and use the copy icon whenever you need the key.
1e. Grant access to the Storage Account
You will need to grant the Application Id the required access to the Storage Account. Here are those steps:
In the Storage account you just created, click the Access Control (IAM) option on the left.
Click on the link to Add on the horizontal bar.
Click on the link to Add on the horizontal bar and click on the option to Add role assignment.
In the Role tab, select the built-in Storage Blob Data Contributor role and click on the Next button.
In the Members tab, select user, group or service principal and click on the Select members link.
In the Select members window, click on the application id you created in item 1b and click the Select button.
Then click on the Review + Assign button.
Review the role assignment and click on the Review + assign button.
You’ve now completed the role assignment.
1f. Create a container and folder in your Storage Account
The next step is to create a container and folder for the data you will bring from Data Connect. Follow these steps:
In the Storage account you just created, click the Containers option on the left.
You will see only the default $logs container in the list. Click on the Container link on the horizontal bar.
Click on the newly created container and in that container, click on + Add Directory.
With that, you have a location to later store your data with the path as container/folder.
1g. Add your Microsoft Graph Data Connect application
Your Microsoft Graph Data Connect application needs to be associated to a subscription, resource group, storage account, application identity and datasets. This will define everything that the app will need to run your pipelines.
Search for the “Microsoft Graph Data Connect” service in the Azure Portal at https://portal.azure.com or navigate directly to https://aka.ms/MGDCinAzure to get started.
Select the option to Add a new application.
Under Application ID, select the one from step 1b and give it a description.
Select Single-Tenant for Publish Type.
Select Azure Synapse for Compute Type.
Select Copy Activity for Activity Type.
Fill the form with the correct Subscription and Resource Group (from step 1c).
Under Destination Type, select Azure Storage Account.
Under Storage Account, select the Storage Account we created in step 1d.
Under Storage Account Uri, select the option with “dfs” in the name.
Click on “Next: Datasets”.
In the dataset page, under Dataset, select BasicDataSet_v0.SharePointSites_v1.
Under Columns, select all.
Click on “Review + Create” and click “Create” to finish.
You will now see the app in the list for Graph Data Connect.
1h. Approve the Microsoft Graph Data Connect Application
Your last step in this section is to have a Global Administrator approve the Microsoft Graph Data Connect application.
Make sure this step is performed by a Global administrator who is not the same user that created the application.
Navigate to the Microsoft 365 Admin Center at http://admin.microsoft.com/
Select the option to Show all options on the left.
Click on Settings, then on Org settings.
Click on the tab for Security & privacy.
Select the option for settings for Microsoft Graph Data Connect applications.
You will see the app you defined with the status Pending Authorization.
Double-click the app name to start the authorization.
Follow the wizard to review the app data, the datasets, the columns and the destination, clicking Next after each screen.
In the last screen, click on Approve to approve the app.
Note: The Global administrator that approves the application cannot be the same user that created the application. If it is, the tool will say “app approver and developer cannot be the same user.”
2. Run a Pipeline
Next, you will configure a pipeline in either Azure Data Factory or Azure Synapse. We will use Synapse here. You will trigger this pipeline to pull SharePoint data from Microsoft 365 and drop it on the Azure Storage account. Here is what you will need to do:
Create a new Azure Synapse workspace. This is the place where you create and run your pipelines.
Use the Copy Data tool in Azure Synapse. This tool will help you with the task.
Create a new source to get the SharePoint sites dataset from Microsoft 365.
Create a new destination with a storage folder in Azure Storage to receive the data.
Deploy and trigger the pipeline.
Monitor the pipeline to make sure it has finished running and that the data is available.
Let us look at each one of these.
2a. Create the Azure Synapse workspace
To get started, you need to create an Azure Synapse workspace, if you do not already have one. Here are the steps:
Navigate to the Azure Portal at https://portal.azure.com
Find the Azure Synapse Analytics service in the list of Azure services.
Click on the Create link to create the new Azure Synapse workspace.
Enter the subscription, resource group (created in step 1d), the new workspace name, region, storage account name (created in step 1e) and new file system name.
IMPORTANT: You must use a region that matches the region of your Microsoft 365 tenant
Click on the Security tab. Select the option to Use only AAD authentication. Click on the Review+create button.
Click Create. Wait until the deployment is completed and click on Go to resource.
Note: After you create an Azure Synapse workspace, you might run into an error that says, “The Azure Synapse resource provider (Microsoft Synapse) needs to be registered with the selected subscription”. You might also run into a validation error later with a message like “Customer subscription GUID needs to be registered with Microsoft.Sql resource provider”. These providers might not be registered with your subscription by default. If you run into these issues, see this doc on how to register a new resource provider and make sure your subscription is registered with both the Microsoft.Synapse and the Microsoft.Sql resource providers. Thanks to Carl Grzywacz for pointing these out.
2b. Use the Copy Data tool in Azure Synapse
Our Azure Data Factory pipeline will use a data source (Microsoft 365) and a data sink (Azure Storage). Let us start by configuring the data source in our Data Factory. Follow the steps.
Navigate to the Azure Portal at https://portal.azure.com
Find the Azure Synapse Analytics service in the list of Azure services.
Click on the name of your Azure Synapse workspace (created in item 2a).
Click on the Open link inside the big box for Synapse Studio.
In the Synapse Studio, select the fourth icon on the left to go to the Integrate page.
Click on the bug + icon and select the option for the Copy Data tool to start.
Keep options for the Built-in copy task and Run once now. Then click the Next button.
You will then have to define the source and destination.
2c. Define the data source
The first step is to define your data source, which will be the Microsoft Graph Data Connect (Data Connect source). Here are the steps you should take:
On the Source data store page, click on the New connection option.
On the New connection page, enter “365” on the search box and select Microsoft 365 (Office 365).
Click the Continue button to reach the page to define the details of the new connection.
Enter the Name and Description for the new connection
Also enter the Service principal ID and the Service principal key. These are the application id and the secret that we captured in step 1c.
Click on the Test connection option on the bottom right to make sure the credentials are working.
Then click on the Create button to create the new connection and go back to the Source data store page.
This time around, the connection will be filled in and the list of datasets will be available.
Check the box next to BasicDataSet_v0.SharePointSites_v1 and click on the Next button.
In the Apply Filter page, keep the default scope.
Select SnapshotDate as a column filter and select a date. Since we are doing a full pull, you should use the same date for Start and End Time.
IMPORTANT: Valid dates go from 23 days ago to 2 days ago.
IMPORTANT: You cannot query dates before the date when you enabled SharePoint dataset collection.
Click on the Next button to finish the source section and move to the destination section.
2d. Define the data destination
Next, you need to point to the location where the data will go, which is an Azure Storage account. Here are the steps:
On the Source data store page, click on the New connection option.
Select the option for Azure Data Lake Storage Gen 2
Click the Continue button to reach the page to define the details of the new connection.
Enter the Name and Description for the new connection.
Change the Authentication type to Service Principal, add the Storage account name from the drop-down list.
Enter the Service principal ID and the Service principal key. Again, these are the application id and the secret that we captured in step 1c.
Click on the Test connection option on the bottom right to make sure the credentials are working.
Then click on the Create button to create the new connection and go back to the Destination data store page.
This time around, the connection will be filled in and a few options will be available.
Enter a Folder path. This is the container and folder you created in step 1f and you can browse to it.
Click Next to reach the Review and finish page of the Copy Data tool.
2e. Deploy and trigger the pipeline
Now we will deploy the pipeline and run it. Follow the steps:
In the Review and finish page, click the Edit link on the top right to enter a name and description for your pipeline. Then click Save.
Click on the Next button to start the deployment.
Once it is all finished, click on the Monitor button to see how the pipeline is running.
2f. Monitor the pipeline
After the data copy tool finishes, you can monitor the running pipeline. You will land in the main pipeline runs pages, with a list of pipelines. In your case, there should be only one:
If you click on the Pipeline name, you will see the detail for each activity in the pipeline. In this case, you should see only one activity in the pipeline, which is the copy of the dataset.
Wait until the status for the activity and pipeline reaches Succeeded. This could take a few minutes, depending on the number of sites in your environment.
Once the pipeline has finished running, the data will be in Azure Storage, in the container and folder that you have specified. It shows as one or more JSON files, plus a metadata folder with information about the request.
3. Create a Power BI Dashboard
The last step is to use the data you just got to build a Power BI dashboard. You will need to:
Create a new Power BI file.
Query the data from the Azure Storage account.
Create your dashboard.
3a. Create a new Power BI file
Now that you have the data in Azure Storage, you can bring it into Power BI to build reports and dashboards. Here is how to get started:
You will start by opening the Power BI desktop application.
If you don’t have the application, download from https://powerbi.microsoft.com/en-us/downloads/
3b. Query the Data
Now you can bring the data into Power BI, directly from Azure.
In your new Power BI report, in the Home tab, click on the Get Data dropdown menu and click on More.
In the list of sources, select Azure, click on Azure Data Lake Storage Gen2 and click on Connect.
Enter the URL with the full path to the ADLS Gen2 data , with container and folder, in the following format:
https://accountname.dfs.core.windows.net/container/folder
This is the Storage Account name that you created in steps 1e and 1g
Click OK
In the next screen you need to authenticate to the storage account.
Select the option to provide an account key, which was mentioned in step 1e.
Click Connect.
In the following screen you will see the list of JSON files coming from the storage account.
Note that you get two JSON files, but keep in mind that one of them is just the metadata file.
Click on the Transform Data button to load all the files into a Power Query.
The Power Query Editor window will show, with the files listed.
First, change the query Name from Query1 to a more meaningful name.
Next, scroll to the left until you find the Folder Path column.
You should see one of the paths that includes a metadata folder. We want to filter that out.
On the row with the Folder Path that includes the word metadata, right click that cell, select the Text Filters option and then the Does Not Contain option. That will get rid of that row only.
Now that you removed the row for the metadata, scroll all the way to the right to find the Content column.
On the Content column, click on the icon with two down arrows called Combine Files (see arrow below).
At this point Power BI does a whole lot to the data, including loading the JSON file, renaming the columns, and expanding the columns with structures (like Storage Metrics and Owner).
You can now just click on the Close and Apply button to close the Query Editor.
3c. Create the Power BI Dashboard
Now that the data is available in Power Bi, let’s create some dashboards.
After you close the Query Editor and go back to the main Power BI window, you will have all the Sites data available to you to create reports and dashboards. They will be under the Fields pane on the right.
The schema for this dataset is available publicly at https://github.com/microsoftgraph/dataconnect-solutions/blob/main/datasetschemas/BasicDataSet_v0.SharePointSites_v1.md. This shows the data type and a brief description of each column.
You can now drag visualizations and fields to the main canvas. For instance, you can just double-click on the stacked bar chart in the visualizations and resize the chart to span the entire page. Then drag the RootWeb.WebTemplate field to the Y-axis and the StorageMetrics.TotalSize to the X-axis. That’s it!
4. Conclusion
You have triggered your first pipeline and populated a dashboard. Now there is a lot more that you could do. Here are a few suggestions:
Investigate the many datasets in Data Connect, which you can easily use in your Synapse workspace.
Trigger your pipeline on a schedule, to always have fresh data in your storage account.
Use a Delta pull to get only the data that has changed since your last pull.
Extend your pipeline to do more, like join multiple data sources or take the data to a SQL database.
Publish your Power BI dashboard to share with other people in your tenant.
You can read more about the Microsoft Graph Data Connect at https://aka.ms/mgdcdocs. There you will find many details, including a list of datasets available, complete with schema definitions and samples.
I also keep a list of MGDC for SharePoint links at https://aka.ms/SharePointData.
Microsoft Tech Community – Latest Blogs –Read More
Path and hostname-based routing in Azure Container Apps with NGINX
Azure Container Apps is a fully managed serverless container service that enables you to deploy and run containerized applications without having to manage the infrastructure.
By default, HTTP apps in Azure Container Apps are accessible via a public URL that is unique to the app. However, you can create a container app to use a reverse proxy like NGINX to control how traffic is routed to multiple apps based on the path or hostname.
In this tutorial, you’ll learn how to use Azure Container Apps to configure path and hostname-based routing for a set of containerized applications using NGINX as a reverse proxy. You’ll deploy 4 applications: 1 NGINX container which will be publicly exposed and 3 container apps which will only be accessible from within the environment and that traffic will be routed to from the NGINX container.
Architecture Diagram
Prerequisites
An Azure account with an active subscription.
If you don’t have one, you can create one for free.
Install the Azure CLI.
Install the Azure Container Apps CLI.
Deploy Azure Container Apps resources
Configure environment variables for the various resources you’ll deploy:
LOCATION=northeurope
STORAGE_ACCOUNT_NAME=pathbasedrouting$RANDOM
ENVIRONMENT_NAME=path-based-routing
Note: $RANDOM is a bash variable that returns a random number and is used here to generate a storage account that is globally unique within Azure. If it’s not available in your shell, use another unique value for the STORAGE_ACCOUNT_NAME variable.
Create a resource group:
Create an Azure Container Apps environment:
–resource-group $RESOURCE_GROUP_NAME –location $LOCATION
Create two container apps in the environment:
–resource-group $RESOURCE_GROUP_NAME
–ingress internal –target-port 80
az containerapp create –name app2 –environment $ENVIRONMENT_NAME
–resource-group $RESOURCE_GROUP_NAME
–ingress internal –target-port 80
This will create two container apps, app1 and app2. Both apps are configured to not be publicly accessible and are only accessible within the environment. The only exposed public endpoint is from the NGINX app.
Create a container app running NGINX:
–resource-group $RESOURCE_GROUP_NAME
–ingress external –target-port 80 –image nginx
This will create a container app running NGINX. The app is publicly accessible and is accessible from the internet. The NGINX app will be used as a reverse proxy to route traffic to the other two apps.
The command should print the public URL of the NGINX app. Navigate to it to verify that the app is running.
Now that the Container Apps resources are created, you can proceed to configure the path-based routing.
Configure path-based routing
To configure path-based routing, you’ll create an NGINX configuration file that defines the routing rules and upload it to an Azure File Share. Then you’ll mount the file share to the NGINX container app.
Create a storage account to store the NGINX configuration file:
–resource-group $RESOURCE_GROUP_NAME –location $LOCATION
–sku Standard_LRS
Create a file share in the storage account:
In the current directory, create a new file called nginx.conf with the following content:
}
http {
server {
listen 80;
location /app1/ {
proxy_http_version 1.1;
proxy_pass http://app1/;
}
location /app2/ {
proxy_http_version 1.1;
proxy_pass http://app2/;
}
}
}
This NGINX configuration file defines two locations, /app1/ and /app2/, and routes traffic to the app1 and app2 container apps respectively using their internal URLs, http://app1/ and http://app2/.
Upload the NGINX configuration file to the file share:
–source nginx.conf –path nginx.conf
Get the access key for the storage account:
–resource-group $RESOURCE_GROUP_NAME –query “[0].value” –output tsv | tr -d ‘r’)
Configure the file share in the Container Apps environment:
–name $ENVIRONMENT_NAME –resource-group $RESOURCE_GROUP_NAME
–storage-name nginx-config
–account-name $STORAGE_ACCOUNT_NAME
–azure-file-account-key $STORAGE_ACCOUNT_KEY –azure-file-share-name nginx-config
–access-mode ReadOnly
Export the YAML from the NGINX container app:
–output yaml > nginx.yaml
Open nginx.yaml in a text editor. Add the volumes array to the template section to mount the Azure File Share to the NGINX container app. Then add the volumeMounts array to the containers array to mount the volume to the NGINX container. The modified YAML should look like this snippet:
properties:
// …
template:
containers:
– image: nginx
name: nginx
resources:
cpu: 0.5
memory: 1Gi
volumeMounts:
– mountPath: /etc/nginx/nginx.conf
subPath: nginx.conf
volumeName: nginx-config
scale:
maxReplicas: 10
minReplicas: 0
serviceBinds: null
terminationGracePeriodSeconds: null
volumes:
– name: nginx-config
storageType: AzureFile
storageName: nginx-config
// …
Update the NGINX container app with the modified YAML:
az containerapp update –name nginx –resource-group $RESOURCE_GROUP_NAME
–yaml nginx.yamlThis will update the NGINX container app to use the NGINX configuration file from the Azure File Share.
Now that you’ve deployed your NGINX container and are routing based on paths to your container apps, you’ll learn how to update the routing configuration in your NGINX container.
Update the NGINX configuration
In order to change how the NGINX container handles routing, you’ll need to follow steps 3-4 in Configure path-based routing to modify the nginx.conf and reupload it to the file share.
You’ll need to restart the NGINX container app to apply the updated routing changes.
–revision $(az containerapp revision list -n nginx -g $RESOURCE_GROUP_NAME –query ‘[0].name’ -o tsv | tr -d ‘r’)
Configure hostname-based routing
In addition to routing traffic based on paths, you can also configure NGINX to route traffic based on the hostname. To do this, use multiple server blocks in the NGINX configuration file, each with a different server_name directive. This example builds off the previous Configure path-based routing section.
For the hostname-based routing, you’ll create a third application which can be done using the following command:
az containerapp create –name app3 –environment $ENVIRONMENT_NAME
–resource-group $RESOURCE_GROUP_NAME
–ingress internal –target-port 80
To configure your NGINX container for hostname-based routing, you’ll need to update the nginx.conf and upload it to your file share like you did in steps 3-4 from the Configure path-based routing section by updating the nginx.conf and uploading it to your file share. The steps are shown below.
Modify the nginx.conf to add additional domains to the nginx app. In the below example, we’ve added additional domains to the NGINX app which inform how traffic is routed to apps 1, 2, and 3. Traffic to nginx.proudgrass-abcdefgh.northeurope.azurecontainerapps.io is routed to app1 and app2, while traffic to path-based-routing.anthonychu.dev is routed to app3.
Note the server_names_hash_bucket_size 128; directive. This is sometimes required when using a large number of server names, or in this case, when using a long domain name like the default one provided by Azure Container Apps.
events {
}
http {
server_names_hash_bucket_size 128;
server {
listen 80;
server_name nginx.proudgrass-abcdefgh.northeurope.azurecontainerapps.io;
location /app1/ {
proxy_http_version 1.1;
proxy_pass http://app1/;
}
location /app2/ {
proxy_http_version 1.1;
proxy_pass http://app2/;
}
}
server {
listen 80;
server_name path-based-routing.anthonychu.dev;
location /app3/ {
proxy_http_version 1.1;
proxy_pass http://app3/;
}
}
}
Then, run the following command to upload your nginx.conf changes to the file share.
az storage file upload –account-name $STORAGE_ACCOUNT_NAME –share-name nginx-config
–source nginx.conf –path nginx.conf
You’ll need to restart the NGINX container app to apply the updated routing changes.
az containerapp revision restart –name nginx –resource-group $RESOURCE_GROUP_NAME
–revision $(az containerapp revision list -n nginx -g $RESOURCE_GROUP_NAME –query ‘[0].name’ -o tsv | tr -d ‘r’)
Verify that the path-based routing is working. Navigate to the URL configured with the server_name for app3 and provide the path /app3/.
Select Show more info about this app to see which container app is being used with the hostname path-based-routing.anthonychu.dev instead of the default hostname for the NGINX app.
Congratulations!
You have now successfully setup both path and hostname-based routing with an NGINX container for your container apps! Please comment below to let us know what you think of the experience.
Microsoft Tech Community – Latest Blogs –Read More
Get involved! Join a Global AI Bootcamp near you
The Global AI Bootcamp is an annual Global AI Community-led event series that takes place across the globe, offering a platform for developers and AI aficionados to delve into the world of artificial intelligence through a series of workshops, sessions, and interactive discussions. Microsoft MVPs, RDs, and Microsoft Learn Student Ambassadors facilitate these events at various locations.
We will be updating you with information about local events every week. Be sure to check it out and seize the opportunity to participate in the nearest in-person/hybrid or virtual events!
Local Global AI Bootcamp Events scheduled from March 1 to 8 (as of February 29)
*Go to Global AI Bootcamp 2024 to find the latest and full event schedule.
Date (Local Time)
Event
Format
Friday, March 1, 2024
Global AI Bootcamp – Thailand / Bangkok
Hybrid event
Friday, March 1, 2024
Global AI Bootcamp – Iceland / Reykjavik
In-person event
Friday, March 1, 2024
Global AI Bootcamp – India / Noida
In-person event
Friday, March 1, 2024
Global AI Bootcamp – Brazil / Sao Paulo
In-person event
Saturday, March 2, 2024
Global AI Bootcamp – United States / Houston
In-person event
Saturday, March 2, 2024
Global AI Bootcamp – United States / Davie, FL
Hybrid event
Saturday, March 2, 2024
Global AI Bootcamp – Indonesia / Purwokerto
In-person event
Saturday, March 2, 2024
Global AI Bootcamp – Canada / Toronto
In-person event
Saturday, March 2, 2024
Global AI Bootcamp – Spain / Madrid
In-person event
Saturday, March 2, 2024
Global AI Bootcamp – India / Chennai
In-person event
Saturday, March 2, 2024
Global AI Bootcamp – Kenya / Nairobi
In-person event
Saturday, March 2, 2024
Global AI Bootcamp – India / Mumbai
In-person event
Saturday, March 2, 2024
Global AI Bootcamp – Nigeria / Uyo
In-person event
Saturday, March 2, 2024
Global AI Bootcamp – India / Jalandhar
In-person event
Saturday, March 2, 2024
Global AI Bootcamp – China / Shanghai
Hybrid event
Saturday, March 2, 2024
Global AI Bootcamp – India / Salem
Virtual event
Sunday, March 3, 2024
Global AI Bootcamp – India / Indore
In-person event
Monday, March 4, 2024
Global AI Bootcamp – Switzerland / Zurich
Virtual event
Tuesday, March 5, 2024
Global AI Bootcamp – India / Cuddalore
Hybrid event
Tuesday, March 5, 2024
Global AI Bootcamp – Japan / Tokyo
Virtual event
Wednesday, March 6, 2024
Global AI Bootcamp – New Zealand / Auckland
Hybrid event
Wednesday, March 6, 2024
Global AI Bootcamp – Poland / Wrocław
In-person event
Wednesday, March 6, 2024
Global AI Bootcamp – Brazil / Goiânia
In-person event
Thursday, March 7, 2024
Global AI Bootcamp – Germany / Bremen
Virtual event
Thursday, March 7, 2024
Global AI Bootcamp – Philippines / Makati
Hybrid event
Thursday, March 7, 2024
Global AI Bootcamp – Belgium / Kortrijk
In-person event
Thursday, March 7, 2024
Global AI Bootcamp – Colombia / Bogota
Virtual event
Thursday, March 7, 2024
Global AI Bootcamp – France / Nantes
In-person event
Thursday, March 7, 2024
Global AI Bootcamp – Ukraine / Odesa
Virtual event
Friday, March 8, 2024
Global AI Bootcamp – United Kingdom / London
Virtual event
Friday, March 8, 2024
Global AI Bootcamp – Spain / Huelva
In-person event
Friday, March 8, 2024
Global AI Bootcamp – Korea / Busan
In-person event
Friday, March 8, 2024
Global AI Bootcamp – Chile / Santiago
Virtual event
*Information in this blog is subject to change without notice.
Microsoft Tech Community – Latest Blogs –Read More
Draw.io Azure infrastructure diagrams through code like an artist
Introduction
In this article we will see how to create an Azure diagram to reveal all the dependencies between Azure App Services, their Application Insights and finally their workspace-based Log Analytics Workspaces.
The use case consist in:
auditing the current configuration on Azure through a PowerShell script,
export the current infrastructure set up on a CSV Draw.io readable file,
observe a work of art.
Concept
To make this piece of art possible you should have a clear idea of the following concept.
Azure resource dependencies: An App Service or Function App can send logs to an Application Insights and Application Insights can send logs to a Log Analytics workspace. This refers to the concept of Workspace-based Application Insights resources.
Draw.io is a free diagram software that permits to insert diagram from specially formatted CSV Data as explained in the following blog.
We can now move on to the next chapter which consists of creating a script that will scan our Infrastructure and write to the CSV in draw.io format.
Script
The following PowerShell script will analyze your App Services configuration based on which ones have these tags and export its results to a local file.
$AzureTagToFilterOn = @{ “env” = “dev” }
$FileForDrawIo = “draw.io.export.txt”
There are 2 main tips on the script you should understand:
The Draw.io “styles” block points out to existing Draw.io shapes, you can print their code by selecting an existing shape, then press Ctrl+E on Windows or Cmd+E on macOS.
You can create multiple connections between your CSV rows with their own properties (labels, line style, etc…).
The complete script:
#region variable
$SubscriptionName = “Your Azure Subscription Name”
$AzureTagToFilterOn = @{ “env” = “dev” }
$FileForDrawIo = “draw.io.export.txt”
$DrawIoExport = @()
$contentToAdd = @”
## Azure Application Insights depedencies.
## Node label with placeholders and HTML.
## Default is ‘%name_of_first_column%’.
#
# label: %name%<br><i style=”color:gray;”>%type%</i><br>
#
## Shapes and their styles
# stylename: type
# styles: {“application insights”: “aspect=fixed;html=1;points=[];align=center;image;fontSize=15;image=img/lib/azure2/management_governance/Application_Insights.svg;”,
# “functionapp”: “aspect=fixed;html=1;points=[];align=center;image;fontSize=15;image=img/lib/azure2/iot/Function_Apps.svg;”,
# “log analytics workspaces”: “aspect=fixed;html=1;points=[];align=center;image;fontSize=15;image=img/lib/azure2/management_governance/Log_Analytics_Workspaces.svg;”,
# “app”: “aspect=fixed;html=1;points=[];align=center;image;fontSize=12;image=img/lib/azure2/app_services/App_Services.svg;”}
## Connections between rows (“from”: source colum, “to”: target column).
## Label, style and invert are optional. Defaults are ”, current style and false.
# connect: {“from”: “application_insights”, “to”: “name”, “label”: “logs”,
# “style”: “curved=1;endArrow=blockThin;endFill=1;fontSize=11;”}
# connect: {“from”: “log_analytics_workspaces”, “to”: “name”, “style”: “curved=1;fontSize=11;”}
#
# ignore: application_insights,log_analytics_workspaces
# layout: verticalflow
#
## —- CSV below this line. First line are column names. —-
“@
Set-Content $FileForDrawIo $contentToAdd
Add-Content $FileForDrawIo “name,resource_group,type,application_insights,log_analytics_workspaces”
#endregion
#region function
Function draw_io_csv {
[CmdletBinding()]
Param (
[Parameter(Mandatory = $true, ValueFromPipeline = $true)][String] $name,
[Parameter(Mandatory = $true, ValueFromPipeline = $true)][String] $resource_group,
[Parameter(Mandatory = $true, ValueFromPipeline = $true)][String] $type,
[Parameter(Mandatory = $false, ValueFromPipeline = $true)][String] $application_insights,
[Parameter(Mandatory = $false, ValueFromPipeline = $true)][String] $log_analytics_workspaces
)
Process {
$private:tableObj = New-Object PSObject
$tableObj | Add-Member -Name name -MemberType NoteProperty -Value $name
$tableObj | Add-Member -Name resource_group -MemberType NoteProperty -Value $resource_group
$tableObj | Add-Member -Name type -MemberType NoteProperty -Value $type
$tableObj | Add-Member -Name application_insights -MemberType NoteProperty -Value $application_insights
$tableObj | Add-Member -Name log_analytics_workspaces -MemberType NoteProperty -Value $log_analytics_workspaces
return $tableObj
}
}
#endregion
#region action
## connectivity
$AzureRmContext = Get-AzSubscription -SubscriptionName $SubscriptionName | Set-AzContext -ErrorAction Stop
Select-AzSubscription -Name $SubscriptionName -Context $AzureRmContext -Force -ErrorAction Stop
## audit
$ResourceGroups = Get-AzResourceGroup -Tag $AzureTagToFilterOn | Select-Object ResourceGroupName
$AllAppInsights = Get-AzResource -ResourceType “microsoft.insights/components” -ExpandProperties
foreach ($ResourceGroup in $ResourceGroups)
{
Write-Host “Working on Resource Group Name [$($ResourceGroup.ResourceGroupName)]” -ForegroundColor Cyan
$WebApps = Get-AzWebApp -ResourceGroupName $ResourceGroup.ResourceGroupName | Select-Object ResourceGroup, Name
foreach ($WebAppResource in $WebApps)
{
Write-Host “Working on Web App [$($WebAppResource.Name)]” -ForegroundColor Cyan
$WebApp = Get-AzWebApp -ResourceGroupName $WebAppResource.ResourceGroup -Name $WebAppResource.Name
$AppInsightsInstrumentationKey = $WebApp.SiteConfig.AppSettings.GetEnumerator() | Where-Object {$_.name -eq “APPINSIGHTS_INSTRUMENTATIONKEY”}
$AppInsightsProperties = $AllAppInsights | Select-Object -ExpandProperty Properties | Select-Object Name, InstrumentationKey, WorkspaceResourceId | Where-Object {$_.InstrumentationKey -eq $AppInsightsInstrumentationKey.Value}
if($AppInsightsProperties)
{
if($AppInsightsProperties.WorkspaceResourceId)
{
Write-Host “Export the configuration of the Log Analytics Workspace [$($AppInsightsProperties.WorkspaceResourceId.split(“/”)[-1])] connected to the App [$($WebAppResource.Name)]”
$LogAnalyticsWorkspacesName = $AppInsightsProperties.WorkspaceResourceId.split(“/”)[-1]
$DrawIoExport += draw_io_csv -name $AppInsightsProperties.WorkspaceResourceId.split(“/”)[-1] `
-resource_group $AppInsightsProperties.WorkspaceResourceId.split(“/”)[-5] `
-type “log analytics workspaces” `
-application_insights “” `
-log_analytics_workspaces “”
}else{
$LogAnalyticsWorkspacesName = “”
}
$AppInsightsId = $($AllAppInsights | Where-Object {$_.Name -like $AppInsightsProperties.Name}).Id
$AppInsightsName = $($AppInsightsId.Split(“/”)[-1])
Write-Host “Export the configuration of the Application Insights [$($AppInsightsId.split(“/”)[-1])] connected to the App [$($WebAppResource.Name)]”
$DrawIoExport += draw_io_csv -name $AppInsightsId.split(“/”)[-1] `
-resource_group $AppInsightsId.split(“/”)[-5] `
-type “application insights” `
-application_insights “” `
-log_analytics_workspaces $LogAnalyticsWorkspacesName
}else{
$AppInsightsName = “”
}
Write-Host “Export the configuration of the App [$($WebAppResource.Name)]”
$DrawIoExport += draw_io_csv -name $WebApp.Name `
-resource_group $WebApp.ResourceGroup `
-type $WebApp.Kind.Split(“,”)[0] `
-application_insights $AppInsightsName `
-log_analytics_workspaces “”
}
}
#endregion
#region export
foreach($Line in $DrawIoExport | Select-Object -Unique -Property name, resource_group, type, application_insights, log_analytics_workspaces){
Add-Content $FileForDrawIo “$($Line.name),$($Line.resource_group),$($Line.type),$($Line.application_insights),$($Line.log_analytics_workspaces)”.ToLower()
}
#endregion
Rendering
From Draw.io select Arrange > Insert > Advanced > CSV.
Paste your formatting information and CSV data into the large text field, overwriting the example.
The following screenshot illustrates a diagram generated by the PowerShell script.
Conclusion
We saw in this demo how to draw a script-based Azure App Service oriented diagram. This methodology has no limits and DALL-E knows it, would you defeat it ?
See You in the Cloud
Jamesdld
Microsoft Tech Community – Latest Blogs –Read More
Generate embeddings with the Azure AI Vision multi-modal embeddings API
Welcome to a new learning series about image similarity search with pgvector, an open-source vector similarity search extension for PostgreSQL databases. Throughout this series, we will explore the basics of vector search, familiarize ourselves with the multi-modal embeddings APIs of Azure AI Vision, and build an image similarity search application using Azure Cosmos DB for PostgreSQL.
Our Project
In this series, we will create an application that enables users to search for paintings based on either a reference image or a text description. We will use the SemArt Dataset, which contains approximately 21k paintings gathered from the Web Gallery of Art. Each painting comes with various attributes, like a title, description, and the name of the artist.
The project is divided into two parts: the data pipeline and the vector search pipeline. In the data pipeline, embeddings for the images are generated using Azure AI Vision, and the data is then uploaded into an Azure Cosmos DB for PostgreSQL table. The vector search pipeline involves utilizing the pgvector extension to perform a similarity search on the generated embeddings. This workflow is illustrated in the following image:
Introduction
Conventional search systems rely on exact matches on properties like keywords, tags, or other metadata, lexical similarity, or the frequency of word occurrences to retrieve similar items. Recently, vector similarity search has transformed the search process. It leverages machine learning to capture the meaning of data, allowing you to find similar items based on their content. The key idea behind vector search involves converting unstructured data, such as text, images, videos, and audio, into high-dimensional vectors (also known as embeddings) and applying nearest neighbor algorithms to find similar data.
In this tutorial, you will:
Describe vector embeddings and vector similarity search.
Use the multi-modal embeddings API of Azure AI Vision for generating vectors for images and text.
Generate vector embeddings for a collection of images of paintings using the Vectorize Image API of Azure AI Vision.
The complete working project can be found in my GitHub repository. If you want to follow along, you can fork the repository and clone it to have it locally available.
Prerequisites
To proceed with this tutorial, ensure that you have the following prerequisites installed and configured:
An Azure subscription – Create an Azure free account or an Azure for Students account.
Python 3.x, Visual Studio Code, Jupyter Notebook, and Jupyter Extension for Visual Studio Code.
Concepts
Vector embeddings
Comparing unstructured data is challenging, in contrast to numerical and structured data, which can be easily compared by performing mathematical operations. What if we could convert unstructured data, such as text and images, into a numerical representation? We could then calculate their similarity using standard mathematical methods.
These numerical representations are called vector embeddings. An embedding is a high-dimensional and dense vector that summarizes the information contained in the original data. Vector embeddings can be computed using machine learning algorithms that capture the meaning of the data, recognize patterns, and identify similarities between the data.
Vector similarity
The numerical distance between two embeddings, or equivalently, their proximity in the vector space, represents their similarity. Vector similarity is commonly calculated using distance metrics such as Euclidean distance, inner product, or cosine distance.
Cosine is the similarity metric used by Azure AI Vision. This metric measures the angle between two vectors and is not affected by their magnitudes. Mathematically, cosine similarity is defined as the cosine of the angle between two vectors, which is equal to the dot product of the vectors divided by the product of their magnitudes.
Vector similarity can be used in various industry applications, including recommender systems, fraud detection, text classification, and image recognition. For example, systems can use vector similarities between products to identify similar products and create recommendations based on a user’s preferences.
Vector similarity search
A vector search system works by comparing the vector embedding of a user’s query with a set of pre-stored vector embeddings to find a list of vectors that are the most similar to the query vector. The diagram below illustrates this workflow.
Create vector embeddings with Azure AI Vision
Azure AI Vision provides two APIs for vectorizing image and text queries: the Vectorize Image API and the Vectorize Text API. This vectorization converts images and text into coordinates in a 1024-dimensional vector space, enabling users to search a collection of images using text and/or images without the need for metadata, such as image tags, labels, or captions.
Let’s learn how the multi-modal embeddings APIs work.
Create an Azure AI Vision resource
Open the Azure CLI.
Create a resource group using the following command:
az group create –name your-group-name –location your-location
Create an Azure AI Vision in the resource group that you have created using the following command:
az cognitiveservices account create –name ai-vision-resource-name –resource-group your-group-name –kind ComputerVision –sku S1 –location your-location –yes
Note: The multi-modal embeddings APIs are available in the following regions: East US, France Central, Korea Central, North Europe, Southeast Asia, West Europe, West US.
Before using the multi-modal embeddings APIs, you need to store the key and the endpoint of your Azure AI Vision resource in an environment (.env) file.
Use the Vectorize Image API
Let’s review the following example. Given the filename of an image, the get_image_embedding function sends a POST API call to the retrieval:vectorizeImage API. The binary image data is included in the HTTP request body. The API call returns a JSON object containing the vector embedding of the image.
import os
from dotenv import load_dotenv
import requests
# Load environment variables
load_dotenv()
endpoint = os.getenv(“VISION_ENDPOINT”) + “computervision/”
key = os.getenv(“VISION_KEY”)
def get_image_embedding(image):
with open(image, “rb”) as img:
data = img.read()
# Vectorize Image API
version = “?api-version=2023-02-01-preview&modelVersion=latest”
vectorize_img_url = endpoint + “retrieval:vectorizeImage” + version
headers = {
“Content-type”: “application/octet-stream”,
“Ocp-Apim-Subscription-Key”: key
}
try:
r = requests.post(vectorize_img_url, data=data, headers=headers)
if r.status_code == 200:
image_vector = r.json()[“vector”]
return image_vector
else:
print(f”An error occurred while processing {image}. Error code: {r.status_code}.”)
except Exception as e:
print(f”An error occurred while processing {image}: {e}”)
return None
image_filename = “images/image (1).jpg”
image_vector = get_image_embedding(image_filename)
To vectorize a remote image, you would put the URL of the image in the request body.
Use the Vectorize Text API
Similarly to the example above, the get_text_embedding function sends a POST API call to the retrieval:vectorizeText API.
import json
def get_text_embedding(prompt):
text = {‘text’: prompt}
# Image retrieval API
version = “?api-version=2023-02-01-preview&modelVersion=latest”
vectorize_txt_url = endpoint + “retrieval:vectorizeText” + version
headers = {
‘Content-type’: ‘application/json’,
‘Ocp-Apim-Subscription-Key’: key
}
try:
r = requests.post(vectorize_txt_url, data=json.dumps(text), headers=headers)
if r.status_code == 200:
text_vector = r.json()[‘vector’]
return text_vector
else:
print(f”An error occurred while processing the prompt ‘{text}’. Error code: {r.status_code}.”)
except Exception as e:
print(f”An error occurred while processing the prompt ‘{text}’: {e}”)
return None
text_prompt = “a blue house”
text_vector = get_text_embedding(text_prompt)
Generate vector embeddings for a collection of paintings
Now that you’ve familiarized yourself with the Vectorize Image API for computing image vector embeddings, let’s generate embeddings for the images in our dataset.
Data preprocessing
For our application, we’ll be working with a subset of the SemArt Dataset. In my GitHub repository, you can find the data_preprocessing.ipynb Jupyter Notebook which cleans up the dataset and removes unnecessary information. After running this notebook, your dataset will comprise 11,206 images of paintings.
You are now all set up to generate embeddings for your images.
Compute vector embeddings
To generate embeddings for the images, our process can be summarized as follows:
Retrieve the filenames of the images in the dataset.
Divide the data into batches, and for each batch, perform the following steps:
Compute the vector embedding for each image in the batch using the Vectorize Image API of Azure AI Vision.
Save the vector embeddings of the images along with the filenames into a file.
Update the dataset by inserting the vector embedding of each image.
The code for vector embeddings generation can be found at data_processing/generate_embeddings.py. In the following sections, we will discuss specific segments of the code.
Compute embeddings for the images in the dataset
The compute_embeddings function computes the vector embeddings for all the images in our dataset. It uses the ThreadPoolExecutor object to generate vector embeddings for each batch of images efficiently, utilizing multiple threads. The tqdm library is also utilized in order to provide progress bars for better visualizing the embeddings generation process.
def compute_embeddings(image_names: list[str]) -> None:
“””
Computes vector embeddings for the provided images and saves the embeddings
alongside their corresponding image filenames in a CSV file.
:param image_names: A list containing the filenames of the images.
“””
image_names_batches = [
image_names[i:(i + BATCH_SIZE)]
for i in range(0, len(image_names), BATCH_SIZE)
]
for batch in tqdm(range(len(image_names_batches)), desc=”Computing embeddings”):
images = image_names_batches[batch]
with ThreadPoolExecutor(max_workers=MAX_WORKERS) as executor:
embeddings = list(
tqdm(
executor.map(
lambda x: get_image_embedding(
image=os.path.join(images_folder, x),
),
images,
),
total=len(images),
desc=f”Processing batch {batch+1}”,
leave=False,
)
)
valid_data = [
[images[i], str(embeddings[i])] for i in range(len(images))
if embeddings[i] is not None
]
save_data_to_csv(valid_data)
Once the embeddings for all the images in a batch are computed, the data is saved into a CSV file.
def save_data_to_csv(data: list[list[str]]) -> None:
“””
Appends a list of image filenames and their associated embeddings to
a CSV file.
:param data: The data to be appended to the CSV file.
“””
with open(embeddings_filepath, “a”, newline=””) as csv_file:
write = csv.writer(csv_file)
write.writerows(data)
Azure AI Vision API rate limits
Azure AI Vision API imposes rate limits on its usage. In the free tier, only 20 transactions per minute are allowed, while the standard tier allows up to 30 transactions per second, depending on the operation (Source: Microsoft Docs). If you exceed the default rate limit, you’ll receive a 429 HTTP error code.
For our application, it is recommended to use the standard tier during the embeddings generation process and limit the number of requests per second to approximately 10 to avoid potential issues.
Generate the dataset
After computing the vector embeddings for all images in the dataset, we proceed to update our dataset by inserting the vector embedding for each image. In the generate_dataset function, the merge method of pandas.DataFrame is used for merging the dataset with a database-style join.
def generate_dataset() -> None:
“””
Appends the corresponding vectors to each column of the original dataset
and saves the updated dataset as a CSV file.
“””
dataset_df = pd.read_csv(dataset_filepath, sep=”t”, dtype=”string”)
embeddings_df = pd.read_csv(
embeddings_filepath,
dtype=”string”,
names=[IMAGE_FILE_CSV_COLUMN_NAME, EMBEDDINGS_CSV_COLUMN_NAME],
)
final_dataset_df = dataset_df.merge(
embeddings_df, how=”inner”, on=IMAGE_FILE_CSV_COLUMN_NAME
)
final_dataset_df.to_csv(final_dataset_filepath, index=False, sep=”t”)
Next steps
In this post, you’ve learned the basics of vector search and computed vector embeddings for a collection of images using the Azure AI Vision Vectorize Image API. In the next post, you will store and query the vector embeddings on Azure Cosmos DB for PostgreSQL using the pgvector extension.
Here are some helpful learning resources:
Azure AI Vision Multi-modal embeddings – Microsoft Docs
Call the multi-modal embeddings APIs – Microsoft Docs
What is vector search? – Microsoft Learn
Understand embedding – Microsoft Learn
Microsoft Tech Community – Latest Blogs –Read More
Microsoft and open-source software
Microsoft has embraced open-source software—from offering tools for coding and managing open-source projects to making some of its own technologies open source, such as .NET and TypeScript. Even Visual Studio Code is built on open source. For March, we’re celebrating this culture of open-source software at Microsoft.
Explore some of the open-source projects at Microsoft, such as .NET on GitHub. Learn about tools and best practices to help you start contributing to open-source projects. And check out resources to help you work more productively with open-source tools, like Python in Visual Studio Code.
.NET is open source
Did you know .NET is open source? .NET is open source and cross-platform, and it’s maintained by Microsoft and the .NET community. Check it out on GitHub.
Python Data Science Day 2024: Unleashing the Power of Python in Data Analysis
Celebrate Pi Day (3.14) with a journey into data science with Python. Set for March 14, Python Data Science Day is an online event for developers, data scientists, students, and researchers who want to explore modern solutions for data pipelines and complex queries.
C# Dev Kit for Visual Studio Code
Learn how to use the C# Dev Kit for Visual Studio Code. Get details and download the C# Dev Kit from the Visual Studio Marketplace.
Visual Studio Code: C# and .NET development for beginners
Have questions about Visual Studio Code and C# Dev Kit? Watch the C# and .NET Development in VS Code for Beginners series and start writing C# applications in VS Code.
Reactor series: GenAI for software developers
Step into the future of software development with the Reactor series. GenAI for Software Developers explores cutting-edge AI tools and techniques for developers, revolutionizing the way you build and deploy applications. Register today and elevate your coding skills.
Use GitHub Copilot for your Python coding
Discover a better way to code in Python. Check out this free Microsoft Learn module on how GitHub Copilot provides suggestions while you code in Python.
Getting started with the Fluent UI Blazor library
The Fluent UI Blazor library is an open-source set of Blazor components used for building applications that have a Fluent design. Watch this Open at Microsoft episode for an overview and find out how to get started with the Fluent UI Blazor library.
Remote development with Visual Studio Code
Find out how to tap into more powerful hardware and develop on different platforms from your local machine. Check out this Microsoft Learn path to explore tools in VS Code for remote development setups and discover tips for personalizing your own remote dev workflow.
Using GitHub Copilot with JavaScript
Use GitHub Copilot while you work with JavaScript. This Microsoft Learn module will tell you everything you need to know to get started with this AI pair programmer.
Generative AI for Beginners
Want to build your own GenAI application? The free Generative AI for Beginners course on GitHub is the perfect place to start. Work through 18 in-depth lessons and learn everything from setting up your environment to using open-source models available on Hugging Face.
Use OpenAI Assistants API to build your own cooking advisor bot on Teams
Find out how to build an AI assistant right into your app using the new OpenAI Assistants API. Learn about the open playground for experimenting and watch a step-by-step demo for creating a cooking assistant that will suggest recipes based on what’s in your fridge.
What’s new in Teams Toolkit for Visual Studio 17.9
What’s new in Teams Toolkit for Visual Studio? Get an overview of new tools and capabilities for .NET developers building apps for Microsoft Teams.
Embed a custom webpage in Teams
Find out how to share a custom web page, such as a dashboard or portal, inside a Teams app. It’s easier than you might think. This short video shows how to do this using Teams Toolkit for Visual Studio and Blazor.
Get to know GitHub Copilot in VS Code and be more productive
Get to know GitHub Copilot in VS Code and find out how to use it. Watch this video to see how incredibly easy it is to start working with GitHub Copilot…Just start coding and watch the AI go to work.
Customize Dev Containers in VS Code with Dockerfiles and Docker Compose
Dev containers offer a convenient way to deliver consistent and reproducible environments. Follow along with this video demo to customize your dev containers using Dockerfiles and Docker Compose.
Designing for Trust
Learn how to design trustworthy experiences in the world of AI. Watch a demo of an AI prompt injection attack and learn about setting up guardrails to protect the system.
AI Show: LLM Evaluations in Azure AI Studio
Don’t deploy your LLM application without testing it first! Watch the AI Show to see how to use Azure AI Studio to evaluate your app’s performance and ensure it’s ready to go live. Watch now.
What’s winget.pro?
The Windows Package Manager (winget) is a free, open-source package manager. So what is winget.pro? Watch this special edition of the Open at Microsoft show for an overview of winget.pro and to find out how it differs from the well-known winget.
Use Visual Studio for modern development
Want to learn more about using Visual Studio to develop and test apps. Start here. In this free learning path, you’ll dig into key features for debugging, editing, and publishing your apps.
Build your own assistant for Microsoft Teams
Creating your own assistant app is super easy. Learn how in under 3 minutes! Watch a demo using the OpenAI Assistants, Teams AI Library, and the new AI Assistant Bot template in VS Code.
GitHub Copilot fundamentals – Understand the AI pair programmer
Improve developer productivity and foster innovation with GitHub Copilot. Explore the fundamentals of GitHub Copilot in this free training path from Microsoft Learn.
How to get GraphQL endpoints with Data API Builder
The Open at Microsoft show takes a look at using Data API Builder to easily create Graph QL endpoints. See how you can use this no-code solution to quickly enable advanced—and efficient—data interactions.
Microsoft, GitHub, and DX release new research into the business ROI of investing in Developer Experience
Investing in the developer experience has many benefits and improves business outcomes. Dive into our groundbreaking research (with data from more than 2000 developers at companies around the world) to discover what your business can gain with better DevEx.
Build your custom copilot with your data on Teams featuring Azure the AI Dragon
Build your own copilot for Microsoft Teams in minutes. Watch this video to see how in this demo that builds an AI Dragon that will take your team on a cyber role-playing adventure.
Microsoft Graph Toolkit v4.0 is now generally available
Microsoft Graph Toolkit v4.0 is now available. Learn about its new features, bug fixes, and improvements to the developer experience.
Microsoft Mesh: Now available for creating innovative multi-user 3D experiences
Microsoft Mesh is now generally available, providing a immersive 3D experience for the virtual workplace. Get an overview of Microsoft Mesh and find out how to start building your own custom experiences.
Global AI Bootcamp 2024
Global AI Bootcamp is a worldwide annual event that runs throughout the month of March for developers and AI enthusiasts. Learn about AI through workshops, sessions, and discussions. Find an in-person bootcamp event near you.
Microsoft JDConf 2024
Get ready for JDConf 2024—a free virtual event for Java developers. Explore the latest in tooling, architecture, cloud integration, frameworks, and AI. It all happens online March 27-28. Learn more and register now.
Microsoft Tech Community – Latest Blogs –Read More
Microsoft and open-source software
Microsoft has embraced open-source software—from offering tools for coding and managing open-source projects to making some of its own technologies open source, such as .NET and TypeScript. Even Visual Studio Code is built on open source. For March, we’re celebrating this culture of open-source software at Microsoft.
Explore some of the open-source projects at Microsoft, such as .NET on GitHub. Learn about tools and best practices to help you start contributing to open-source projects. And check out resources to help you work more productively with open-source tools, like Python in Visual Studio Code.
.NET is open source
Did you know .NET is open source? .NET is open source and cross-platform, and it’s maintained by Microsoft and the .NET community. Check it out on GitHub.
Python Data Science Day 2024: Unleashing the Power of Python in Data Analysis
Celebrate Pi Day (3.14) with a journey into data science with Python. Set for March 14, Python Data Science Day is an online event for developers, data scientists, students, and researchers who want to explore modern solutions for data pipelines and complex queries.
C# Dev Kit for Visual Studio Code
Learn how to use the C# Dev Kit for Visual Studio Code. Get details and download the C# Dev Kit from the Visual Studio Marketplace.
Visual Studio Code: C# and .NET development for beginners
Have questions about Visual Studio Code and C# Dev Kit? Watch the C# and .NET Development in VS Code for Beginners series and start writing C# applications in VS Code.
Reactor series: GenAI for software developers
Step into the future of software development with the Reactor series. GenAI for Software Developers explores cutting-edge AI tools and techniques for developers, revolutionizing the way you build and deploy applications. Register today and elevate your coding skills.
Use GitHub Copilot for your Python coding
Discover a better way to code in Python. Check out this free Microsoft Learn module on how GitHub Copilot provides suggestions while you code in Python.
Getting started with the Fluent UI Blazor library
The Fluent UI Blazor library is an open-source set of Blazor components used for building applications that have a Fluent design. Watch this Open at Microsoft episode for an overview and find out how to get started with the Fluent UI Blazor library.
Remote development with Visual Studio Code
Find out how to tap into more powerful hardware and develop on different platforms from your local machine. Check out this Microsoft Learn path to explore tools in VS Code for remote development setups and discover tips for personalizing your own remote dev workflow.
Using GitHub Copilot with JavaScript
Use GitHub Copilot while you work with JavaScript. This Microsoft Learn module will tell you everything you need to know to get started with this AI pair programmer.
Generative AI for Beginners
Want to build your own GenAI application? The free Generative AI for Beginners course on GitHub is the perfect place to start. Work through 18 in-depth lessons and learn everything from setting up your environment to using open-source models available on Hugging Face.
Use OpenAI Assistants API to build your own cooking advisor bot on Teams
Find out how to build an AI assistant right into your app using the new OpenAI Assistants API. Learn about the open playground for experimenting and watch a step-by-step demo for creating a cooking assistant that will suggest recipes based on what’s in your fridge.
What’s new in Teams Toolkit for Visual Studio 17.9
What’s new in Teams Toolkit for Visual Studio? Get an overview of new tools and capabilities for .NET developers building apps for Microsoft Teams.
Embed a custom webpage in Teams
Find out how to share a custom web page, such as a dashboard or portal, inside a Teams app. It’s easier than you might think. This short video shows how to do this using Teams Toolkit for Visual Studio and Blazor.
Get to know GitHub Copilot in VS Code and be more productive
Get to know GitHub Copilot in VS Code and find out how to use it. Watch this video to see how incredibly easy it is to start working with GitHub Copilot…Just start coding and watch the AI go to work.
Customize Dev Containers in VS Code with Dockerfiles and Docker Compose
Dev containers offer a convenient way to deliver consistent and reproducible environments. Follow along with this video demo to customize your dev containers using Dockerfiles and Docker Compose.
Designing for Trust
Learn how to design trustworthy experiences in the world of AI. Watch a demo of an AI prompt injection attack and learn about setting up guardrails to protect the system.
AI Show: LLM Evaluations in Azure AI Studio
Don’t deploy your LLM application without testing it first! Watch the AI Show to see how to use Azure AI Studio to evaluate your app’s performance and ensure it’s ready to go live. Watch now.
What’s winget.pro?
The Windows Package Manager (winget) is a free, open-source package manager. So what is winget.pro? Watch this special edition of the Open at Microsoft show for an overview of winget.pro and to find out how it differs from the well-known winget.
Use Visual Studio for modern development
Want to learn more about using Visual Studio to develop and test apps. Start here. In this free learning path, you’ll dig into key features for debugging, editing, and publishing your apps.
Build your own assistant for Microsoft Teams
Creating your own assistant app is super easy. Learn how in under 3 minutes! Watch a demo using the OpenAI Assistants, Teams AI Library, and the new AI Assistant Bot template in VS Code.
GitHub Copilot fundamentals – Understand the AI pair programmer
Improve developer productivity and foster innovation with GitHub Copilot. Explore the fundamentals of GitHub Copilot in this free training path from Microsoft Learn.
How to get GraphQL endpoints with Data API Builder
The Open at Microsoft show takes a look at using Data API Builder to easily create Graph QL endpoints. See how you can use this no-code solution to quickly enable advanced—and efficient—data interactions.
Microsoft, GitHub, and DX release new research into the business ROI of investing in Developer Experience
Investing in the developer experience has many benefits and improves business outcomes. Dive into our groundbreaking research (with data from more than 2000 developers at companies around the world) to discover what your business can gain with better DevEx.
Build your custom copilot with your data on Teams featuring Azure the AI Dragon
Build your own copilot for Microsoft Teams in minutes. Watch this video to see how in this demo that builds an AI Dragon that will take your team on a cyber role-playing adventure.
Microsoft Graph Toolkit v4.0 is now generally available
Microsoft Graph Toolkit v4.0 is now available. Learn about its new features, bug fixes, and improvements to the developer experience.
Microsoft Mesh: Now available for creating innovative multi-user 3D experiences
Microsoft Mesh is now generally available, providing a immersive 3D experience for the virtual workplace. Get an overview of Microsoft Mesh and find out how to start building your own custom experiences.
Global AI Bootcamp 2024
Global AI Bootcamp is a worldwide annual event that runs throughout the month of March for developers and AI enthusiasts. Learn about AI through workshops, sessions, and discussions. Find an in-person bootcamp event near you.
Microsoft JDConf 2024
Get ready for JDConf 2024—a free virtual event for Java developers. Explore the latest in tooling, architecture, cloud integration, frameworks, and AI. It all happens online March 27-28. Learn more and register now.
Microsoft Tech Community – Latest Blogs –Read More
Microsoft and open-source software
Microsoft has embraced open-source software—from offering tools for coding and managing open-source projects to making some of its own technologies open source, such as .NET and TypeScript. Even Visual Studio Code is built on open source. For March, we’re celebrating this culture of open-source software at Microsoft.
Explore some of the open-source projects at Microsoft, such as .NET on GitHub. Learn about tools and best practices to help you start contributing to open-source projects. And check out resources to help you work more productively with open-source tools, like Python in Visual Studio Code.
.NET is open source
Did you know .NET is open source? .NET is open source and cross-platform, and it’s maintained by Microsoft and the .NET community. Check it out on GitHub.
Python Data Science Day 2024: Unleashing the Power of Python in Data Analysis
Celebrate Pi Day (3.14) with a journey into data science with Python. Set for March 14, Python Data Science Day is an online event for developers, data scientists, students, and researchers who want to explore modern solutions for data pipelines and complex queries.
C# Dev Kit for Visual Studio Code
Learn how to use the C# Dev Kit for Visual Studio Code. Get details and download the C# Dev Kit from the Visual Studio Marketplace.
Visual Studio Code: C# and .NET development for beginners
Have questions about Visual Studio Code and C# Dev Kit? Watch the C# and .NET Development in VS Code for Beginners series and start writing C# applications in VS Code.
Reactor series: GenAI for software developers
Step into the future of software development with the Reactor series. GenAI for Software Developers explores cutting-edge AI tools and techniques for developers, revolutionizing the way you build and deploy applications. Register today and elevate your coding skills.
Use GitHub Copilot for your Python coding
Discover a better way to code in Python. Check out this free Microsoft Learn module on how GitHub Copilot provides suggestions while you code in Python.
Getting started with the Fluent UI Blazor library
The Fluent UI Blazor library is an open-source set of Blazor components used for building applications that have a Fluent design. Watch this Open at Microsoft episode for an overview and find out how to get started with the Fluent UI Blazor library.
Remote development with Visual Studio Code
Find out how to tap into more powerful hardware and develop on different platforms from your local machine. Check out this Microsoft Learn path to explore tools in VS Code for remote development setups and discover tips for personalizing your own remote dev workflow.
Using GitHub Copilot with JavaScript
Use GitHub Copilot while you work with JavaScript. This Microsoft Learn module will tell you everything you need to know to get started with this AI pair programmer.
Generative AI for Beginners
Want to build your own GenAI application? The free Generative AI for Beginners course on GitHub is the perfect place to start. Work through 18 in-depth lessons and learn everything from setting up your environment to using open-source models available on Hugging Face.
Use OpenAI Assistants API to build your own cooking advisor bot on Teams
Find out how to build an AI assistant right into your app using the new OpenAI Assistants API. Learn about the open playground for experimenting and watch a step-by-step demo for creating a cooking assistant that will suggest recipes based on what’s in your fridge.
What’s new in Teams Toolkit for Visual Studio 17.9
What’s new in Teams Toolkit for Visual Studio? Get an overview of new tools and capabilities for .NET developers building apps for Microsoft Teams.
Embed a custom webpage in Teams
Find out how to share a custom web page, such as a dashboard or portal, inside a Teams app. It’s easier than you might think. This short video shows how to do this using Teams Toolkit for Visual Studio and Blazor.
Get to know GitHub Copilot in VS Code and be more productive
Get to know GitHub Copilot in VS Code and find out how to use it. Watch this video to see how incredibly easy it is to start working with GitHub Copilot…Just start coding and watch the AI go to work.
Customize Dev Containers in VS Code with Dockerfiles and Docker Compose
Dev containers offer a convenient way to deliver consistent and reproducible environments. Follow along with this video demo to customize your dev containers using Dockerfiles and Docker Compose.
Designing for Trust
Learn how to design trustworthy experiences in the world of AI. Watch a demo of an AI prompt injection attack and learn about setting up guardrails to protect the system.
AI Show: LLM Evaluations in Azure AI Studio
Don’t deploy your LLM application without testing it first! Watch the AI Show to see how to use Azure AI Studio to evaluate your app’s performance and ensure it’s ready to go live. Watch now.
What’s winget.pro?
The Windows Package Manager (winget) is a free, open-source package manager. So what is winget.pro? Watch this special edition of the Open at Microsoft show for an overview of winget.pro and to find out how it differs from the well-known winget.
Use Visual Studio for modern development
Want to learn more about using Visual Studio to develop and test apps. Start here. In this free learning path, you’ll dig into key features for debugging, editing, and publishing your apps.
Build your own assistant for Microsoft Teams
Creating your own assistant app is super easy. Learn how in under 3 minutes! Watch a demo using the OpenAI Assistants, Teams AI Library, and the new AI Assistant Bot template in VS Code.
GitHub Copilot fundamentals – Understand the AI pair programmer
Improve developer productivity and foster innovation with GitHub Copilot. Explore the fundamentals of GitHub Copilot in this free training path from Microsoft Learn.
How to get GraphQL endpoints with Data API Builder
The Open at Microsoft show takes a look at using Data API Builder to easily create Graph QL endpoints. See how you can use this no-code solution to quickly enable advanced—and efficient—data interactions.
Microsoft, GitHub, and DX release new research into the business ROI of investing in Developer Experience
Investing in the developer experience has many benefits and improves business outcomes. Dive into our groundbreaking research (with data from more than 2000 developers at companies around the world) to discover what your business can gain with better DevEx.
Build your custom copilot with your data on Teams featuring Azure the AI Dragon
Build your own copilot for Microsoft Teams in minutes. Watch this video to see how in this demo that builds an AI Dragon that will take your team on a cyber role-playing adventure.
Microsoft Graph Toolkit v4.0 is now generally available
Microsoft Graph Toolkit v4.0 is now available. Learn about its new features, bug fixes, and improvements to the developer experience.
Microsoft Mesh: Now available for creating innovative multi-user 3D experiences
Microsoft Mesh is now generally available, providing a immersive 3D experience for the virtual workplace. Get an overview of Microsoft Mesh and find out how to start building your own custom experiences.
Global AI Bootcamp 2024
Global AI Bootcamp is a worldwide annual event that runs throughout the month of March for developers and AI enthusiasts. Learn about AI through workshops, sessions, and discussions. Find an in-person bootcamp event near you.
Microsoft JDConf 2024
Get ready for JDConf 2024—a free virtual event for Java developers. Explore the latest in tooling, architecture, cloud integration, frameworks, and AI. It all happens online March 27-28. Learn more and register now.
Microsoft Tech Community – Latest Blogs –Read More
Microsoft and open-source software
Microsoft has embraced open-source software—from offering tools for coding and managing open-source projects to making some of its own technologies open source, such as .NET and TypeScript. Even Visual Studio Code is built on open source. For March, we’re celebrating this culture of open-source software at Microsoft.
Explore some of the open-source projects at Microsoft, such as .NET on GitHub. Learn about tools and best practices to help you start contributing to open-source projects. And check out resources to help you work more productively with open-source tools, like Python in Visual Studio Code.
.NET is open source
Did you know .NET is open source? .NET is open source and cross-platform, and it’s maintained by Microsoft and the .NET community. Check it out on GitHub.
Python Data Science Day 2024: Unleashing the Power of Python in Data Analysis
Celebrate Pi Day (3.14) with a journey into data science with Python. Set for March 14, Python Data Science Day is an online event for developers, data scientists, students, and researchers who want to explore modern solutions for data pipelines and complex queries.
C# Dev Kit for Visual Studio Code
Learn how to use the C# Dev Kit for Visual Studio Code. Get details and download the C# Dev Kit from the Visual Studio Marketplace.
Visual Studio Code: C# and .NET development for beginners
Have questions about Visual Studio Code and C# Dev Kit? Watch the C# and .NET Development in VS Code for Beginners series and start writing C# applications in VS Code.
Reactor series: GenAI for software developers
Step into the future of software development with the Reactor series. GenAI for Software Developers explores cutting-edge AI tools and techniques for developers, revolutionizing the way you build and deploy applications. Register today and elevate your coding skills.
Use GitHub Copilot for your Python coding
Discover a better way to code in Python. Check out this free Microsoft Learn module on how GitHub Copilot provides suggestions while you code in Python.
Getting started with the Fluent UI Blazor library
The Fluent UI Blazor library is an open-source set of Blazor components used for building applications that have a Fluent design. Watch this Open at Microsoft episode for an overview and find out how to get started with the Fluent UI Blazor library.
Remote development with Visual Studio Code
Find out how to tap into more powerful hardware and develop on different platforms from your local machine. Check out this Microsoft Learn path to explore tools in VS Code for remote development setups and discover tips for personalizing your own remote dev workflow.
Using GitHub Copilot with JavaScript
Use GitHub Copilot while you work with JavaScript. This Microsoft Learn module will tell you everything you need to know to get started with this AI pair programmer.
Generative AI for Beginners
Want to build your own GenAI application? The free Generative AI for Beginners course on GitHub is the perfect place to start. Work through 18 in-depth lessons and learn everything from setting up your environment to using open-source models available on Hugging Face.
Use OpenAI Assistants API to build your own cooking advisor bot on Teams
Find out how to build an AI assistant right into your app using the new OpenAI Assistants API. Learn about the open playground for experimenting and watch a step-by-step demo for creating a cooking assistant that will suggest recipes based on what’s in your fridge.
What’s new in Teams Toolkit for Visual Studio 17.9
What’s new in Teams Toolkit for Visual Studio? Get an overview of new tools and capabilities for .NET developers building apps for Microsoft Teams.
Embed a custom webpage in Teams
Find out how to share a custom web page, such as a dashboard or portal, inside a Teams app. It’s easier than you might think. This short video shows how to do this using Teams Toolkit for Visual Studio and Blazor.
Get to know GitHub Copilot in VS Code and be more productive
Get to know GitHub Copilot in VS Code and find out how to use it. Watch this video to see how incredibly easy it is to start working with GitHub Copilot…Just start coding and watch the AI go to work.
Customize Dev Containers in VS Code with Dockerfiles and Docker Compose
Dev containers offer a convenient way to deliver consistent and reproducible environments. Follow along with this video demo to customize your dev containers using Dockerfiles and Docker Compose.
Designing for Trust
Learn how to design trustworthy experiences in the world of AI. Watch a demo of an AI prompt injection attack and learn about setting up guardrails to protect the system.
AI Show: LLM Evaluations in Azure AI Studio
Don’t deploy your LLM application without testing it first! Watch the AI Show to see how to use Azure AI Studio to evaluate your app’s performance and ensure it’s ready to go live. Watch now.
What’s winget.pro?
The Windows Package Manager (winget) is a free, open-source package manager. So what is winget.pro? Watch this special edition of the Open at Microsoft show for an overview of winget.pro and to find out how it differs from the well-known winget.
Use Visual Studio for modern development
Want to learn more about using Visual Studio to develop and test apps. Start here. In this free learning path, you’ll dig into key features for debugging, editing, and publishing your apps.
Build your own assistant for Microsoft Teams
Creating your own assistant app is super easy. Learn how in under 3 minutes! Watch a demo using the OpenAI Assistants, Teams AI Library, and the new AI Assistant Bot template in VS Code.
GitHub Copilot fundamentals – Understand the AI pair programmer
Improve developer productivity and foster innovation with GitHub Copilot. Explore the fundamentals of GitHub Copilot in this free training path from Microsoft Learn.
How to get GraphQL endpoints with Data API Builder
The Open at Microsoft show takes a look at using Data API Builder to easily create Graph QL endpoints. See how you can use this no-code solution to quickly enable advanced—and efficient—data interactions.
Microsoft, GitHub, and DX release new research into the business ROI of investing in Developer Experience
Investing in the developer experience has many benefits and improves business outcomes. Dive into our groundbreaking research (with data from more than 2000 developers at companies around the world) to discover what your business can gain with better DevEx.
Build your custom copilot with your data on Teams featuring Azure the AI Dragon
Build your own copilot for Microsoft Teams in minutes. Watch this video to see how in this demo that builds an AI Dragon that will take your team on a cyber role-playing adventure.
Microsoft Graph Toolkit v4.0 is now generally available
Microsoft Graph Toolkit v4.0 is now available. Learn about its new features, bug fixes, and improvements to the developer experience.
Microsoft Mesh: Now available for creating innovative multi-user 3D experiences
Microsoft Mesh is now generally available, providing a immersive 3D experience for the virtual workplace. Get an overview of Microsoft Mesh and find out how to start building your own custom experiences.
Global AI Bootcamp 2024
Global AI Bootcamp is a worldwide annual event that runs throughout the month of March for developers and AI enthusiasts. Learn about AI through workshops, sessions, and discussions. Find an in-person bootcamp event near you.
Microsoft JDConf 2024
Get ready for JDConf 2024—a free virtual event for Java developers. Explore the latest in tooling, architecture, cloud integration, frameworks, and AI. It all happens online March 27-28. Learn more and register now.
Microsoft Tech Community – Latest Blogs –Read More
Microsoft and open-source software
Microsoft has embraced open-source software—from offering tools for coding and managing open-source projects to making some of its own technologies open source, such as .NET and TypeScript. Even Visual Studio Code is built on open source. For March, we’re celebrating this culture of open-source software at Microsoft.
Explore some of the open-source projects at Microsoft, such as .NET on GitHub. Learn about tools and best practices to help you start contributing to open-source projects. And check out resources to help you work more productively with open-source tools, like Python in Visual Studio Code.
.NET is open source
Did you know .NET is open source? .NET is open source and cross-platform, and it’s maintained by Microsoft and the .NET community. Check it out on GitHub.
Python Data Science Day 2024: Unleashing the Power of Python in Data Analysis
Celebrate Pi Day (3.14) with a journey into data science with Python. Set for March 14, Python Data Science Day is an online event for developers, data scientists, students, and researchers who want to explore modern solutions for data pipelines and complex queries.
C# Dev Kit for Visual Studio Code
Learn how to use the C# Dev Kit for Visual Studio Code. Get details and download the C# Dev Kit from the Visual Studio Marketplace.
Visual Studio Code: C# and .NET development for beginners
Have questions about Visual Studio Code and C# Dev Kit? Watch the C# and .NET Development in VS Code for Beginners series and start writing C# applications in VS Code.
Reactor series: GenAI for software developers
Step into the future of software development with the Reactor series. GenAI for Software Developers explores cutting-edge AI tools and techniques for developers, revolutionizing the way you build and deploy applications. Register today and elevate your coding skills.
Use GitHub Copilot for your Python coding
Discover a better way to code in Python. Check out this free Microsoft Learn module on how GitHub Copilot provides suggestions while you code in Python.
Getting started with the Fluent UI Blazor library
The Fluent UI Blazor library is an open-source set of Blazor components used for building applications that have a Fluent design. Watch this Open at Microsoft episode for an overview and find out how to get started with the Fluent UI Blazor library.
Remote development with Visual Studio Code
Find out how to tap into more powerful hardware and develop on different platforms from your local machine. Check out this Microsoft Learn path to explore tools in VS Code for remote development setups and discover tips for personalizing your own remote dev workflow.
Using GitHub Copilot with JavaScript
Use GitHub Copilot while you work with JavaScript. This Microsoft Learn module will tell you everything you need to know to get started with this AI pair programmer.
Generative AI for Beginners
Want to build your own GenAI application? The free Generative AI for Beginners course on GitHub is the perfect place to start. Work through 18 in-depth lessons and learn everything from setting up your environment to using open-source models available on Hugging Face.
Use OpenAI Assistants API to build your own cooking advisor bot on Teams
Find out how to build an AI assistant right into your app using the new OpenAI Assistants API. Learn about the open playground for experimenting and watch a step-by-step demo for creating a cooking assistant that will suggest recipes based on what’s in your fridge.
What’s new in Teams Toolkit for Visual Studio 17.9
What’s new in Teams Toolkit for Visual Studio? Get an overview of new tools and capabilities for .NET developers building apps for Microsoft Teams.
Embed a custom webpage in Teams
Find out how to share a custom web page, such as a dashboard or portal, inside a Teams app. It’s easier than you might think. This short video shows how to do this using Teams Toolkit for Visual Studio and Blazor.
Get to know GitHub Copilot in VS Code and be more productive
Get to know GitHub Copilot in VS Code and find out how to use it. Watch this video to see how incredibly easy it is to start working with GitHub Copilot…Just start coding and watch the AI go to work.
Customize Dev Containers in VS Code with Dockerfiles and Docker Compose
Dev containers offer a convenient way to deliver consistent and reproducible environments. Follow along with this video demo to customize your dev containers using Dockerfiles and Docker Compose.
Designing for Trust
Learn how to design trustworthy experiences in the world of AI. Watch a demo of an AI prompt injection attack and learn about setting up guardrails to protect the system.
AI Show: LLM Evaluations in Azure AI Studio
Don’t deploy your LLM application without testing it first! Watch the AI Show to see how to use Azure AI Studio to evaluate your app’s performance and ensure it’s ready to go live. Watch now.
What’s winget.pro?
The Windows Package Manager (winget) is a free, open-source package manager. So what is winget.pro? Watch this special edition of the Open at Microsoft show for an overview of winget.pro and to find out how it differs from the well-known winget.
Use Visual Studio for modern development
Want to learn more about using Visual Studio to develop and test apps. Start here. In this free learning path, you’ll dig into key features for debugging, editing, and publishing your apps.
Build your own assistant for Microsoft Teams
Creating your own assistant app is super easy. Learn how in under 3 minutes! Watch a demo using the OpenAI Assistants, Teams AI Library, and the new AI Assistant Bot template in VS Code.
GitHub Copilot fundamentals – Understand the AI pair programmer
Improve developer productivity and foster innovation with GitHub Copilot. Explore the fundamentals of GitHub Copilot in this free training path from Microsoft Learn.
How to get GraphQL endpoints with Data API Builder
The Open at Microsoft show takes a look at using Data API Builder to easily create Graph QL endpoints. See how you can use this no-code solution to quickly enable advanced—and efficient—data interactions.
Microsoft, GitHub, and DX release new research into the business ROI of investing in Developer Experience
Investing in the developer experience has many benefits and improves business outcomes. Dive into our groundbreaking research (with data from more than 2000 developers at companies around the world) to discover what your business can gain with better DevEx.
Build your custom copilot with your data on Teams featuring Azure the AI Dragon
Build your own copilot for Microsoft Teams in minutes. Watch this video to see how in this demo that builds an AI Dragon that will take your team on a cyber role-playing adventure.
Microsoft Graph Toolkit v4.0 is now generally available
Microsoft Graph Toolkit v4.0 is now available. Learn about its new features, bug fixes, and improvements to the developer experience.
Microsoft Mesh: Now available for creating innovative multi-user 3D experiences
Microsoft Mesh is now generally available, providing a immersive 3D experience for the virtual workplace. Get an overview of Microsoft Mesh and find out how to start building your own custom experiences.
Global AI Bootcamp 2024
Global AI Bootcamp is a worldwide annual event that runs throughout the month of March for developers and AI enthusiasts. Learn about AI through workshops, sessions, and discussions. Find an in-person bootcamp event near you.
Microsoft JDConf 2024
Get ready for JDConf 2024—a free virtual event for Java developers. Explore the latest in tooling, architecture, cloud integration, frameworks, and AI. It all happens online March 27-28. Learn more and register now.
Microsoft Tech Community – Latest Blogs –Read More
Microsoft and open-source software
Microsoft has embraced open-source software—from offering tools for coding and managing open-source projects to making some of its own technologies open source, such as .NET and TypeScript. Even Visual Studio Code is built on open source. For March, we’re celebrating this culture of open-source software at Microsoft.
Explore some of the open-source projects at Microsoft, such as .NET on GitHub. Learn about tools and best practices to help you start contributing to open-source projects. And check out resources to help you work more productively with open-source tools, like Python in Visual Studio Code.
.NET is open source
Did you know .NET is open source? .NET is open source and cross-platform, and it’s maintained by Microsoft and the .NET community. Check it out on GitHub.
Python Data Science Day 2024: Unleashing the Power of Python in Data Analysis
Celebrate Pi Day (3.14) with a journey into data science with Python. Set for March 14, Python Data Science Day is an online event for developers, data scientists, students, and researchers who want to explore modern solutions for data pipelines and complex queries.
C# Dev Kit for Visual Studio Code
Learn how to use the C# Dev Kit for Visual Studio Code. Get details and download the C# Dev Kit from the Visual Studio Marketplace.
Visual Studio Code: C# and .NET development for beginners
Have questions about Visual Studio Code and C# Dev Kit? Watch the C# and .NET Development in VS Code for Beginners series and start writing C# applications in VS Code.
Reactor series: GenAI for software developers
Step into the future of software development with the Reactor series. GenAI for Software Developers explores cutting-edge AI tools and techniques for developers, revolutionizing the way you build and deploy applications. Register today and elevate your coding skills.
Use GitHub Copilot for your Python coding
Discover a better way to code in Python. Check out this free Microsoft Learn module on how GitHub Copilot provides suggestions while you code in Python.
Getting started with the Fluent UI Blazor library
The Fluent UI Blazor library is an open-source set of Blazor components used for building applications that have a Fluent design. Watch this Open at Microsoft episode for an overview and find out how to get started with the Fluent UI Blazor library.
Remote development with Visual Studio Code
Find out how to tap into more powerful hardware and develop on different platforms from your local machine. Check out this Microsoft Learn path to explore tools in VS Code for remote development setups and discover tips for personalizing your own remote dev workflow.
Using GitHub Copilot with JavaScript
Use GitHub Copilot while you work with JavaScript. This Microsoft Learn module will tell you everything you need to know to get started with this AI pair programmer.
Generative AI for Beginners
Want to build your own GenAI application? The free Generative AI for Beginners course on GitHub is the perfect place to start. Work through 18 in-depth lessons and learn everything from setting up your environment to using open-source models available on Hugging Face.
Use OpenAI Assistants API to build your own cooking advisor bot on Teams
Find out how to build an AI assistant right into your app using the new OpenAI Assistants API. Learn about the open playground for experimenting and watch a step-by-step demo for creating a cooking assistant that will suggest recipes based on what’s in your fridge.
What’s new in Teams Toolkit for Visual Studio 17.9
What’s new in Teams Toolkit for Visual Studio? Get an overview of new tools and capabilities for .NET developers building apps for Microsoft Teams.
Embed a custom webpage in Teams
Find out how to share a custom web page, such as a dashboard or portal, inside a Teams app. It’s easier than you might think. This short video shows how to do this using Teams Toolkit for Visual Studio and Blazor.
Get to know GitHub Copilot in VS Code and be more productive
Get to know GitHub Copilot in VS Code and find out how to use it. Watch this video to see how incredibly easy it is to start working with GitHub Copilot…Just start coding and watch the AI go to work.
Customize Dev Containers in VS Code with Dockerfiles and Docker Compose
Dev containers offer a convenient way to deliver consistent and reproducible environments. Follow along with this video demo to customize your dev containers using Dockerfiles and Docker Compose.
Designing for Trust
Learn how to design trustworthy experiences in the world of AI. Watch a demo of an AI prompt injection attack and learn about setting up guardrails to protect the system.
AI Show: LLM Evaluations in Azure AI Studio
Don’t deploy your LLM application without testing it first! Watch the AI Show to see how to use Azure AI Studio to evaluate your app’s performance and ensure it’s ready to go live. Watch now.
What’s winget.pro?
The Windows Package Manager (winget) is a free, open-source package manager. So what is winget.pro? Watch this special edition of the Open at Microsoft show for an overview of winget.pro and to find out how it differs from the well-known winget.
Use Visual Studio for modern development
Want to learn more about using Visual Studio to develop and test apps. Start here. In this free learning path, you’ll dig into key features for debugging, editing, and publishing your apps.
Build your own assistant for Microsoft Teams
Creating your own assistant app is super easy. Learn how in under 3 minutes! Watch a demo using the OpenAI Assistants, Teams AI Library, and the new AI Assistant Bot template in VS Code.
GitHub Copilot fundamentals – Understand the AI pair programmer
Improve developer productivity and foster innovation with GitHub Copilot. Explore the fundamentals of GitHub Copilot in this free training path from Microsoft Learn.
How to get GraphQL endpoints with Data API Builder
The Open at Microsoft show takes a look at using Data API Builder to easily create Graph QL endpoints. See how you can use this no-code solution to quickly enable advanced—and efficient—data interactions.
Microsoft, GitHub, and DX release new research into the business ROI of investing in Developer Experience
Investing in the developer experience has many benefits and improves business outcomes. Dive into our groundbreaking research (with data from more than 2000 developers at companies around the world) to discover what your business can gain with better DevEx.
Build your custom copilot with your data on Teams featuring Azure the AI Dragon
Build your own copilot for Microsoft Teams in minutes. Watch this video to see how in this demo that builds an AI Dragon that will take your team on a cyber role-playing adventure.
Microsoft Graph Toolkit v4.0 is now generally available
Microsoft Graph Toolkit v4.0 is now available. Learn about its new features, bug fixes, and improvements to the developer experience.
Microsoft Mesh: Now available for creating innovative multi-user 3D experiences
Microsoft Mesh is now generally available, providing a immersive 3D experience for the virtual workplace. Get an overview of Microsoft Mesh and find out how to start building your own custom experiences.
Global AI Bootcamp 2024
Global AI Bootcamp is a worldwide annual event that runs throughout the month of March for developers and AI enthusiasts. Learn about AI through workshops, sessions, and discussions. Find an in-person bootcamp event near you.
Microsoft JDConf 2024
Get ready for JDConf 2024—a free virtual event for Java developers. Explore the latest in tooling, architecture, cloud integration, frameworks, and AI. It all happens online March 27-28. Learn more and register now.
Microsoft Tech Community – Latest Blogs –Read More
Microsoft and open-source software
Microsoft has embraced open-source software—from offering tools for coding and managing open-source projects to making some of its own technologies open source, such as .NET and TypeScript. Even Visual Studio Code is built on open source. For March, we’re celebrating this culture of open-source software at Microsoft.
Explore some of the open-source projects at Microsoft, such as .NET on GitHub. Learn about tools and best practices to help you start contributing to open-source projects. And check out resources to help you work more productively with open-source tools, like Python in Visual Studio Code.
.NET is open source
Did you know .NET is open source? .NET is open source and cross-platform, and it’s maintained by Microsoft and the .NET community. Check it out on GitHub.
Python Data Science Day 2024: Unleashing the Power of Python in Data Analysis
Celebrate Pi Day (3.14) with a journey into data science with Python. Set for March 14, Python Data Science Day is an online event for developers, data scientists, students, and researchers who want to explore modern solutions for data pipelines and complex queries.
C# Dev Kit for Visual Studio Code
Learn how to use the C# Dev Kit for Visual Studio Code. Get details and download the C# Dev Kit from the Visual Studio Marketplace.
Visual Studio Code: C# and .NET development for beginners
Have questions about Visual Studio Code and C# Dev Kit? Watch the C# and .NET Development in VS Code for Beginners series and start writing C# applications in VS Code.
Reactor series: GenAI for software developers
Step into the future of software development with the Reactor series. GenAI for Software Developers explores cutting-edge AI tools and techniques for developers, revolutionizing the way you build and deploy applications. Register today and elevate your coding skills.
Use GitHub Copilot for your Python coding
Discover a better way to code in Python. Check out this free Microsoft Learn module on how GitHub Copilot provides suggestions while you code in Python.
Getting started with the Fluent UI Blazor library
The Fluent UI Blazor library is an open-source set of Blazor components used for building applications that have a Fluent design. Watch this Open at Microsoft episode for an overview and find out how to get started with the Fluent UI Blazor library.
Remote development with Visual Studio Code
Find out how to tap into more powerful hardware and develop on different platforms from your local machine. Check out this Microsoft Learn path to explore tools in VS Code for remote development setups and discover tips for personalizing your own remote dev workflow.
Using GitHub Copilot with JavaScript
Use GitHub Copilot while you work with JavaScript. This Microsoft Learn module will tell you everything you need to know to get started with this AI pair programmer.
Generative AI for Beginners
Want to build your own GenAI application? The free Generative AI for Beginners course on GitHub is the perfect place to start. Work through 18 in-depth lessons and learn everything from setting up your environment to using open-source models available on Hugging Face.
Use OpenAI Assistants API to build your own cooking advisor bot on Teams
Find out how to build an AI assistant right into your app using the new OpenAI Assistants API. Learn about the open playground for experimenting and watch a step-by-step demo for creating a cooking assistant that will suggest recipes based on what’s in your fridge.
What’s new in Teams Toolkit for Visual Studio 17.9
What’s new in Teams Toolkit for Visual Studio? Get an overview of new tools and capabilities for .NET developers building apps for Microsoft Teams.
Embed a custom webpage in Teams
Find out how to share a custom web page, such as a dashboard or portal, inside a Teams app. It’s easier than you might think. This short video shows how to do this using Teams Toolkit for Visual Studio and Blazor.
Get to know GitHub Copilot in VS Code and be more productive
Get to know GitHub Copilot in VS Code and find out how to use it. Watch this video to see how incredibly easy it is to start working with GitHub Copilot…Just start coding and watch the AI go to work.
Customize Dev Containers in VS Code with Dockerfiles and Docker Compose
Dev containers offer a convenient way to deliver consistent and reproducible environments. Follow along with this video demo to customize your dev containers using Dockerfiles and Docker Compose.
Designing for Trust
Learn how to design trustworthy experiences in the world of AI. Watch a demo of an AI prompt injection attack and learn about setting up guardrails to protect the system.
AI Show: LLM Evaluations in Azure AI Studio
Don’t deploy your LLM application without testing it first! Watch the AI Show to see how to use Azure AI Studio to evaluate your app’s performance and ensure it’s ready to go live. Watch now.
What’s winget.pro?
The Windows Package Manager (winget) is a free, open-source package manager. So what is winget.pro? Watch this special edition of the Open at Microsoft show for an overview of winget.pro and to find out how it differs from the well-known winget.
Use Visual Studio for modern development
Want to learn more about using Visual Studio to develop and test apps. Start here. In this free learning path, you’ll dig into key features for debugging, editing, and publishing your apps.
Build your own assistant for Microsoft Teams
Creating your own assistant app is super easy. Learn how in under 3 minutes! Watch a demo using the OpenAI Assistants, Teams AI Library, and the new AI Assistant Bot template in VS Code.
GitHub Copilot fundamentals – Understand the AI pair programmer
Improve developer productivity and foster innovation with GitHub Copilot. Explore the fundamentals of GitHub Copilot in this free training path from Microsoft Learn.
How to get GraphQL endpoints with Data API Builder
The Open at Microsoft show takes a look at using Data API Builder to easily create Graph QL endpoints. See how you can use this no-code solution to quickly enable advanced—and efficient—data interactions.
Microsoft, GitHub, and DX release new research into the business ROI of investing in Developer Experience
Investing in the developer experience has many benefits and improves business outcomes. Dive into our groundbreaking research (with data from more than 2000 developers at companies around the world) to discover what your business can gain with better DevEx.
Build your custom copilot with your data on Teams featuring Azure the AI Dragon
Build your own copilot for Microsoft Teams in minutes. Watch this video to see how in this demo that builds an AI Dragon that will take your team on a cyber role-playing adventure.
Microsoft Graph Toolkit v4.0 is now generally available
Microsoft Graph Toolkit v4.0 is now available. Learn about its new features, bug fixes, and improvements to the developer experience.
Microsoft Mesh: Now available for creating innovative multi-user 3D experiences
Microsoft Mesh is now generally available, providing a immersive 3D experience for the virtual workplace. Get an overview of Microsoft Mesh and find out how to start building your own custom experiences.
Global AI Bootcamp 2024
Global AI Bootcamp is a worldwide annual event that runs throughout the month of March for developers and AI enthusiasts. Learn about AI through workshops, sessions, and discussions. Find an in-person bootcamp event near you.
Microsoft JDConf 2024
Get ready for JDConf 2024—a free virtual event for Java developers. Explore the latest in tooling, architecture, cloud integration, frameworks, and AI. It all happens online March 27-28. Learn more and register now.
Microsoft Tech Community – Latest Blogs –Read More
Microsoft and open-source software
Microsoft has embraced open-source software—from offering tools for coding and managing open-source projects to making some of its own technologies open source, such as .NET and TypeScript. Even Visual Studio Code is built on open source. For March, we’re celebrating this culture of open-source software at Microsoft.
Explore some of the open-source projects at Microsoft, such as .NET on GitHub. Learn about tools and best practices to help you start contributing to open-source projects. And check out resources to help you work more productively with open-source tools, like Python in Visual Studio Code.
.NET is open source
Did you know .NET is open source? .NET is open source and cross-platform, and it’s maintained by Microsoft and the .NET community. Check it out on GitHub.
Python Data Science Day 2024: Unleashing the Power of Python in Data Analysis
Celebrate Pi Day (3.14) with a journey into data science with Python. Set for March 14, Python Data Science Day is an online event for developers, data scientists, students, and researchers who want to explore modern solutions for data pipelines and complex queries.
C# Dev Kit for Visual Studio Code
Learn how to use the C# Dev Kit for Visual Studio Code. Get details and download the C# Dev Kit from the Visual Studio Marketplace.
Visual Studio Code: C# and .NET development for beginners
Have questions about Visual Studio Code and C# Dev Kit? Watch the C# and .NET Development in VS Code for Beginners series and start writing C# applications in VS Code.
Reactor series: GenAI for software developers
Step into the future of software development with the Reactor series. GenAI for Software Developers explores cutting-edge AI tools and techniques for developers, revolutionizing the way you build and deploy applications. Register today and elevate your coding skills.
Use GitHub Copilot for your Python coding
Discover a better way to code in Python. Check out this free Microsoft Learn module on how GitHub Copilot provides suggestions while you code in Python.
Getting started with the Fluent UI Blazor library
The Fluent UI Blazor library is an open-source set of Blazor components used for building applications that have a Fluent design. Watch this Open at Microsoft episode for an overview and find out how to get started with the Fluent UI Blazor library.
Remote development with Visual Studio Code
Find out how to tap into more powerful hardware and develop on different platforms from your local machine. Check out this Microsoft Learn path to explore tools in VS Code for remote development setups and discover tips for personalizing your own remote dev workflow.
Using GitHub Copilot with JavaScript
Use GitHub Copilot while you work with JavaScript. This Microsoft Learn module will tell you everything you need to know to get started with this AI pair programmer.
Generative AI for Beginners
Want to build your own GenAI application? The free Generative AI for Beginners course on GitHub is the perfect place to start. Work through 18 in-depth lessons and learn everything from setting up your environment to using open-source models available on Hugging Face.
Use OpenAI Assistants API to build your own cooking advisor bot on Teams
Find out how to build an AI assistant right into your app using the new OpenAI Assistants API. Learn about the open playground for experimenting and watch a step-by-step demo for creating a cooking assistant that will suggest recipes based on what’s in your fridge.
What’s new in Teams Toolkit for Visual Studio 17.9
What’s new in Teams Toolkit for Visual Studio? Get an overview of new tools and capabilities for .NET developers building apps for Microsoft Teams.
Embed a custom webpage in Teams
Find out how to share a custom web page, such as a dashboard or portal, inside a Teams app. It’s easier than you might think. This short video shows how to do this using Teams Toolkit for Visual Studio and Blazor.
Get to know GitHub Copilot in VS Code and be more productive
Get to know GitHub Copilot in VS Code and find out how to use it. Watch this video to see how incredibly easy it is to start working with GitHub Copilot…Just start coding and watch the AI go to work.
Customize Dev Containers in VS Code with Dockerfiles and Docker Compose
Dev containers offer a convenient way to deliver consistent and reproducible environments. Follow along with this video demo to customize your dev containers using Dockerfiles and Docker Compose.
Designing for Trust
Learn how to design trustworthy experiences in the world of AI. Watch a demo of an AI prompt injection attack and learn about setting up guardrails to protect the system.
AI Show: LLM Evaluations in Azure AI Studio
Don’t deploy your LLM application without testing it first! Watch the AI Show to see how to use Azure AI Studio to evaluate your app’s performance and ensure it’s ready to go live. Watch now.
What’s winget.pro?
The Windows Package Manager (winget) is a free, open-source package manager. So what is winget.pro? Watch this special edition of the Open at Microsoft show for an overview of winget.pro and to find out how it differs from the well-known winget.
Use Visual Studio for modern development
Want to learn more about using Visual Studio to develop and test apps. Start here. In this free learning path, you’ll dig into key features for debugging, editing, and publishing your apps.
Build your own assistant for Microsoft Teams
Creating your own assistant app is super easy. Learn how in under 3 minutes! Watch a demo using the OpenAI Assistants, Teams AI Library, and the new AI Assistant Bot template in VS Code.
GitHub Copilot fundamentals – Understand the AI pair programmer
Improve developer productivity and foster innovation with GitHub Copilot. Explore the fundamentals of GitHub Copilot in this free training path from Microsoft Learn.
How to get GraphQL endpoints with Data API Builder
The Open at Microsoft show takes a look at using Data API Builder to easily create Graph QL endpoints. See how you can use this no-code solution to quickly enable advanced—and efficient—data interactions.
Microsoft, GitHub, and DX release new research into the business ROI of investing in Developer Experience
Investing in the developer experience has many benefits and improves business outcomes. Dive into our groundbreaking research (with data from more than 2000 developers at companies around the world) to discover what your business can gain with better DevEx.
Build your custom copilot with your data on Teams featuring Azure the AI Dragon
Build your own copilot for Microsoft Teams in minutes. Watch this video to see how in this demo that builds an AI Dragon that will take your team on a cyber role-playing adventure.
Microsoft Graph Toolkit v4.0 is now generally available
Microsoft Graph Toolkit v4.0 is now available. Learn about its new features, bug fixes, and improvements to the developer experience.
Microsoft Mesh: Now available for creating innovative multi-user 3D experiences
Microsoft Mesh is now generally available, providing a immersive 3D experience for the virtual workplace. Get an overview of Microsoft Mesh and find out how to start building your own custom experiences.
Global AI Bootcamp 2024
Global AI Bootcamp is a worldwide annual event that runs throughout the month of March for developers and AI enthusiasts. Learn about AI through workshops, sessions, and discussions. Find an in-person bootcamp event near you.
Microsoft JDConf 2024
Get ready for JDConf 2024—a free virtual event for Java developers. Explore the latest in tooling, architecture, cloud integration, frameworks, and AI. It all happens online March 27-28. Learn more and register now.
Microsoft Tech Community – Latest Blogs –Read More
Microsoft and open-source software
Microsoft has embraced open-source software—from offering tools for coding and managing open-source projects to making some of its own technologies open source, such as .NET and TypeScript. Even Visual Studio Code is built on open source. For March, we’re celebrating this culture of open-source software at Microsoft.
Explore some of the open-source projects at Microsoft, such as .NET on GitHub. Learn about tools and best practices to help you start contributing to open-source projects. And check out resources to help you work more productively with open-source tools, like Python in Visual Studio Code.
.NET is open source
Did you know .NET is open source? .NET is open source and cross-platform, and it’s maintained by Microsoft and the .NET community. Check it out on GitHub.
Python Data Science Day 2024: Unleashing the Power of Python in Data Analysis
Celebrate Pi Day (3.14) with a journey into data science with Python. Set for March 14, Python Data Science Day is an online event for developers, data scientists, students, and researchers who want to explore modern solutions for data pipelines and complex queries.
C# Dev Kit for Visual Studio Code
Learn how to use the C# Dev Kit for Visual Studio Code. Get details and download the C# Dev Kit from the Visual Studio Marketplace.
Visual Studio Code: C# and .NET development for beginners
Have questions about Visual Studio Code and C# Dev Kit? Watch the C# and .NET Development in VS Code for Beginners series and start writing C# applications in VS Code.
Reactor series: GenAI for software developers
Step into the future of software development with the Reactor series. GenAI for Software Developers explores cutting-edge AI tools and techniques for developers, revolutionizing the way you build and deploy applications. Register today and elevate your coding skills.
Use GitHub Copilot for your Python coding
Discover a better way to code in Python. Check out this free Microsoft Learn module on how GitHub Copilot provides suggestions while you code in Python.
Getting started with the Fluent UI Blazor library
The Fluent UI Blazor library is an open-source set of Blazor components used for building applications that have a Fluent design. Watch this Open at Microsoft episode for an overview and find out how to get started with the Fluent UI Blazor library.
Remote development with Visual Studio Code
Find out how to tap into more powerful hardware and develop on different platforms from your local machine. Check out this Microsoft Learn path to explore tools in VS Code for remote development setups and discover tips for personalizing your own remote dev workflow.
Using GitHub Copilot with JavaScript
Use GitHub Copilot while you work with JavaScript. This Microsoft Learn module will tell you everything you need to know to get started with this AI pair programmer.
Generative AI for Beginners
Want to build your own GenAI application? The free Generative AI for Beginners course on GitHub is the perfect place to start. Work through 18 in-depth lessons and learn everything from setting up your environment to using open-source models available on Hugging Face.
Use OpenAI Assistants API to build your own cooking advisor bot on Teams
Find out how to build an AI assistant right into your app using the new OpenAI Assistants API. Learn about the open playground for experimenting and watch a step-by-step demo for creating a cooking assistant that will suggest recipes based on what’s in your fridge.
What’s new in Teams Toolkit for Visual Studio 17.9
What’s new in Teams Toolkit for Visual Studio? Get an overview of new tools and capabilities for .NET developers building apps for Microsoft Teams.
Embed a custom webpage in Teams
Find out how to share a custom web page, such as a dashboard or portal, inside a Teams app. It’s easier than you might think. This short video shows how to do this using Teams Toolkit for Visual Studio and Blazor.
Get to know GitHub Copilot in VS Code and be more productive
Get to know GitHub Copilot in VS Code and find out how to use it. Watch this video to see how incredibly easy it is to start working with GitHub Copilot…Just start coding and watch the AI go to work.
Customize Dev Containers in VS Code with Dockerfiles and Docker Compose
Dev containers offer a convenient way to deliver consistent and reproducible environments. Follow along with this video demo to customize your dev containers using Dockerfiles and Docker Compose.
Designing for Trust
Learn how to design trustworthy experiences in the world of AI. Watch a demo of an AI prompt injection attack and learn about setting up guardrails to protect the system.
AI Show: LLM Evaluations in Azure AI Studio
Don’t deploy your LLM application without testing it first! Watch the AI Show to see how to use Azure AI Studio to evaluate your app’s performance and ensure it’s ready to go live. Watch now.
What’s winget.pro?
The Windows Package Manager (winget) is a free, open-source package manager. So what is winget.pro? Watch this special edition of the Open at Microsoft show for an overview of winget.pro and to find out how it differs from the well-known winget.
Use Visual Studio for modern development
Want to learn more about using Visual Studio to develop and test apps. Start here. In this free learning path, you’ll dig into key features for debugging, editing, and publishing your apps.
Build your own assistant for Microsoft Teams
Creating your own assistant app is super easy. Learn how in under 3 minutes! Watch a demo using the OpenAI Assistants, Teams AI Library, and the new AI Assistant Bot template in VS Code.
GitHub Copilot fundamentals – Understand the AI pair programmer
Improve developer productivity and foster innovation with GitHub Copilot. Explore the fundamentals of GitHub Copilot in this free training path from Microsoft Learn.
How to get GraphQL endpoints with Data API Builder
The Open at Microsoft show takes a look at using Data API Builder to easily create Graph QL endpoints. See how you can use this no-code solution to quickly enable advanced—and efficient—data interactions.
Microsoft, GitHub, and DX release new research into the business ROI of investing in Developer Experience
Investing in the developer experience has many benefits and improves business outcomes. Dive into our groundbreaking research (with data from more than 2000 developers at companies around the world) to discover what your business can gain with better DevEx.
Build your custom copilot with your data on Teams featuring Azure the AI Dragon
Build your own copilot for Microsoft Teams in minutes. Watch this video to see how in this demo that builds an AI Dragon that will take your team on a cyber role-playing adventure.
Microsoft Graph Toolkit v4.0 is now generally available
Microsoft Graph Toolkit v4.0 is now available. Learn about its new features, bug fixes, and improvements to the developer experience.
Microsoft Mesh: Now available for creating innovative multi-user 3D experiences
Microsoft Mesh is now generally available, providing a immersive 3D experience for the virtual workplace. Get an overview of Microsoft Mesh and find out how to start building your own custom experiences.
Global AI Bootcamp 2024
Global AI Bootcamp is a worldwide annual event that runs throughout the month of March for developers and AI enthusiasts. Learn about AI through workshops, sessions, and discussions. Find an in-person bootcamp event near you.
Microsoft JDConf 2024
Get ready for JDConf 2024—a free virtual event for Java developers. Explore the latest in tooling, architecture, cloud integration, frameworks, and AI. It all happens online March 27-28. Learn more and register now.
Microsoft Tech Community – Latest Blogs –Read More