Strongly typed C# classes for Schema.org structured data, serializable to JSON-LD and XML for .NET applications.
Schema.NET is a .NET library that provides strongly typed C# classes for the entire Schema.org vocabulary. It allows developers to programmatically create structured data (like organization details, product information, or event metadata) and serialize it into JSON-LD or XML formats, primarily for embedding in HTML to improve SEO and enable rich search results.
.NET developers building websites, web applications, or UWP apps that require structured data markup for search engines or data sharing, particularly those focused on SEO optimization.
It eliminates the error-prone process of manually crafting JSON-LD or XML by offering compile-time safety, IntelliSense support, and flexible property handling that mirrors Schema.org's complex type system, all while providing built-in protection against XSS vulnerabilities.
Schema.org objects turned into strongly typed C# POCO classes for use in .NET. All classes can be serialized into JSON/JSON-LD and XML, typically used to represent structured data in the head section of html page.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Provides full IntelliSense support and compile-time checks for all Schema.org types, reducing errors in structured data creation, as shown in the simple example with WebSite.
Uses C# generics and structs to support single values, collections, and multiple allowed types via implicit conversions, mirroring Schema.org's complexity, as demonstrated with Address and Author properties.
Includes .ToHtmlEscapedString() method for safe embedding in HTML, preventing Cross-Site Scripting vulnerabilities from untrusted data, highlighted in the important security notice.
Built on .NET Standard, it runs on Windows, Linux, and macOS, with CI pipelines ensuring stability across environments, as noted in the cross-platform compatibility section.
Offers an optional NuGet package (Schema.NET.Pending) for experimental schema types, keeping up with Schema.org's evolving standards without waiting for finalization.
Including all Schema.org types can increase the assembly size, which might be a concern for lightweight applications or microservices aiming for minimal footprints.
The use of implicit conversions and generics for handling mixed property types, like in the Author example, can be confusing for developers not familiar with advanced C# features.
Library updates are required to incorporate new Schema.org types, potentially causing versioning issues or delays in accessing latest features, as the pending package is separate.