现在的位置: 首页 > 综合 > 正文

C# ASP.NET程序员整合Java门户单点登录PHPwind论坛博客软件集成项目经验总结

2013年10月23日 ⁄ 综合 ⁄ 共 6389字 ⁄ 字号 评论关闭
文章目录

有人曾问,如何正确估算项目周期?你是天天写C#程序的程序员,若做了一个 PHPwind 的单点登录,那估计需要几天时间?

 

   客户只提了一个需求,门户网站需要与  PHPwind 需要有单点登录功能,问你多长时间能弄好?就一个功能嘛,那1天时间是不是足够了?外包一天工作量按2000元计算,那这个功能是否收2000元就可以了?不就门户网站里登录一下,论坛也自动变成登录状态就可以了,不用再次输入用户名密码就可以了,需求就这么简单。

   那有经验的人就不会那么莽撞了,由于以前集成过一次discuzNT论坛,感觉并没有想象的那么容易,也遇到了很多问题,才勉强成功。更何况是JAVA的项目,又是PHP编写的论坛,C#程序员来干这个事情,能有那么容易吗?就说:“这个东西整合好需要1个月时间,而不是一天时间”。

   公司里几乎没一个人写PHP程序的,那我就找老乡帮忙,我们有2个老乡是在杭州做PHP程序有好多年了,平时我们关系都很好,过年也在一起过年吃吃喝喝,我跟其中的一个老乡约在杭州文一路上的必胜客,晚上一起吃饭,他只用了几分钟时间,就把论坛给我装好了,运行好了;我看了他安装配置,基本上心里有数了,后来我也重复安装了2-3次,都相对顺利。算是用了一天时间把论坛安装的问题等搞定。算托朋友的富,自己没怎么走弯路瞎折腾。

   接下来熟悉 PHPwind 的功能部分,有论坛、有博客、有文章、有门户,有后台配置管理;这些东西都配置熟悉,都相对明白哪里有什么功能,哪里怎么配置权限等等,功能熟悉大概用了1周时间。功能的确蛮复杂的,东西也很多,做得的确也不错,的确不是靠几个人几个月瞎搞搞就能做出这么庞大的东西,最重要的一点还是开源免费的。

 

   接下来熟悉表结构,哪些表是存放用户的?表里都有什么字段,数据都是怎么存储的,默认值都是多少,用户注册后都写了哪几个表?然后自己手工也添加了相应的记录,看前台是否能登录成功?搞定。大概花费了1天时间,把用户表搞明白,用户角色权限等基本上心里也有数了。

   接下来到另外分公司安装测试环境,配置用户配置论坛权限,进行一些相关的设置等,安装测试环境+后台配置+论坛栏目权限设置等大概耗费了2天时间

   接下来又遇到由于配置错误导致登录时总是需要复杂的安全验证的问题,经过摸索一天,解决了配置出错的问题

   后来有需要把测试环境从内网的Linux服务器又要移植到外网的Windows服务器上的需求,又耗费了一天时间从内网把论坛迁移到外网上

   大概花费了一天不到的时间,我把门户用户如何同步到论坛用户的做法,写好邮件说明,又当面与Java程序员沟通好,并进行了用户的同步测试,耗费了一天

   网站为了安全考虑,用户的Cookie都进行了加密解密操作,加密解密韩素是用Java语言写的,所有又找相应的PHP加密解密函数测试等耗费了两天时间

 

   为了加快项目进展,周末我又找了另外一个老乡朋友,他也是写PHP程序比较长时间了,让他帮忙给我看了大半天,找了PHPwind程序中的登录判断入口等等,虽然进展不是非常顺利,但是总的来说,找到了几个核心的函数,核心的文件,最起码心里有数了,需要修改哪些文件就可以了,晚上2个人一起在 杭州教工路+天目上路附近的EMC欧美中心一起吃了味千拉面,喝了2瓶啤酒回家休息去了,寻找程序中的登录判断入口算是耗费了1天的工作量吧。

   接到实地去测试,读取网站的Cookie,登录论坛后解密Cookie,自动登录论坛的程序进行改写,前前后后足够折腾3天,因为一方面对PHP语法等不熟练,另一方面几乎接近7-8年没写过这个,天天开发C#程序,与写PHP程序还是感觉完全不一样,总是遇到莫名其妙的问题,或者不知道如何入手的问题,甚至数据库查询在哪里怎么写都不知道,这时候又想到了老乡朋友,让他给我远程桌面协助,帮我写了一个数据库查询的函数,并远程给我运行调试,估计耗费了2-3个小时。

   好像做到这里,就大功告成了一样,客户又提出问题了。

   1:论坛的风格要与网站的风格要保持一致。

   2:有一些功能需要屏蔽掉,例如群组、商品交易功能等。

   3:还有一大堆图标,名称,细节功能需要调整。

   4:论坛的登录需要统一到整个门户的登录上。

   5:论坛的退出功能也需要统一。

   6:论坛的注册功能也需要统一。

   7:论坛的站内信息也需要统一。

 

   我真的要崩溃了,只能接着硬着头皮修改了,我不下地狱谁下地狱呢?结果又用了1周时间,把业务细节上的统一化了,把这些都进行了修正,几乎都与论坛保持一致了。

   项目中间还严重感冒一次,去古墩路上的绿城医院打点滴,休息了2天,这是事先没预料到的,当然写这个总结也耗费了1个来小时,希望能对后来有需要的人有参考帮助,我可能是走了一个大弯路,但是难免后来者也不会走弯路,但是整体感觉,未必是走了弯路,毕竟大家都不是PHPwind的专家。

   项目最后整体测试调试,把门户和论坛的单点登录功能,从注册、激活账户、登录、退出、修改密码等从头到尾都整体测试了1天

 

   现在估算一下:若没曾经做过的经验,也不熟悉PHP程序的前提下,就是把门户网站与PHPwind 相对严谨的单点登录整合一下,足足前后用了1个月时间,当然若是拼死拼活,可能会时间短一些,若是慢慢悠悠,估计1个月也搞不定。

   从理想化状态,只是门户登录了,PHPwind也能自动登录了,感觉1天就可以做好一样,你项目估算了1天,那与实际的差距是20-30倍,因为你很多其他复杂性因素没考虑进去,用户的整合、论坛的改版、复杂的权限配置,这些都是客户还没来得及提出来而已,只是他最先想到了最有必要的功能,单点登录。

   你若给领导讲了1天就可以搞定,结果领导签订了项目合同2000元,结果你又压抑,又郁闷有苦恼的状态下,前后折腾了1个月才勉强搞定,领导会不会骂死你?而且还要考虑另外一个因素,是我亲自做这个项目,我也不是菜鸟啊,毕竟前后干了10年的开发工作,工作效率总会比普通人稍微高一点儿。

  

   C#程序员门户集成PHPwind的单点登录,就这样工作量从1天变成了1个月,是否有水平真正能估算好一个项目的工作量,不只是靠感觉,还要凭经验,凭实际,我也想1天就把这些全搞定了,可惜我不是神仙,我也有摸索的过程,我也有走弯路的时候,我也有生病的时候,我有想休息的时候,我也有不想工作的时候,我也有想聊QQ的时候,我也有不开心工作效率不高的时候,我不是机器人,我是凡人,我不是高手,我不是老板,我只是打工的。

 

   虽然我没大钱,但是我也不缺小钱,做这个PHPwind论坛集成的时候,真想把这个活儿外包出去,若开价不是很高,我宁可把自己的工资拿出来,让别人来干这个事情,写PHP程序,调试PHP程序,太痛苦了,我宁可写ASP.NET C#的,宁可这个月我一分钱也不要了,我不要折磨、痛苦、压抑、郁闷,我只想做好C#程序就足够了,不喜欢啥都乱搞搞。

 

   杭州地区 PHPwind论坛整合外包,一天报价2000元,1周内搞定论坛的单点登录,若想花钱,自己不折磨了,就可以联系我。

  

   补充两句:

    1:PHPwind是有版权的,若想乱修改人家的程序,需要签订商业合同,支付费用的;这样才可以有修改的权利,否则会吃官司,有法律保护的。

    2:PHPwind的确很好用,很强大,功能很全,就是10个人开发1年,估计也开发不出这么稳定强大的功能,所以就算1个人修改3个月也值。

 

 

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

