用户名: 密码:      免费注册 | 忘记密码?
attach

C#.Code.Builder.V1.2.(C#代码生成器).产生支持多种数据库的实体代码.doc

来源:

最新评论

 
内容
评分
 

相关评论

a_shen520 2012/02/22 13:43:33 [0] [0]

麻 笔的,吵,吵什么什么吵,都特么的内讧。

回复

xfhuju 2011/12/27 16:14:16 [0] [0]

吉日啊吉日,你又来了,无语。。。。。

回复

zhouljsh 2011/12/16 10:24:07 [0] [0]

非常八婆

回复

yulingjie26 2011/12/03 20:54:06 [0] [-3]

极度编程③:91064605专业的.Net技术交流讨论群,本群提供各类相关DotNet资源,为学习者打造一个沟通交流的平台,今后将成立极度团队,让学习者可以加入到团队中学习到更多东西,共同发展,共同进步!

回复

xfhuju 2011/12/03 09:24:20 [+1] [0]

引用(dongshengyu @ 2010-11-09, 12:54 AM) *
什么叫水平,不是看懂了叫水平,也不是会用了就叫水平,更不是懂得更多才叫有水平,而是知道如何做才能做得更好才叫真正有水平?
其实有很多同事、朋友、同行,水平个个都很强的,写程序也很快,但是他们有一个共同的缺点,就是懂得太多、想法太多、想做得太多但是仔细认真做得太少、做得精的太少、经得起考验的更少、真正可以实际应用可以广泛推广的就更少。

很多人都喜欢大谈SOA、IOC、ORM等等,但是对手上的眼前的程序代码却没有多少兴趣爱好,也懒得深入研究优化自己的程序,这几年深刻的意识到,眼前的才是真,真正在用的程序才是真,其他都是虚假飘渺的,把给客户用的实实在在的程序写得最好、性能最好,用起来好用,符合客户的实际需求才是真理。



打个比方,曾经我写了一个函数,一直用得蛮好的,自己认为已经写得非常好了,同事们也没在其中找出来过多少Bug,我们在日常开发中天天也在用,所以我想把这个类发布给大家用用,提高一下大家的品质,发布到网络上后,很多人有下载,也有人在用,也有人反馈过错误,但是其中我很佩服一个人“卢骐征”,这个人应该是仔细看了我的代码,然后给我指出:“吉日,你的代码还可以优化,有一个地方你可以这么改进一下......”。

我太佩服这样的人了,我不是想跟别人大谈什么这个牛B技术、那个牛B技术,我就想实实在在知道,我的程序还有什么问题,哪里还可以怎么改进?如何写代码才更好用,更好读,别人用起来更方便?



例如我写的一个获得参数的函数:

代码
1 #region public DbParameter MakeInParam(String targetFiled, Object targetValue)
2 /// <summary>
3 /// 获取参数
4 /// </summary>
5 /// <param name="targetFiled">目标字段</param>
6 /// <param name="targetValue">值</param>
7 /// <returns>参数</returns>
8 public DbParameter MakeInParam(String targetFiled, Object targetValue)
9 {
10 SqlParameter dbParameter = null;
11 // dbParameter = new SqlParameter("@" + targetFiled, targetValue);
12 if (targetValue == null)
13 {
14 return dbParameter;
15 }
16 if (targetValue is String)
17 {
18 dbParameter = new SqlParameter("@" + targetFiled, SqlDbType.VarChar);
19 }
20 else
21 {
22 if (targetValue is Boolean)
23 {
24 dbParameter = new SqlParameter("@" + targetFiled, SqlDbType.Bit);
25 }
26 else
27 {
28 if (targetValue is DateTime)
29 {
30 dbParameter = new SqlParameter("@" + targetFiled, SqlDbType.DateTime);
31 }
32 else
33 {
34 if (targetValue is int)
35 {
36 dbParameter = new SqlParameter("@" + targetFiled, SqlDbType.Int);
37 }
38 else
39 {
40 if (targetValue is Int64)
41 {
42 dbParameter = new SqlParameter("@" + targetFiled, SqlDbType.BigInt);
43 }
44 else
45 {
46 if (targetValue is Double)
47 {
48 dbParameter = new SqlParameter("@" + targetFiled, SqlDbType.Decimal);
49 }
50 else
51 {
52 if (targetValue is Byte[])
53 {
54 dbParameter = new SqlParameter("@" + targetFiled, SqlDbType.Binary);
55 }
56 else
57 {
58 dbParameter = new SqlParameter("@" + targetFiled, SqlDbType.VarChar);
59 }
60 }
61 }
62 }
63 }
64 }
65 }
66 dbParameter.Value = targetValue;
67 return dbParameter;
68 }
69 #endregion
当时也费了不少周折,把这个函数写好,大家用用也很好用,但是我发布到网上后,人家(“卢骐征”)有水平的人就说了,这个可以改进优化,没必要写这么长,这就叫做水平,牛X啊,我佩服。

