AJax技术

ABP理论学习之开篇介绍

字号+ 作者:H5之家 来源:H5之家 2018-02-10 18:01 我要评论( )

ABP理论学习之开篇介绍 返回总目录 为了和2016年春节赛跑,完成该系列博客,我牺牲了今天中午的时间来完成该系列的第一篇————开篇介绍。开篇介绍嘛,读过大学教材的同学都知道,这玩意总是那么无聊,跟考试没关系,干脆直接跳过,呵呵,多么美好的大学时

ABP理论学习之开篇介绍

返回总目录

为了和2016年春节赛跑,完成该系列博客,我牺牲了今天中午的时间来完成该系列的第一篇————开篇介绍。开篇介绍嘛,读过大学教材的同学都知道,这玩意总是那么无聊,跟考试没关系,干脆直接跳过,呵呵,多么美好的大学时光啊!不过,现在想想,开篇介绍确实不怎么重要,它只是告诉我们今后我要开始讲什么了,主要讲什么,大概浏览下重点。
哦了,不扯了,时间不多了,干活!

本篇目录 介绍

我们总是基于不同的需求创建不同的应用,但是在一定程度上,总在反复地实现通用而相似的结构。这些通用的结构包括授权,验证,异常处理,日志,本地化,数据库连接管理,设置管理,审计日志等。而且,我们总是在构建体系结构和最佳实践,比如分层和模块化架构,领域驱动设计(DDD),依赖注入等等。同时也在尝试基于惯例开发应用。

因为这些都是非常耗时的,并且对于每个项目单独创建是很困难的,所以很多公司都会创建自己私有的框架。通过使用私有的框架,他们总是可以快速地开发新的应用,同时应用的bug又会更少。当然了,不是所有的公司都是那么幸运了,你以为中国所有的公司都是BAT啊?!大多数公司还是没有时间,预算和团队来开发他们自己的私人框架。即使他们有可能构建这么一个框架,写文档,培训开发者以及维护也是很难的。

ABP是一个开源的且文档友好的应用框架,起始的想法是,“开发一款为所有公司和开发者通用的框架!”。它不仅仅是一个框架,更提供了一个基于DDD和最佳实践的健壮的体系模型。

快速样例

一起来研究一个简单的类来看看ABP有哪些好处 :

public class TaskAppService : ApplicationService, ITaskAppService { private readonly IRepository<Task> _taskRepository; public TaskAppService(IRepository<Task> taskRepository) { _taskRepository = taskRepository; } [AbpAuthorize(MyPermissions.UpdatingTasks)] public async Task UpdateTask(UpdateTaskInput input) { Logger.Info("Updating a task for input: " + input); var task = await _taskRepository.FirstOrDefaultAsync(input.TaskId); if (task == null) { throw new UserFriendlyException(L("CouldNotFoundTheTaskMessage")); } input.MapTo(task); } }

这里我们看到了一个简单的应用服务方法。在DDD中,表现层直接使用应用服务来执行该应用的用例(其实就是一些操作方法)。我们还可以考虑使用Ajax调用上面的UpdateTask方法。

下面让我们总结一下ABP的一些优点:

在这么一个简单的类中,我们看到了ABP的优势。所有的这些任务正常情况下都是要花费很多时间的,但是所有的这些ABP自动帮我们完成了。

其他

除了这个简单的例子,ABP也提供了一个健壮的基础设施和应用模型。下面是ABP的一下其他特征:

更多的特征,请认真阅读其他文档。

启动模板

开始一个新的解决方案,创建层,安装nuget包,创建一个简单的布局和菜单...所有的这些都是非常耗时的。

ABP提供了一个预生成的启动模板,有了它,创建一个新的解决方案更容易了。模板支持SPA(单页应用)和MPA(多页应用)。而且,我们可以选择不同的ORM。

如何使用

ABP的源码已经推送到了Github上,Nuget包也已经发布到了Nuget上。开始使用ABP最简单的方式就是使用ABP官网的模板创建项目,然后跟着文档来学习。

posted @

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • JS学习之表格的排序简单实例

    JS学习之表格的排序简单实例

    2017-12-09 10:00

  • Node.js学习之TCP/IP数据通讯(实例讲解)

    Node.js学习之TCP/IP数据通讯(实例讲解)

    2017-11-06 10:06

  • 前端学习之ajax

    前端学习之ajax

    2017-09-02 14:04

  • PHP学习之路(六)

    PHP学习之路(六)

    2017-08-26 16:00

网友点评