posted on 2010-08-19 10:41 吉日嘎拉 不仅权通用权限 阅读(2666) 评论(46) 编辑 收藏

评论

#1楼  回复 引用 查看    难道是沙发?????

2010-08-19 10:42 | 歪楼狂人      

#2楼[楼主]  回复 引用 查看   

@歪楼狂人
热烈欢迎。

#3楼  回复 引用 查看   

我把文章分析了下,
发现你被骂的可能性比前几篇要高很多。。。

所以我得总结下:

这个项目本身不难, 难的是它没有需求啊, 没有需求!!!
不是不明确, 是根本没有!

所以其实这是个做不完的项目。
而不是一天或者一个月的问题。

2010-08-19 10:46 | 歪楼狂人      

#4楼[楼主]  回复 引用 查看   

@歪楼狂人

客户的需求往往是很笼统的。

#5楼  回复 引用 查看   

怎么着也不能估成一天啊,不过楼主报价2000块钱一天,一个人月就是4.4W了,费用好高。话说CMMI4级才报价2W/人月

2010-08-19 10:59 | 小彬      

#6楼  回复 引用 查看   

前段时间整合过discuzNt,也是单点登录的问题,不过毕竟是.NET的论坛整合起来比较方便。。

2010-08-19 11:09 | 顾磊(kyo-yo)      

