Sr. Content Developer at Microsoft, working remotely in PA, TechBash conference organizer, former Microsoft MVP, Husband, Dad and Geek.
148507 stories
·
33 followers

VS Code for the Web

1 Share
From: Microsoft Azure Developers
Duration: 19:12
Views: 27

Get started with VS Code for the Web - Azure to seamlessly run, debug and deploy your applications with no setup! This browser based VS Code environment allows you to work as you would locally, but wherever you are. Watch this video to see us create an enterprise-grade application, run it and deploy it to Azure within minutes!

🌮 Chapter Markers:
0:30 – Introduction
2:26 – VS Code for the Web - Azure Overview
5:21 - AI Template Entry Point Scenario
6:00 – Microsoft Foundry Entry Point Scenario
8:42 - RAG Chat Application - Enterprise-level Application Scenario
13:52 - GitHub Copilot in /azure
16:25 - RAG Chat Application Deployed - Testing Scenario
18:10 - Go to vscode.dev/azure to try it out today!

🌮 Resources
VS Code​ Docs: https://code.visualstudio.com/docs/azure/vscodeforweb

🌮 Follow us on social:
Scott Hanselman | @SHanselman – https://x.com/SHanselman
Meera Haridasa | @meeraharidasa - https://www.linkedin.com/in/meeraharidasa/

Blog - https://aka.ms/azuredevelopers/blog
Twitter - https://aka.ms/azuredevelopers/twitter
LinkedIn - https://aka.ms/azuredevelopers/linkedin
Twitch - https://aka.ms/azuredevelopers/twitch

#azuredeveloper #azure

Read the whole story
alvinashcraft
55 seconds ago
reply
Pennsylvania, USA
Share this story
Delete

We Built an App That Runs 10 Copilot Agents at Once — Here's How

1 Share
From: Gerald Versluis
Duration: 29:45
Views: 116

What if you could run dozens of GitHub Copilot coding agents in parallel, and control them all from one app? That's PolyPilot.

In this video we walk through what PolyPilot is, how it works, and why we built it. PolyPilot is a cross-platform app built with .NET MAUI and Blazor that lets you spin up, orchestrate, and monitor multiple Copilot agents — each with its own model, repo, and conversation — from a single dashboard. Or from your phone.

We cover:
⚡ Running parallel agents across repos with different models (Claude, GPT, Gemini)
📱 Remote access — monitor your agent fleet from your phone via DevTunnel
🌿 Worktree management for zero-conflict parallel work
🤖 Squad presets —launch pre-configured agent teams with one click
🔁 Reflection cycles for goal-based iterative refinement
💾 Session persistence — agents never lose context across restarts

The best part? Most of PolyPilot was built by Copilot agents, orchestrated from within PolyPilot itself.

💝 Join this channel to get access to perks:
https://www.youtube.com/channel/GeraldVersluis/join

🛑 Don't forget to subscribe to my channel for more cool content: https://www.youtube.com/GeraldVersluis/?sub_confirmation=1

🔗 Links
PolyPilot repo: https://github.com/PureWeen/PolyPilot
MauiDevFlow: https://github.com/Redth/MauiDevFlow
@GoneDotNet: https://www.youtube.com/@GoneDotNet

⏱ Timestamps
00:00 - PolyPilot - Run an army of GitHub Copilot agents from a single app
00:27 - What is PolyPilot?
03:05 - PolyPilot in Action
04:02 - Enhance PolyPilot from within PolyPilot
05:36 - Create a new Copilot orchestration/fleet
08:55 - Manage GitHub Copilot sessions
11:11 - Demo: Implement new PolyPilot feature using PolyPilot
16:08 - PolyPilot Mobile app: command Copilot from remote
19:42 - MauiDevFlow
25:17 - Chat, Plan, Autopilot Modes
28:36 - Use PolyPilot for everything!

#githubcopilot #ai #copilot #githubcopilotcli

Read the whole story
alvinashcraft
1 minute ago
reply
Pennsylvania, USA
Share this story
Delete

SE Radio 709: Bryan Cantrill on the Data Center Control Plane

1 Share

