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

随笔档案-2010年10月

C# ASP.NET 通用权限管理系统组件源码中WCF例子程序服务器端运行详细配置参考

2010-10-31 22:17 by 通用C#系统架构, 3560 阅读, 收藏, 编辑
摘要: WCF的客户端、服务器端的整体整体逻辑图、架构图如下: 阅读全文

学会拒绝不是什么坏事,要鼓起勇气说“不”

2010-10-29 13:33 by 通用C#系统架构, 1051 阅读, 收藏, 编辑
摘要: 很多时候,有很多事情,可大可小,总是没完没了,这时候需要学会说不。 1:当你手头事情很多时,处理不过来时,别人要找你聊天,聊吧也累,干脆学会说:“不”,等空了再说,否则手头事情会更乱。 2:当你手头事情很多时,有人需要让你帮忙,解决这个技术问题那个技术问题,干脆学会说:“不”,等空了再说,否则手头事情会更乱。 3:当你手头事情很多时,还有新的事情冒出来,但是又是无关紧要的事情,干脆学会说:“不”,等空了再说,否则手头事情会更乱。 4:当你手头事情很多时,家里的事情也冒出很多了,这时候干脆学会说:“不”,先把家里事情处理好,否则事情会更糟糕。 5:当你手头事情很多时,分清楚事情那个是重要的,哪个是次要的,干脆学会说:“不”,把一些次要的事情砍掉,否则事情会更糟糕。 6:当你手头事情很多时,需要冷静、是不是哪里出了问题,为什么会这么多事情?是不是没学会说:“不”,导致了这么忙乱?心累? 阅读全文

ASP.NET,C#.NET 通用权限系统组件源码使用说明,程序开发的尚方宝剑,程序架构标准参考,程序开发必备知识

2010-10-27 23:34 by 通用C#系统架构, 2139 阅读, 收藏, 编辑
摘要: 走火入魔通用权限管理视频讲解(娱乐大家、给生活加点儿料、突破思想框框),第三次录视频希望大家能谅解、都上传好了,给大家分享一下,不足之处请大家指点。 干事情需要要有激情,有力度,要像飞机的发动机一样有强有力的推动力,才容易不断进步走在行业领先的位置上。如何我们死去活来的做架构、做软件、做组件,然后又卖不出1毛钱,那还如在家休息看看电影逛逛街好了对身体也很好,搞那么累干啥?我们这么努力学技术,说白了,就是为了卖点儿钱不是? 阅读全文

【商业版、提供全部源码】基于RBAC的C#ASP.NET支持多用户的通用权限管理系统高质量源码10月份销售20套【提供操作手册设计文档下载】

2010-10-27 23:31 by 通用C#系统架构, 3220 阅读, 收藏, 编辑
摘要: 走火入魔通用权限管理系统是杭州高级码工吉日嘎拉的10年多编程积累下来的精华、目的就是为了提高工作效率、提高劳动成果的重复利用、把这个工具打造成广大程序员的赚钱工具,学习提高模仿的系统架构及日常开发工作中,能高度重复Copy、Past的参考代码库,能成为客户管理配置信息管理系统的利器。 希望通用权限管理系统能成为广大软件编程初学者快速掌握正规软件公司C#.NET架构的经典入门级教程,IT公司的经典培训教程。 阅读全文

【商业版、提供全部源码】1000元RMB购买走火入魔C#.NET精品即时通讯组件功能源码的老大哥哥今天很高兴,还特意表扬了程序很强大、很好用、支持局域网、支持广域网

2010-10-27 00:06 by 通用C#系统架构, 2859 阅读, 收藏, 编辑
摘要: C#.NET简易即时通讯的运行效果图如下 http://www.cnblogs.com/jirigala/archive/2010/10/17/1853540.html 有个内蒙自治区呼和浩特市做通讯工作的老大哥,花费1000元购买了C#.NET通用权限管理系统组件及C#.NET即时通讯组件功能的所有源码,老大哥是比我大10岁,都接近40岁的人了,虽然也会写程序但是一直用的是VB,而且最近几年也不写程序了,可能开始做一些其他日常维护工作了。 阅读全文

销售C#ASP.NET通用权限管理系统组件源码经验总结:软件源码能卖钱【收钱也很累】

