RideCompiler 1.0.0
See the version list below for details.
dotnet add package RideCompiler --version 1.0.0
NuGet\Install-Package RideCompiler -Version 1.0.0
<PackageReference Include="RideCompiler" Version="1.0.0" />
<PackageVersion Include="RideCompiler" Version="1.0.0" />
<PackageReference Include="RideCompiler" />
paket add RideCompiler --version 1.0.0
#r "nuget: RideCompiler, 1.0.0"
#:package RideCompiler@1.0.0
#addin nuget:?package=RideCompiler&version=1.0.0
#tool nuget:?package=RideCompiler&version=1.0.0
RideCompiler Analyzers
This directory contains Roslyn analyzers which strictly enforce the architectural and coding conventions required by rIDE on all StarterKit-based projects. These analyzers ensure that repositories remain fully compatible with rIDE's automation, code generation, and collaborative tooling.
Note: These analyzers are developed and maintained exclusively for the official rIDE infrastructure. External contributions are not accepted. Their scope and rules are tightly coupled to rIDE product needs and may change as required.
Purpose
RideCompiler analyzers guarantee that all code in StarterKit-based projects adheres to rIDE's mandatory conventions for:
- Class and artifact roles (Managers, Engines, Accessors, Utilities)
- Data Transfer Objects (DTOs) structure and constraints
- Dependency injection structure
- Allowable code interdependencies
Strict enforcement ensures seamless integration with the rIDE ecosystem and reliable code automation.
Analyzer Rules
RIDE0001: Manager method input/output and interface enforcement
- Ensures:
- Manager classes implement
IManagerService
. - Manager methods have zero or one parameter (must be a DTO if present).
- Method return types are either
void
or a DTO (never collection, primitive, or nullable types). - Managers do not call other managers directly.
- Manager classes implement
RIDE0002: Utility methods must be static
- Ensures: Utility classes (under
App.*.Utilities
) contain only static methods (except constructors).
RIDE0003: DTO field enforcement
Ensures:
- DTOs (
Contracts.Dto.*
) only have properties of explicitly allowed types -- see below for the updated allowed type set.
Allowed:
int
,long
,short
,float
,double
,decimal
,bool
,Guid
,DateTime
,void
,string
,object
- Nullable (
Foo?
) for any allowed type - Arrays (
Foo[]
) and generic collections:List<T>
,IEnumerable<T>
,IList<T>
,Dictionary<TKey, TValue>
where key/value are allowed Task
,Task<T>
(with T allowed)- Other DTOs and enums (from correct namespaces)
- DTOs (
RIDE0004: Engine dependency enforcement
- Ensures: Engines cannot call other engines or managers.
RIDE0005: Accessor dependency and convention enforcement
- Ensures: Accessors cannot call managers, engines, or other accessors.
RIDE0006: Orphaned class or method warning
- Warns: Classes not referenced by any managers and not themselves managers.
RIDE0007: Dependency Injection Enforcement
- Ensures: All managers, engines, and accessors are registered in
Program.cs
for dependency injection.
Usage: StarterKit Project Compliance
- Add the RideCompiler analyzer to your .NET solution (StarterKit projects managed by rIDE include this by default).
- Violations appear as errors or warnings in your IDE/build output when any convention is broken.
- Resolve all RIDE0001–RIDE0007 diagnostics to ensure rIDE compatibility.
Release Tracking
AnalyzerReleases.Shipped.txt
: List of released and enforced analyzers.AnalyzerReleases.Unshipped.txt
: Diagnostics under active development.
Maintainers
- These analyzers are maintained by the rIDE team. Do not submit PRs or requests. All changes are driven by internal rIDE requirements.
License
Copyright © CodeBuddy Team
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
.NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
.NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen40 was computed. tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- No dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Initial prerelease with rules RIDE0001–RIDE0007.