Bryan Cantrill, the co-founder and CTO of Oxide Computer company, speaks with host Jeremy Jung about challenges in deploying hardware on-premises at scale. They discuss the difficulty of building up Samsung data centers with off-the-shelf hardware, how vendors silently replace components that cause performance problems, and why AWS and Google build their own hardware. Bryan describes the security vulnerabilities and poor practices built into many baseboard management controllers, the purpose of a control plane, and his experiences building one in NodeJS while struggling with the runtime's future during his time at Joyent. He explains why Oxide chose to use Rust for its control plane and the OpenSolaris-based Illumos as the operating system for their vertically integrated rack-scale hardware, which is designed to help address a number of these key challenges.

Brought to you by IEEE Computer Society and IEEE Software magazine.





Download audio: https://traffic.libsyn.com/secure/seradio/709-bryan-cantrill-oxide-computer-control-planes.mp3?dest-id=23379
Read the whole story
alvinashcraft
1 minute ago
reply
Pennsylvania, USA
Share this story
Delete

The Second Beta of Android 17

1 Share

Posted by Matthew McCullough, VP Product Management, Android Developer


Today we're releasing the second beta of Android 17, continuing our work to build a platform that prioritizes privacy, security, and refined performance. This update delivers a range of new capabilities, including the EyeDropper API and a privacy-preserving Contacts Picker. We're also adding advanced ranging, cross-device handoff APIs, and more.

This release continues the shift in our release cadence, following this annual major SDK release in Q2 with a minor SDK update.

User Experience & System UI

Bubbles

Bubbles is a windowing mode feature that offers a new floating UI experience separate from the messaging bubbles API. Users can create an app bubble on their phone, foldable, or tablet by long-pressing an app icon on the launcher. On large screens, there is a bubble bar as part of the taskbar where users can organize, move between, and move bubbles to and from anchored points on the screen.


You should follow the guidelines for supporting multi-window mode to ensure your apps work correctly as bubbles.


EyeDropper API


A new system-level EyeDropper API allows your app to request a color from any pixel on the display without requiring sensitive screen capture permissions.


val eyeDropperLauncher = registerForActivityResult(ActivityResultContracts.StartActivityForResult()) {
  result -> if (result.resultCode == Activity.RESULT_OK) {
    val color = result.data?.getIntExtra(Intent.EXTRA_COLOR, Color.BLACK)
    // Use the picked color in your app
  }
}

fun launchColorPicker() {
  val intent = Intent(Intent.ACTION_OPEN_EYE_DROPPER)
  eyeDropperLauncher.launch(intent)
}

Contacts Picker

A new system-level contacts picker via ACTION_PICK_CONTACTS grants temporary, session-based read access to only the specific data fields requested by the user, reducing the need for the broad READ_CONTACTS permissions. It also allows for selections from the device’s personal or work profiles.






val contactPicker = rememberLauncherForActivityResult(StartActivityForResult()) {
    if (it.resultCode == RESULT_OK) {
        val uri = it.data?.data ?: return@rememberLauncherForActivityResult
        // Handle result logic
        processContactPickerResults(uri)
    }
}

val dataFields = arrayListOf(Email.CONTENT_ITEM_TYPE, Phone.CONTENT_ITEM_TYPE)
val intent = Intent(ACTION_PICK_CONTACTS).apply {
    putStringArrayListExtra(EXTRA_PICK_CONTACTS_REQUESTED_DATA_FIELDS, dataFields)
    putExtra(EXTRA_ALLOW_MULTIPLE, true)
    putExtra(EXTRA_PICK_CONTACTS_SELECTION_LIMIT, 5)
}

contactPicker.launch(intent)


Easier pointer capture compatibility with touchpads

Previously, touchpads reported events in a very different way from mice when an app had captured the pointer, reporting the locations of fingers on the pad rather than the relative movements that would be reported by a mouse. This made it quite difficult to support touchpads properly in first-person games. Now, by default the system will recognize pointer movement and scrolling gestures when the touchpad is captured, and report them just like mouse events. You can still request the old, detailed finger location data by explicitly requesting capture in the new “absolute” mode.


// To request the new default relative mode (mouse-like events)
// This is the same as requesting with View.POINTER_CAPTURE_MODE_RELATIVE
view.requestPointerCapture()

// To request the legacy absolute mode (raw touch coordinates)
view.requestPointerCapture(View.POINTER_CAPTURE_MODE_ABSOLUTE)


Interactive Chooser resting bounds

By calling getInitialRestingBounds on Android's ChooserSession, your app can identify the target position the Chooser occupies after animations and data loading are complete, enabling better UI adjustments.