不是把程序写出来了,就叫厉害了,更厉害的是如何写才是最好、性能更高,更好用、更简洁,我按他的指导意思改进了程序的写法,变成了如下几行代码。

代码
1 #region public DbParameter MakeInParam(String targetFiled, Object targetValue)
2 /// <summary>
3 /// 获取参数
4 /// </summary>
5 /// <param name="targetFiled">目标字段</param>
6 /// <param name="targetValue">值</param>
7 /// <returns>参数</returns>
8 public DbParameter MakeInParam(String targetFiled, Object targetValue)
9 {
10 SqlParameter dbParameter = new SqlParameter("@" + targetFiled, targetValue);
11 dbParameter.Value = targetValue;
12 return dbParameter;
13 }
14 #endregion
以前写的几十行代码,只变成了3行代码就可以了,过了一夜,我再想想很有可能,其中的两行代码也是多余的,应该是写一行代码就可以了,先做一个测试,改进后的代码是:

代码
1 #region public DbParameter MakeInParam(String targetFiled, Object targetValue)
2 /// <summary>
3 /// 获取参数
4 /// </summary>
5 /// <param name="targetFiled">目标字段</param>
6 /// <param name="targetValue">值</param>
7 /// <returns>参数</returns>
8 public DbParameter MakeInParam(String targetFiled, Object targetValue)
9 {
10 return new SqlParameter("@" + targetFiled, targetValue);
11 }
12 #endregion
哎呀,几十行的代码,用得也很稳定的代码,其实就写一行代码就可以了,这就叫真水平,让别人也看看自己的代码,检查检查,不是自己觉得好了就是真好,别人都说好才是好,心理舒坦了很多,优化了代码,也感谢卢骐征的指点。



虽然他半年前就告诉我问题在哪里了,我也没马上修改,因为还需要考虑稳定性,自己是否有空有精力去修改,这几天正好心情好,把半年前人家提供的改进好了,心理也好舒坦。

很多改进未必是当场就改进,但是觉得应该这么改是对的,那就早晚会修正好,问题毕竟还需要按轻重缓急的顺序来一个个解决。



实实在在的水平就在于:“请告诉我,我应该怎么做才能做得更好,我的程序哪里有问题?如何改进?怎么写才是更好的?”,不要告诉我,去看RBAC吧,CMMI吧,请给我明确的指点,我不是神,你说个ISO、PMP什么的,我是根本不懂的我自己也学不了,没那个水平。







将权限管理、工作流管理做到我能力的极致,一个人只能做好那么很少的几件事情。

看到这段文字,实在无语。。。太弱了

回复

dongshengyu 2011/11/16 23:08:58 [+1] [-1]

学语法,学技巧,学开发,这些其实都是为了能开发出通用产品,然后为人民服务,促进社会发展,减少重复劳动,创造价值。
当对某个语法,程序的性能、功能等等都没兴趣了,就会对软件产品有兴趣了,没有行业知识就做技术性的产品,有丰富的行业知识后就做行业通用产品。毕竟语法和技巧是难销售出去的,还是需要靠产品。



当有非常大的客户,天天在用我们开发出来的系统组件,每天有几百个人用,每天处理好几百个单据的审核,可以灵活设置好几百个单据模板的流程时,也会有很大的成就感,也不不会觉得空虚,也不会觉得自己被社会抛弃了一样,也会多出很多生存的安全感,生活就更有奔头了一样了。