2010-10-25 23:34 by 通用C#系统架构, 2299 阅读, 收藏, 编辑
摘要: 经过这2年的折腾,总结出来不少道理若想卖软件需要有几个环节环节是需要注意的: 1:你需要有一个发布博客,文章的平台,例如博客园网站、程序员网站。 2:其次需要有一个客户可以放心的支付平台,例如淘宝,而且还需要把淘宝店装修好、介绍理好才可以。 3:再其次就是需要不断的推广了。 阅读全文

同事间闲聊,如何成为优秀架构师?如何才能快速能成为C#ASP.NET开发高手?

2010-10-25 11:00 by 通用C#系统架构, 2345 阅读, 收藏, 编辑
摘要: 现在经常会跟我们同事聊天以前很少聊天,曾经想做的事情太多、想实现的功能也很多、很少有时间有心情投入在跟同事的聊天交流上,总觉得聊天交流会很浪费宝贵时间一样甚至是有一种犯罪的感觉,有些还没能实现的功能晚上睡觉也睡不着。 阅读全文

有时有些代码想花钱购买也是购买不到的,很多人都有防备心里的

2010-10-24 20:39 by 通用C#系统架构, 1098 阅读, 收藏, 编辑
摘要: 最近也试着购买一些代码,但是很少人肯卖给我,当然若愿意出个天价当然是愿意出售源码的。 为什么不会卖源码也进行了简单分析: 1:源码有一定的技术含量,有商业机会的,一般不会卖出去。 2:虽然程序是好用的,但是代码质量不好,不好卖出来,别人不好阅读理解。 3:程序是半成品,无法达到商业化的成熟度,无法销售,售后服务无法提供。 4:有些程序是涉及到公司的版权,不好拿出来销售的,那要吃法律官司的。 5:同行内有一定的竞争关系,技术这东西,想突破是难,但是看看代码,可能几下就学会核心技术了。 6:代码都拿出来了,有几斤几两?别人都一清二楚了,若没必要,还是不销售得好,这是脱光了给别人看的事情。 阅读全文

写了C# ASP.NET WebService的XML解析网站接口程序收了200元辛苦费【加入软件项目源码交易群的好处】

2010-10-22 15:25 by 通用C#系统架构, 1770 阅读, 收藏, 编辑
摘要: 记得当年为了学XML,也购买了好几本书,每本都接近100元,基本上都看不懂在讲什么,没办法只能通过以前同事的帮助总算学了几招控制XML的C#方法,当时也没那么多时间上网查资料,也不知道怎么入手解析,总觉得XML好像有多少高深一样,摸不着头绪。 阅读全文

同行大哥就500元给全套的通用权限管理组件的源码提供1年的技术支持的;还咨询了3天,崩溃了拒绝继续提供免费咨询

2010-10-21 15:18 by 通用C#系统架构, 1131 阅读, 收藏, 编辑
摘要: 通用权限管理,再怎么说也是维护完善了接近10年的组件、仅仅页面就有接近100个,怎么也得能值点儿钱吧。 前2天有一个北京的同行加我QQ,他们是做银行软件的,他想购买一个通用权限管理组件,想也是好事情,就给他积极主动的提供售前咨询。毕竟通用权限管理组件快销售出接近100套了,也希望能有越来越多的人使用这个组件。 阅读全文

小伙子不错公司例外招聘了一名应届生程序员

2010-10-20 15:32 by 通用C#系统架构, 1497 阅读, 收藏, 编辑
摘要: 公司今年招聘了一批开发人员,其中有一个比较特殊,就把这件事情记录下来。 1:首先他没投公司的简历,也没接到公司的面试通知,自告奋勇了,虽然我们是不鼓励这样的行为,发生了也就发生了。 2:因为他没工作经验、也不是超级名牌大学毕业,虽然我们老板比较看重学历一些,一般都会录用学历高一些,工作经验多一些的开发人员,来了也就面试一下无妨了。 3:又不是走后门进入公司也是正式笔试面试、都是靠实力而已。 阅读全文

与购买代码生成器源码网友的聊天记录,为什么要购买?节省出来的时间干啥?

