权限管理、用户权限系统、开源用户权限系统、信息化建设标准基础数据管理平台
代码改变世界

[置顶]3天搞定的小型B/S内部管理类软件定制开发项目【软件开发实战10步骤详解】

2010-10-07 21:39 by 通用C#系统架构, 阅读(82446) 阅读, 推荐(89) 推荐, 收藏, 编辑

 

 

   十一休假,杭州西湖边逛了一圈只能用人山人海来形容,浙大紫金港校区也逛了一圈风景如画,建设得真不错很棒,假期就去了这2个地方,然后在家里陪老婆、看孩子、洗尿布、打了几局星际争霸,在网上接了一个B/S架构的内部管理类定制软件、淘宝上收了600元辛苦费后就开始行动了、现在把整个开发过程讲解分享如下文。

 

客户需求

   一个简单的项目管理信息的,添加、删除、编辑、查询等功能的实现,把大的框架做好就可以,细节他会自己完善好,想想也很简单的一样,本以为1天时间就足可以搞定了,结果足足干了3天才算竣工,由于客户也是软件开发人员,沟通起来也比较顺畅一些,否则可能不止需要3天了。

 

   项目虽然很小,但是由于跟我的主营方向是一致的,同时也想锻炼一下做项目的成熟程度有多高、有多快,所以也没嫌弃钱多钱少,开开心心就把这个项目开始启动了。项目虽然小但五脏俱全来形容了这个活儿了。

   很多必要的功能虽然在需求里没有提到,但是都是需要做好的,例如:

         01:系统的登录功能、这个是必然要有的。

         02:记住密码功能,而且是需要有加密功能的。

         03:退出系统的功能,总需要能安全退出系统的吧。

         04:用户管理功能,例如哪些用户才能登录到系统里来?

         05:用户修改密码功能,停用功能,设置密码功能等。

         06:用户可以访问那些菜单等?

         07:用户有哪些操作权限等?

         08:角色管理功能,用户角色关系功能,角色的权限功能。

         09:友善的菜单导航功能。

         10:没有权限的友善提示功能。

         11:附件的管理、上传、下载、删除等等。

         12:查询分页功能等等,虽然都没提出,但是这些功能都需要做好的。

 

 

整体开发思路

 

数据库分2个设计:业务数据 + 权限数据,互相不干扰,相互比较独立一些。

整个系统分3个种干系人: 开发人员 + 系统管理员 + 操作人员,他们对系统各自的期望值及操作的内容如下图。

为了快速搞定项目,毕竟项目的预算很有限,所有有些功能模块能不开发就不开发,那我们就用现成的成熟组件,通用权限管理系统,做为用户账户管理、权限管理

菜单管理的核心组件,这样可以大大的提高工作效率,可以灵活配置管理这个小型B/S项目信息管理系统了。

 

 

项目的具体开发制作步骤

 

步骤1:项目虽然很小,但是还是按规范的软件开发步骤比较好,我们还是本着先有设计后有开发的思路,先不急着写代码,我们先把数据库结构设计好,本系统应该只设计一个表就可以了,我们先要想好哪些数据用什么格式保存,都需要哪些字段来表示各种属性,效果图如下,我们用了数据库建模工具PowerDesigner,来设计我们的业务模型中的数据模型吧,这就是所谓的开发上的领域模型吧,其实这个设计还是蛮关键的,设计乱了后面都会乱套了。

 

步骤2:通过用设计好的模型,我们先手工建立相应的数据库及数据表。

 

步骤3:下图是已经建立好的数据的效果图,Project是业务数据库、Project表是项目信息表,后面的Base_Sequence 用于产生序列及唯一排序号、Base_Comment 用于修改记录保存功能,这些不用重复设计,直接从UserCenterV30数据中心里复制过来结构就可以了,为了在软件里显示一些数据出来,可以通过手工方式先录入一些演示数据,这样成就感会更多一些、信心也更足一些,因为很快就可以在软件里显示数据出来了。

 

步骤4:生成好相应的数据表后,可以用代码生成器生成一些没有多少商业逻辑的代码了,所谓的添加、删除、修改、查询的代码都不用写了,直接用代码生成器生成好就可以了,虽然这个技术不怎么先进,但是省事省心,对技术的要求也很低,生成好的代码也比较规范一些,而且还支持多种数据库,还是蛮好的,若生成好后,数据库结构有变化了,也没关系,重新生成一下就可以了,生成代码1分钟足够了,顶多是命名空间可能需要整理一些就可以了,属于是很经得起折腾的做法了。

 

步骤5:将生成好的代码,复制到相应的位置上,适当的修正一下命名空间什么的,因为是一个很小的项目,根本不用分层啥的,分那么多层也是多余的,其实分目录就足够可以了,若很懒惰的话目录都可以不用分了,分层其实更适合大型软件项目,小项目以见效最快为主,没必要搞个7-8个层,这里是是1个层也没分,只是分了一些目录,显得思路更清晰一些。

 

步骤6:代码生成器不能生成所有的代码,有些代码还是有商业逻辑的,需要人工编写,其中ProjectManager.cs 中的代码就是有具体商业逻辑的代码,这部分代码无法靠代码生成器自动生成好,需要按自己的需要进行编写的,这里有2个功能,一个是查询功能的实现、另一个是更新数据时需要有修改记录的功能,需要详细记录数据被变更的全过程,这些代码都需要人工编写好,页面上会调用这些代码。

 

