Skip to content

Conversation

@youcefnb
Copy link

🎟️ Tracking

https://community.bitwarden.com/t/request-for-broader-platform-compatibility-for-bitwarden-sdk/90303

📔 Objective

Targeting the Bitwarden SDK for .NET Core (or .NET 6+) creates significant compatibility issues for legacy applications that run on .NET Framework (such as 4.7.2 or 4.8.x). .NET Framework apps cannot directly reference libraries built only for .NET Core/.NET 6+ due to runtime differences, which forces developers to use workarounds.

To make this project compatible with .NET Standard, I had to switch from System.Text.Json to Newtonsoft.Json for JSON serialization. This is because QuickType’s schema generation for System.Text.Json currently outputs code that uses types like DateOnly and TimeOnly, which are not available in .NET Standard (they require .NET 6+). As a result, projects targeting .NET Standard will encounter build errors with System.Text.Json-generated code.

There is an existing feature request on the QuickType repository to address this problem: glideapps/quicktype#2629. The proposal suggests adding configuration options to QuickType so that it can generate C# code compatible with .NET Standard when using System.Text.Json, avoiding unsupported types.

Until that feature is implemented, switching to Newtonsoft.Json is necessary when targeting .NET Standard to ensure compatibility.

⏰ Reminders before review

  • Contributor guidelines followed
  • All formatters and local linters executed and passed
  • Written new unit and / or integration tests where applicable
  • Protected functional changes with optionality (feature flags)
  • Used internationalization (i18n) for all UI strings
  • CI builds passed
  • Communicated to DevOps any deployment requirements
  • Updated any necessary documentation (Confluence, contributing docs) or informed the documentation
    team

🦮 Reviewer guidelines

  • 👍 (:+1:) or similar for great changes
  • 📝 (:memo:) or ℹ️ (:information_source:) for notes or general info
  • ❓ (:question:) for questions
  • 🤔 (:thinking:) or 💭 (:thought_balloon:) for more open inquiry that's not quite a confirmed
    issue and could potentially benefit from discussion
  • 🎨 (:art:) for suggestions / improvements
  • ❌ (:x:) or ⚠️ (:warning:) for more significant problems or concerns needing attention
  • 🌱 (:seedling:) or ♻️ (:recycle:) for future improvements or indications of technical debt
  • ⛏ (:pick:) for minor or nitpick changes

@youcefnb youcefnb requested a review from a team as a code owner October 27, 2025 19:32
@CLAassistant
Copy link

CLAassistant commented Oct 27, 2025

CLA assistant check
All committers have signed the CLA.

@CLAassistant
Copy link

CLA assistant check
Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.
You have signed the CLA already but the status is still pending? Let us recheck it.

@bitwarden-bot
Copy link

Thank you for your contribution! We've added this to our internal tracking system for review.
ID: PM-27499
Link: https://bitwarden.atlassian.net/browse/PM-27499

Details on our contribution process can be found here: https://contributing.bitwarden.com/contributing/pull-requests/community-pr-process.

@bitwarden-bot bitwarden-bot changed the title Refactor SDK for .NetStandard + Newtonsoft.Json [PM-27499] Refactor SDK for .NetStandard + Newtonsoft.Json Oct 27, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants