1. 程式人生 > 其它 >重新整理 .net core 實踐篇—————應用層[三十]

重新整理 .net core 實踐篇—————應用層[三十]

前言

簡單介紹一下應用層。

正文

應用層用來做什麼的呢?

應用層用來做處理api請求的。

[HttpPost]
public Task<long> CreateOrder([FromBody] CreateOrderVeiwModel viewModel)
{
	var model = viewModel.ToModel();
	return await orderService.CreateOrder(model);
}


class OrderService : IOrderService
{
	public long CreateOrder(CreateOrderModel model)
	{
		var address = new Address("wen san lu", "hangzhou", "310000");
		var order = new Order("xiaohong1999", "xiaohong", 25, address);

		_orderRepository.Add(order);
		await _orderRepository.UnitOfWork.SaveEntitiesAsync(cancellationToken);
		return order.Id;
	}
}

應用層將viewMode轉換為Model,然後呼叫ToModel()轉換為Model,然後呼叫service層的CreateOrder方法進行處理。

而在領域模型中,我們是這樣處理的:

/// <summary>
/// 建立訂單
/// </summary>
/// <param name="cmd"></param>
/// <returns></returns>
[HttpPost]
public async Task<long> CreateOrder([FromBody] CreateOrderCommand cmd)
{
	// 中間者,傳送訂單建立命令
	return await _mediator.Send(cmd, HttpContext.RequestAborted);
}

這樣來處理的。具體可看上一節。

上面可以看到在應用層都是很薄的一層,不要把業務處理邏輯寫在應用層,如果專案比較簡單,可以放到另外建立一個的一個類庫中去,比如說blog.Application,如果更加簡單,也可以建立Application目錄即可。

下一節整合事件。