步骤7:接下来该是规划整个系统的菜单的时候,需要好好规划一下软件的菜单,到底需要有哪些菜单,都叫什么名字?当然这一步也可以在在最后做,我们同通用权限管理组件可以灵活规划整个系统的菜单,基本上想怎么设置就怎么设置,想怎么托摘、想怎么排序都可以,规划菜单时会很爽,当然不只是开发人员用起来爽、而且系统管理员今后维护时也会很爽,系统的整个菜单都可以灵活配置权限、可以灵活更改,而不是写死的菜单,将来不依赖开发人员也可以灵活配置管理,灵活设置各种权限限制等等。

 

步骤8:接下来,需要把相应的添加、修改、查询、删除功能页面做出来,可以考虑到今后可能会扩展很多模块进来,所有目录规划得合理一些,说不定还要做人事管理、考勤管理、薪资管理、工作日志管理等等很多模块,其实都是大同小异而已,更多是技术是体现在细节功能及业务逻辑的深入程度上。

 

步骤9:菜单配置好,页面制作好后,就可以实现登录系统的页面了,当然这个也是用了现成的通用权限管理系统的登录页面,只需要制作一个登录界面,然后调用相应的登录API就可以了,自然就可以达到离职人员不能登录、没有权限的用户不能登录、停用账户不能登录,不能重复登录、限制登录的IP地址等等额外的其他功能都可以集成在里面了,开发人员也不用关心更多的细节,省心省事了。 

 

步骤10:登录好后,通用权限管理系统的底层API,自然会显示有权限的菜单,无权访问的菜单也不会出来了,哪个用户可以访问哪个菜单等等,都可以通过通用权限管理工具灵活配置管理,当然那个工具是给系统管理员、开发人员、实施人员使用的,并不是为了给普通业务操作员使用定位的。软件的最终运行效果就如下图了,由于是系统管理登录的所有菜单都能显示了,当然这里还需要一个成熟稳定的分页组件。

 

 

   底层代码生成器生成的代码,可能只占用这个系统的代码的 1/3左右,但是编写这些代码的时间也省了,整个开发过程不是可以节省1/3了,而且是纯体力劳动而已。整个权限管理等可能需要整个系统开发的1/3左右的精力,若这部分也不用开发了,又可以节省整个软件项目开发的1/3时间。整个框架的稳定完善,也可以说是占用整个软件开发项目的1/3时间是应该的,若是2手空空开始开发的话。

   那我们的项目采用了 代码生成器 + 数据库访问组件 + 通用权限组件 + 成熟的B/S开发框架 足足可以节省一个管理软件项目开发的 2/3 的开发时间,可以把精力全部放在另外的 1/3 的业务逻辑优化、界面细节优化上。

   这样也大大的降低了软件项目的开发的失败风险,谁说你不会在前面的2/3时间上失败呢?未必能走到后面的1/3时间上来啊,对吧。  

 

开发总结

 

  目前3天内搞定一个独立的内部管理系统,而且五脏俱全的是我从业10年左右的最快记录,当然若第二次做类似的东西,可能有希望2天内可以搞定了。

 

  经过多年的积累,手上才会有一个运行稳定、可以灵活配置的B/S开发架构,虽然看看都很简单,但是最起码不断完善几年后,才会达到铜墙铁壁的程度,我们经常会发现,开发一个小小的软件,往往1个月也开发不完,很可能是由于没有稳定的B/S开发架构导致的,这个架构也不是说技术,就是一个美观的整体效果良好的运行稳定的B/S系统吧,从头开发的B/S架构,由于需要调整很多细节环节、特别是页面、菜单的美观设计等上会耗费很多精力。

   有时候界面设计良好、程序思路严谨、用户交互效果好的B/S空框架也能卖出几万元,以前不能理解,现在是彻底能体会了,稳定的B/S架构的确可以值一些钱,因为是经过精雕细刻后才能形成最后的劳动成果的。

 

   软件的大体效果做到这里,大概花费了3天时间、接下来可能要花费的时间会更多,应该不止3天了,可能是30天,因为很多业务上的细节会耗费很多时间来调整,例如新增页面的先后输入的内容,页面输入的检查、页面的美观设计、光标的顺序优化、回车优化,输入内容的完善补充等等,查询页面的排序顺序优化、查询内容的先后顺序排版、表格中各列的宽度调整,一些提醒颜色的优化等等会有很多细节问题上还要耗费很久时间的, 做软件其实就是做细节,你需要有一个良好的B/S开发框架,否则全部自己弄,不知道什么时候才能弄好,有个良好的框架、再有良好的例子程序,整个管理系统,就是一个量的问题了,其次就是很多细节的优化上,会花费很多时间。

   

    有良好的稳定的B/S开发框架,前期工作只用了3天,若没有这个,从头开始做,可能30天也做不完,更不会把大多精力都花费在业务逻辑的细节优化上,可能更多的精力都耗费在B/S系统架构的稳定、优化上了,那这个软件的质量就更没保障了。

 

    有了稳定的B/S开发框架后,才好进行大规模生产、大量招聘人员做开发工作,若这些都没有,招聘来一大堆开发人员,那很可能局面就乱套了,大家就容易乱来了。

 

    ProjectManager.cs手工编写的商业逻辑代码如下:

代码
//------------------------------------------------------------
// All Rights Reserved , Copyright (C) 2010 , Jirisoft , Ltd .
//------------------------------------------------------------

using System;
using System.Data;
using System.Data.Common;
using System.Collections.Generic;

