一、前言

使用ABP也有一段时间了,很多东西是懂非懂,打算试着使用abp来搭建一套SAAS系统,与实际项目相互验证。

主要实现以下目标:

  • 将ABP源码与实际项目相结合,后续可以修改相关源码来支持项目,使得开源发挥相关作用
  • 由浅入深,争取做到每一步清晰,让新人也容易入手
  • 具备常见模块:
  • 发布源码到GITHUB
  • 每一次源码发到CSDN下载站

本教程适用人群:

开发环境:

  • Visual Studio 2017 (必备条件:ABP源码必须 VS 2017 才能编译)
  • SQL Server 2014
  • 浏览器:firefox、chrome、IE
 

二、项目环境准备

1、创建MyProjcet项目

  • 下载完后,解压压缩包,可以看到以下文件:
   
  • 用VS2017打开我们的项目,看到以下目录
  
  • 将MyProject.Web 设为启动项目,并重新生成该项目,此时VS会自动从nuget下载对应的dll
  
  • 加载完成后运行我们的程序,看到以下页面,证明运行成功
  

2、下载ABP源码:

  • 选择apb项目源码
  
  • 下载相关压缩包
  
  • 解压对应的压缩包,看到以下目录
  
  • 使用VS2017打开对应项目,这个是由多个项目组成的解决方案,每一块是对应ABP对应模块的源码,如果需要哪个模块的dll,右键生成对应的模块
  

三、使用自己的ABP源码替换项目中的dll

  • 我们看下 MyProject中每个项目针对ABP的相关引用:
  
  • 重新生成ABP源码相关项目,生成对应的dll,并拷贝到MyProject项目下面的lib中(具体目录自己定,本人是跟myproject同级目录)
  
  • 根据上面的Excel表格,删除MyProject项目相关引用,按照列表添加lib下面相关引用
  
  • 添加完成后重新生成我们的项目
  
  • 运行会遇到以下错误,EF版本不匹配,我们可以从abp源码项目中拷贝以下文件到lib中(EntityFramework.dll、EntityFramework.DynamicFilters.dll、EntityFramework.SqlServer.dll)
  
 
  
  • 删除 MyProject.Web、MyProject.EntityFramework中对于(EntityFramework.dll、EntityFramework.DynamicFilters.dll、EntityFramework.SqlServer.dll),并重新从lib添加对于的应用,重新生成并运行该项目,此时又看到我们熟悉的界面,证明运行成功,此时项目引用的都是我们自己通过ABP源码生成的dll,后续根据项目需要更改abp源码,就比较好替换对应的dll
  
 

四、相关源码下载

 
ASP.NET Boilerplate Project(ABP.Net样板项目)的简称
ABP官网:http://www.aspnetboilerplate.com
英文文档:http://www.aspnetboilerplate.com/Pages/Documents
 
本章源码还未发布到github,后续提供....

