Giter VIP home page Giter VIP logo

ninject.extensions.azure's Introduction

Ninject.Extensions.Azure NuGet Version NuGet Downloads

This extension adds support for Microsoft Azure Worker Roles.

Getting started

Just derive from NinjectRoleEntryPoint in your WorkerRole.cs (previously RoleEntryPoint) and override the following methods:

The Run method is the main thread of execution for your role instance.

public abstract override void Run();

Implement the CreateKernel method to create and configure your kernel and load the modules required by your role instance.

protected abstract IKernel CreateKernel();

If you like to extend the startup behavior of your role instance just override OnRoleStarted() which is called after CreateKernel.

protected virtual bool OnRoleStarted();

If you like to extend the shutdown behavior of your role instance you have two choices. You can override OnRoleStopping() which is called before the kernel is disposed.

protected virtual void OnRoleStopping();

Addition to that you can also override OnRoleStopped() which is called after the kernel is disposed.

protected virtual void OnRoleStopped();

CI build status

Build Status

ninject.extensions.azure's People

Contributors

andersosthus avatar noocyte avatar philippdolder avatar remogloor avatar scott-xu avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ninject.extensions.azure's Issues

Azure 2.6 SDK

Hi - this extension does not work when my application targets the 2.6 Azure SDK. Is there a way to build this that does not require bundling the ServiceRuntime.dll by chance?

RoleEntryPoint not recognized when in emulator or deployed

I tried using NinjectRoleEntryPoint instead of the normal RoleEntryPoint, and it appears that my entry point class is not recognized by the service runtime. It uses a default implementation of the the entry point class, and recycles indefinitely. From the emulator log:

[runtime] Role entrypoint . CALLING OnStart(): Microsoft.WindowsAzure.ServiceRuntime.DefaultEntryPoint
[runtime] Role entrypoint . COMPLETED OnStart(): Microsoft.WindowsAzure.ServiceRuntime.DefaultEntryPoint
[runtime] Role entrypoint . CALLING Run(): Microsoft.WindowsAzure.ServiceRuntime.DefaultEntryPoint
[runtime] Role entrypoint . COMPLETED Run() ==> ROLE RECYCLING INITIATED: Microsoft.WindowsAzure.ServiceRuntime.DefaultEntryPoint
[runtime] Role instance recycling is starting

I'm using the Azure SDK 2.3.

I just ended up creating my Kernel and setting up my bindings in OnStart manually.

No way to handle OnStop event in multi thread worker

We have worker implementation that starts multiple threads in Run() function. When OnStop event happens, NinjectRoleEntryPoint automatically dispose the kernel and call OnRoleStopped function. Because the kernel is already disposed I have no way to make clean shutdown of threads because the functionality in threads rely on Ninject factory extension. How shutdown of injected worker is supposed to work? Should dispose happen AFTER OnRoleStopped ?

Referencing Microsoft.WindowsAzure.ServiceRuntime version 1.0.0.0

Hi,

The reference to Microsoft.WindowsAzure.ServiceRuntime version 1.0.0.0 are causing some build issues for us, since we're using version 2.2.0.0

There are some workarounds that we could use (global redirect and such), but I wondered if there are any reason that it's referencing version 1?

I've done a local update of ninject.extensions.azure to use version 2.2.0.0, and all tests passed and our issue went away.

Would a pull request that updates it to version 2.2.0.0 be of any interest, or do you want to keep the dependency on version 1.0.0.0 ?

No nuget package

Hi,

This extension seems usefull but I can't find it on nugget. Is there a reason for this ?

Whatever, thanks for your great job with ninject!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.