"모듈 빌드란 프로그래밍에서 모듈을 생성하고 구성하는 과정을 가리킵니다. 모듈은 프로그램을 여러 부분으로 나누어 관리하고 유지보수하기 쉽게 만드는 데 도움이 되는 기술입니다."
Axs는 모듈을 빌드하고 응용 프로그램을 만들기 위해 구성하는 인프라를 제공합니다. 모듈은 다른 모듈에 종속될 수 있습니다. 이것에 대한 종속성을 해결할 수 있는 방법도 같이 제공하고 있습니다.
가장 간단하게 아래와 같이 모듈을 정의할 수 있습니다. 이 모듈에서 해당하는 어셈블리에서 요구하는 전처리나, 객체 초기화를 진행할 수 있습니다. 모듈에서 종속성 주입을 위한 객처 등록과 애플리케이션에 새 기능을 추가하는 작업을 할 수 있습니다.
public class SampleApplicationModule : AxsModule
{
public override void Initialize()
{
IocManager.RegisterAssembly(Assembly.GetExecutingAssembly());
}
}
아래와 같이 DependsOn 어트리뷰트를 사용하여 종속성을 명시적으로 선언 해야 합니다. SampleCoreModule가 실행 후 SampleApplicationModule가 실행이 된다.
[DependsOn(typeof(SampleCoreModule))]
public class SampleApplicationModule : AxsModule
{
public override void Initialize()
{
IocManager.RegisterAssembly(Assembly.GetExecutingAssembly());
}
}
public class MySampleModule1 : AxsModule
{
public override void Initialize()
{
IocManager.RegisterAssembly(Assembly.GetExecutingAssembly());
}
public void MySampleModuleMethod1()
{
//this is a custom method of this module
}
}
[DependsOn(typeof(MySampleModule1))]
public class MySampleModule2 : AxsModule
{
private readonly MySampleModule1 _myModule1;
public MyModule2(MySampleModule1 mySampleModule1)
{
_mySampleModule1 = mySampleModule1;
}
public override void PreInitialize()
{
_mySampleModule1.MySampleModuleMethod1(); //MySampleModule1's 메서드를 호출한다.
}
public override void Initialize()
{
IocManager.RegisterAssembly(Assembly.GetExecutingAssembly());
}
}
아래와 같이 각 모듈에서 브레이크 포인트를 걸어서 프로그램이 시작을 할 때 단계별로 실행이 되는것을 확인할 수 있습니다.
이 부분에서 각 단계에 맞게 초기화 및 세팅을 진행하면 됩니다.