1:源码开放对同行客户有很大的吸引力,因为很多大客户都怕受制于人,例如一期项目预算是10万,但是若想进行二期项目必须50万才可以,否则不给你更新系统不升级系统等等或者修改任何一个小功能都要收费,由于第一期就受制于人了,将来开展项目时就会非常被动,而且有任何修改都需要找开发商进行二次开发,而且二次开发的费用往往会非常昂贵,因为源码没在手上非常难进行个性化开发,毕竟有些客户也是有一定的开发能力,软件的应用也非常有深度,所以客户希望不要封装得过于厉害,能开放的部分都开放。甚至是没有任何源码加密处理,源码开放的更容易得到客户的信任,但是也会有很大的经济利益受不到保护的问题会出来,这就看开发人员怎么定位自己了。



2:软件的架构要灵活,否则经不起折腾,需要多年长期维护的软件系统,若软件的架构不好,编码质量不高,自己都维护不下去了,虽然都说每个人都爱自己的孩子,软件产品也是我们自己的孩子,但是软件实在难以忍受了,都想重构了。
毕竟软件可以杀掉了再重新来,自己的孩子再丑也只能认了。重新来过的代价就是多年来自己认真测试的成果很多都会被丢弃了,什么都从零又开始,只是积累了一些丰富的经验教训,新的开发起来会顺利一些,但是也是倒退50步前进100步的事情,虽然是又前进了50步,但是折腾了150步了,付出的代价也是很昂贵的。



3:提前要做好准备,没事干的时候就完善组件,其实很早就有个小梦想,就是开发一个又简单又好用的工作流程审批组件,也不需要过于复杂,也不需要过于庞大,又简单又好用,能把实际工作中的大部分问题都能解决的,一个人就可以维护起来的工作流程审批组件,因为太庞大了,不好调试,不好实施,客户使用起来也难,虽然有100个功能,但是常用的就是10个功能,可能那90个复杂的功能都没能派上用处,那我们就开发那10多个功能,然后相对廉价,实施简单,使用简单就可以了,若客户真有超级复杂的需求,那就购买个相对昂贵的工作流产品就可以了,我们就定位简易工作流程审批就可以了,甚至是一个人就能维护,集成,实施起来的工作流程审批组件。
有了这个梦想后就有空了就开发开发,捉摸捉摸软件是否好用,少玩游戏,少放松,少于了,因为觉得这个东西早晚会有人需要,而且还可以销售出不错的价位,能创造出社会价值,一般人也在短期内难模仿,所以一直坚持断断续续开发了很多年,今年终于有客户需要了,也很顺利就集成进去了。



4:事先需要有充分的测试,程序的修改、功能改进,又会引起其他模块的不稳定运行,人毕竟不是神仙,修改了这个程序忘记测试另外的页面,毕竟系统的互相之间的关联也是很多,不是那么简单的添加、修改、删除就可以了,其实我们在项目的后期也是很怕系统的改进的,因为一改进很多测试都需要重新测试过,否则。



5: 虽然客户在乎功能强大,但是客户在乎的是程序稳定,不要出任何事情,经过这些年的开发,总结出一个经验,我们开发人员往往很理想的设计100个强大功能,但是客户经常用的重点功能其实就是20个,剩下的80个功能可能客户不怎么用,但是我们开发人员往往喜欢把精力放在另外80个功能的改进完善上,我也经常会有这样的错误发生,现在修改程序时常常会先想,哪些功能是最有必要首先修改完善好的,哪些功能是可以缓一缓的,哪些功能必须是不能出一个错的。



6: 天天很多人在用的,天天实战的软件,难蒙魂过关,负责领导说了也未必算数,因为每天有上百个人在用的软件,若某些功能不好用,下面的人天天会叫,会反对领导的强硬下达的命令,因为人多了,哪个功能都跑不掉,总会有一个人会需要用某个功能,这时候你想偷懒,想蒙混过关是绝对没门的,只能硬着头皮往前冲,只有把软件做好了才有希望能验收通过,很多开发人员也不敢卖自己的软件就是因为就怕惹麻烦,还不如干脆不卖。



