I just made an abstract version of Olive which only consists extensions and basic tooling omitting all of the package and analysis dependencies and only using ONE first party library which can be used in almost all of the .NET cross platform scenarios.
Why I did this?
Smaller footprint, more useful tooling, more cross purpose view is what I had for this.
Smaller footprint and no (third party) dependency approach can help the developers have smaller packages and less build times during AOT compilation.
In some of my projects I found out that I don't need GCop and/or any sort of 3rd party code analysis tool
In some code analysis scenarios, like compiling a Uno Platform project, which the compiler is heavily dependent on Roslyn, the build time can increase up to 20X because of extra work of GCop in compile time.
In most of my non-geeks app development scenarios tools like "Bindable" are not needed because I use RxUI as my MVVM framework. Also most developers use either of MVVM-Cross, MVVM Light or RxUI which makes Olive tooling unnecessary.
Because mobile developers use a verity of different DI frameworks based on their needs (MS-DI, Splat(RxUI), Ninject, AutoFac), I didn't push DI related stuff to the bone project.
I removed Json.Net dependency on the Bone project and I replaces a 3rd party library instead, because of Performance reasons.
I leaved the stuff about bindings, dependency injection and logging plus GCop and Json.Net dependencies to the main Olive project because I think it's where they belong and if a scenario needs one of them it probably needs the rest.
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.
I just made an abstract version of Olive which only consists extensions and basic tooling omitting all of the package and analysis dependencies and only using ONE first party library which can be used in almost all of the .NET cross platform scenarios.
Why I did this?