Árvore de páginas

Você está vendo a versão antiga da página. Ver a versão atual.

Comparar com o atual Ver Histórico da Página

« Anterior Versão 3 Próxima »

Introdução

O TNF introduz uma infra-estrutura para a construção de módulos para construir uma aplicação. Todo assembly pode ser registrado através de um módulo onde este conterá definições sobre suas dependências, registro de tarefas de acordo com o ciclo de vida, definições de configuração.

Um módulo pode depender de outro módulo. Se você criou uma aplicação com mais de um assembly, sugerimos criar uma definição de módulo para cada assembly

Definição de módulo

Um módulo é definido com uma classe derivada de TnfModule. Digamos que estamos desenvolvendo um módulo Blog (Blog.dll) que pode ser usado em diferentes aplicativos. A definição mais simples do módulo pode ser como mostrado abaixo:

public class MyBlogApplicationModule : TnfModule

{
    public override void Initialize()
    {
        IocManager.RegisterAssemblyByConvention(Assembly.GetExecutingAssembly());
    }
}

 

A classe de definição do módulo é responsável por registrar as classes para a injeção de dependência (pode ser feita convencionalmente como mostrado acima), se necessário. Ele pode configurar aplicativos e outros módulos, adicionar novos recursos e assim por diante ...

"Lifecycle" de um módulo

PreInitialize

Esse método é chamado primeiro quando a aplicação é iniciada. Além disso, você pode escrever algum código específico aqui para executar antes do registro de injeção de dependência.

Initialize

Este método é responsável pelo registro da injeção de dependência. Geralmente é feito usando o método IocManager.RegisterAssemblyByConvention. Se você deseja definir o registro de dependência personalizado, consulte a documentação de injeção de dependência.

PostInitialize

Esse método é chamado após a inicialização da aplicação.

Shutdown

Esse método é chamado quando a aplicação é encerrada.


Dependências de um módulo

Um módulo pode depender de outro modulo. Para informar essa dependência é necessário usar o atributo "DependsOn", como mostrado abaixo:

[DependsOn(typeof(MyBlogCoreModule))]
public class MyBlogApplicationModule : TnfModule
{
    public override void Initialize()
    {
        IocManager.RegisterAssemblyByConvention(Assembly.GetExecutingAssembly());
    }
}

Dessa forma quando o modulo for carregado suas dependencias (modulos) serão carregados com ele.

"Lifetime" do módulo

Classes de módulo são registradas automatizamente como singletons dentro da aplicação e persistem em memoria até o seu fim.

  • Sem rótulos