7:客户往往是说得简单,验收的时候要求很高。在谈项目时客户往往会说,这个简单的很,不就几天就能弄好了吗?这么简单的功能,增加一个,功能加来加去,加到最后开发人员崩溃了,项目周期无限延长,项目成本也变成了无底洞了,若是公司承担这个还好,若是自己承担就会很压抑了。



8: 测试与实际环境的差距还是很大的,莫名奇妙的问题都会发生,我们开发人员使用的电脑往往配置都很高,但是几百个人的电脑就未必这样了,有的电脑运行非常慢,他都可以点3下提交按钮,我们自己的电脑上开发的时候速度是很快,更本来不及点3下,但是神奇的实际环境里,很多人都可以点3下,他们更本不会很听话的,点一下后等待提示信息了。
本来客户是购买了一套系统,需要安装两套,一个老板,同时审核2个以上公司的申请单据,但是老板要安装一套软件,老板不会让你装个3-5套系统在他的电脑上,每个公司都要在内网办公,老总又在外网办公,这时候不仅仅要设置防火墙,单点登录,还需要能满足一个老总的特殊需求,他的需求可比几百人的需求还重要,老板都用着不爽更别说其他普通员工用得是否爽了。

9:客户会多出很多变态的合理需求,这里为啥说变态,又说非常合理?因为很多需求存在就有他一定的合理性。例如我们在实施过程中遇到了以下几个需求,也是很合理的,实现起来也很不容易。例如单据里显示签名,签名时间,审核意见,越级审批,单据共享,单据是否可以打印,单据是否允许修改,彻底退回,退回给某个审批节点,某个审核步骤可以任意选人等等,其实这些需求都很合理,只是有时候我们没提前预料到,等客户把需求讲出来了,再实现就很辛苦了。因为手上还有很多事情需要处理,不只是处理这么几个新需求。

10:需要承受一些心理压力,例如一个大型生产性企业在用的ERP里,一天可能需要审批的单据有100-200个以上,就是采购订单就有这么多,日常的各种单据可能有500多个,每天有100多个人在系统上进行审批流程作业,系统一出问题电话就满天飞,客户的抱怨、牢骚就可以淹没你,而且还会影响人家工厂的正常业务,甚至老板也都会知道这个事情,而且还会在大会上讲这个事情,很多问题都可以推在这个上成为理由,而且对推动系统也会形成很多阻力,只要有那么几次出过事情,客户就会说你的系统不好用,那看哪次哪次系统崩溃了影响了工作等等,而且都会在公司内部大规模传播开来,会让开发人员很没面子,所以实施一个核心的系统组件往往会有一定的心理压力在,我们需要克服这些心理压力,迎难而上,啥也不干就什么麻烦事情也没了,我们总不能等死还得找点儿事情干。

11:验收付款都会有个比较长的周期,我们往往会把很多事情想得过于简单,例如签订了合同了,就不是可以付款了吗?程序开发好了就不是可以结款了?其实并没有那么简单,很多大客户的付款都需要走个审批流程,有些大客户的付款流程可能需要3个月才会付款,一般客户都需要走半个月左右,特别是收尾款,或者合同中的大部分款项时,客户往往会控制得很严格,我们一般会有1个月左右的付款周期才会实际一些,例如我们软件都开发好了上线了,测试也都通过了,那就等一个月后客户会付款就比较实际,除非遇上非常顺利的情况1周就可以了。



12: 来回交通费用要充分计算在项目费用里,有的客户可能在大半个中国的距离,只能飞来飞去,而且这些客户相对来说都是高品质高档次的客户,他们虽然在项目预算上有些克扣,精打细算,但是出了问题还是希望有高品质的服务,一般从沿海飞新疆需要5个小时左右,其他不远的城市一般2个小时就可以到达了,若稍微提前预订机票相对也是不贵的,只是当天的机票会比较贵,所以在做项目预算是要充分考虑好,可能要来回跑几次,其次就是形象也不能太差着装也需要注意,很多程序员都不在乎这个,其实是有些不对的。
在外地做紧急项目住宿也尽量好一些,休息好了,才能干好工作,有时候有个良好的环境,工作起来效率也高,而且有个安静,干净的,网络畅通的办公环境,加班也效率高。



