microsoft / oat Goto Github PK
View Code? Open in Web Editor NEWObject Analysis Toolkit is a C# library for analyzing objects using Rules.
License: MIT License
Object Analysis Toolkit is a C# library for analyzing objects using Rules.
License: MIT License
Description:
The Sandbox contains broken "Add String" buttons when viewing the following object types:
Expected behavior:
The "Add String" buttons should add strings to a list displayed as a dropdown
To Reproduce:
Steps to reproduce the behavior:
Configuration:
Description:
In the Sandbox, constructor parameters with enum types are displayed as text input fields in 'Create' mode.
Expected behavior:
Enums should be displayed as dropdown selection boxes that contain enum values in 'Create' mode.
To Reproduce:
Steps to reproduce the behavior:
Configuration:
Add a string field Lambda
to clause that when not null contains C# code to execute in lieu of writing a delegate ahead of time.
Lambda
is set Lambda
is used.CustomOperation
field.CustomOperation
is still required to label the operation.Follow up from #81. Dictionaries keyed with other objects may be useful. For example, ASA has a dictionary keyed with a tuple of an Enum and a uint.
Also should improve the handling of what can be contained in the value of a dictionary as currently it uses a scaffold for the second parameter even if it doesn't need one
Line 13 of ObjectInput.razor
Currently when you try to build release you get a linker error about Blazor.FileReader. We need to resolve this so we can publish a trimmed Release version of OAT Wasm.
Fatal error in Mono IL Linker
/Users/gabe/.nuget/packages/microsoft.aspnetcore.components.webassembly.build/3.2.1/targets/Blazor.MonoRuntime.targets(326,5): error : Unhandled exception. Mono.Cecil.AssemblyResolutionException: Failed to resolve assembly: 'Blazor.FileReader, Version=0.11.19128.0, Culture=neutral, PublicKeyToken=null' [/Users/gabe/Documents/GitHub/OAT/OAT.Blazor/OAT.Blazor.csproj]
---> Mono.Cecil.AssemblyResolutionException: Failed to resolve assembly: 'Blazor.FileReader, Version=0.11.19128.0, Culture=neutral, PublicKeyToken=null'
at Mono.Cecil.BaseAssemblyResolver.Resolve(AssemblyNameReference name, ReaderParameters parameters)
at Mono.Linker.AssemblyResolver.Resolve(AssemblyNameReference name, ReaderParameters parameters)
at Mono.Linker.LinkContext.Resolve(IMetadataScope scope)
at Mono.Linker.LinkContext.Resolve(IMetadataScope scope)
at Mono.Linker.LinkContext.ResolveReferences(AssemblyDefinition assembly)
at Mono.Linker.Steps.LoadReferencesStep.ProcessReferences(AssemblyDefinition assembly)
at Mono.Linker.Steps.LoadReferencesStep.ProcessAssembly(AssemblyDefinition assembly)
at Mono.Linker.Steps.BaseStep.Process(LinkContext context)
at Mono.Linker.Pipeline.ProcessStep(LinkContext context, IStep step)
at Mono.Linker.Pipeline.Process(LinkContext context)
at Mono.Linker.Driver.Run(ILogger customLogger)
at Mono.Linker.Driver.Execute(String[] args, ILogger customLogger)
at Mono.Linker.Driver.Main(String[] args)
/Users/gabe/.nuget/packages/microsoft.aspnetcore.components.webassembly.build/3.2.1/targets/Blazor.MonoRuntime.targets(326,5): error : ILLink failed with exit code 134. [/Users/gabe/Documents/GitHub/OAT/OAT.Blazor/OAT.Blazor.csproj]
Follow on from #79 where we added support for Lists of any type of object.
Create a blazor sandbox to play with the demo objects and rules and to create your own objects and rules based on assemblies you provide.
This requires a rewrite of the EnumerateRuleIssues API. Likely to
public (bool Applies, List<Violation>) EnumerateRuleIssues
.
You may get a lot of warnings when loading stuff in the sandbox which pushes the interactive content way down the page. The messages should scroll or collapse or some other hiding method by default to reduce the amoutn of page they take up.
Currently we only check object Properties and ignore Object fields.
We should also allow running rules against Object fields.
Using the code from operations tests
Show the full list of assemblies that the user has loaded in the Sandbox and Author pages
Probably as a Select dropdown.
When calling ctors for objects in Blazor we should include all the assemblies that the user has loaded so that Types that require components from another Assembly can be created.
For example, if you try to change the value of a field of a ValueTuple it will successfully recursively get the valuetuple and then successfully set the value of the field. But because it was passed by value it only changes the value in the local copy, not the original that was passed in.
i.e. for strings etc. Depends on .NET 6.
Description:
In the Sandbox, objects containing flag enum members do not display corresponding enum content when viewed. Only the label is displayed.
E.g. see FirewallObject flag enum member 'Profiles'
Expected behavior:
Objects in 'View' mode should display all possible enum flag values as checkboxes, defaulting to unchecked.
To Reproduce:
Steps to reproduce the behavior:
Configuration:
Blocked by dotnet/roslyn#39501
Description:
The Sandbox contains broken "Add KVP" buttons when viewing the following object types:
Expected behavior:
The "Add KVP" buttons should add KVP to a list displayed as a dropdown
To Reproduce:
Steps to reproduce the behavior:
Configuration:
For reporting purposes it is valuable to identify which of N number of patterns in a Clause represented in the Data list were actually responsible for the capture. There doesn't appear to be a way to determine that today. For example:
var trueRegexObject = "zcash";
var regexRule = new Rule("Regex Rule")
{
Clauses = new List<Clause>()
{
new Clause(Operation.Regex)
{
Data = new List<string>()
{
"cardano|ethereum|cryptocurrency",
"p2pool|miner|ripple|nxt|tether|ether|btc|zcash|monero|merkleroot|xmr|eth"
}
}
}
};
var regexAnalyzer = new Analyzer();
var ruleList = new List<Rule>() { regexRule };
IEnumerable<RuleCapture> captures = regexAnalyzer.GetCaptures(ruleList, trueRegexObject);
Remove the dependency on Newtonsoft.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.