#7楼  回复 引用 查看   

话说回来,标题写错了,应该是ASP.NET,不是AP.NET,文中错别字比较多,属于小BUG。

2010-08-19 11:11 | 顾磊(kyo-yo)      

#8楼  回复 引用 查看   

老吉的文章向来都是要挺的。
其实老吉写东西或者说话的时候,适当的注意一下措辞,让人感觉略显低调一些,会给你少很多麻烦。

2010-08-19 11:20 | aspnetx      

#9楼[楼主]  回复 引用 查看   

@aspnetx

一直在努力提高,再有1-2年,应该可以做到了,跟过去的1-2年比,自己也感觉有了很多提高,慢慢改。

#10楼  回复 引用 查看   

哇 一周搞定 7天使1.4w
我们搞定了和门户和disucz同步问题 领导连个零头都没给。考

2010-08-19 11:21 | junwu      

#11楼[楼主]  回复 引用 查看   

@顾磊(kyo-yo)

只要指出的错误,都在及时修正。

#12楼  回复 引用 查看   

@小彬
真的假的,我们出去都是2000,

我一直以为2000是行业价格。

2010-08-19 11:23 | 歪楼狂人      

#13楼  回复 引用 查看   

吉日又多了个 PHPwind论坛整合 的杀手锏。

2010-08-19 11:43 | 王一一      

#14楼  回复 引用   

果然有两把刷子!!!

2010-08-19 12:04 | haha777[未注册用户]

#15楼  回复 引用 查看   

呃...
没说具体方法。
看LZ挺厉害的!

2010-08-19 12:16 | 马老虎      

#16楼  回复 引用 查看   

经验总结不错。

2010-08-19 12:27 | 道法自然      

#17楼  回复 引用 查看   

根据我的经验是,在门户首页 登录后 cookie 设置根域(www.lab.com则设置成lab.com)

在论坛中判断登录入口 读取该cookie 因为是共域可以读到,调用本身自己登录的代码。。。

这是最简单的办法。

2010-08-19 12:33 | 假正经哥哥      

#18楼  回复 引用 查看   

还是经验问题

2010-08-19 13:08 | 小Sun      

#19楼  回复 引用 查看   

哥们 我真的想看到你几篇好的讨论技术的文章,我现在发现博客园里的文章质量下降的好快啊

2010-08-19 13:13 | AlonSong      