13:电话费就别想省了,我们开发人员总有一个小缺点,就是节省电话费,能不打电话就不打电话,发电子邮件,
QQ消息,电脑语音等等,其实这些有时候都没电话方便,电话也有他存在的道理,其实可以使劲打,一个月顶多两三百元的电话费,而且我最近也感受到了一个事情,相对而言电话费越多的人越是成功一些的人,电话费越少的,越是普通老百姓一些,我的电话费一般200元左右徘徊,我们一个老总的电话费最多时有1500元,我从来没一个月电话费到过1500元,所以我也跟人家差距一大截,有必要的电话费就别节省了。



14:网络远程技术支持,网络可以改变距离也的确是这么个事情,有时候紧急的事情,通过网络远程协助也的确很方便,每个维护都到现场也是要命的事情,特别是远距离的客户,不过现在的网速还是有些不畅通,中国应该加大速度建设超级宽带网络,有时候远程协助网络很卡,甚至是无法远程控制。
现在几乎家家都上网,网络与现实中的高速公路没啥区别了,网络发达了,软件技术服务地区的差别就更小了,很多新的软件公司将会崛起,也有很多新的理念可以得到发挥优点,现在很多新兴的技术受制于网络带宽的太多了,国家也应该重视宽带网络的建设了。
国家建设宽带网络,也是可以促进社会的进步,很多硬件厂商的设备可以更快的卖出了,可以有更多的就业机会,很多网络技术人员的需求也多了,我们的基于网络的软件也好卖了,家里上网打游戏,网络学习也更顺畅了,其实比那些很多没啥大用的形象更加有实际意义。



15:需要有很多合作伙伴,其实整个项目里什么都一个人干不太实际,现在一个WEB系统需要的东西太多了,图片处理等我们有网络化的合作伙伴,要处理某个图片,网上一发过去需求讲好几个小时后就给处理好了,有的人专门处理统计图表的问题SVN远程可以更新代码,例如工作流程定义又有专门的网络合作伙伴,有些小模块也有专门的网上的合作伙伴,虽然客户那里我们就1个人,但是在网络上的合作伙伴往往会有4-5个,我们一般是协同作战,这样干活相对不累,轻松一些,将来我们打算再找个专业的测试人员,能把我们开发的软件能快速进行系统的测试,还有编写文档的人,这些人都需要慢慢的寻觅好,形成一个虚拟的网络化软件开发团队,毕竟组建一个真实的,哪怕是10个人的软件开发队伍,也是需要比较昂贵的人力成本的,一般人是承受不来的。



16: 工期不能想得过于乐观,长这么大,没怎么见过开发类的软件项目能在3个月内彻底结束的,大家再简单的软件开发项目也有3个月的项目预算周期比较好,否则会把自己搞的很累,客户也很累,学会有目的有计划的工作生活是很有必要,会显著提高生活质量,生活得更加轻松愉快。



作者:吉日嘎拉 QQ:252056973





将权限管理、工作流管理做到我能力的极致,一个人只能做好那么很少的几件事情。

通用权限管理系统 源代码 http://www.hairihan.com.cn/dotnet.html

淘宝地址 http://jirigala.taobao.com

回复

dongshengyu 2011/11/11 00:54:55 [0] [-1]

用一个系统去控制管理多个现有系统, 实现核心集中的统一管理控制系统

越是大公司,需要上线的系统就会有越多,当系统多到一定的程度后,每个系统的用户管理工作变成了很多大的麻烦,例如我曾经工作过的一个公司有接近10个系统,每新来一个员工就需要在接近10个系统里开设用户帐户,配置权限.

当一个员工离职时,往往会忘记关闭a系统的帐户或者忘记关闭b系统的帐户, 员工太多了, 系统太多了, 这些系统及帐户的管理 也变得很棘手了. 特别是接近上万人的公司, 有时候离职的员工难免会跳槽到竞争对手的公司里, 这时候若遗漏了哪个系统的帐户, 往往会带来一些不必要的损失, 客户的流失, 重要商业信息的泄密等等问题.

