All Projects → Virtuoze → CNeptune

Virtuoze / CNeptune

Licence: MIT license
CNeptune improve productivity & efficiency by urbanize .net module with meta-code to lay foundation for frameworks

Programming Languages

C#
18002 projects

Projects that are alternatives of or similar to CNeptune

Container Ioc
Inversion of Control container & Dependency Injection for Javascript and Node.js apps powered by Typescript.
Stars: ✭ 89 (+196.67%)
Mutual labels:  ioc, container, injection, inversion-of-control, di, dependency
waiter
Dependency injection, Inversion of control container for rust with compile time binding.
Stars: ✭ 71 (+136.67%)
Mutual labels:  ioc, container, inversion-of-control, di
Tsyringe
Lightweight dependency injection container for JavaScript/TypeScript
Stars: ✭ 2,761 (+9103.33%)
Mutual labels:  ioc, container, injection, dependency
typeioc
Dependency injection container for typescript / javascript
Stars: ✭ 32 (+6.67%)
Mutual labels:  ioc, container, injection, dependency
Reflex
Minimal dependency injection framework for Unity
Stars: ✭ 263 (+776.67%)
Mutual labels:  ioc, container, injection, di
vesselize
⛵ A JavaScript IoC container that works seamlessly with Vue.js and React.
Stars: ✭ 22 (-26.67%)
Mutual labels:  ioc, injection, inversion-of-control, di
Singularity
A extremely fast ioc container for high performance applications
Stars: ✭ 63 (+110%)
Mutual labels:  ioc, inversion-of-control, di
diod
A very opinionated inversion of control (IoC) container and dependency injector for Typescript, Node.js or browser apps.
Stars: ✭ 36 (+20%)
Mutual labels:  ioc, inversion-of-control, di
Injex
Simple, Decorated, Pluggable dependency-injection framework for TypeScript applications
Stars: ✭ 65 (+116.67%)
Mutual labels:  ioc, container, dependency
Puresharp
Puresharp is a Framework that provides the essential APIs (AOP, IOC, etc...) to productively build high quality (.NET 4.5.2+ & .NET Core 2.1+) applications through reliability, scalability and performance without no compromise
Stars: ✭ 120 (+300%)
Mutual labels:  ioc, injection, aop
React Ioc
Hierarchical Dependency Injection with new React 16 Context API
Stars: ✭ 133 (+343.33%)
Mutual labels:  ioc, injection, inversion-of-control
Hiboot
hiboot is a high performance web and cli application framework with dependency injection support
Stars: ✭ 150 (+400%)
Mutual labels:  ioc, container, di
Ditranquillity
Dependency injection for iOS (Swift)
Stars: ✭ 317 (+956.67%)
Mutual labels:  ioc, inversion-of-control, di
Kangaru
🦘 A dependency injection container for C++11, C++14 and later
Stars: ✭ 297 (+890%)
Mutual labels:  ioc, injection, inversion-of-control
di
🐑 A flexible dependency injection container; It is an implementation of PSR-11
Stars: ✭ 20 (-33.33%)
Mutual labels:  container, injection, di
Zenject-2019
Dependency Injection Framework for Unity3D
Stars: ✭ 2,567 (+8456.67%)
Mutual labels:  ioc, injection, dependency
AspecTS
An aspect-oriented programming library implemented in TypeScript
Stars: ✭ 21 (-30%)
Mutual labels:  aop, aspect-oriented-programming, cross-cutting-concerns
DependencyInjector
Lightweight dependency injector
Stars: ✭ 30 (+0%)
Mutual labels:  ioc, injection, dependency
Typhoon
Powerful dependency injection for Objective-C ✨✨ (https://PILGRIM.PH is the pure Swift successor to Typhoon!!)✨✨
Stars: ✭ 2,711 (+8936.67%)
Mutual labels:  ioc, inversion-of-control, di
Duckrails
Development tool to mock API endpoints quickly and easily (docker image available)
Stars: ✭ 1,690 (+5533.33%)
Mutual labels:  mock, productivity, mocking

NuGet

CNeptune

CNeptune is an util based on mono.cecil to rewrite .net assembly to inject all the needs to control execution flow in order to help architects to build a productive and efficient architecture.

Features

  • Dynamic : change method behavior at runtime
  • Efficient : injected mechanism is extremely efficient
  • Limitless : support all type of methods (constructors included)
  • Transparent : client side perception is not affected

Coverage

  • Aspect-Oriented Programming
  • Code contract / Data validation
  • Uncoupling technical concern
  • Diagnostics & measures
  • Mocking & tests
  • Simplify existing design pattern

Example of injection

  • Rewrite .net assembly by specifying path
neptune.exe "C:\...\Assembly.dll"
  • Rewrite .net assembly by specifying project and configuration
neptune.exe "C:\...\Project.csproj" "Debug"
PM> Install-Package CNeptune

Example of usage

  • Override method at runtime

Business

public class Calculator
{
    public int Add(int a, int b)
    {
        return a + b;
    }
}

Obtain the delegate to manage a method of 'Calculator'

var _update = typeof(Calculator).GetNestedType("<Neptune>", BindingFlags.NonPublic).GetField("<Update>").GetValue(null) as Action<MethodBase, Func<MethodInfo, MethodInfo>>;

Define 'Add' method to inject a console 'Hello World' before call.

_update
(
    typeof(Calculator).GetMethod("Add"),
    _Method =>
    {
        var _method = new DynamicMethod(string.Empty, typeof(int), new Type[] { typeof(Calculator), typeof(int), typeof(int) }, typeof(Calculator), true);
        var _body = _method.GetILGenerator();
        _body.EmitWriteLine("Hello World");
        _body.Emit(OpCodes.Ldarg_0); //this
        _body.Emit(OpCodes.Ldarg_1); //a
        _body.Emit(OpCodes.Ldarg_2); //b
        _body.Emit(OpCodes.Call, _Method);
        _body.Emit(OpCodes.Ret);
        return _method;
    }
);
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].