Compatibility philosophy

Familiar organization and useful behavior compatibility—without claiming to reproduce the managed execution environment.

ConceptEvaluation guide

Intended compatibility

  • Recognizable System::* namespaces, type names and porting patterns
  • Useful behavior compatibility for the implemented subset
  • Exception shapes and validation behavior where implementation and tests establish the contract
  • A practical bridge for native ports, especially CNA and related framework/game work

What a matching name does not promise

API completeness, every overload, identical representation, identical Unicode units, identical scheduling, or every edge-case result must be checked per subsystem. Native C++ constraints can make exact managed semantics undesirable or impossible.

Intentional exclusions

Managed facilitySharp Runtime boundary
CLR / JIT / assembliesNo managed execution or arbitrary assembly loading
Garbage collectionRAII and explicit native ownership
General reflectionBasic type identity only; no metadata universe or member enumeration
Dynamic invocationDelegate::DynamicInvoke is deliberately unsupported
P/Invoke / remotingNo general managed interop or AppDomain/remoting infrastructure
Serialization infrastructureNo BinaryFormatter-style general object serialization
TLS / certificatesNo TLS transport, certificate stack or SslStream
C# async syntaxTask types do not add language-level async/await to C++

Important representation reductions

  • Strings are UTF-8 std::string-based; some indices and lengths are storage bytes rather than .NET UTF-16 code units.
  • Delegates use typed C++ callables; late-bound invocation is absent.
  • Reflection is type-identification oriented rather than metadata driven.
  • Task scheduling and continuation behavior are implemented with native synchronization and threads, not a CLR scheduler.
Evaluate by surface

Use the component family pages and Known Limitations as the public contract. They separate implemented behavior, reductions, platform limits and non-goals.