Implement the service layer with Ninject

The service layer holds the domain model logic and works with the Sitefinity CMS managers. The services may also have business logic depending on the level of the separation of concerns you want to achieve.

Implement the service layer

  1. Create a new interface IHelloSitefinityService that has one method that returns a string with the signature string SayHello():

    C#
    namespace SitefinityWebApp.Custom.Services
    {
        public interface IHelloSitefinityService
        {
            string SayHello();
        }
    }
  2. Create the HelloSitefinityService class which holds the logic of the methods:

    C#
    namespace SitefinityWebApp.Custom.Services
    {
        public class HelloSitefinityService : IHelloSitefinityService
        {
            public string SayHello()
            {
                return "Hello, Sitefinity!";
            }
        }
    }

As a result, the method displays the following text: Hello, Sitefinity!

Bind the interface to the service

The following code example demonstrates how to bind the interface to its implementation using Ninject-specific syntax:

C#
using Ninject.Modules;
using Ninject.Web.Common;
using SitefinityWebApp.Custom.Services;

namespace SitefinityWebApp
{
    public class InterfaceMappings : NinjectModule
    {
        public override void Load()
        {
            this.Bind<IHelloSitefinityService>().To<HelloSitefinityService>();
        }
    }
}

As a result, after your build the project, the bindings are automatically registered in the Ninject kernel.

Want to learn more?
Enhance your Sitefinity skills by enrolling in free training sessions. Become Sitefinity certified through Progress Education Community to strengthen your professional credentials.