Connectivity & Cross-Device

Cross-device app handoff

A new Handoff API allows you to specify application state to be resumed on another device, such as an Android tablet. When opted in, the system synchronizes state via CompanionDeviceManager and displays a handoff suggestion in the launcher of the user's nearby devices. This feature is designed to offer seamless task continuity, enabling users to pick up exactly where they left off in their workflow across their Android ecosystem. Critically, Handoff supports both native app-to-app transitions and app-to-web fallback, providing maximum flexibility and ensuring a complete experience even if the native app is not installed on the receiving device.


Advanced ranging APIs

We are adding support for 2 new ranging technologies - 

  1. UWB DL-TDOA which enables apps to use UWB for indoor navigation. This API surface is FIRA (Fine Ranging Consortium) 4.0 DL-TDOA spec compliant and enables privacy preserving indoor navigation  (avoiding tracking of the device by the anchor).

  2. Proximity Detection which enables apps to use the new ranging specification being adopted by WFA (WiFi Alliance). This technology provides improved reliability and accuracy compared to existing Wifi Aware based ranging specification.

Data plan enhancements

To optimize media quality, your app can now retrieve carrier-allocated maximum data rates for streaming applications using getStreamingAppMaxDownlinkKbps and
getStreamingAppMaxUplinkKbps.

Core Functionality, Privacy & Performance

Local Network Access

Android 17 introduces the ACCESS_LOCAL_NETWORK runtime permission to protect users from unauthorized local network access. Because this falls under the existing NEARBY_DEVICES permission group, users who have already granted other NEARBY_DEVICES permissions will not be prompted again. By declaring and requesting this permission, your app can discover and connect to devices on the local area network (LAN), such as smart home devices or casting receivers. This prevents malicious apps from exploiting unrestricted local network access for covert user tracking and fingerprinting. Apps targeting Android 17 or higher will now have two paths to maintain communication with LAN devices: adopt system-mediated, privacy-preserving device pickers to skip the permission prompt, or explicitly request this new permission at runtime to maintain local network communication.

Time zone offset change broadcast

Android now provides a reliable broadcast intent, ACTION_TIMEZONE_OFFSET_CHANGED, triggered when the system's time zone offset changes, such as during Daylight Saving Time transitions. This complements the existing broadcast intents ACTION_TIME_CHANGED and ACTION_TIMEZONE_CHANGED, which are triggered when the Unix timestamp changes and when the time zone ID changes, respectively.


NPU Management and Prioritization

Apps targeting Android 17 that need to directly access the NPU must declare FEATURE_NEURAL_PROCESSING_UNIT in their manifest to avoid being blocked from accessing the NPU. This includes apps that use the LiteRT NPU delegate, vendor-specific SDKs, as well as the deprecated NNAPI.


ICU 78 and Unicode 17 support

Core internationalization libraries have been updated to ICU 78, expanding support for new scripts, characters, and emoji blocks, and enabling direct formatting of time objects.

SMS OTP protection

Android is expanding its SMS OTP protection by automatically delaying access to SMS messages with OTP. Previously, the protection was primarily focused on the SMS Retriever format wherein the delivery of messages containing an SMS retriever hash is delayed for most apps for three hours. However, for certain apps like the default SMS app, etc and the app that corresponds to the hash are exempt from this delay. This update extends the protection to all SMS messages with OTP. For most apps, SMS messages containing an OTP will only be accessible after a delay of three hours to help prevent OTP hijacking. The SMS_RECEIVED_ACTION broadcast will be withheld and sms provider database queries will be filtered. The SMS message will be available to these apps after the delay.


Delayed access to WebOTP format SMS messages

If the app has the permission to read SMS messages but is not the intended recipient of the OTP (as determined by domain verification), the WebOTP format SMS message will only be accessible after three hours have elapsed. This change is designed to improve user security by ensuring that only apps associated with the domain mentioned in the message can programmatically read the verification code. This change applies to all apps regardless of their target API level.

Delayed access to standard SMS messages with OTP

For SMS messages containing an OTP that do not use the WebOTP or SMS Retriever formats, the OTP SMS will only be accessible after three hours for most apps. This change only applies to apps that target Android 17 (API level 37) or higher.

Certain apps such as the default SMS, assistant app, along with connected device companion apps, etc will be exempt from this delay.