#20楼  回复 引用   

这个活腻来找我们多好 我们就是专搞这个的 dz phpwind shopex ecshop dedecms等整合
.NET JSP也没问题

2010-08-19 13:19 | gakaki[未注册用户]

#21楼  回复 引用 查看   

”我真的要崩溃了,只能接着硬着头皮修改了,我不下地狱谁下地狱呢?“
----------------楼主的精神值得我们学习!

2010-08-19 13:33 | 风雨者2      

#22楼  回复 引用 查看   

我是 .NET程序员..能理解你的痛苦.

2010-08-19 14:02 | 会写代码的熊猫      

#23楼  回复 引用 查看   

写了这么多,却没有单点登录的相关技术,却不告诉别人怎么样实现单点登录....发此帖目的何在,是在告诫大家估算项目周期么?

没有明确需求的项目,根本就没有周期可言,客户可以不停的新增功能。

2010-08-19 14:51 | 小 雷      

#24楼[楼主]  回复 引用 查看   

@小 雷
那你来补充一下,我只是写了,都在什么环节花费了多长时间。

#25楼  回复 引用 查看   

个人认为单点登录可以简单的这么做

前提:两系统用户表统一,具体细节这里不详细讨论。
(如果用户表不统一,可以考虑设置用户同步表,同样,细节不做详细讨论)

以下为简要逻辑,还可做很多优化,篇幅问题,也不详细讨论

A:单点登录服务器(或虚拟目录)
B: 需要单点登录的系统为配合单点认证而新增的认证页面

1、用户访问B所在系统,执行原有登录检测逻辑,(不论以何种方式访问,直接访问B也好,从A认证登录后,访问也好),B所在系统检查是否已经登录,若无,则跳转至B,B负责返回A系统认证页面(即登录页面),附上ReturnUrl = B.Url(以便A系统登录认真后返回B系统);

2、用户进入A认证页面,登录。此时A写入随即生成的GUID、用户ID以及生成时间记录到数据库某表中,然后页面转向至B.Url,附上参数AuthKey = GUID;

3、用户页面专项至B.Url,B负责调用A中的WebService根据AuthKey验证合法性,如果合法,则返回用户ID,至此,单点登录成功

基本思路如上,做适当修改与优化适用于所有Web语言之间的单点认证

2010-08-19 15:01 | 小 雷      

#26楼[楼主]  回复 引用 查看   

@小 雷

说得很有道理的,支持。

#27楼  回复 引用 查看   

楼主如果不下地狱而直接外包,是否愿意直接给人家30*2000=6W??

2010-08-19 15:11 | 邀月      

#28楼  回复 引用 查看   

@小 雷
其实单点登陆的关键还是对不同语言运行环境的熟悉程度。

2010-08-19 15:13 | 火地晋      

#29楼  回复 引用 查看   

@火地晋

引用

火地晋:
@小 雷
其实单点登陆的关键还是对不同语言运行环境的熟悉程度。

可以部署单点认证中心,安排在一台服务器上,同时配置用户数据同步表及其他相关信息。.net环境即可。

其他项目若需要单点登录,只需新增与单点认证中心交互认证的页面即可,一个页面便可以,逻辑也不复杂。至于是什么语言,什么环境,个人认为不是关键。

至于风格要一致等等,那就另说了,这可不属于单点登录的范畴喔

2010-08-19 15:16 | 小 雷      

#30楼[楼主]  回复 引用 查看   

一天给 2000元, 5天搞定 == 为这个单点登录愿意支付 1万元的。
公司不肯支付,我自己支付也可以,太搞了。

若支付6万,估计公司也不肯,我也不肯出6万的,1万公司不肯,我自己也肯,我宁可休息。

引用

邀月:楼主如果不下地狱而直接外包,是否愿意直接给人家30*2000=6W??

#31楼  回复 引用 查看   

@马老虎
具体方法应该是留着赚钱的....

2010-08-19 15:28 | 镜涛      

#32楼  回复 引用 查看   

抱歉!评论已关闭.