manuel.roemer
NuGet publisher profile
Packages (24)
Nullable
A source code only package which allows you to use .NET's new nullable attributes in older target frameworks like .NET Standard 2.0 or the "old" .NET Framework. This package does not contain any compiled binaries, but instead adds the attribute classes as C# source code to your project. Because this code is compiled together with the rest of your code, the built binaries will not have a dependency on this package, meaning that you can perfectly use it for both libraries and applications. The C# code is only included if you are targeting a framework version which does not support the new nullable attributes. For example, if you create a library which multi-targets .NET Standard 2.0 and 2.1, the majority of the attributes are not included in the .NET Standard 2.1 version, because it already provides these by default. Please see https://github.com/manuelroemer/Nullable for additional information on how to use this package.
IsExternalInit
A source code only package which allows you to use C# 9's init and record features in older target frameworks like .NET Standard 2.0 or the "old" .NET Framework by providing a polyfill for the IsExternalInit class. This package does not contain any compiled binaries, but instead adds the IsExternalInit class as C# source code to your project. Because this code is compiled together with the rest of your code, the built binaries will not have a dependency on this package, meaning that you can perfectly use it for both libraries and applications. The C# code is only included if you are targeting a framework version which does not support the IsExternalInit class. For example, if you create a library which multi-targets .NET Standard 2.0 and .NET 5.0, the IsExternalInit class is not provided in the .NET 5.0 compilation, because .NET 5.0 already provides support for the class by default. Please see https://github.com/manuelroemer/IsExternalInit for additional information on how to use this package.
NCommons.Monads
NCommons is a set of several .NET libraries which provide common building blocks that can be used by any kind of library or application. This library provides several members which assist in writing type-safe and expressive code. Even though the package is called "Monads", the included members don't necessarily have to be monadic. In general, the goal of the package is to provide utility types, monadic or not, which assist in writing precise code that still looks and behaves like traditional C#. While inspired by functional programming languages, the provided types still look and feel like types that could come straight from the .NET Framework's BCL. Commonly Used Types: Optional<T> Variant<T1>, ..., Variant<T1,...,T8> You can find additional information and documentation on the library's GitHub page: https://github.com/manuelroemer/NCommons
ReqRest.Serializers.NewtonsoftJson
An extension package for the ReqRest library. This package provides a JSON serializer based on the Newtonsoft.Json library. Learn more about ReqRest at https://github.com/ReqRest/ReqRest and https://reqrest.github.io.
ReqRest
ReqRest allows you to easily project a RESTful HTTP API to a C#/VB library that feels and behaves like a normal C# API. If you use ReqRest to wrap your REST API, you will end up with a library that is fully typed, has IntelliSense and compiler support and is thus incredibly easy to use. In addition, ReqRest makes this process as simple as possible. You will be able to leverage a fluent method style for defining how the REST API behaves for different scenarios, i.e. what input it expects and what it returns. Under the hood, ReqRest follows one very simple core philosophy - to be nothing more but an enhancement of the .NET Framework. ReqRest tries to utilize .NET's types whenever possible. As a result, most members in the library are nothing more but a convenient, specialized way to create HTTP requests using .NET's HttpClient API. This means that libraries built with ReqRest are incredibly adaptable. Whatever you can do with an HttpClient, you can do with ReqRest. Your imagination is your limit! Learn more about ReqRest at https://github.com/ReqRest/ReqRest and https://reqrest.github.io.
Composed
Composed is a set of independent libraries providing simple and yet flexible APIs for easily building reactive applications with a strong, but not exclusive, focus on GUI and MVVM based applications. This package provides the foundational Composed API which all other Composed packages use as a basis. Yet, it can be used entirely on its own. Frequently used members include: - IRef<T> - IReadOnlyRef<T> - Ref(...) - Computed(...) - Watch(...) - WatchEffect(...)
NCommons.Collections
NCommons is a set of several .NET libraries which provide common building blocks that can be used by any kind of library or application. This library provides several generic and specialized collection-type members. Commonly Used Types: IPriorityQueue<T> PriorityQueue<T> Heap<T> BinaryHeap<T> INotifyCollectionChanging PreviewingObservableCollection<T> WeakReferenceCollection<T> You can find additional information and documentation on the library's GitHub page: https://github.com/manuelroemer/NCommons
Composed.Commands
Composed is a set of independent libraries providing simple and yet flexible APIs for easily building reactive applications with a strong, but not exclusive, focus on GUI and MVVM based applications. This package provides reactive ICommand implementations and hooks for creating them. Frequently used members include: - ComposedCommand - AsyncComposedCommand - UseCommand(...)
Files
A modern, immutable, async-first abstraction of hierarchical file systems with a consistent and developer friendly API that allows seamless switching between multiple underlying file system manifestations, while also fixing and hiding the flaws and inconsistencies of the wrapped APIs. This package provides the Core API of the Files libraries which defines the API contract and abstractions. In addition, it provides several extensions and conveniences which simplify working the Core API. You should use the abstractions provided by this package for your implementations. Nontheless, you must also install a package which provides a concrete implementation of these file system abstractions. Learn more about Files at https://github.com/manuelroemer/Files.
NCommons.Observables
NCommons is a set of several .NET libraries which provide common building blocks that can be used by any kind of library or application. This library provides members for quickly setting up classes which require property change notifications. Commonly Used Types: ObservableObject You can find additional information and documentation on the library's GitHub page: https://github.com/manuelroemer/NCommons
Composed.State
Composed is a set of independent libraries providing simple and yet flexible APIs for easily building reactive applications with a strong, but not exclusive, focus on GUI and MVVM based applications. This package provides a state container implementation for application state. Frequently used members include: - Store<TState> - UseStore(...)
Composed.Query
Composed is a set of independent libraries providing simple and yet flexible APIs for easily building reactive applications with a strong, but not exclusive, focus on GUI and MVVM based applications. This package provides members for declaratively managing asynchronous queries and mutations with arbitrary data sources. It is heavily inspired by the "react-query" and "swr" NPM packages. Frequently used members include: - Query<T> - Mutation<T> - QueryClient - UseQuery(...) - UseMutation(...)
Files.FileSystems.InMemory
A modern, immutable, async-first abstraction of hierarchical file systems with a consistent and developer friendly API that allows seamless switching between multiple underlying file system manifestations, while also fixing and hiding the flaws and inconsistencies of the wrapped APIs. This package provides an in-memory FileSystem implementation which is specifically designed for testing. The InMemoryFileSystem is completely independent of any real-world file system and can thus run in any testing configuration. In addition, each InMemoryFileSystem is isolated, leading to predictable testing states. Learn more about Files at https://github.com/manuelroemer/Files.
Files.FileSystems.Physical
A modern, immutable, async-first abstraction of hierarchical file systems with a consistent and developer friendly API that allows seamless switching between multiple underlying file system manifestations, while also fixing and hiding the flaws and inconsistencies of the wrapped APIs. This package provides a FileSystem implementation which interacts with the local machine's file system via the System.IO APIs. As such, it is the prefered way for interacting with a real-world file system. Learn more about Files at https://github.com/manuelroemer/Files.
Composed.AppRouter
Composed is a set of independent libraries providing simple and yet flexible APIs for easily building reactive applications with a strong, but not exclusive, focus on GUI and MVVM based applications. This package provides a generic approach for routing within "traditional", non-web applications that are not tied to a URL. Frequently used members include: - Router - RouterHistory - Route - IRoutingTargetResolver - UseCurrentRoute - UseCurrentRouteParameters - UseCurrentRoutingTarget
Files.FileSystems.WindowsStorage
A modern, immutable, async-first abstraction of hierarchical file systems with a consistent and developer friendly API that allows seamless switching between multiple underlying file system manifestations, while also fixing and hiding the flaws and inconsistencies of the wrapped APIs. This package provides a FileSystem implementation which interacts with the local machine's file system via UWP's Windows.Storage APIs. This implementation is designed for applications targeting the UWP which, due to sandbox restrictions, cannot use .NET's System.IO APIs. Learn more about Files at https://github.com/manuelroemer/Files.
Files.Specification.Tests
A modern, immutable, async-first abstraction of hierarchical file systems with a consistent and developer friendly API that allows seamless switching between multiple underlying file system manifestations, while also fixing and hiding the flaws and inconsistencies of the wrapped APIs. This package is specifically targeted at developers who wish to implement their own FileSystem implementation. It provides a suite of MS Test test cases which assert that you correctly implemented the abstractions of the "Files" package. Learn more about Files at https://github.com/manuelroemer/Files.
TinyServer
The Tiny Server library.
ReqRest.Serializers.Json
An extension package for the ReqRest library. This package provides a JSON serializer based on the System.Text.Json members. Learn more about ReqRest at https://github.com/ReqRest/ReqRest and https://reqrest.github.io.
TinyServer.Identity
A Tiny Server module which provides ASP.NET identity management features.
TinyServer.Testing
A which provides utilities for testing Tiny Server applications.
TinyServer.Avatars
A Tiny Server module which provides user avatar management features.
ReqRest.Examples.JsonPlaceholderClient
This package provides a fully fledged REST API client implementation using ReqRest for the JSON Placeholder API available at https://jsonplaceholder.typicode.com (made available by GitHub user typicode). The client is created and used for demonstration purposes. It allows you to see how a REST API client can be created with ReqRest and how it can ultimately be used. Since the REST API is, at the end of the day, just a service for fake data, this package is most likely not going to be suitable for any production usage. You can learn more about ReqRest at the GitHub page (https://github.com/ReqRest/ReqRest) and in the official documentation (https://reqrest.github.io). You can find detailed information about this package at the GitHub repository: https://github.com/ReqRest/Examples The repository contains both the commented source code and information about what functions the client supports.
TinyStorage
Package Description