All apps that rely on reading SMS messages for OTP extraction should transition to using SMS Retriever or SMS User Consent APIs to ensure continued functionality.


The Android 17 schedule

We're going to be moving quickly from this Beta to our Platform Stability milestone, targeted for March. At this milestone, we'll deliver final SDK/NDK APIs. From that time forward, your app can target SDK 37 and publish to Google Play to help you complete your testing and collect user feedback in the several months before the general availability of Android 17.


A year of releases

We plan for Android 17 to continue to get updates in a series of quarterly releases. The upcoming release in Q2 is the only one where we introduce planned app breaking behavior changes. We plan to have a minor SDK release in Q4 with additional APIs and features.





Get started with Android 17

You can enroll any supported Pixel device to get this and future Android Beta updates over-the-air. If you don’t have a Pixel device, you can use the 64-bit system images with the Android Emulator in Android Studio.

If you are currently in the Android Beta program, you will be offered an over-the-air update to Beta 2.

If you have Android 26Q1 Beta and would like to take the final stable release of 26Q1 and exit Beta, you need to ignore the over-the-air update to 26Q2 Beta 2 and wait for the release of 26Q1.

We're looking for your feedback so please report issues and submit feature requests on the feedback page. The earlier we get your feedback, the more we can include in our work on the final release.

For the best development experience with Android 17, we recommend that you use the latest preview of Android Studio (Panda). Once you’re set up, here are some of the things you should do:

  • Compile against the new SDK, test in CI environments, and report any issues in our tracker on the feedback page.

  • Test your current app for compatibility, learn whether your app is affected by changes in Android 17, and install your app onto a device or emulator running Android 17 and extensively test it.

We’ll update the preview/beta system images and SDK regularly throughout the Android 17 release cycle. Once you’ve installed a beta build, you’ll automatically get future updates

over-the-air for all later previews and Betas.

For complete information, visit the Android 17 developer site.

Join the conversation

As we move toward Platform Stability and the general availability of Android 17 later this year, your feedback remains our most valuable asset. Whether you’re an early adopter on   the Canary channel or an app developer testing on Beta 2, consider joining our communities and filing feedback. We’re listening.
Read the whole story
alvinashcraft
1 minute ago
reply
Pennsylvania, USA
Share this story
Delete

Don't use the Microsoft Timestamp Server for Signing

1 Share

Signing Failed Banner

If you're using any of the Microsoft Signing technologies like Trusted Signing, one thing you might run into is frequent failures of the default, suggested timestamp server that Microsoft uses in their examples:

$timeServer = "http://timestamp.acs.microsoft.com"

For signing code with trusted signing like this:

$timeServer = "http://timestamp.acs.microsoft.com"

$args = @(
    "sign", "/v", "/debug", "/fd", "SHA256",
    "/tr", "$timeServer",
    "/td", "SHA256",
    "/dlib", "$env:LOCALAPPDATA\Microsoft\MicrosoftTrustedSigningClientTools\Azure.CodeSigning.Dlib.dll",
    "/dmdf", ".\SignfileMetadata.json"
)
# Add non-empty file arguments
foreach ($f in @($file, $file1, $file2, $file3, $file4, $file5, $file6, $file7)) {
    if (![string]::IsNullOrWhiteSpace($f)) {
        $args += $f
    }
}

# Run signtool and capture the exit code
.\signtool.exe $args

This works about 80% of the time for me. I end up signing 8 files per distribution (several app binaries and the final setup Exe) and quite frequently one of those sign operations (mostly the last one of the larger set up exe) fails with:

Signing Failed With Microsoft Time Service

It's crazy to think that something as simple as a timestamp server could fail, but leave it to Microsoft to screw that up. 💩

Use a different TimeStamp Server

The solution to this is simple: Don't use the Microsoft server and instead switch to a different signing compatible server.

I've been using the DigiCert's server with this Url:

$timeServer = "http://timestamp.digicert.com"

and that has solved the problem for me at the moment. No more signing errors.

Resources

  • Fighting through Setting up Microsoft Trusted Signing

  • Alternate Timestamp Servers

    • DigiCert

      • http://timestamp.digicert.com
      • http://timestamp.digicert.com/ts (alt endpoint)
    • Sectigo (Comodo)

      • http://timestamp.sectigo.com
      • http://timestamp.comodoca.com/rfc3161
    • GlobalSign

      • http://timestamp.globalsign.com/?signature=sha2
    • SSL.com

      • http://ts.ssl.com
      • http://ts.ssl.com/rfc3161
    • Entrust

      • http://timestamp.entrust.net/TSS/RFC3161sha2TS
    • Certum (Asseco)

      • http://time.certum.pl