namespace Project
{
    
using DotNet.DbUtilities;
    
using DotNet.Manager;
    
using DotNet.Utilities;
    
using DotNet.Business;

    
/// <summary>
    
/// ProjectManager
    
/// 项目跟进表
    
///
    
/// 修改纪录
    
///
    
///        2010-09-28 版本:1.0 JiRiGaLa 创建主键。
    
///
    
/// 版本:1.0
    
///
    
/// <author>
    
///        <name>JiRiGaLa</name>
    
///        <date>2010-09-28</date>
    
/// </author>
    
/// </summary>
    public partial class ProjectManager : BaseManager, IBaseManager
    {
        
public DataTable Search(string userId, string searchValue)
        {
            
// 一、这里是开始进行动态SQL语句拼接,字段名、表明都进行了常量定义,表名字段名发生变化时,很容易就知道程序哪里都调用了这些。
            string sqlQuery = string.Empty;
            sqlQuery 
= " SELECT * "
                    
+ " FROM " + this.CurrentTableName
                    
+ " WHERE " + ProjectTable.FieldDeleteMark + " =  0 ";

            
// 二、我们认为 userId 这个查询条件是安全,不是人为输入的参数,所以直接进行了SQL语句拼接
            if (!String.IsNullOrEmpty(userId))
            {
                sqlQuery 
+= " AND " + ProjectTable.FieldCreateUserId + " = '" + userId + "'";
            }

            
// 三、这里是进行参数化的准备,因为是多个不确定的查询参数,所以用了List。
            List<DbParameter> dbParameters = new List<DbParameter>();

            
// 四、这里看查询条件是否为空
            searchValue = searchValue.Trim();
            
if (!String.IsNullOrEmpty(searchValue))
            {
                
// 五、这里是进行支持多种数据库的参数化查询
                sqlQuery += " AND (" + ProjectTable.FieldKeHuMingCheng + " LIKE " + DbHelper.GetParameter(ProjectTable.FieldKeHuMingCheng);
                sqlQuery 
+= " OR " + ProjectTable.FieldKeHuXiangMuMingCheng + " LIKE " + DbHelper.GetParameter(ProjectTable.FieldKeHuXiangMuMingCheng);
                sqlQuery 
+= " OR " + ProjectTable.FieldCreateUserRealname + " LIKE " + DbHelper.GetParameter(ProjectTable.FieldCreateUserRealname);
                sqlQuery 
+= " OR " + ProjectTable.FieldDescription + " LIKE " + DbHelper.GetParameter(ProjectTable.FieldDescription) + ")";

                
// 六、这里是判断,用户是否已经输入了%
                if (searchValue.IndexOf("%"< 0)
                {
                    searchValue 
= "%" + searchValue + "%";
                }

                
// 七、这里生成支持多数据库的参数
                dbParameters.Add(DbHelper.MakeInParam(ProjectTable.FieldKeHuMingCheng, searchValue));
                dbParameters.Add(DbHelper.MakeInParam(ProjectTable.FieldKeHuXiangMuMingCheng, searchValue));
                dbParameters.Add(DbHelper.MakeInParam(ProjectTable.FieldCreateUserRealname, searchValue));
                dbParameters.Add(DbHelper.MakeInParam(ProjectTable.FieldDescription, searchValue));
            }
            sqlQuery 
+= " ORDER BY " + ProjectTable.FieldSortCode + " DESC ";

            
// 八、这里是将List转换为数组,进行数据库查询
            return DbHelper.Fill(sqlQuery, dbParameters.ToArray());
        }
        
        
/// <summary>
        
/// 更新(带有修改记录功能)
        
/// </summary>
        
/// <param name="projectEntity">实体</param>
        
/// <param name="changeLog">修改记录</param>
        
/// <returns>影响行数</returns>
        public int Update(ProjectEntity projectEntity, bool changeLog)
        {
            
// 若不需要修改记录
            if (!changeLog)
            {
                
return this.UpdateEntity(projectEntity);
            }

            String changeMessage 
= String.Empty;

            
// 获取原来的数据
            ProjectEntity oldProjectEntity = this.GetEntity((int)projectEntity.Id);
            
if (oldProjectEntity.KeHuXiangMuMingCheng != projectEntity.KeHuXiangMuMingCheng)
            {
                changeMessage 
+= "客户项目名称被修改为:" + projectEntity.KeHuXiangMuMingCheng + " 原值:" + oldProjectEntity.KeHuXiangMuMingCheng + "<br>";
            }
            
if (oldProjectEntity.KeHuMingCheng != projectEntity.KeHuMingCheng)
            {
                changeMessage 
+= "客户名称被修改为:" + projectEntity.KeHuMingCheng + " 原值:" + oldProjectEntity.KeHuMingCheng + "<br>";
            }

            
if (oldProjectEntity.KaiGaiRiQi != projectEntity.KaiGaiRiQi)
            {
                
// changeMessage += "开改模日期被修改为:" + ((DateTime)projectEntity.KaiGaiRiQi).ToString(BaseSystemInfo.DateFormat) + " 原值:" + ((DateTime)oldProjectEntity.KaiGaiRiQi).ToString(BaseSystemInfo.DateFormat) + "<br>";
            }

            
if (!String.IsNullOrEmpty(changeMessage))
            {
                BaseCommentManager commentManager 
= new BaseCommentManager(this.DbHelper, this.UserInfo);
                commentManager.Add(
"工程管理", projectEntity.Id.ToString(), projectEntity.KeHuXiangMuMingCheng, changeMessage, false, String.Empty, falsethis.UserInfo.IPAddress);
            }

            
return this.UpdateEntity(projectEntity);
        }
    }
}

 

 

 

[置顶]10年磨一剑,软件编程走火入魔之:把简单的功能做个彻彻底底、把劳动成果重复利用

2010-05-11 23:06 by 通用C#系统架构, 阅读(24280) 阅读, 推荐(32) 推荐, 收藏, 编辑
摘要: 让管理软件开发人员早点儿回家休息,做个跟老外有的一PK的软件组件,铜墙铁壁的权限组件。 年轻时、精力旺盛,有用不完的劲儿,但是工作经验不多,对各种行业实际应用没有深入的了解,大多停留在表面问题上,做不出过硬的有质量的软件组件来,刚精通C#程序时,发现又需要精通C/S、B/S才可以,这时又发现自己的数据库技术不过关,等刚掌握了SQLServer,又发现自己不懂Oralce,也不懂MySql,自己写出来的程序又不兼容这些数据库,等数据库也都精通了一些,发现自己的写文档能力不行,做个像样的东西非常不容易。 阅读全文

超级大公司信息系统上档次、提高能力的重要事件记录

2024-04-07 10:57 by 通用C#系统架构, 阅读(194) 阅读, 推荐(0) 推荐, 收藏, 编辑
摘要:未必全、仅供参考 1:系统的Bug管理、需求管理、代码生成器、基础开发框架稳定成熟、有通用的前端界面组件、稳定高效率的权限组件;公司的业务开发就能进入流水线开发能力,开发人员多了不会乱。 2:建设专业化的产品经理岗位,系统的整理各种业务需求、梳理各种业务需求,组织参加各种业务会议,业务人员与技术开发 阅读全文

技术人员如何有效进行各种职场排挤、防止被排挤?

2024-03-27 15:45 by 通用C#系统架构, 阅读(726) 阅读, 推荐(4) 推荐, 收藏, 编辑
摘要:《道高一尺魔高一丈》、有时候在人生低谷、遇到难以逾越的困难时,可以当个参考借鉴。 有时候也是命运一样,遇到好的人、好的事情、一切都会很顺利;遇到一些不顺利、可能会各种被折磨、否极泰来、在低谷是需要有足够的耐心隐忍,放弃是最容易的、往往坚持都是最艰难的。 能不给你批准的费用预算、一分钱也不给批准、就当 阅读全文

如何发挥技术价值 - 脱离技术人员办公室思维(开发人员天天座位上电脑前思维僵化)

2024-03-25 15:52 by 通用C#系统架构, 阅读(102) 阅读, 推荐(0) 推荐, 收藏, 编辑
摘要:年轻时能跟厉害的人在一起工作、一起提高,也决定将来的发展高度,能选对行业、能在飞速发展的公司工作,也是非常关键的,遇到风口了猪都能飞起来,能与时俱进的发展。 年轻时能学最先进的技术就学最先进的技术,往往最先进的技术能解决最难的问题,最有价值发挥的空间。 在单位里寻找业务开支成本最大的业务,这样的业务 阅读全文

纯技术开发出身 -- 给全国各地提供软件技术咨询服务(大型信息系统建设、大数据处理、管理咨询、信息安全咨询、系统上云、咨询顾问)

2024-03-25 09:49 by 通用C#系统架构, 阅读(110) 阅读, 推荐(0) 推荐, 收藏, 编辑
摘要:往往技术厉害的离不开现在工作的公司、需要有稳定的技术岗位工作、每个月需要按时还巨额房屋贷款,需要安心专注技术研究、安心手上的技术开发、日常技术难题解决等等,没精力全国各地开拓客户资源,也没精力对接各种不确定的客户需求;从社会分工的角度、还是需要有一些人精通技术然后能给全国各地的各种客户提供技术咨询、 阅读全文

如何有效管理研发技术团队、打造优秀的产品、心得体会分享

2024-03-22 14:04 by 通用C#系统架构, 阅读(200) 阅读, 推荐(0) 推荐, 收藏, 编辑
摘要:如何有效管理技术团队: 1:首先需要得到上级领导的认可、与上级领导沟通好、拿到资源、拿到管理权限,有上级领导正式授权;与团队一起开会,最好能把大领导叫上、正式任命正式授权,这样对接下来的管理非常畅通,在大家面前确认管理工作得到了大领导的全面支持,大家需要服从管理,需要有正式任命书 + 开会当众公布, 阅读全文

公司日常管理 - 流程管理、审批流程的重要性简易分享

2024-03-21 14:28 by 通用C#系统架构, 阅读(213) 阅读, 推荐(1) 推荐, 收藏, 编辑
摘要:时代在进步有些理念就当参考、扩充知识面;大多各种流程规范管理等等都是对大公司的发展超级有帮助;对小公司来说见效未必很明显;也可能各种受到限制不够灵活;但是公司大了没规范的管理就是各种乱套,各种贪污腐败、各种管理漏洞可能会导致公司重大的损失。 1:防止乱来、乱搞: 有些胆子大的人能在领导眼皮子底下都敢 阅读全文

对公司严抓考勤的重新深度认知分享-考勤管理对传统型公司的重要性

2024-03-14 16:31 by 通用C#系统架构, 阅读(1236) 阅读, 推荐(3) 推荐, 收藏, 编辑
摘要:规模庞大的公司、有分公司、有分支机构、需要根据公司规模、业务性质,针对不同的情况采取不同的管理模式、严格考勤管理也不是一概而论 一、反内卷、拒绝单休、拒绝无偿加班 曾经去过一个制造业性质的IT公司,周末是单休、工作了1个月下来,实在是太痛苦了;从哪以后再也不考虑单休的工作了,单休每天都在工作一样、根 阅读全文

技术人员核心能力 -- 向上管理能力

2024-02-06 17:34 by 通用C#系统架构, 阅读(127) 阅读, 推荐(1) 推荐, 收藏, 编辑
摘要:工作了很多年后才真正明白一些道理 - 在为谁工作?为谁效力?谁在买我们的劳动、时间、技术、能力? 有些时候一直学习技术为主、有些时候就忙于一些手上的工作内容、如何让领导满意、如何得到领导认可、需要干哪些事情?平时关键精力应该要放在哪里?如何拿到产出?如何量化汇报?如何进行对比?如何解决问题? 工作的 阅读全文

技术人员核心能力 -- 危机处理能力

2024-02-05 11:26 by 通用C#系统架构, 阅读(111) 阅读, 推荐(1) 推荐, 收藏, 编辑
摘要:工作生活中难免会遇到一些非常重大的危机、出现重大致命的BUG、如何面对?如何处理?如何化解危机?如何复盘?如何防止相同的事情重复发生?建立什么样的机制?定什么规章制度? 如何应对危机?如何高效率沟通协调?危机应对的多了处理经验也更丰富了、也不会怕遇到任何危机了、兵来将挡水来土掩、道高一尺魔高一丈、从 阅读全文

满20年程序员生涯-与大家分享最近7年的快速成长经历(上海市青浦区快递行业战斗7年奋斗史)

2020-12-10 16:05 by 通用C#系统架构, 阅读(3444) 阅读, 推荐(13) 推荐, 收藏, 编辑
摘要:最近6-7年很少写博客、其实关键是没精力写博客、主要是发发微信解解闷、偶尔发发感慨、发发总结心得等,微信好友也接近有4500个好友左右距离满是不远了。不写博客的原因关键还是担心同事们说:“没好好工作,成天有精力写博客写文章,心思没在工作上”。其次就是把有限的精力投入在哪里更有价值的事情上了。找到了发 阅读全文

再坚持一年多就写代码到40岁了,一直坚持.NET也没什么大错,将来会物以稀为贵,技术青年快乐多

2016-09-26 15:42 by 通用C#系统架构, 阅读(10878) 阅读, 推荐(18) 推荐, 收藏, 编辑
摘要:进不去华为,进不去阿里、进不去腾讯、还可以来快递企业信息部门发展。一扇门关闭了另外一扇门会被打开。 有接近3年时间不怎么写博客文章了,其中关键原因是博客广告多被封杀、其次是技术能力有限写不出时髦的技术文章、再其次就是把有限的精力全部投入到工作上了。 在这接近3年时间里,在中通快递总部默默的写代码,实 阅读全文

C#.NET 大型企业信息化系统 - 防黑客攻击 - SSO系统加固优化经验分享

2016-05-18 17:43 by 通用C#系统架构, 阅读(9259) 阅读, 推荐(26) 推荐, 收藏, 编辑
摘要:好久没写文章了,突然间也不知道写什么好了一样,好多人可能以为我死了,写个文章分享一下、证明一下自己还在,很好的活着吧,刷个存在感。 放弃了很多娱乐、休闲、旅游、写文章、看书、陪伴家人,静心默默的用了接近2年多的时间突破了自己在.NET领域的最重大的软件项目建设记录。全程经历了公司的核心业务系统从无到 阅读全文

C#.NET 大型企业信息化系统集成快速开发平台 4.2 版本 - 防止暴力破解密码、提高大型信息系统安全

2016-04-13 15:43 by 通用C#系统架构, 阅读(8100) 阅读, 推荐(2) 推荐, 收藏, 编辑
摘要:几十万人使用的系统、覆盖全国、每天营业额上好几个亿的、若信息安全方面太薄弱了、那将会是致命的打击、甚至威胁到企业的正常运转。从国家层面到企业级别大家都在重视信息的安全、可控。 运行速度慢一点点可以忍受、但是信息安全没保证是绝对无法忍受的。下面是防止暴力破解的例子运行效果,若这个用户名连续尝试登录好多 阅读全文

C#.NET 大型企业信息化系统集成快速开发平台 4.2 版本 - 外部服务调用、内部服务调用优化,面向服务化的

2015-12-25 17:22 by 通用C#系统架构, 阅读(5040) 阅读, 推荐(2) 推荐, 收藏, 编辑
摘要:现在的信息系统越来越复杂,越来越庞大,不仅需要内部是一个整体,而且还需要提供很多对外的服务调用。 1:别人如何调用最方便?用不同的开发语言调用、例如app、手持设备、服务器。2:服务的返回状态是什么样子的?有利于排查问题。3:服务的安全性、可过渡升级性、性能效率要有保障。4:服务也需要有完整的调用日 阅读全文

C#.NET 大型企业信息化系统集成快速开发平台 4.2 版本 - 访问频率限制功能实现、防止黑客扫描、防止恶意刷屏

2015-09-29 09:17 by 通用C#系统架构, 阅读(4935) 阅读, 推荐(1) 推荐, 收藏, 编辑
摘要:很多软件组件,大家都能想到了,大家也能做出来,但是成熟稳定、可靠、易用、功能全面,可信任,可相信,可开源就不是很容易,需要树立良好的口碑才可以。 1:往往会有黑客,进行撞库挖掘漏洞,很多系统的账户有可能被猜测出密码来,会存在严重的安全问题。 2:全部加上图片验证码等,用户体验比较差,天天用的用户会很 阅读全文

C#.NET 大型企业信息化系统集成快速开发平台 4.2 版本 - 角色权限的配置页面改进优化

2015-09-19 11:16 by 通用C#系统架构, 阅读(4520) 阅读, 推荐(0) 推荐, 收藏, 编辑
摘要:往往开发的人不是维护的人,开发的单位不是维护的单位。信息的畅通沟通交流很多时候会有打折、扭曲、甚至是容易得到歪解、配置错业务操作权限。为了防止发生没必要的麻烦,甚至是发生重大错误,我们的软件需要不断换位思考,不是只是功能实现了就可以了、是否实现得最优。 一个超级大型公司,各个层级能拥有的权限也可以, 阅读全文

C#.NET 大型企业信息化系统集成快速开发平台 4.2 版本 - 服务器之间的接口通讯功、信息交换

2015-09-16 14:27 by 通用C#系统架构, 阅读(3001) 阅读, 推荐(1) 推荐, 收藏, 编辑
摘要:大型信息系统都是服务化、微服务化、把很多核心功能分散在不同的子系统里,子系统与子系统之间有各种调用,规范这些调用方法,也可以提高整体信息化效率,信息的传递效率,支撑公司内部的业务系统高效率的运转。 调用格式是什么样的? 返回值是什么样子的?把这些标准都定义好了后服务器之间的接口通讯效率就提高了。 1 阅读全文

C#.NET 大型企业信息化系统集成快速开发平台 4.2 版本 - 服务器故障诊断排查工具

2015-07-22 22:13 by 通用C#系统架构, 阅读(3198) 阅读, 推荐(0) 推荐, 收藏, 编辑
摘要:一个强壮的系统需要有高效率稳定运行的大环境, 一会儿数据库挂、一会儿缓存挂、一会儿网络挂那系统就很糟糕了。一个系统的成功离不开默默付出的运维配套的给力表现。不负责的运维就会各种帅锅、各种不稳定都是开发导致的、各种理由借口、各种推脱、各种甩锅高手;最终受害的是公司的整体利益、系统的稳定性不高、也会影响 阅读全文

C#.NET 大型企业信息化系统集成快速开发平台 4.2 版本 - 防止脱库、防止篡改数据

2015-07-07 17:51 by 通用C#系统架构, 阅读(4081) 阅读, 推荐(0) 推荐, 收藏, 编辑
摘要:一些无关紧要的数据、被脱库了什么的, 也没啥的,但是有些比较重要的数据被脱库了,虽然可能没严重的损失,但是会很丢人一样的,被爆出脱库了什么的,总是会比较难为情的,说实话也是蛮丢人的,能多防范就多防范,有漏洞缺点就尽快补救。 为了防止没必要的麻烦发生,我们可以用现成的加密函数、把需要传递的参数进行加密... 阅读全文

C#.NET 大型企业信息化系统集成快速开发平台 4.2 版本 - 检查版本升级、检查登录超时

2015-07-01 12:51 by 通用C#系统架构, 阅读(3244) 阅读, 推荐(0) 推荐, 收藏, 编辑
摘要:当用户都在一个公司内,甚至一个办公室时,喉一下或者跑过去亲自更新一下程序,就可以了,问题就很简单也没多少复杂性,也不怎么考验技术能力。当面对全国10万以上客户端时,问题就来了。1:有的用户打开系统一天也不会关闭,甚至几天都不关闭电脑一直会用下去,这时候系统有升级变更就容易无法及时更新。我们需要开发一... 阅读全文

C# ASP.NET 优化程序性能、降低内存使用、提高程序运行速度

2015-06-26 15:33 by 通用C#系统架构, 阅读(7293) 阅读, 推荐(1) 推荐, 收藏, 编辑
摘要:系统优化无止境、 在没性能瓶颈、系统稳定性问题时,还需要保持清醒的头脑把精力用在更有价值的事情上,性能优化可能付出了10000的代价、换来的收益只有20时就得不偿失了;把精力用在最有价值的事情上、例如学习大数据、网络安全等等,哪怕是了解更多的业务知识也可以,系统有性能问题时,再解决性能问题也无妨。关 阅读全文

C#.NET 大型企业信息化系统集成快速开发平台 4.2 版本 - 实现缓存预热

2015-06-16 21:47 by 通用C#系统架构, 阅读(2980) 阅读, 推荐(1) 推荐, 收藏, 编辑
摘要:因为大型应用系统可能有几十个子系统,为了减轻数据库频繁读写压力、提高系统的运行速度、反映速度,大型应用系统都需要采用缓存机制提高运行效率。Redis 缓存预热实现将来大家很多基础数据都可以缓存获取,不需要从数据库获取。代码其实不在于多,在于给他什么 时髦的名字, 来个 缓存预热就很时髦了,其实也就1 阅读全文

C#.NET 大型企业信息化系统集成快速开发平台 4.2 版本 - 能支撑10万以上客户端的数据同步下载问题

2015-06-10 16:49 by 通用C#系统架构, 阅读(4320) 阅读, 推荐(2) 推荐, 收藏, 编辑
摘要:庞大的业务系统,特别是需要有离线作业操作支持的核心业务系统,需要有强大的基础数据同步功能,基础数据有在增加、有在变动、有在失效,同时有大量的客户端全天侯的在连接服务器、不间断的在处理核心数据。 经过2年的不断完善改进、又有保证性能、又有能保证性能、又支持自动升级的接近完美的客户端诞生了。在这个基础上... 阅读全文

几十套业务系统集中统一授权管理、几十万账户同步多系统实现经验分享

2015-06-03 14:25 by 通用C#系统架构, 阅读(5979) 阅读, 推荐(0) 推荐, 收藏, 编辑
摘要:由于这几年互联网电商的快速崛起,快递行业也进入了高速发展的绝好成长期。随着全社会强劲需求快递公司业绩年年攀新高。快速发展的快递公司需要有强大的IT信息系统,硬件设备基本上款到了货也可以到了,但是软件系统就不是那么简单了,需要长期的改进测试维护完善才能平稳运行。 公司有几十套业务系统需要快速开发、开发 阅读全文

C#.NET 大型企业信息化系统集成快速开发平台 4.2 版本 - 基于数据库资源的多语言实现

2015-02-26 09:32 by 通用C#系统架构, 阅读(4689) 阅读, 推荐(0) 推荐, 收藏, 编辑
摘要:以前的开发平台里,是用xml语言包实现了多语言功能,现在新的平台里进行了调整,把多语言包资源放在数据库表里实现了。我们系统预留了多语言的配置全局变量、可以通过配置这个参数达到切换多语言的目的我们在选项管理里增加一个多语言选择的选项目,然后有哪些语言资源就加上去下面的表是多语言的数据库设计表结构下面图... 阅读全文

C#.NET 大型企业信息化系统集成快速开发平台 4.2 版本 - 所有的基础数据都可以恢复删除

2015-02-24 15:05 by 通用C#系统架构, 阅读(2625) 阅读, 推荐(0) 推荐, 收藏, 编辑
摘要:重要的核心信息系统若底层配置信息不小心被删除、误操作、若系统不够健壮需要把数据及时恢复回来就很麻烦了。任何人都有操作失误的可能性、需要能及时修复误操作的数据恢复回来,挽救系统。并不是人人都是超级认真、负责的,所以不能指望操作人员有多少尽心尽力、只能靠系统的稳定成熟度来保障系统的高可用。 所有的业务都 阅读全文

C#.NET 大型企业信息化系统集成快速开发平台 4.2 版本 - 大型软件系统客户端数据同步的问题解决

2015-02-07 13:04 by 通用C#系统架构, 阅读(4265) 阅读, 推荐(1) 推荐, 收藏, 编辑
摘要:作为一个完整的整体信息化解决方案需要有足够强大的各种功能,这些功能相对独立,又互相依存。当有需要这样的功能时可以随时拿出来用,适当修改一下就可以满足要求。只有这样才能快速开发各种信息化系统,才能满足各种客户的需求。同步数据需要解决的问题主要有:01:全国性大型集团公司的信息化改造项目会涉及到非常多... 阅读全文

C#.NET 大型企业信息化系统集成快速开发平台 4.2 版本 - 适合大型企业信息化应用使用的角色权限管理体系

2015-01-27 13:14 by 通用C#系统架构, 阅读(3771) 阅读, 推荐(1) 推荐, 收藏, 编辑
摘要:每个人外表看看都没什么大区别、但是内在的知识、处理问题的能力、解决问题的能力、头脑灵活性都会有很大的差距。软件组件也是一样,有些组件编写厉害,想问题深入,能处理的难题也多,构思巧妙。通用快速开发平台就是这样的一个组件、能处理大型集团化公司的用户权限管理系统、也可以同时处理维护多套信息系统的权限配置管... 阅读全文

C#.NET 大型企业信息化系统集成快速开发平台 4.2 版本 - 总部业务部门主管管理整个集团分公司的某项业务

2015-01-26 23:18 by 通用C#系统架构, 阅读(2502) 阅读, 推荐(1) 推荐, 收藏, 编辑
摘要:由于整个集团公司非常庞大,有上千个分支机构,不可能由总部某个人能管理所有的数据,或者掌握所有的业务。某个业务都会由于某个相应的部门进行管理,例如所有分公司的人力资源,都由总部的人力资源部门管理。哪些分公司谁是人力资源部门的,谁在管理什么事务,只有总部对口的人力资源的人员最清楚。1: 总部有相应的人力... 阅读全文

C#.NET 大型企业信息化系统集成快速开发平台 4.2 版本 - 员工入职、员工转岗、离职管理

2015-01-25 22:19 by 通用C#系统架构, 阅读(2928) 阅读, 推荐(0) 推荐, 收藏, 编辑
摘要:当公司有几十万人,几万家加盟网点,几十个庞大的直属分公司后,系统账户的有效管理也是一个头疼的问题,把所有的帐户及时进行科学的管理,有人员离职时及时进行记录,防止离职人员的系统账户有各种安全漏洞。 治理公司的人力资源、把入职、转岗、离职全面管控起来了、人员的质量就越来越高了,管理能力也越来越厉害了、公 阅读全文

C#.NET 大型企业信息化系统集成快速开发平台 4.2 版本 - 多软件系统集成缓存体系改进

2015-01-24 18:56 by 通用C#系统架构, 阅读(2474) 阅读, 推荐(0) 推荐, 收藏, 编辑
摘要:由于我们同时开发多个大型应用系统同时系统有大量用户、高并发用户,平时访问系统的用户数量就有3万多人在线。需要对几十个系统进行持续优化改进,同时要增强信息系统的各种安全性。 如此多的系统、如此多的用户,还要进行各种业务操作;大数据的查询统计等等,数据库系统的压力已经很大,再进行各种安全验证时时的认证, 阅读全文

C#.NET 大型企业信息化系统集成快速开发平台 4.2 版本 - 增加安全性增加内网的电脑才可以调用的限制

2015-01-22 23:04 by 通用C#系统架构, 阅读(2036) 阅读, 推荐(0) 推荐, 收藏, 编辑
摘要:大型业务应用系统功能繁多、接口多多、版本多多、参与开发的人多多、很容易受到各种网络攻击,每加上一道防护就可以减少80%-90%的攻击。我们的核心接口组件里也做了一些限制,有些接口方法只有内网的用户才可以调用,防止外网的用户调用,这样安全性会有很大的提升。也可以增加信任的IP清单列表,只有清单列表中的 阅读全文

C#.NET 大型企业信息化系统集成快速开发平台 4.2 版本 - 更优美的Oracle数据库上的代码生成器

2015-01-22 23:00 by 通用C#系统架构, 阅读(3400) 阅读, 推荐(0) 推荐, 收藏, 编辑
摘要:代码生成器进行了改进,针对Oracle数据库生成更优美的代码。这样生成出来的代码,更像微软的风格,更像C#.NET的标准规范,阅读起来也更优美。把Oracle表字段名默认大写, 有_分割等进行了优化,这样用我们代码生成器生成的代码,阅读起来,更顺眼。更能拿得出手了。代码生成器生成代码效率高、规范性强 阅读全文

C#.NET 大型企业信息化系统集成快速开发平台 4.2 版本 - 面向全国标准省市县行政数据基础之上的组织机构管理

2014-12-23 22:24 by 通用C#系统架构, 阅读(3679) 阅读, 推荐(3) 推荐, 收藏, 编辑
摘要:由于信息系统庞大、各种业务子系统、各种开发语言开发的业务逻辑、各种年代维护的代码、各种参差不齐的历史遗留信息系统,面向全国的业务系统,面向某个领域的汽运管理信息系统,面向内部的业务系统,面向外部的各种互联网应用,各种业务系统都需要进行数据的交互。 但是这个时候没有一个标准的全国性的地区数据维护,那很... 阅读全文

C#.NET 大型企业信息化系统集成快速开发平台 4.1 版本 - 如何才能成为全国知名软件组件

2014-12-04 23:30 by 通用C#系统架构, 阅读(4187) 阅读, 推荐(1) 推荐, 收藏, 编辑
摘要:往往我们看到一个好用的工具、就能知道制作这个工具有多少不容易,使用好这个工具也有多少不容易?通用快速开发框架同样也是经过多年的完善改进才到了今天的稳定成熟度,知名程度,为什么能成为全国有名的软件组件自然也有他的道理。有上百号人的开发团队天天使用这个组件、每天有全国各地的几十万用户,全公司十多万员工的... 阅读全文

C#.NET 大型企业信息化系统集成快速开发平台 4.1 版本 - 面向数据库SQL语句的应用开发二

2014-11-29 12:22 by 通用C#系统架构, 阅读(2540) 阅读, 推荐(0) 推荐, 收藏, 编辑
摘要:很多传统企业、包括系统集成类的IT企业,若不是从事专业软件开发领域的,能做出一套适合本公司企业信息化的灵活的信息系统还是很有难度的,还有一些已经多年不写程序的资深开发人员,初学者,都难把一个整套系统实现出来了。 市面上成熟的开发框架要几十万,又想不花那么昂贵的费用,又想有一套自己能驾驭的软件系统平... 阅读全文

C#.NET 大型企业信息化系统集成快速开发平台 4.1 版本 - 面向数据库SQL语句的应用开发一

2014-11-29 11:24 by 通用C#系统架构, 阅读(2356) 阅读, 推荐(0) 推荐, 收藏, 编辑
摘要:我的梦想是给大家提供一个工具、可以用他来提高工作效率、就像战争上,你有一个得心应手的武器一个道理。给大家一个性能良好的信息化武器,就是我的梦想。有一个朋友来信息如下: 我就是企业维护信息的,也不大编程,懂点吧,但是也忘得差不多。最近看了点书,微软的,java的,我感觉自己数据库语句还行,持久层也就是... 阅读全文

C#.NET 大型通用信息化系统集成快速开发平台 4.1 版本 - .NET商业化成品成熟各种数据权限的需求对应例子代码

2014-10-10 12:44 by 通用C#系统架构, 阅读(2855) 阅读, 推荐(1) 推荐, 收藏, 编辑
摘要:还是我上次提出的那个问题问题:假设一个订单表,1.角色A可以看自己的2.角色B可以看工作组的3.角色C可以看金额是1000元以下的(自定义条件是否可行?如果可以,请详细说明)4.角色D可以看整个部门的5.角色E可以看整个分公司的6.角色F可以看各分子公司的参考代码如下:代码量会非常小,而且根本不需要... 阅读全文

C#.NET 大型通用信息化系统集成快速开发平台 4.1 版本 - 设置主管(汇报关系设置)

2014-07-11 09:09 by 通用C#系统架构, 阅读(3421) 阅读, 推荐(1) 推荐, 收藏, 编辑
摘要:一、汇报关系 其实普通人打工工作中,最重要的就是工作汇报关系,你的工作内同向谁汇报、谁在决定你的生与死,谁在考核你的工作内容,工作成果,一级管一级,下属对上级负责,上级有权知道下属的信息,一个大公司通过层层的管理,把几十万人管理得有条有理,分工明确的进行协同作战。 汇报关系:一个普通人最关键最重要的 阅读全文

C#.NET 大型通用信息化系统集成快速开发平台 4.1 版本 - 大数据支持分表优化

2014-06-26 23:03 by 通用C#系统架构, 阅读(3348) 阅读, 推荐(0) 推荐, 收藏, 编辑
摘要:有一种需求是需要处理海量数据、现在有这样的需求有实力的单位都开始用大数据相关技术。自己没大数据能力也可以采取花钱办事思路直接采取云服务上的大数据处理能力,花钱购买就可以了,简单省事。 1:有足够多的服务器处理数据。 2:这些足够多的服务器进行了集群、同时进行运算。 3:想要什么结果,类似sql语句一 阅读全文


C# ASP.NET 通用权限设计、通用权限管理、通用权限组件、单点登录、集中式权限管理、统一授权体系、分级管理分级授权


微信扫一扫加好友



点击右上角即可分享
微信分享提示