本文同步发布在我的个人网站http://www.jiagoushi.cn
快速开始——从控制台项目入手
我们使用Visutal Studio 2017进行开发,首先创建一个空白的.Net Core的控制台项目,起名为ZL.Poem.ConsoleClient。
然后进入NuGet包管理器,搜索ABP并安装。这个步骤也可以在程序包管理器控制台的命令行中通过执行如下命令完成:
Install-Package Abp
然后我们在项目中添加一个新的类,命名为PoemConsoleClientModule,这个类作为Abp模块,代码如下:
using Abp.Modules;
using System.Reflection;
namespace ZL.TangPoem
{
public class PoemConsoleClientModule : AbpModule
{
public override void Initialize()
{
IocManager.RegisterAssemblyByConvention(Assembly.GetExecutingAssembly());
}
}
}
Initialize函数里执行Abp模块的初始化代码,这里将程序集中的对象进行注册,方便使用。 再创建一个类,命名为Service:
using Abp.Dependency;
using System;
namespace ZL.TangPoem
{
public class Service : ITransientDependency
{
public void Run()
{
Console.WriteLine("你好");
}
}
}
修改Program.cs:
using Abp;
using Abp.Dependency;
using System;
namespace ZL.TangPoem
{
class Program
{
static void Main(string[] args)
{
using (var bootstrapper = AbpBootstrapper.Create<PoemConsoleClientModule>())
{
//初始化模块
bootstrapper.Initialize();
//从容器中获取Service对象,并执行相应的函数
var service = IocManager.Instance.Resolve<Service>();
service.Run();
Console.WriteLine("Press enter to exit...");
Console.ReadLine();
}
}
}
}
现在程序可以执行了:
通过上面的代码,我们可以大致了解Abp模块的工作过程。通过AbpBootStrapper可以创建模块,并进行初始化,然后,可以通过IocManager从容器中获取需要的对象。下一步,我们用一个简单的项目作为例子,说明如何设计领域层、数据访问层和应用层。