2010-10-19 21:34 by 通用C#系统架构, 1416 阅读, 收藏, 编辑
摘要: Ψ吉日嘎拉 20:54:35 在不?我告诉你淘宝地址 jirigala.taobao.com ok接代码 枝依 20:55:17 钱都付了。哈哈 又欠银行100 Ψ吉日嘎拉 20:56:08 不会吧?你都欠信用卡的?我才欠 500元而已 枝依 20:56:23 欠了几千的。。 成功发送文件“DotNet.WinForm.CodeBuilder.rar”(393.00KB)。 阅读全文

通用权限管理组件支持SqLite,感谢完善者岩子(250952377)为软件改进做出的重大贡献

2010-10-19 17:37 by 通用C#系统架构, 1735 阅读, 收藏, 编辑
摘要: 权限组件客户咨询通用权限管理组件中的数据库访问组件相关的技术问题,同时打开多种数据库相关的问题,我就热情的给客户做解答交流,在设计时通用数据库访问组件就是可以同时打开多个多种数据库的,哪里应该如何修改、注意哪些事项,哪里有什么例子都沟通了一下,客户也很满意。 阅读全文

写在淘宝店开张1周年,月销量从0k达到5k,每天努力多一点点,干什么事情都需要坚定坚持

2010-10-18 00:11 by 通用C#系统架构, 3293 阅读, 收藏, 编辑
摘要: 从淘宝软件源码店开张到现在正好有1年多时间了,每个月的营业额从0元到了平均2000元左右,现在到了每月5000元左右,整整耗费了1年多时间,在这1年里受到过很多挫折、也受到过很多打击,也受到过别人的同行的嘲笑与讽刺。 阅读全文

第8章 C# .NET 开源可进行二次开发的即时通讯组件提供全部源码下载

2010-10-17 12:26 by 通用C#系统架构, 11604 阅读, 收藏, 编辑
摘要: 提供所有的C# .NET相关源码并提供一年的技术服务,有需要的可以在淘宝上购买,淘宝上的购买地址为 http://jirigala.taobao.com/ 即时通讯功能主要是为了实现管理系统的通知信息能即时发送给相应的用户账户,为了实现即时高效的通知功能。虽然与真正的商业化的即时通讯软件无法匹敌,但是往往内部个性化的管理系统,还是需要即时通知、即时沟通的需要。 阅读全文

卖软件源码、解决技术难题、做生意,都需要讲个基本原则【No Money No Code】

2010-10-15 16:12 by 通用C#系统架构, 1502 阅读, 收藏, 编辑
摘要: 我是一个很好说话的人,有时候很容易心软,或者相信别人,但是往往会因此引来一些麻烦,先讲个身边发生的个小事情吧,QQ好友里有蛮多同行,而且有些人加了也不止几天了都是几个月了,而且偶尔也会有些沟通,彼此间也会有些信任了。 阅读全文

当笔记本的运行速度跟不上我写程序的思路后【只建议无聊放松者看看】

2010-10-15 14:46 by 通用C#系统架构, 979 阅读, 收藏, 编辑
摘要: 最近半年,总觉得我的 "ThinkPad X200" 有些跟不上我的开发程序的思路,主要原因如下: 1:开机时间总觉得比较慢,虽然把很多服务都停止了,但还是感觉开机速度过慢,可能是装了64位操作系统的原因。 2:打开一个.NET项目后,总感觉打开的速度有些慢,需要等待一会儿,虽然里面的工程也很多,但是还是不爽。 3:开发调试时,经常内存会用到2G左右,但是笔记本的内存有3G,一个2G的一个1G的,我估计可能内存之间会不会有切换或者什么的,干脆把那个1G的换掉,升级到2G。 4:当编译一个工程时,总觉得编译速度有些慢,有些等待状态,感觉有些在浪费生命,有时候还要反复测试时,速度更有些慢。 阅读全文

真正能做一个经得起考验的产品化软件组件需要要多年的积累及突破一个个境界才可有希望

