• ABP框架个人开发实战(1)_环境搭建


    前言

    之前关注ABP框架有一阵子了,一直没有潜下心来实际研究一下。最近想自己建站,以后有自己的功能开发项目,可以在自己的站点上开发,并一步步的完善,所以找个比较好用的框架迫在眉睫,选来选去,决定用ABP框架。用群里的大大门的话来说,掌握了ABP,基本就可以飞天了~

    先简单介绍下吧(以下部分资料来自群里资料,如有侵权,请告知):

    ABP是“ASP.NET Boilerplate Project (ASP.NET样板项目)”的简称。

    ASP.NET Boilerplate是一个用最佳实践和流行技术开发现代WEB应用程序的新起点,它旨在成为一个通用的WEB应用程序基础框架和项目模板。

    ASP.NET Boilerplate 基于DDD的经典分层架构思想,实现了众多DDD的概念。

    ABP的官方网站:http://www.aspnetboilerplate.com

    ABP在Github上的开源项目:https://github.com/aspnetboilerplate

    APB采用了以下技术:

    服务器端:

    l  ASP.NET MVC 5、Web API 2、C# 5.0

    l  DDD领域驱动设计 (Entities、Repositories、Domain Services、Domain Events、Application Services、DTOs等)

    l  Castle windsor (依赖注入容器)

    l  Entity Framework 6 NHibernate,数据迁移

    l  Log4Net(日志记录)

    l  AutoMapper(实现Dto类与实体类的双向自动转换)

    客户端:

    l  Bootstrap

    l  Less

    l  AngularJs

    l  jQuery

    l  Modernizr

    其他JS库: jQuery.validate、jQuery.form、jQuery.blockUI、json2

    以上只是其中的主要一部分,其实其他项目框架的很多优秀设计,ABP框架也有涉及,所以我采用这个框架,方便以后的功能集成和扩展。

    ABP框架已实现了以下特性

    l  多语言/本地化支持

    l  多租户支持(每个租户的数据自动隔离,业务模块开发者不需要在保存和查询数时写相应代码)

    l  软删除支持(继承相应的基类或实现相应接口,会自动实现软删除)

    l  统一的异常处理(应用层几乎不需要处理自己写异常处理代码)

    l  数据有效性验证(Asp.NET MVC只能做到Action方法的参数验证,ABP实现了Application层方法的参数有效性验证)

    l  日志记录(自动记录程序异常)

    l  模块化开发(每个模块有独立的EF DbContext,可单独指定数据库)

    l  Repository仓储模式(已实现了Entity Framework、NHibernate、MangoDB、内存数据库)

    l  Unit Of Work工作单元模式(为应用层和仓储层的方法自动实现数据库事务)

    l  EventBus实现领域事件(Domain Events)

    l  DLL嵌入资源管理

    l  通过Application Services自动创建Web Api层(不需要写ApiController层了)

    l  自动创建Javascript 的代理层来更方便使用Web Api

    l  封装一些Javascript 函数,更方便地使用ajax、消息框、通知组件、忙状态的遮罩层

    l  “Zero”的模块,实现了以下功能:

      身份验证与授权管理(通过ASP.NET Identity实现的)

      l  用户&角色管理

      l  系统设置存取管理(系统级、租户级、用户级,作用范围自动管理)

      l  审计日志(自动记录每一次接口的调用者和参数)

    下载和还原nuget

    我们去官网,找到Free Startup Templates,点击Create Your Project。

    这里我们选择我们的运行环境,我选择的是ASP.NET MVC 5.x,默认选择单页开发模式和EF,给自己的项目取个名字,然后点击创建。

    官网会自动打包你的项目,下载即可。

    我们将项目文件解压,查看ABP最新的版本是3.1.2,因为用的是.net 4.6.1,所以我用vs 2017打开。

    项目组织结构如下:

    一共有5个主要的工程,1个测试工程,1个工具类工程。主要介绍下这几个主要的工程项目(涉及到DDD,领域驱动设计的概念,不清楚请先百度):

    MyWebSite.EntityFramework-基础设施层

    MyWebSite.Core-领域层

    MyWebSite.Application-应用层

    MyWebSite.WebApi,MyWebSite.Web-WEB和展现层

    接下来,我们需要用nuget来还原一下相关引用,

    新版本有个小问题,还原以后,Abp.AutoMapper 没有能正常识别,这里删除,再重新引用packets包里的dll就行。

    迁移MySQL

    我本地用的数据库是mysql,如果不需要迁移数据库的,请跳过这一段。

    如果没有MySQL驱动,先安装驱动:MySQL Connector

    nuget引入MySql.Data.Entity,这里最新版本跟EF有冲突,所以我降了一个版本,用的是MySql.Data.Entity 6.9.10

    EF迁移配置里增加MySQL的生成器

    最后,工具--程序包管理器控制台选中MyWebSite.EntityFramework

    运行Update-Database,完成数据库的生成和初始化:

    启动项目

     好的,我们启动项目试试:

    网站已经正常运行起来,我们后面将逐步研究解析框架牛逼的功能,并完善我们的网站的功能。今天只是作了一个简单介绍,希望大家更多关注ABP这个开源项目,希望有更多的朋友能去阅读源代码,然后欢迎跟我一起讨论。

    资源

    GitHub项目源码

  • 相关阅读:
    SPOJ 4110 Fast Maximum Flow (最大流模板)
    CF 277E Binary Tree on Plane (拆点 + 费用流) (KM也可做)
    POJ 2289 Jamie's Contact Groups (二分+最大流)
    POJ 1723 SOLDIERS (中位数)
    TRI 解题报告
    POJ 2455 Secret Milking Machine (二分 + 最大流)
    POJ 2112 Optimal Milking (二分 + 最大流)
    POJ 2195 Going Home / HDU 1533(最小费用最大流模板)
    POJ 2135 Farm Tour (最小费用最大流模板)
    运维自动化
  • 原文地址:https://www.cnblogs.com/lizzie-xhu/p/7815756.html
Copyright © 2020-2023  润新知