© Rick Strahl, West Wind Technologies, 2005-2026
Posted in Security  Windows  
Read the whole story
alvinashcraft
2 minutes ago
reply
Pennsylvania, USA
Share this story
Delete

Azure DocumentDB: A Fully Managed MongoDB-Compatible Database

1 Share

Running MongoDB at scale eventually forces a trade-off: invest heavily in managing your own infrastructure or move to a managed service and risk losing the compatibility and portability your team depends on. 

Azure DocumentDB is a fully managed, MongoDB-compatible database on Azure, built on an MIT-licensed open-source engine that runs consistently across on-premises, hybrid, and cloud environments. Developers keep the skills and tooling they already have. Infrastructure teams get a pricing model built on compute and storage, with no licensing fees and no throughput unit calculations. 

A detailed infographics on Azure DocumentDB. Talking about key capabilities like 99.03% MongoDB Compatibility.

Key Capabilities 

MongoDB Compatibility 

Azure DocumentDB is fully MongoDB-compatible database, so existing drivers, tools, and frameworks connect without modification. MongoDB Shell, LangChain, pymongo, and all major MongoDB drivers are supported out of the box, along with your existing indexes, query patterns, and aggregation pipelines. 

DocumentDB delivers 99.03% MongoDB compatibility while keeping the implementation transparent and community-driven 

For developers, that means no code changes, no retraining, and no new mental model to adopt. Your team continues working with the tools and patterns they already know. For engineering leads evaluating a migration, it means the scope of the project stays focused on infrastructure, not application code, which significantly reduces both the timeline and the risk of moving a production workload to a managed service. 

Predictable Pricing for MongoDB Workloads

Azure DocumentDB uses a straightforward compute and storage pricing model where both dimensions scale independently, with no throughput unit calculations or licensing fees on top. Backups are included at no extra charge for 35 days.  

The Price you See is the Price you Pay 

Service Included
Compute Fixed monthly price
Storage Fixed monthly price
Backups (35 days) Free
Metrics and charts Free
Product support Free
Networking Free
Licensing costs None
Additional fees None

In practice, that means fewer surprise bills when a query pattern changes, simpler capacity planning conversations with finance, and less time spent modeling cost scenarios before you can commit to a deployment. For teams that have managed throughput-based pricing models before, the operational simplification is significant. 

Table comparing pricing and configuration between DocumentDB (high availability) and Atlas (AWS) with savings percentages. Columns: SKU | vCores per node | Memory per node | Disk size configured | DocumentDB (high availability) | Atlas (AWS), same config | Savings with DocumentDB Rows: M30: 2 vCores, 8 GB memory, 64 GB disk — DocumentDB $0.296, Atlas $0.570 — 48% savings M40: 4 vCores, 16 GB memory, 128 GB disk — DocumentDB $0.592, Atlas $1.090 — 46% savings M50: 8 vCores, 32 GB memory, 256 GB disk — DocumentDB $1.185, Atlas $2.110 — 44% savings M60: 16 vCores, 64 GB memory, 512 GB disk — DocumentDB $2.369, Atlas $4.180 — 43% savings M60 (larger disk): 16 vCores, 64 GB memory, 16384 GB disk — DocumentDB $7.370, Atlas $24.560 — 70% savings M80: 32 vCores, 128 GB memory, 1024 GB disk — DocumentDB $4.737, Atlas $7.760 — 39% savings M200: 64 vCores, 256 GB memory, 2048 GB disk — DocumentDB $9.473, Atlas $15.510 — 39% savings M300: 96 vCores, 384 GB memory, 2048 GB disk — DocumentDB $13.887, Atlas $22.670 — 39% savings Overall, the table shows lower hourly pricing for DocumentDB across all SKUs, with savings ranging from 39% to 70% compared to Atlas on AWS.

Customers can achieve meaningful cost savings compared to managed MongoDB offerings on AWS, driven by predictable vCore pricing and independent compute and storage scaling 

Scaling High-Traffic MongoDB Applications

Azure DocumentDB’s schema-agnostic design means your data model can evolve without migrations or downtime, and its architecture is built to scale with you as traffic grows. 

