Releases: roman-koshchei/unator
v0.2.0 - New Start
I decided to make Unator more organized with docs.
As well as looking for developing type safe router and maybe full web framework.
But because we all know Microsoft has monopoly on C# libraries and frameworks, making the router robust and practical is important as well.
So we will be able to embed router into ASP.NET Core application incrementally.
And maybe in future we will develop full-featured web framework, not only router.
It can be done not so hard for HTTP/1, but supporting HTTP/2 is a headache and isn't so simple.
So that's new "New Start". A lot of code will be missing from previous version, because I am moving it right now, don't worry.
Capital rewrite. Introducing Gods
I made a big rewrite, removed some functionality and added new.
Database
Database extensions don't have mutations anymore. 1 method replaced them. It's db.Save()
for DbContext, which save changes and return true if success otherwise false. All operations to change entities are made with default DbContext methods.
Emails
I refactored EmailGod
. Http helpers are moved to Http
class. All JSON strings are compacted to require fewer data to transfer.
Storage
Introducing StorageGod
! It's basically EmailGod but for storage, congratulations. Not so many works were done for it. I support only Storj at the current moment. But I am going to add S3 and GitHub as options in the future.
Kill Repository for EF Core
It's the first/initial release for Unator. Things you can use:
Repository replacement
Query
Add shorter functions to query data from DB
Mutation
Add functions to change DB data and return possible exceptions. All functions save changes after mutation. I consider adding Transaction to make several DB changes and then saving changes with similar DX.
Decorator/chain replacement:
LinearChain
Instead of calling the next chain item inside of the current, it returns a result and passes it to the next chain item. When you call the next chain item inside, keep variables of the current chain item alive while they are unnecessary. And you fill stack like in recursion. There is dynamic stuff under the hood, but because input and addition of new chain items are typesafe it's ok. I didn't find a way to make it without dynamics and linear at the same time.
I consider something like context for it and the class version. In the last one where you define a function inside a class (not pass it in).