我们难免能实现统一的权限管理系统, 因为当我们有这个意识时,已经有了10个8个系统已经采购了,已经运行得好好的, 一方面由于商业利益的关系,这些系统是不提供源码的, 也不好重构, 那我们怎么办? 自己开发的新系统可以避免这些问题, 但是难免有些系统是需要购买现有的商品化软件,不可能什么都自己开发的,那太累了.

有些系统,也不只是基于数据库的, 例如 SVN, TFS 等等很多类似的系统.



当然我们的前提是,这些系统都是开放的, 若是一个封闭的系统是无法从外部第3方来控制的, 要么有公开的数据库结构, 要么有可以调用的 API 函数等等, 那我们就可以建立一个集中的统一用户权限管理系统.



其实,这个集中的统一用户权限管理系统的核心就是, 需要开放一些接口,可以灵活扩展,那就可以达到我们的目的了.

当系统加一个用户时,其他系统都可以一次性统一增加用户了, 当停用一个用户时也一样,修改设置密码时也可以多个系统统一修改密码了.



看下面的图片就应该明白了.





[img]http://images.cnblogs.com/cnblogs_com/jirigala/02011/2011102901.png[/img] 回复

仁者不憂勇者不懼 2011/11/09 21:27:19 [0] [0]

道路有宽有窄,生命有厚有薄。物体的质量等于体积乘以密度;体积等于长度乘以宽度再乘以高度。人生也由长、宽、高、密四个变量组成。时间是生命的长度,视野是生命的宽度,理想是生命的高度,积淀是生命的密度。做厚的生命犹如秋天的硕果和陈年的美酒,立有根基,行有能量,飞有翅膀。

回复

caobinjun 2011/10/22 02:03:38 [0] [0]

非常感谢分享。讲得非常好。

回复

该文件创建于 2010-11-08 13:48:47
文件大小:
(384000 字节)
文件指纹:
b2bee19db2c80366f0ae85f0a35c5bed
文件格式:
Word document
相关文件
asp.net.,c#.net通用权限系统组件源码使用说明,程序开发的尚方宝剑.rar
通用权限管理组件使用说明书V3.11.doc
C#.NET走火入魔通用权限管理_功能概要.wmv
C#.NET走火入魔通用权限管理_添加角色数据.wmv
C#.NET走火入魔通用权限管理_登录功能01.wmv
C#.NET走火入魔通用权限管理_登录功能02.wmv
C#.NET走火入魔通用权限管理_登录功能03.wmv
C#.NET走火入魔通用权限管理_登录功能接口之说01.wmv
C#.NET走火入魔通用权限管理_登录功能接口之说02.wmv
C#.NET走火入魔通用权限管理_登录功能服务程序之说.wmv
C#.NET走火入魔通用权限管理_登录功能服务程序多种运行模式之说.wmv
C#.NET走火入魔通用权限管理_进行配置文件管理.wmv
C#.ASP.NET走火入魔通用权限管理_为什要用代码生成器(必要性).wmv
C#.ASP.NET走火入魔通用权限管理_代码生成器如何用(实战).wmv
C#.ASP.NET走火入魔通用权限管理_如何集成通用权限管理系统.wmv
C#.ASP.NET走火入魔通用权限管理_实体结构定义.wmv
C#.ASP.NET走火入魔通用权限管理_异常信息管理.wmv
C#.ASP.NET走火入魔通用权限管理_数据库设计注意思想指导.wmv
C#.ASP.NET走火入魔通用权限管理_登录功能.BS.架构之代码复用说.wmv
ASP.NET与C#.NET通用权限管理组件(PowerDesigner15设计的)DotNet.DesignDocument.rar
显示全部
相关资源
《ASP.net和C#.net通用权限系统组件功能教程》[WMV]
by liuzhibinl
相关分类
教育 计算机
关于我们 | 诚聘英才 | 著作权声明 | 合作信息 | 广告事务 | 天地英雄 | 盛世三国 | 神仙道 | 反馈意见
网络文化经营许可证 文网文[2010]150号 | 增值电信业务经营许可证 沪B2-20100067 | 广播电视节目制作经营许可证 (沪)字第416号
沪ICP备05001009号 | 信息网络传播视听节目许可证 0911625号
©2003 - VeryCD.com Some Rights Reserved. 上海隐志网络科技有限公司