Consider a retail application during a flash sale. Traffic that normally hums along at a steady pace suddenly multiplies within minutes. The database needs to absorb that spike without throttling requests or letting response times creep up. With Azure DocumentDB, you scale up the compute tier to meet the moment, then scale back down once it passes. No over-provisioned cluster sitting idle the rest of the year, and no sharding complexity until your data demands it. The high-throughput, low-latency architecture keeps response times really low through those peaks, which is the difference between a sale that converts and one that doesn’t.   

How Tata Neu delivers personalized shopping experiences for millions of users

Tata Digital built exactly this kind of experience on Azure DocumentDB. Their Tata Neu platform serves millions of customers across dozens of brands, with a single sign-on system processing hundreds of authentication requests per second while maintaining millisecond transaction times. NeuPass, their unified loyalty program, consolidates what used to be fragmented programs across brands into one experience for several hundred million members.

Tata Neu using Azure DocumentDB. Four smartphone screens showing a dark-themed mobile app with bill payments, rewards dashboard, shopping offers, and category browsing features.

“Azure DocumentDB provides the dependable performance, elasticity, and consistency needed to power Tata Digital’s authentication platform at scale.” — Vinay Vaidya, Chief Technology and Product Officer, Tata Digital 

Additionally, the service is backed by a 99.995% availability SLA across the full-service stack, covering compute, storage, and networking. For teams operating at enterprise scale, that end-to-end SLA removes a common gap in availability guarantees that only cover part of the infrastructure. 

Hybrid and Multi-Cloud Deployments with DocumentDB

The DocumentDB Kubernetes Operator runs the same open-source engine on-premises, on other clouds, and on Azure. The MongoDB-compatible interface stays consistent across all three environments. For enterprises with data sovereignty requirements or architectural needs that span multiple environments, the same interface can be used across on-premises, cloud, and Azure-managed deployments, enabling hybrid and multi-cloud patterns where required.

A good example is a retailer running point-of-sale systems at the store level alongside a centralized e-commerce and inventory platform. Store databases need to handle transactions locally, even when connectivity is unreliable, while headquarters needs to aggregate that data globally for reporting and fulfillment. Because the same engine runs on both ends, data syncs between on-premises and cloud in real time, often within seconds, and teams avoid the overhead of maintaining separate operational models or wiring together two different database configurations just to keep everything in sync.

Enterprise Integration for MongoDB Workloads

Azure DocumentDB runs as a first-party Azure service, which means it integrates directly with Microsoft Entra ID for authentication and role-based access control, Azure Monitor for metrics and diagnostics, Azure Policy for governance enforcement across your organization, and supports secure networking via Azure Virtual Network (VNet) using Azure Private Link and Private Endpoints. 

Vector Search for MongoDB Workloads

Teams building AI applications often end up managing a document store and a separate vector database side by side. Azure DocumentDB includes native vector indexing alongside document data, enabling RAG pipelines and similarity search without introducing a separate vector store. Your documents and your embeddings live in the same collection, queryable together with hybrid search that combines vector similarity, BM25 full-text, and field filters, all over a single connection string. 

In independent benchmarking, Azure DocumentDB achieved 11x higher throughput and 14x lower latency against competing solutions. 

Start Running MongoDB Workloads on Azure DocumentDB

Create a cluster in the Azure portal, check out the new product pagereview pricing, and follow the migration guidance to migrate your MongoDB workloads. Teams can evaluate DocumentDB locally using the open-source project, then move to managed clusters on Azure when ready. We’re excited to see what you build. For teams that need hands-on assistance, several options are available. Teams can nominate for the Cloud Migration Factory program, which provides 100% free migration support with direct Microsoft assistance. The product team is also reachable directly, and the migration support team can be contacted at cdbmigrationsupport@microsoft.com.

About Azure DocumentDB  

Azure DocumentDB is a fully managed enterprise-grade MongoDB-compatible database and vector database for modern app development, including AI applications. With its predictable low costs, Open-source project, as well as 99.03% MongoDB compatibility, it is ideal for any MongoDB application running on Azure. 

The post Azure DocumentDB: A Fully Managed MongoDB-Compatible Database appeared first on Azure Cosmos DB Blog.

Read the whole story
alvinashcraft
2 minutes ago
reply
Pennsylvania, USA
Share this story
Delete
Next Page of Stories