免开发

 

 

 

 

使

 

 

 

 

 

 

 

 

 

 

免开发

 


 

修订记录

日期

修订版本

修改描述

作者

2018-07-05

1.0

 

M

 

 

 

 

 

 

 

 

 

 

 

 

 


 

 

1.     引言... 5

1.1.      编写目的... 5

1.2.      引言... 5

1.3.      应用开发... 5

1.4.      企业使命... 5

1.5.      客户人群... 6

1.5.1.       中小型企业... 6

1.5.2.       程序员... 6

1.5.3.       技术总监... 6

1.5.4.       线下门店... 6

1.5.5.       家庭主妇... 6

1.5.6.       个人... 6

1.6.      收费模式... 7

1.7.      联系我们... 7

2.     开始使用... 7

2.1.      云平台模式... 7

2.1.1.       注册账号-成为免开发客户... 7

2.1.2.       访问后台... 10

2.1.3.       后台主界面... 11

2.2.      应用植入模式... 11

2.2.1.       下载框架... 12

2.2.2.       IIS站点... 12

2.2.3.       浏览插件安装页面... 13

2.2.4.       安装升级卸载插件... 13

3.     免开发应用... 14

3.1.      企业网站... 14

3.1.1.       修改Logo. 14

3.1.2.       动态管理... 16

3.1.3.       模板定制... 17

3.2.      进销存... 17

3.2.1.       录入订单... 17

3.2.2.       商品管理... 17

3.2.3.       供应商管理... 17

3.3.      微信商城... 18

3.3.1.       后台... 19

3.3.2.       前台... 19

3.4.      用户权限管理系统... 19

3.4.1.       用户管理... 19

3.4.2.       角色管理... 19

3.4.3.       菜单管理... 19

3.4.4.       部门管理... 19

3.4.5.       区域管理... 19

3.5.      开发运维平台... 19

3.5.1.       发布代码... 19

3.5.2.       编译代码... 20

3.5.3.       同步Svn日志到DB. 20

3.5.4.       数据库表管理... 20

3.5.5.       数据库链接管理... 20

3.5.6.       网站下载... 20

3.6.      前端开发平台... 20

3.6.1.       格插件... 20

4.     框架介绍... 20

4.1.      使用技术... 20

4.1.1.       IIS. 20

4.1.2.       C#. 20

4.1.3.       Nginx. 20

4.1.4.       Mysql 21

4.2.      服务器部署架构... 21

4.3.      插件框架架构... 21

5.     商业模式... 22

5.1.      免费模式... 22

5.1.1.       常见问题... 22

5.2.      应用植入收费模式... 22

5.2.1.       插件仓库清单... 22

5.2.2.       常见问题... 23

5.3.      插件开发模式... 23

5.3.1.       开发必知... 23

5.3.2.       开发新插件... 23

5.3.3.       数据库设计... 24

5.3.4.       配置插件... 26

5.3.5.       引用插件... 27

5.3.6.       数据库配置... 30

5.3.7.       DB读写分离配置... 31

5.3.8.       分库配置... 32

5.3.9.       登录配置... 32

5.3.10.    Nginx配置... 33

5.3.11.    Redis主从配置... 33

5.3.12.    Web站点变成插件配置类... 34

5.3.13.    拦截请求... 34

 


 

1.  引言

1.1. 编写目的

本文档供给 使用免开发产品的客户”,公司的 /财务/行政/开发工程师/技术经理/老板/CTO/产品经理 等角色 参考。

1.2. 引言

软件开发领域有一个流行的原则:DRYDont repeat yourself,我们翻译过

来更形象通俗:不要重复造轮子。免开发 主要目的是共享应用,其实就是为了让大家不

要重复造轮子,尤其是在互联网这样一个快速发展的领域,速度就是生命,使用 免开发,

可以节省大量的人力和时间,大大加快业务的发展速度,何乐而不为呢!

 

 

1.3. 应用开发

免开发所有的应用,都是由 插件组装而成,每个插件是一个独立的Mvc项目,