2010-10-14 10:30 by 通用C#系统架构, 968 阅读, 收藏, 编辑
摘要: 从事软件行业想想也有12年了,这期间也为公司多个效劳过,也总结了一些经验。 1:首先能认真仔细的做事需要一个境界。我曾经在宁波的一家公司工作过,只工作了3个月,我就跑路了,这个公司真的不是在做软件,开发人员与部门经理一起天天打网络游戏,打扑克牌,啥算牌器啥的倒是搞得很精通,工资嘛低得要命、大家都是在混日子,做事情乱八七糟,虽然平时从不加班周末也不加班,工资也按时发,但是我觉得这个公司不是我想要的公司,跟我上一家台资企业根本不是一个数量级的,虽然公司是用Java+Oracle,但是我感觉这个公司是瞎扯蛋的,3个月没到,我就辞职在家里了,这不只是钱的问题,我还年轻、我需要一个光明的前途。 阅读全文

回答网友的问题,有C# ASP.NET 通用权权限系统源码下载收费

2010-10-13 10:05 by 通用C#系统架构, 1455 阅读, 收藏, 编辑
摘要: 对于此权限设计,不知道是否和国内/外的对比过没有,而且说实话,现在的软件哪个不带权限管理,简单或者复杂或者通用单说,至少可以满足需求,干什么要用你的呢?还要单花钱。还有,只做权限系统?考虑了SSO吗?考虑过应用集成中的权限管理吗?考虑过跨平台吗?考虑过集团化的权限管理吗? 阅读全文

想做的都做好了休笔半个月,自动行政审批流程组件的审批流程流转实现【附数据库设计下载】

2010-10-11 22:38 by 通用C#系统架构, 7796 阅读, 收藏, 编辑
摘要: 我们在上一篇文章 多年一直想完善的自由行政审批流程组件【2002年PHP,2008年.NET,2010年完善数据设计、代码实现】 中讲述了“自由行政审批流程组件”的用法及设计参考,现在我们接着讲它的升级版本 “自动行政审批流程组件”的批流程节点定义。 周日又在家里宅了一天,见了2个朋友,其他时间都在写代码,解决了审批流程环境中的10个小问题。 阅读全文

公司的费用报销系统【为什么不好用】?做业务系统软件的可以参考一下

2010-10-11 16:01 by 通用C#系统架构, 2249 阅读, 收藏, 编辑
摘要: 我们公司有几百个员工,也有好几个分公司,所以也有必要有个费用报销系统,管理上也能发挥费用系统的价值,但是这个系统用用,总感觉有些不爽,有哪些不爽法? 阅读全文

自动行政审批流程组件的审批流程节点定义【民间称为工作流组件、官方称为审批流程组件】

2010-10-11 00:47 by 通用C#系统架构, 5666 阅读, 收藏, 编辑
摘要: 我们在上一篇文章 多年一直想完善的自由行政审批流程组件【2002年PHP,2008年.NET,2010年完善数据设计、代码实现】 中讲述了“自由行政审批流程组件”的用法及设计参考,现在我们接着讲它的升级版本 “自动行政审批流程组件”的批流程节点定义。 周日又在家里宅了一天,见了2个朋友,其他时间都在写代码,解决了审批流程环境中的10个小问题。 阅读全文

为什么只要2k月薪也不录用这些应聘者?

2010-10-10 00:35 by 通用C#系统架构, 1742 阅读, 收藏, 编辑
摘要: 正规本科毕业、有一年工作经验的,在杭州只开出2k的月薪,为什么软件公司还是照样不录用? 为什么公司不会录用? 1:杭州的办公场地租金高,若有一个几平米的位置给你做一个月,这个办公场地一个月的开支也不小。 2:需要比较高的管理成本,3-5个人需要有个项目经理管理,8-10个人需要一个部门经理管理,还需要配套的其他人员,这些管理成本的开支也蛮高。 3:水平低的人公司里多了,整个公司的战斗力会下降,别人看你一天啥也干不了,水平高工作效率高的,可能也会受到牵连。 4:公司还有时间成本,本来水平好的人1个月就做好了,招聘来一个水平不好的人,工作了5个月也没做好也很有可能的。 5:虽然现在啥也不会才开口2K,可能学半年后水平提高了,就开口4K,1年后水平足够高了,可能开口8K了,这1年竟是学习提高了,活儿可能没干多少,公司不是培训学校,公司是资本主意社会。 6:技术水平相对比较低的人做出来的软件不稳定,不可靠,思路也不严谨,可能还会离职,可能还会 阅读全文

多年一直想完善的自由行政审批流程组件【2002年PHP,2008年.NET,2010年完善数据设计、代码实现】

