使用ABP打造SAAS系统(1)——环境准备

一、前言

使用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源码:

下载地址: https://github.com/aspnetboilerplate

  • 选择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:https://github.com/aspnetboilerplate

本章源码还未发布到github,后续提供....

时间: 2024-10-12 02:35:29

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

Vagrant 打造跨平台的开发环境

两个项目开发下来,因团队环境不一样,整合修bug成为了一件苦差事.虽然后来搭建了一台测试服务器,但是有时候受网络原因,还是不能连接到测试服务器上.因团队成员能力和习惯都不一样,有的使用windows,有的钟爱ubuntu环境开发,虽然可以各自搭建虚拟机,但是涉及到环境工具插件等安装也会导致环境出现差别.这样的问题明显跟团队协作背道而驰,不符合程序员的逻辑,肯定有相应的办法解决.这办法就是Vagrant,而且vagrant是open source的. step1:安装虚拟机支持环境:Virtura

打造Linux三流娱乐环境,二流办公环境,一流Java开发环境

写这篇文章的目的首先是为让自己以后再装linux环境时候,不用再通宵google+百度,做个备忘录,其次,给新入Linux环境的同学分享一点个人经验,再高尚点的动机也算是想做为开源技术的传播布道者.我在一开始,准备使用ubuntu,其实如果不是特别介意debian系和redhat系的区别完全可以装ubuntu,在通用linux命令和Shell脚本而言,尤其是做Java开发而言,其实二者差别不大,而且 ubuntu中文社区支持的更好,更适合个人机器安装,但我这个人有点强迫症,所以坚持了redhat

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

实际的需求就类似github 的自定义page 1. 个性化域名 github 实现原理就是用户个性化域名使用泛域名解析,这个比较简单,大部分域名提供商都可以解决 具体操作不用赘述 使用nginx 的配置比较简单 配置如下: server { listen 8080default; index index.html index.htm index.php; root html; location /{ root html; } location /app { root html; } locat

Vue2.0+Node.js+MongoDB 全栈打造商城系统

第1章 课程介绍简单回顾前端近几年的框架模式,了解不同时期下的框架特点.其次介绍Vue框架的背景和核心思想,以及同其它MV*框架的对比.1-1 课程-导学1-2 前端框架回顾1-3 vue概况以及核心思想1-4 vue框架优缺点对比 第2章 Vue基础从0到1,如何搭建一个简单的Vue项目:本章节主要讲解Node和Npm环境的搭建,其次介绍vue-cli脚手架的使用,以及通过详细拆解介绍脚手架生成的配置文件信息,最后给大家介绍了Vue涵盖的基础语法.2-1 nodejs和npm的安装和环境搭建2

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

0. 前言 前几天跟朋友聚会的时候,朋友说他们公司准备自己搞一套saas系统,以实现多个第三方平台的业务接入需求.聊完以后,实在手痒难耐,于是花了两天时间自己实现了两个saas系统多租户数据隔离实现方案.俗话说“独乐乐不如众乐乐”,所以我把我的“研究成果”写出来,让大家乐呵乐呵. 在分享我的研究成果之前,我们先了解一下相关的定义吧.如果对这部分内容熟悉的同学,可以直接略过. 1. 什么是saas系统 引用百度百科上面的描述, “SaaS平台是运营saas软件的平台.SaaS提供商为企业搭建信息化

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

本系列博客主要是以对战游戏为背景介绍3D对战网络游戏常用的开发技术以及C++高级编程技巧,有了这些知识,就可以开发出中小型游戏项目或3D工业仿真项目. 笔者将分为以下三个部分向大家介绍(每日更新): 1.实现基本通信框架,包括对游戏的需求分析.设计及开发环境和通信框架的搭建: 2.实现网络底层操作,包括创建线程池.序列化网络包等: 3.实战演练,实现类似于CS反恐精英的3D对战网络游戏: 技术要点:C++面向对象思想.网络编程.Qt界面开发.Qt控件知识.Boost智能指针.STL算法.STL.

saas系统架构经验总结

2B Saas系统最近几年都很火.很多创业公司都在尝试创建企业级别的应用 cRM, HR,销售, Desk Saas系统.很多Saas创业公司也拿了大额风投.毕竟Saas相对传统软件的优势非常明显. 最近一年,有幸架构一个Crm saas 系统,上线了几个月来,各方面都比满意.整个系统创建过程,踩了很多坑,收获也比较多.总结一下Saas系统架构一些特点: 1.分层设计 saas系统分层大概是: 租户识别>应用层>数据访问层>缓存层>数据库 业务代码都是写在应用层. 租户识别可以用s

(2) 搭建 Android 系统开发环境

说干就干,先按 Google 官方的指导,搭建 Android 系统开发环境.页面(需FQ):http://source.android.com/source/initializing.html 安装 ubuntu-14.04 64bit 安装系统有两种方式可选,直接装在物理机上或装在虚拟机中,区别主要就是性能了,本次是安装在虚拟机中的.之前都是装在物理机上的,但是只有一台电脑,而做开发的时候往往还要做些笔记或者其它的事情.总之,在 ubuntu 中完成这些工作并不容易,以前折腾过,也怕了.另外

学习NodeJS第三天:打造Nodejs的调试环境(中)

2012-12-07 因追加<学习 NodeJS 第三天:打造 Nodejs 的调试环境(下)>的缘故,特此将原来的<下>篇改为<中>篇,如标题所示. 上一期我们为大家介绍了安装 Eclipse 调试插件的情况,这对于还不熟悉 Eclipse 开发平台的用户是至关重要的,希望可以通过一步步的图片加文字说明,把 Nodejs 困难的地方变简单和清晰.友好和轻松. 现在正式进入要调试程序肯定要有调试代码.下面就是我们第一个测试的代码,很小的行数: var sys = req