由自己独立的 控制器/实体/View/Js/Css/图片/数据库链接/读写分离配置/api接口/等功能。

每个插件自己是独立的,又可以引用其他插件页面,方法。

 

就像您现在看到的这个 文档,就是用 附件预览插件实现呢!

附件预览插件使用文档地址 http://miankaifa.com/Help/Index?pName=FilePreview

版本发布插件-http:// miankaifa.com/Version/Version?pName=AdminManager

pName传插件名称

1.4. 企业使命

公司2年内目标,不断打磨免开发应用,供客户免费使用,满足公司基本运营即可。

公司3年内目标,招募程序员,让程序员基于免开发,可成为自由职业者,可在免开发平台接收客户的任务

 

有了 免开发 插件框架,简单的企业雇佣程序员开发产品,完全被打破。

首先免开发 第一个 免,是不需要开发,就可以组装任何网站。

           第二个 免,是免费,免费给客户使用应用。

 

说白了,只要客户您能让程序员生存,他们将展示自己最真实的能力,开发插件,做好应用。因为他们获得了自由,和尊严,只要一台电脑,开发的插件将复用到n个应用。

 

 

目前中国有2000多万IT从业者,大量公司程序员都在开发相同的产品

OA/CRM/商城/业务系统/门户等等等,程序员最终成为牺牲品,一将功成万骨枯万骨枯。多少程序员在做重复的工作,又有多少代码没有直接包装成应用,直接面对客户。

 

所以我们需要一个平台,将自己积累的代码业务,封装成插件,目的是为了产生给大的价值,让给多的客户可以使用。

当程序员到达35岁的时候,公司辞退了,一个拥有100个插件的程序员,可组装数10 应用产品的程序员,是有出路的。

 

免费给客户使用的应用,让免开发拥有大量的客户资源,把程序员引荐给客户,

这时候,程序员和客户  直接建立了 桥梁,软件开发的成本再一次大大降低。

 

再也没有KPI 中年危机 每天写重复代码,直接和客户沟通,写好每一行代码!

 

最后,一句话, 让每个程序员功成身退 ,只要衣食无忧,愿意为客户打造伟大的应用 

 

1.5. 客户人群

 

1.5.1.   中小型企业

1.5.2.   程序员

1.5.3.    技术总监

1.5.4.   线下门店

1.5.5.   家庭主妇

1.5.6.   个人

1.6. 收费模式

1.7. 联系我们

官网:http:// miankaifa.com

官方微信公众号 长沙梅溪湖

客服QQ  1362250488

2.  开始使用

2.1. 云平台模式

直接在线访问免开发注册账号,即可使用免开发应用的模式。

2.1.1.   注册账号-成为免开发客户

访问http:// miankaifa.com/login/Default

 

 

 

只要输入  客户名称/手机号码/访问域名(字母简称)/账号/密码 就行了。

 

 

第一次注册,会初始化 数据库等信息,稍等10几秒

 

成功后,会跳转到  访问域名. miankaifa.com (访问域名是您输入的访问域名test)

 

每个客户可以设置  访问域名. miankaifa.com 默认跳转的页面 (可在后台修改默认页面)

 