使用ABP打造SAAS系统(1)——环境准备的更多相关文章

  1. vagrant打造自己的开发环境

    vagrant打造自己的开发环境 缘由: 在网上看到斌哥,爽神都写了关于vagrant的博客,都在说很强大,所以很好奇这玩意怎么个强大,然后也就自己来一发玩玩看看. 真实缘由: 说实话是电脑配置太低, ...

  2. saas 系统租户个性化域名&&租户绑定自己域名的解决方案

       实际的需求就类似github 的自定义page 1. 个性化域名    github 实现原理就是用户个性化域名使用泛域名解析,这个比较简单,大部分域名提供商都可以解决    具体操作不用赘述 ...

  3. saas系统多租户数据隔离的实现(一)数据隔离方案

    0. 前言 前几天跟朋友聚会的时候,朋友说他们公司准备自己搞一套saas系统,以实现多个第三方平台的业务接入需求.聊完以后,实在手痒难耐,于是花了两天时间自己实现了两个saas系统多租户数据隔离实现方 ...

  4. 家用PC机打造VSphere5.1 测试环境:之部署VCenter Server 5.1

    家用PC机打造VSphere5.1 测试环境前言:实践出真知,同样学习VMware VSphere 的朋友,也需要不断的测试总结,再测试再总结只有不断的积累才能学好,但是动辄几万的服务器不是所有朋友都 ...

  5. SaaS 系统架构,Spring Boot 动态数据源实现!

    这段时候在准备从零开始做一套SaaS系统,之前的经验都是开发单数据库系统并没有接触过SaaS系统,所以接到这个任务的时候也有也些头疼,不过办法部比困难多,难得的机会. 在网上找了很多关于SaaS的资料 ...

  6. efcore在Saas系统下多租户零脚本分表分库读写分离解决方案

    efcore在Saas系统下多租户零脚本分表分库读写分离解决方案 ## 介绍 本文ShardinfCore版本x.6.0.20+ 本期主角: - [`ShardingCore`](https://gi ...

  7. 打造高效前端工作环境 - tmux

    打造高效前端工作环境 - tmux 前言  现在前端开发可不容易啊,先打开个VIM,然后再打开个lite-server,一不小心写个ES2015还要打开个gulp来做预编译,如果能把这么多个窗口放在一 ...

  8. 浏览器对localstorage的支持情况以及localstorage在saas系统中的应用实践思考

    首先,还是要说,任何一种新特性的引入,通常有着其特有的场景和解决的目标需求,localstorage也一样.在我们的应用场景中,主要在金融业务服务的saas系统.其中涉及很多更改频率很多的元数据的客户 ...

  9. 基于C/S架构的3D对战网络游戏C++框架 _05搭建系统开发环境与Boost智能指针、内存池初步了解

    本系列博客主要是以对战游戏为背景介绍3D对战网络游戏常用的开发技术以及C++高级编程技巧,有了这些知识,就可以开发出中小型游戏项目或3D工业仿真项目. 笔者将分为以下三个部分向大家介绍(每日更新): ...

随机推荐

  1. 使用Nodejs进行反向代理

    在实际工程开发中,会有前后端分离的需求. 为了平滑的完成前端请求到后端各个独立服务,需要一个中间件实现请求转发的功能,利用Nginx可以实现,在这里,使用nodejs实现一个反向代理服务器.   实际 ...

  2. add,update,list.jsp源码

    add:<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncod ...

  3. centos下安装dubbo-admin步骤

    前言: 纠正网上一些错误的博文,真的害人不浅,按照他们的说法,dubbo-admin在jdk1.8的版本下无法启动注册中心,需要去github下载阿里提供的源码,然后install进本地仓库并打包成w ...

  4. 设计模式的征途—5.原型(Prototype)模式

    相信大多数的人都看过<西游记>,对孙悟空拔毛变出小猴子的故事情节应该都很熟悉.孙悟空可以用猴毛根据自己的形象复制出很多跟自己一模一样的小猴兵出来,其实在设计模式中也有一个类似的模式,我们可 ...

  5. Android NDK开发之C调用Java及原生代码断点调试(二)

    上一篇中,我们主要学习了Java调用本地方法,并列举了两大特殊实例来例证我们的论据,还没学习的伙伴必须先去阅读下,本次的学习是直接在上一篇的基础上进行了.点击:Android NDK开发之从Java与 ...

  6. Java之路 ——初识Eclipse

    零.大纲 一.前言 二.获取Eclipse 三.运行Eclipse 四.创建及运行第一个Java Project 五.界面介绍 六.如何调试 七.获取插件 八.Eclipse 快捷键 九.总结 一.前 ...

  7. [刷题]算法竞赛入门经典 3-10/UVa1587 3-11/UVa1588

    书上具体所有题目:http://pan.baidu.com/s/1hssH0KO 题目:算法竞赛入门经典 3-10/UVa1587:Box 代码: //UVa1587 - Box #include&l ...

  8. 建造者(Builder)模式

    建造者模式是对象的创建模式.建造模式可以将一个产品的内部表象(internal representation)与产品的生产过程分割开来,从而可以使一个建造过程生成具有不同的内部表象的产品对象. 产品的 ...

  9. JAVA的节点流和处理流

    节点流:可以从或向一个特定的地方(节点)读写数据.如FileReader. 处理流:是对一个已存在的流的连接和封装,通过所封装的流的功能调用实现数据读写.如BufferedReader.处理流的构造方 ...

  10. (转)static 变量

    一. static 变量 static变量大致分为三种用法1. 用于局部变量中,成为静态局部变量. 静态局部变量有两个用法,记忆功能和全局生存期.2. 用于全局变量,主要作用是限制此全局变量被其他的文 ...