# EasyBuild **Repository Path**: nikytwo/EasyBuild ## Basic Information - **Project Name**: EasyBuild - **Description**: 所见即所得的无代码开发工具。C#开发,在浏览器中进行拖拉生成页面,并可设置相关事件,完成相关功能。 - **Primary Language**: C# - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2015-09-02 - **Last Updated**: 2021-04-26 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## 依赖 * c#,html,javascript,css,Groovy(主要用于编写浏览器的自动化测试) * .net4.0 * vs 2010 sp1+ * [mvc 4](http://asp.net/) * [webapi](http://asp.net/) * [nuget 2.8.6+](http://nuget.org/): .net 的包管理工具 * [nodejs](https://www.npmjs.com/) * [AmazeUI](http://amazeui.org/): HTML5 跨屏前端框架 * [webpack](http://webpack.github.io/): js 的模块化构建工具 * [lodash](https://lodash.com/): js 工具库(数组,集合,对象,字符串等常用操作) * [jQuery](http://jquery.com/): js DOM 操作库 * `npm`依赖见"[package.json](./src/EasyBuild.Web/package.json)"文件 * `.net`依赖见各个工程文件下的"packages.config"文件 * [Geb](http://www.gebish.org/): 浏览器自动化测试方案,其以[WebDriver](http://www.oschina.net/p/selenium)为基础,并可以整合[JUnit](http://www.oschina.net/p/junit)测试框架进行功能测试。 * jdk1.7+ : `Geb`的依赖 * [Gradle](http://gradle.org/): java系列的包管理和构建工具。`Geb`的依赖,用于构建测试。 * [MSBuild](https://msdn.microsoft.com/zh-cn/library/0k6kkbsd.aspx): .net 构建工具 ## 编译与安装 要编译本项目需按以下步骤安装相关依赖包和编译打包相关文件: 1.安装`.net`依赖包: `vs`中打开项目,运行如下命令(需要安装[nuget](http://nuget.org/)插件) Update-Package -reinstall 2.安装`javascript`依赖包: 运行如下命令(需要安装[nodejs](https://www.npmjs.com/)) cd ./src/EasyBuild.Web npm install 若仍不能编译生成项目,请删除`./src/EasyBuild.Web/node_modules`目录,再运行 npm install 3.接着运行(每当`javascript`文件有变化,均需运行该命令,或参见下面的[实时预览]()) webpack // 或 webpack -p //(编译后再压缩) 该命令将编译打包`js`、`css`、图片等资源。 4.最后在`vs`中生成项目。 ## 项目的目录结构 ``` EasyBuild |-- docs // 项目相关文档 | |-- data // 数据库文档 | | |-- buildDatabase.bat // 创建数据库并初始化数据库的脚本 | | |-- update.bat // 更新数据库的脚本 | | |-- CreateDatabase.sql // 创建数据库sql语句(含各字段说明) | | `-- InitDatabase.sql // 初始化数据库sql语句 |-- ... | `-- README.md `-- src // 项目源代码 |-- EasyBuild.DAL // 数据存储层子项目 | |-- Mapping // 模型与数据映射关系 | `-- ***Map.cs | |-- I***Repository.cs // 接口 | `-- packages.config // .net 依赖包描述文件(下同) |-- EasyBuild.DAL.Tests // 数据存储层单元测试子项目 | |-- ***Test.cs | `-- packages.config |-- EasyBuild.BLL // 业务逻辑层子项目 | |-- I***Service.cs // 接口 | `-- packages.config |-- EasyBuild.BLL.Tests // 业务逻辑单元测试子项目 | |-- ***Test.cs | `-- packages.config |-- EasyBuild.Models // 数据模型子项目 | |-- ***.cs | `-- packages.config |-- EasyBuild.Web // Web子项目 | |-- App_Start | |-- BundleConfig.cs // js,css打包压缩配置文件 | |-- ... | `-- DependencyConfig.cs // 依赖注入配置文件 | |-- Images | |-- Content // css文件 | |-- Scripts // nuget 下载的第三方js库和 webpack 编译生成的 js/css 文件(一般不要手工改动该文件夹下的文件) | |-- js | |-- app // 项目相关js文件(详细说明见[设计文档](./docs/README.md)) | `-- lib // 手工下载的第三方js库(一般不要手工改动该文件夹下的文件) | |-- Filters // 过滤器 | |-- Controllers | |-- Models | |-- Views | |-- web.config | |-- package.json // nodejs 配置文件 | |-- gulpfile.js // gulp(javascript 自动化构建工具) 配置文件 | |-- webpack.config.js // webpack(javascript 模块化开发工具) 配置文件 | `-- packages.config |-- EasyBuild.Web.Tests // Web相关单元测试子项目 | |-- Controllers | |-- ***Test.cs | `-- packages.config |-- test // 浏览器自动化测试 |-- groovy `-- resources ``` ## 其他相关文档 * [设计文档](./docs/README.md) * [接口文档](./docs/interface.md) * [部署文档](./docs/release.md) * [工作流程](./docs/workflow.md) * [项目规范](./docs/CodeSpec.md) * [项目计划](./docs/plan/plan.md) * [webpack 简易教程](./docs/webpack-usage.md) * [Geb 简易文档](./docs/geb.md) * [Wiki](../../wikis/home) *** ## 其他 ### 持续集成 持续集成服务器:[http://192.168.1.159:8079/](http://192.168.1.159:8080/) 内容: 每晚3:45-4:00对 develop 分支进行构建并部署至:[http://192.168.1.159:8081/](http://192.168.1.159:8081/) 每星期一4:00-4:15对 master 分支进行构建并部署至:[http://192.168.1.159:8082/](http://192.168.1.159:8082/) "修改记录"有记录每个版本修改的内容,测试人员可根据此进行测试。 每当有合并请求时将运行该请求分支下的所有单元测试, 测试结果见:[EasyBuild-Test](http://192.168.1.159:8080/job/EasyBuild-Test/)。 每天 develop 分支成功构建并部署后, 自动执行单元测试(结果:[EasyBuild-Test](http://192.168.1.159:8080/job/EasyBuild-Test/)) 和功能测试(结果:[EasyBuild-BrowserAotuTest](http://192.168.1.159:8080/job/EasyBuild-BrowserAotuTest/)) 系统的代码质量分析结果: http://192.168.1.159:9000/ 开发人员每天的工作内容已根据前一天的合并申请记录在这里: http://192.168.1.159:8080/job/EasyBuild-Develop/changes ### nuget 设置 不要设置`nuget`的`repositoryPath`参数。运行如下命令将其设置为空: ``` nuget config -set repositoryPath="" ``` 或直接修改`%APPDATA%\NuGet\NuGet.Config`文件。 若设置了`repositoryPath`,会导致项目中包文件的引用都会使用`repositoryPath`指定的路径的包文件。 这样导致vs项目文件(*.csproj)中使用绝对路径进行定位包文件。 不利于协同开发。 `nuget`默认的在每个项目根目录下创建一个`packages`文件夹来存放引用的包文件。 ### npm [国内镜像](http://www.cnpmjs.org/) #### 使用 安装`cnpm`: ``` npm install -g cnpm --registry=http://registry.cnpmjs.org ``` 使用`cnpm`代替`npm`命令: ``` cnpm install [package] ```