(默认是http://访问域名. miankaifa.com/enterpriseWeb/Index 一个企业网站首页)

2.1.2.   访问后台

访问 http://访问域名. miankaifa.com/Login/Default

(访问域名为 注册账号 填写的 域名)

 

输入注册 填写的账号/密码 点击登录

 

 

2.1.3.   后台主界面

(目前登录的是管理员账号-能看到的是全部应用)

2.2. 应用植入模式

满足已经有自己网站的客户,想使用免开发应用的客户。

2.2.1.   下载框架

 

2.2.2.   集成IIS站点

 

 

找到你要集成的站点

(就是客户自己部署在服务器的站点,该站点和免开发没任何关系,就是自己的站点)

 

右键站点-浏览

粘贴 下载的框架目录 到站点根目录

如果提示有已经存在的dll文件,则选择不替换

 

2.2.3.   浏览插件安装页面

访问 http://您集成的站点访问地址/PluginsCenter/Index

(/PluginsCenter/Index为插件管理的页面)

2.2.4.   安装升级卸载插件

 

 显示的是免开发服务器插件仓库上传的插件-可以点击 安装/升级/卸载 来集成到自己站点

3.  免开发应用

3.1. 企业网站

3.1.1.   修改Logo

搜索 网页标记- 双击表格中 Logo

 

上传Logo -点击立即提交

 

 

同样双击 其他行,可以修改(也可添加Key 作为前端模板定制显示)

3.1.2.   动态管理

搜索 动态管理

 

增删改成随便操作,现在有 动态和问答2个类型

3.1.3.   模板定制

3.1.3.1.  仿站

要仿站的网址,发给客服,将您的企业网站,开发成你想要的样子。

3.1.3.2.  设计企业网站

您的 企业资料,图片发给客服,

专门设计为你设计,满意为止,

3.2. 进销存

3.2.1.   录入订单

3.2.2.   商品管理

3.2.3.   供应商管理

3.3. 微信商城

 

/static/2/免开发/微信图片_20180614141916_20181814021839_big.png

 

扫描体验

/static/2/免开发/1528956789_20181314021327_big.png

3.3.1.   后台

3.3.2.   前台

3.4. 用户权限管理系统

3.4.1.   用户管理

3.4.2.   角色管理

3.4.3.   菜单管理

3.4.4.   部门管理

3.4.5.   区域管理

3.5. 开发运维平台

3.5.1.   发布代码

3.5.2.   编译代码

3.5.3.   同步Svn日志到DB

3.5.4.   数据库表管理

3.5.5.   数据库链接管理

3.5.6.   网站下载

3.6. 前端开发平台

3.6.1.   表格插件

4.  框架介绍

4.1. 使用技术

 

4.1.1.   IIS

可以部署在Windows,目前正在策划将插件底层改成.Net Core。可以部署到Linux系统,最终实现跨平台。

4.1.2.   C#

简洁优美的语法,强大的IDE,让刚毕业的实习生就可以快速借助免开发快实现 公司 业务需求功能。

 

4.1.3.   Nginx

满足当客户业务增长时候,Web服务器承载千万访问量问题,网站部署可以无限扩张。

4.1.4.   Mysql

淘宝都是Mysql2次开发的,免开发默认时候Mysql数据库,可以切换Sqlserver/Oracle数据库

4.2. 服务器部署架构

 

免开发架构最初就考虑到了当客户业务增长,网站和DB性能问题。

首页WebNginx插件做了负载均衡,让网站支持千万级访问,数据库从插件就支持读写分离,目前默认是Mysql数据库插件,实现了主从同步。

4.3. 插件框架架构

本着拿来主义原则,传统的客户公司当有需求了是找公司内部程序员开会讨

需求,开发,测试,上线。转变为直接从插件仓库下载,Bug和需求提交 免开发,开发该插件的程序员修复后。客户在自己的站点点击升级就可以了。

 

5.  商业模式

5.1. 免费模式

使用 云平台 模式-的客户 终生免费使用 免开发所有应用,

本着已经有的应用,直接注册账号使用。

 

5.1.1.   常见问题

5.2. 应用植入收费模式

针对已经有自己网站的客户,但是又想使用免开发的应用,这样可免去自己在花钱招聘技术人员来开发完善自己的网站。

免开发-基于成熟完善的插件框架,所有应用都是插件组成,插件可以植入到任何部署在IIS上面的网站。

采用一致性开通VIP模式(999),终生享受使用现有插件重构客户的网站。

5.2.1.   插件仓库清单

5.2.1.1.  功能插件

5.2.1.2.  数据插件

5.2.1.3.  业务插件

5.2.2.   常见问题

5.3. 插件开发模式

满足有开发人员的客户公司,不满足于使用免开发现用的插件和应用,

想自己开发插件,由本身插件重构网站,升级为自己开发插件完善公司产品应用。

 

5.3.1.   开发必知

让客户公司开发人员可以自己开发插件,或者将插件仓库 开发的 Mysql/Nginx等插件替换为自己开发的。

免开发 开发插件支持客户使用自己的任何技术,ORM可以用自己的技术,前端可以用自己的技术,其实插件就是自己的代码,免开发插件框架起到了一个动态加载的问题。

    随便找个之前做的模块,简单配置下,就变成了可以免开发插件,可以融入到插件仓库给别人下载使用。

5.3.2.   开发新插件

CodeBuild插件提供-开发新插件模板代码生成

 

 

访问  /CodeBuild/DownPlugin

 

 

提交后:会输出插件模板代码压缩包

 

5.3.3.   数据库设计

在线设计数据库,新增表,字段管理。

 

 

 

 

 

 

点击 单表代码 会生成 CRUD页面后台代码

5.3.4.   配置插件

每个插件都有config.xml文件配置插件全局参数

 

 

配置文件对应实体字段

 

 

代码访问配置值

ConfigComm._siteParm.isEnable

5.3.5.   引用插件

5.3.5.1.  引用其他插件页面

CodeBuild插件DownPlugin页面引用

Layui插件index页面

 


    @Html.Action("index", "layui", new

{

    pluginName = "layui"

})

 

页面参数在 new 里面添加

 

5.3.5.2.  引用其他插件类方法

直接引用插件dll

 

          customer_customer cusDb = Customer.Controllers.CustomerController.GetCustomer().ExData;

5.3.5.3.  Api调用

 

False表示直接Dll引用调用方法

True表示走接口不需要引用Dll

 

     ApiReturnModel dymodel = ApiHelper.PostApi<UserManager.usermanager_users>(

                ConfigComm._siteParm.ServiceCenter + "/UserManager/CheckUserApi",

                model,

                false

                , () => new UserManager.Controllers.UserManagerController().CheckUser(model.username, model.password));

 

 

5.3.5.4.  RPC模式

我们都知道HTTP协议是在传输层协议TCP之上的,所以效率来看的话,RPC当然是要更胜一筹

5.3.5.4.1.  Thrift

 

Thrift是一个跨语言的服务部署框架,最初由Facebook2007年开发,2008年进入Apache开源项目。Thrift通过IDLInterface Definition Language,接口定义语言)来定义RPCRemote Procedure Call,远程过程调用)的接口和数据类型,然后通过thrift编译器生成不同语言的代码(目前支持C++,Java, Python, PHP, Ruby, Erlang, Perl, Haskell, C#, Cocoa, SmalltalkOCaml),并由生成的代码负责RPC协议层和传输层的实现。

 

      已经实现让控制器方法转换为RPC调用

 

 

 

 

生成C#代码

 

5.3.6.   数据库配置

 

是否自定义数据库链接 0表示使用connstr链接字符串
1
表示 根据域名来识别链接字符串 分库
可以给每个产品/客户不同域名实现分库

 

 

5.3.7.   DB读写分离配置

是否启用数据库读写分离 1表示 启用

启用后 新增/修改/删除 主库链接

查询走 从库链接

 

 

MySQL插件自带了免安装版的 数据库

 

默认  从库 3307端口

已经配置好 主从复制 账号repl 密码mysql 实现复制

 

5.3.8.   分库配置

给每个客户配置独立域名,根据域名分库

5.3.9.   登录配置

 

启用登录验证 1 会拦截插件 必须登录才能访问

5.3.10.         Nginx配置

启动 访问 /Nginx/Start

停止 访问 /Nginx/Stop

免安装,已经集成到Nginx插件

 

5.3.11.         Redis主从配置

 

已经集成到Redis插件

masterauth 123

5.3.12.         Web站点变成插件配置类

下面MVC站点之所以能变成插件,就因为有 RoutePlugin.cs类实现了IPlugin接口

 

 

5.3.13.         拦截请求

可以拦截整站的请求的一个配置, isEnableHttpModule设置为true

所有的请求都会先回调HttpModuleErrorCallback方法。

在该方法可以作出插件对本次请求的回复。