2010-10-08 23:38 by 通用C#系统架构, 13998 阅读, 收藏, 编辑
摘要: 几乎没一个公司,什么事情都一个人说了算的,都需要大家一起协商、协调才会最终生效,都需要走一个流程的,这也是管理软件需要流程审批组件的原因。 阅读全文

【通用权限管理】角色的分类管理,角色-用户组-职位职务-系统角色的设计上的迷惑也解开

2010-10-08 14:47 by 通用C#系统架构, 7194 阅读, 收藏, 编辑
摘要: 当系统中管理的角色比较多时,管理起来会有些不方便、例如查找一个角色时就变得有些困难了。 阅读全文

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

2010-10-07 21:39 by 通用C#系统架构, 82469 阅读, 收藏, 编辑

 

 

   十一休假,杭州西湖边逛了一圈只能用人山人海来形容,浙大紫金港校区也逛了一圈风景如画,建设得真不错很棒,假期就去了这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);
        }
    }
}

 

 

 

系统架构逻辑参考图【强调了领域模型+面向服务编程理念】

2010-10-06 13:39 by 通用C#系统架构, 5027 阅读, 收藏, 编辑
摘要: 10.1假期过得真快啊,一下子过去6天,还有一天休息就上班了,其实这个假期有春节那么长,但是没春节那么热闹而已,这今天杭州的天气不错,去浙大紫金港校区转了一圈,新浙大校区的确建得很不错,从家里打车过去只要12元就够了,算是很近了。 鼻炎一直没有彻底好,稍微有些闹心,网友希望能看到整个系统的逻辑图,我就画了一张,看看自己的思路是否足够严谨,希望能与大家都沟通多交流。 阅读全文

管理类软件中常见的【一人多职问题】的解决方法参考交流

2010-10-04 13:00 by 通用C#系统架构, 3733 阅读, 收藏, 编辑
摘要: 当技术玩得及格了后,也难以突破时,我们所关心的事情会转向业务知识,没有过硬的业务知识就难与客户沟通、难以拿下大合同,难以竞标取胜。 我们的客户通常会有一些实际问题,这些问题又往往比我们在设计时考虑的问题要更加复杂一些,当然也可以用一个人多账号的方式解决一人多职问题,但是那样实现的在实际工作上用起来难免有些不方便,虽然问题被简化了,但是无法根治问题。 阅读全文

【草根总结】软件质量可以得到明显提高的10个环节

2010-10-04 09:43 by 通用C#系统架构, 2401 阅读, 收藏, 编辑
摘要: 【草根总结】软件质量可以得到明显提高的10个环节 定位!到底要做什么!做成什么样子!实现什么价值! 00:就是想要“明显”地提高软件的质量,那最好是找一些比较靠谱的开发人员 ,淘汰思路不严谨的。 01:软件采用成熟的开发套路,就像CMMI体系一样,质量会有明显的提高,例如一个有10年以上的软件公司积累出来的开发套路。 02:软件的设计检查评估环节, 阅读全文

程序员赚的辛苦钱及好朋友借钱[借钱时你是爷爷,借出去后丢一个朋友不说还多出一个爷爷]

2010-10-02 17:37 by 通用C#系统架构, 5070 阅读, 收藏, 编辑
摘要: 程序员来钱,大多都不太容易的,基本上都是辛苦钱比较多,就像我这么蛮脑子都是经商意识的人,也都是靠一行行代码,辛苦编写调试,不断完善,才能赚来一点儿小钱,说白了仅仅销售500元一整套源码的软件,卖得也不是很火,只是赚点儿辛苦费而已。 我想大多程序员,也都跟我差不多,都是赚体力劳动的差不多的付出与回报的比较多吧。 阅读全文

【商场如战场】IT人才外包创业过程中的钩心斗角

2010-10-01 11:28 by 通用C#系统架构, 4289 阅读, 收藏, 编辑
摘要: 最近心情还算可以,工作压力也适中,偶尔也想写写文章,做做总结,给有创业热情的朋友们一些参考,虽然事情已经过去很多年,但是还是会有些值得参考的方面,5-6年前的事情,仅供创业参考,[利益面前难讲诚信、每个人的角度都不同]。 阅读全文


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


微信扫一扫加好友



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