当前位置:编程学习 > C#/ASP.NET >>

建议CSDN上的自认为是高手的兄弟姐妹进来指教、提问和学习

最近,我一直在单干一个.NET的WebSite,根据user的五花八门的需求,所以陆陆续续地遇到一些实现方面的技术问题,并逐一解决掉了。其实我觉得,在做一个完整的数据交互性的网站时,很多人是不具备网站开发所具有的完整技术的,比如说开发一个网站需要用到javascript、CSS、Ajax、C# or VB.NET,ADO.NET,ASP.NET,.NET Framework,PhoteShop,Flash,XML等等;如此之多的技术虽然不要求我们每个人全部掌握,但是至少要每门技术都入门,这也算是一件很不简单得事情了。

总是有很多自以为是的"高手",对别人的问题胡乱回答,骗取积分,十足的技术败类不说,简直就是害人子弟;所以,一直以来我都十分 很 尤其 特别鄙视CSDN上的那些"高手".

发了这个帖子的本意,是想请高手来畅所欲言。虽然帖子的标题看上去是有些找抽,但是只要"高手"们能进来,能本着"高手"的身份发表一些有用的见解,我想至少您不会被我BS.因为有成果的发言是值得尊敬的。

如果,有一些"高手"想要挑战我的技术底线,我很乐意奉陪到底. --------------------编程问答-------------------- 我觉得你以后再怎么高手也不会得到尊敬的,直觉... --------------------编程问答-------------------- 顶楼主~
莫非楼主就是传说的csdn的草根高手? --------------------编程问答-------------------- 单干了一个website解决了一些问题便自我感觉良好...

想起了发哥说的一句广告词:成功,我才刚上路呢

楼主呢? --------------------编程问答-------------------- 楼主,莫非你在向星星们挑衅。 --------------------编程问答-------------------- 挑衅又怎么样了,兄弟我写了大大小小几十个系统,难道怕您们挑战?
我想,我应该批评上面这些刚上路的兄弟,看明白我发这个贴的本意没有?全是乱谈琴!!
BS。 --------------------编程问答-------------------- 唉,csdn上总是有这么多自以为是的sb --------------------编程问答-------------------- 啊,我明白了
原来高手就是这么变成的
佩服
佩服 --------------------编程问答-------------------- 高手是沉默的, --------------------编程问答-------------------- 学海无涯呀!lz 你认为你掌握的多?虚心点! --------------------编程问答-------------------- 连一篇技术文章都不拿出来,一个作品也不让大家看,本身就是胆小,自以为是又怕人说教

看看你最近发的贴子,你的确是在找抽!!!!!!!!!!!!!!!!!!!!!!
:AJAX高级运用(您不进来,我鄙视您!)  [已结贴,结贴人:luoshi] --------------------编程问答-------------------- 建议大家说一点有意义的技术话题,好不好?
我发帖的原意是,希望大家在这个地方发表一些自己在开发网站上的收获和见解,哪知道您们这帮兄弟竟然如此,简直就是愤青一堆!! --------------------编程问答-------------------- 传说中的SB闪亮登场了。 --------------------编程问答-------------------- 呵呵,我替LZ抱不平,LZ好象也没说什么吧?引的诸位... --------------------编程问答-------------------- 我最喜欢坐板凳,楼下的兄弟借一张给我坐坐!!! --------------------编程问答-------------------- 低调,低调 --------------------编程问答-------------------- LZ出门忘记吃药吧?
应该病的不轻... --------------------编程问答-------------------- 很多人是不具备网站开发所具有的完整技术的
-----------------
这个是当然的了...只有手工作坊才出“全才”...

ps:偶是老菜鸟...表BS偶... --------------------编程问答-------------------- 致vrhero兄弟:
您太单纯,知道吗?为什么呢?因为您只有一辈子写代码的份儿。为什么不站在更高的地方来规划自己的生涯和自己所从事的系统呢。

致symbol441,我不知道您是不是有病,为了表示尊重,我尊称了你。

致Fireman_duck,我不知道您是说您还是说我闪亮登场了。 --------------------编程问答-------------------- 您太单纯,知道吗?为什么呢?因为您只有一辈子写代码的份儿。为什么不站在更高的地方来规划自己的生涯和自己所从事的系统呢。 
=========================================
整的自己多厉害似的.... --------------------编程问答-------------------- 这个.......高手兄,我想请教一下,如何使用JS脚本调用后台C#代码并引发某个自定义事件?
还有如何实现服务器端向客户端的信息发送?
解决这两个问题高分相送! --------------------编程问答-------------------- 自认为不是高手的人路过.另外,对楼主不想评论. --------------------编程问答-------------------- QUOTE:这个.......高手兄,我想请教一下,如何使用JS脚本调用后台C#代码并引发某个自定义事件?
还有如何实现服务器端向客户端的信息发送?
解决这两个问题高分相送!
---------------------------------
哥们,你这么问谁答你啊,开贴提问,关注者更多,我认为你的问题就是典型的AJAX应用. --------------------编程问答-------------------- 您太单纯,知道吗?为什么呢?因为您只有一辈子写代码的份儿。为什么不站在更高的地方来规划自己的生涯和自己所从事的系统呢。 
-----------------------
哈哈...那要让您失望了...我这辈子写的代码恐怕都没这里大多数兄弟一年写的多...

我也曾以为自己是“全才”(要论比学识之广博恐怕您还不够数)...皆因不才也是出身手工作坊...只不过为了“站在更高的地方来规划自己的生涯和(自己所从事的系统???)”放弃了很多“才”...

工业社会...想成为所谓“全才”往往成了“废材”... --------------------编程问答-------------------- sb --------------------编程问答-------------------- 另一种成名方式 --------------------编程问答-------------------- 哎呀...
LZ又来了啊!
论坛是用来交流的,别人的帖子,你回了(那种胡乱回答的不算),那就说明对别人的问题,你曾经思考过。
虽然可能你的想法不对,但是不对可以纠正啊!
某些想法,你不说出来,别人怎么知道你怎么想?你又如何知道自己的思路有那些缺陷?

如果你的回答错了,很多时候,后面回复的人会纠正你的错误,这样你也会有进步,不是吗?

我认为,回答别人的问题比遇到问题才提问,学到的东西更多,就算回答错了也没什么,这本来就是提问者与回答者之间交流的一个过程。

如果LZ认为CSDN上的提问都应该是一个答案一个准的话,建议你还是去翻字典的好...... --------------------编程问答-------------------- 总是有很多自以为是的"高手",对别人的问题胡乱回答,骗取积分,十足的技术败类不说,简直就是害人子弟;所以,一直以来我都十分   很   尤其   特别鄙视CSDN上的那些"高手". 
==========================================


回答问题本来都是别人对问题的一种看法,对了你可以接受,不对也会有人加以改正。
但是不要以 “技术败类” 这样的话语来评论这些兄弟们,你可以对别人的问题加以指正,甚或激烈的争论,但请不要使用侮辱型的词语。
--------------------编程问答--------------------
别的不说,我只是很在意楼主的这句话:

如果,有一些"高手"想要挑战我的技术底线,我很乐意奉陪到底

一个偏激的家伙

做技术需要客观和冷静


--------------------编程问答-------------------- 致LikeCode,关于您的试金石问题回答如下:
1:如何使用JS脚本调用后台C#代码并引发某个自定义事件?
这是一个看是很高深的问题但是呢,如果您对js与服务器端的交互有一点点了解的话呢,我想这个问题也就迎刃而解了。
For example(This sample is very very simple.):
Step 1:在页面上建立以按钮,至于是什么类型的按钮,自己拿主意吧。当然这个按钮的Visiblility属性是可以隐藏也会可以不隐藏的,如果隐藏的话就自己相办法触发它的Click事件好了。
Step 2:现在可能就是要写您的html控件的调用Click的js代码了,紧接着就是去调用你写在服务器端的C#事件了,也可以是函数。也可以是自定义事件。别忘了document.getElementById("")很重要哦,至于怎么实现,自己还是要动脑筋的,不然我全说了,你怎么进步呢?对吧。您也可以说我不懂。
Step 3:还有更多的方法,在网上能找到很多。今天我也要上班的。
2:还有如何实现服务器端向客户端的信息发送? 
我想这个问题,比较令人望而生畏,为什么?因为我们的习惯总是Client向服务器端的请求,所以一般的新手遇到这样的问题,总是以为很高深。
刚才不是有一个同学说什么AJAX吗。AJAX是可以实现的。至于怎么实现,兄弟可以给我发邮件。luos.luo@hotmail.com.

致vrhero,您奶奶的就是典型的一蠢材,不要来祸害视听了。 --------------------编程问答-------------------- 知道么...像你这种为博一名不要脸皮的杂碎我见得多了...我不会跟你在这儿对骂让你像芙蓉那样成名...

至于你那点儿可怜的智商...连竹子有没有问问题都搞不清楚赶紧找个地方自裁去吧...

ps:你想骂就骂吧...老子再没闲功夫来看这无聊帖了... --------------------编程问答-------------------- 关注(不是高手的路过) --------------------编程问答-------------------- QUOTE:致LikeCode,关于您的试金石问题回答如下:
1:如何使用JS脚本调用后台C#代码并引发某个自定义事件?
这是一个看是很高深的问题但是呢,如果您对js与服务器端的交互有一点点了解的话呢,我想这个问题也就迎刃而解了。
For   example(This   sample   is   very   very   simple.):
Step   1:在页面上建立以按钮,至于是什么类型的按钮,自己拿主意吧。当然这个按钮的Visiblility属性是可以隐藏也会可以不隐藏的,如果隐藏的话就自己相办法触发它的Click事件好了。
Step   2:现在可能就是要写您的html控件的调用Click的js代码了,紧接着就是去调用你写在服务器端的C#事件了,也可以是函数。也可以是自定义事件。别忘了document.getElementById("")很重要哦,至于怎么实现,自己还是要动脑筋的,不然我全说了,你怎么进步呢?对吧。您也可以说我不懂。
Step   3:还有更多的方法,在网上能找到很多。今天我也要上班的。
2:还有如何实现服务器端向客户端的信息发送?  
我想这个问题,比较令人望而生畏,为什么?因为我们的习惯总是Client向服务器端的请求,所以一般的新手遇到这样的问题,总是以为很高深。
刚才不是有一个同学说什么AJAX吗。AJAX是可以实现的。至于怎么实现,兄弟可以给我发邮件。luos.luo@hotmail.com. 
-----------------------------------


抱歉,我真不知道你在说什么,我想造成这原因有两种可能:
1.你表达能力问题,如果表达不清晰,没有逻辑什么的,条理不好什么的之类等.
2.我理解能力不强,如,你说的太高深,我这准菜鸟理解不来. --------------------编程问答-------------------- To vrhero :
我一直都在忍您,自以为是的家伙,干正经事没您,搅浑水倒是比谁都厉害。我仅仅是希望大家到这里来畅所欲言自己网站开发的心得,不要来搅浑水。我求您了。 --------------------编程问答-------------------- 这帖子我这种不经常灌水的人看了都气氛了,lz太狂了,迟早的翻车 --------------------编程问答-------------------- 致LikeCode ,看来你的理解力真的有问题。建议你先找一些入门的书籍看看,但是我觉得不现实,为什么?因为等你入门之后再来回帖,我想已经是3、4年之后的事情了,摆脱不要回答一些言语,不然自己本来不傻,倒是让人给瞧傻了。 --------------------编程问答-------------------- 我顶 --------------------编程问答-------------------- lz,我想请教你一个问题。

有3个Method ,分别放置在独立的项目中,方法都是独立存在的,互不依赖。如以下方法 

public DataTable GetMasterData(object objectID);

public DataTable GetDetailData(object objectID);

public DataSet CreateRelation(DataTable master,DataTable detail);


为了各个项目的独立,松耦合高类聚 不能直接引用,不能显示的构造其他方法,包含这3个方法的调用。

1 . 我要将 完成一个并包含主细表和关系的DataSet业务时 怎么办?

2. 如果这时又有方法D的出现(假设D 处理的是 明细行列转换) ,需要返回的是 经过行列转换并包含 1 描述的DataSet 业务时怎么办?

只用说思路就可以了。

注:不用给我讲设计模式,我只问思路 --------------------编程问答-------------------- 这里这么多高手,我想问个问题
先声明我不是来参与讨论的
纯技术问题,没有别的意思
我不会,想请教一下大家
就是我用2个页面,一个页面上有一个GRIDVIEW点一个按钮(添加),然后弹出一个TEXTBOX,里面用来写这个记录的数量,〈这个我能实现〉
现在的问题是我怎么把ID和TEXTBOX里的数量传到另一个页面,而且另一个页面要显示出那个ID的信息和数量,还有 有就是我可能不是传一个ID和数量,可能是好几个ID和数量,怎么能让他们在一个页面里显示出来,用什么控件,谢谢谢拉 --------------------编程问答-------------------- 如果,上述的问题,LZ 认为我在痴人说梦的话,那么下面的问题应该不会让你觉得是天方夜谭

目的: 以对象的方式处理SQL 语句。

范围: 先是DML 的。
问题:
1. 请按你的思路拆分SQL,规划出符合的对象。 --------------------编程问答-------------------- LZ,你知道Java 的开发者需要掌握什么吗?

Hibernate,Struts ,JSF,RCP,JBPM,JRule,ejb等等。

开发工具:Eclipse,Jbuilder 等等;

中间件服务器:JBOSS, WebLogic, WebShere 等等

和他们聊天都没感觉出似乎都掌握完了的。毕竟人外人,天外天。

你要骂,就尽管骂!
希望能通过镜子,找到你自己!
--------------------编程问答-------------------- QUOTE:致LikeCode,关于您的试金石问题回答如下: 
1:如何使用JS脚本调用后台C#代码并引发某个自定义事件? 
这是一个看是很高深的问题但是呢,如果您对js与服务器端的交互有一点点了解的话呢,我想这个问题也就迎刃而解了。 
For       example(This       sample       is       very       very       simple.): 
Step       1:在页面上建立以按钮,至于是什么类型的按钮,自己拿主意吧。当然这个按钮的Visiblility属性是可以隐藏也会可以不隐藏的,如果隐藏的话就自己相办法触发它的Click事件好了。 
Step       2:现在可能就是要写您的html控件的调用Click的js代码了,紧接着就是去调用你写在服务器端的C#事件了,也可以是函数。也可以是自定义事件。别忘了document.getElementById("")很重要哦,至于怎么实现,自己还是要动脑筋的,不然我全说了,你怎么进步呢?对吧。您也可以说我不懂。 
Step       3:还有更多的方法,在网上能找到很多。今天我也要上班的。 
2:还有如何实现服务器端向客户端的信息发送?     
我想这个问题,比较令人望而生畏,为什么?因为我们的习惯总是Client向服务器端的请求,所以一般的新手遇到这样的问题,总是以为很高深。 
刚才不是有一个同学说什么AJAX吗。AJAX是可以实现的。至于怎么实现,兄弟可以给我发邮件。luos.luo@hotmail.com.   
----------------------------------- 


抱歉,我真不知道你在说什么,我想造成这原因有两种可能: 
1.你表达能力问题,如果表达不清晰,没有逻辑什么的,条理不好什么的之类等. 
2.我理解能力不强,如,你说的太高深,我这准菜鸟理解不来.

-----------------------------------
同LikeCode,我对你写的第一个问题的解决方法也没看懂
虽然对AJAX的理解,我认为我说不上高手,也应该算入门了吧
也许我的理解能力真的太差了... --------------------编程问答-------------------- 熟悉这些web技术以及熟练应用时间到了,经验到了谁都可以

关键是你对自己的要求有多高,比如你现在都熟练应用了web技术,那么你想进一步
提高自己的开发水平,你能想到要学习什么知识吗。
想你单干一个.NET是无法体验高水准的软件开发framework,只能
提高自己的web技术熟练程度,至于模式,框架的东西,估计很难接触到。 --------------------编程问答-------------------- LZ这种帖见的太多了
你用每天一小时的时间照镜子,这对你的人生很有帮助,
当你真正了解自己时,你就是真的“搞手”了
慢慢体会,时刻记得上面的话,你是个典型 --------------------编程问答-------------------- 我刚刚工作时,刚接触web开发,有个同事用了luoshi所说的神奇的问题1 的方法,所以我看第一遍就理解了楼主的意思,刚才逗同事“用那个方法的人都是高手”,他说那时什么也不会,没办法!
   真佩服luoshi,你长的什么样呀?呵呵,真想看看你,哈哈,很好很强大! --------------------编程问答-------------------- 哎呀,有高手跳出来说自己是高手,我这正好有几个问题,很长时间没有解决,请教一下.

1.winform中,我需要批量生成大图片缩略图。原始图片大概是5m左右,生成128*128的缩略图。希望每张图片花费时间不超过100ms。怎么做。

2.多语言b/s系统,在用户切换语言之后,怎样自动切换用户输入法。

3.b/s系统,水晶报表如何设置和保存客户端打印机横向,纵向打印。

4.winform中,如何遍历并取得桌面上,我的电脑,网上邻居等系统图标。

5.winform中,如何实现大图片拖拽移动,并且速度要快。

以上每题200分。谢谢。 --------------------编程问答-------------------- 大家可以看一下搞手的文章
http://topic.csdn.net/u/20070524/23/f12a68c1-acfc-4d6f-ba26-0da526c1ede6.html
楼主可能不理解总是有朋友唱反调,
找我说的方法坚持,你会知道的 --------------------编程问答-------------------- 不是高手,过来凑凑热闹 --------------------编程问答--------------------

楼主是吃饱没事,放屁不出那种“高手”

现在不管你技术怎样,你是一个人格不过关的“高手”

两个贴,自命不凡,这种性格本身就是跟技术过不去

希望楼主去看一下《心灵捕手》这电影,如果你不想浪费时间去看电影,那你可以离开技术界了

这是一种修养 --------------------编程问答--------------------

我觉得是这样的:

先做人,再做事



电影《心灵捕手》正是你需要的 --------------------编程问答-------------------- 我的问题没人回答,看来只能去技术区发帖了 --------------------编程问答-------------------- 顶你个肺 --------------------编程问答-------------------- 没见过楼主说的"自认为是的高手"

//对别人的问题胡乱回答,骗取积分
谁都不是傻子,不解决问题楼主会给分?
楼主你不胡乱回答,你咋没有积分呢?
说出自己的想法,即使是错的,也有参考作用吧
总比自私到什么都会,却藏私不帮助别人强!

我是个菜鸟,来这里回答问题,本身是个学习的过程~ --------------------编程问答-------------------- 很黄,很暴力.
学习.....谁对谁错不重要,主要是大家在讨论中,技术?道德是否有提高..... --------------------编程问答-------------------- 高手呢?高手何在?5个问题1千分,楼主,好歹露两手啊。 --------------------编程问答-------------------- 浮躁。。。。 --------------------编程问答-------------------- 我看到上面有两个很不服气的同学像放鞭炮一样提了大约7,8个问题,不对,刚才还有个同学提了水晶报表的问题。
现在很忙,请各位持续关注,兄弟我星期日之前坚决给您满意答复。 --------------------编程问答-------------------- 何必星期日呢?既然择日不如撞日,就今天。正好你在。

lz,我想请教你一个问题。 

有3个Method   ,分别放置在独立的项目中,方法都是独立存在的,互不依赖。如以下方法   

public   DataTable   GetMasterData(object   objectID); 

public   DataTable   GetDetailData(object   objectID); 

public   DataSet   CreateRelation(DataTable   master,DataTable   detail); 


为了各个项目的独立,松耦合高类聚  不能改已经定义的方法,  不能直接引用,不能显示的构造其他方法,包含这3个方法的调用。 

1   .   我要将   完成一个并包含主细表和关系的DataSet业务时   怎么办? 

2.   如果这时又有方法D的出现(假设D   处理的是   明细行列转换)   ,需要返回的是   经过行列转换并包含   1   描述的DataSet   业务时怎么办? 

只用说思路就可以了。 

注:不用给我讲设计模式,我只问思路。

还有这3个项目 是以前的存在的资源,现在就是要将复用提升到资源级的。用这仅有的3个资源,满足业务要求。 --------------------编程问答-------------------- 哦,忘了给你说 了,对不起:

客户端只调用一个方法,完成提出问题的2个业务。 --------------------编程问答-------------------- 很少有人自称高手
大家都是进来学习和交流的,当然是要畅所欲言。
难道不是高手,不会你所说的所有技能及不能进论坛回复别人的问题吗?
有些人提问题的时候说“请高手进来”,实际上也只是表示对朋友的尊敬而已。大多是提问题的人说找高手,我从来没见过有人说“我是高手,谁来向我提问”。
主要看你的看人的心态。 --------------------编程问答-------------------- 也就是说 申请者 不会知道是那个几个Method 完成业务的。例如 申请者只被告知 使用 业务名和业务接受参数的情况
就上述2个 问题,申请者 被告知 信息 如下

1.
业务名: GetBusiness
必须参数 objectID
返回参数 DataSet

2. 信息同上,只是这时 是由于业务变化 造成了 业务实现上的变化,申请者不会知晓。所以 传递信息如下! --------------------编程问答-------------------- 相信 我已经把 问题 已经 清楚地给你说了. 只是说 你的思路和看法,大家切磋,点到为止。至于输赢那不重要 --------------------编程问答-------------------- 怕我没说清楚


 相信我,最后一次描述
   问题思考形式如下
  有A,B,C 3个方法

 那么,他们可能得出
 A+B= D 
 A+C= E
 且 A+B 不一定= B+A
以此类推。 --------------------编程问答-------------------- 还是现在来回答Erice (“白雪公猪")的问题。
光看这名字,感觉这家伙的名字还蛮有创意的,一看他的问题,到感觉真的像是一头猪。
Erice say:有3个Method,分别放置在独立的项目中,方法独立,互不依赖。
public DataTable GetMasterData(object objectID); (这方法中的变量声明的有问题,难道不要知道Object会夺占很多的内存吗?所以希望您改掉这个毛病,虽然您觉得装箱拆箱的类型的转换很是方便,但是您的老板认可您这样的声明,我就觉得您的老板一定是个白痴。)
public DataTable GetDetailData(object objectID); 
public DataSet CreateRelation(DataTable master,DataTable detail);
为了各个项目的独立,松耦合高类聚,不能直接引用,不能显示的构造其他方法.
Question 1:
我要将完成一个并包含主细表和关系的DataSet业务时,怎么办?
Answer:感觉这家伙的问题还是蛮有意思的。各个项目要独立,松耦合高类聚,这简直就是放屁。各个项目独立了,那就靠自己的方法来解决自己的问题好了,为什么还有别的功能实现呢?而且不能直接引用,不能直接引用,那就只能变着法子间接引用呢。间接引用不是有很多的方法吗!
我相信,这兄弟肯定会觉得我的回答好笑。但是,做项目不是在玩游戏,您得为您的用户负责,您的为您的维护人员负责。
写一个公共的类不就解决这个问题了吗?何必搞得那么花哨,即松耦合高类聚,又不能直接引用,不能显示的构造其他方法什么的。简直就是胡扯。项目设计的时候,你们的Business Analyst简直就是一群饭桶。

第二个问题,我不回答了。没有意义。
--------------------编程问答-------------------- 看来,你的思想范围还当真停留在手工作坊当中。难道 资源复用就是一味的Ctrl+c and Ctrl+v 。难道你就不能把你的资源当成你的构件。

我只能这么说,你不知道的就要勇于承认,别一味的好强。何必呢?说自己不知道你又不得少2两肉,再说少了2两肉,也比猪肉贵。

呵呵 我就把 上诉问题的思路,贴出来。反正公道自在人心,你说是不是。 --------------------编程问答-------------------- 第2个问题存在的意义,在于,你还在乎是否继续在界面或者BAL中拼写sql。同时,你是否在意你的程序 可以跨越数据库。 --------------------编程问答-------------------- 组装业务
 

 

1.            为什么要使用组装业务

在拥有 Sloth 之前我们需要完成一个业务逻辑时一般采用的习惯模式是——将所有符合该
业务使用的相关类以 reference 的模式包含在这个业务包(以一个动态链结库或一个解决方案
中的项目存在)中,整体编译——这能迅速满足当前实现业务逻辑的需要,快速生成需要部
署的业务,在一定程度上使程序员的步进跟踪调试变得简单。

看起来不错,是吗?那么再让我们深入的想想下面的几个问题:

 

程序员交付给测试人员的代码相互交织,测试工作的颗粒性如何有效保证?
如果业务逻辑所引用的底层库不得不重构,需要重新提交给测试人员多少代码?
 如果测试人员检测出 bug,如何界定这个 bug 源是底层提交的数据性错误还是业
务逻辑本身的错误?
 如果是一个大的解决方案,我们在开发阶段需要整合编译多少次?
 如果个别模块版本更新,我们需要整合编译多少次?我们又需要重新发布多少已
编译模块?
 

传统模式是紧密耦合的,项目后期由于业务需求变动——很不幸,这样的变动往往无法
避免——所需要的修改本身涉及的面很可能非常广,甚至异常复杂。这造成仅仅处于开发
阶段时,整个项目的可维护性和可管理性就无法保证!项目可控性的急剧下降,不仅是开发
时间的延长,工作量更会快速增加!

是否可以设想,如果只是在表示层申明一个对业务调用的别名,而不用具体处理业务是
怎样完成的,一旦发生重构性的修改,除非是对业务的重组,表示层也不会发生变动!于是,
我们仅需要着手于业务组件的细化,通过配置文件,就可以进行业务的调整。

下面让我们看看Sloth的处理。

Sloth与业务组件的通讯依赖于一个 Xml 配置文件(ControlBus.xml)进行交互,这个文件
中记录了需求管理者和软件设计师对业务过程的配置信息。就是说,改变了 Xml 中指定业
务的配置过程顺序,同时也会改变Sloth对该业务逻辑的执行效果。下一节,将有一个例子来
说明Sloth的处理模式。

2.            如何使用组装业务

示例业务:客户端程序录入个人基本信息及部门名称,系统自动获得“部门名称”对应
的部门编号,最后将个人信息及部门编号保存到数据库;

首先编写服务程序,分别实现两个业务逻辑:

    个人信息保存:


public class ExamplePersonnel

{

    ……………………..

        /**//// <summary>

        /// 根据录入信息产生合适的sql语句

        /// </summary>

        /// <param name="deptNo">部门编号</param>

        /// <param name="name">职员姓名</param>

        /// <param name="sex">性别</param>

        /// <returns></returns>

        public string SavePersonnel(int deptNo, string name, string sex)

        {

            /**////构造sql

            string result = null;

            try

            {

                result="insert into xxx (deptNo,name,sex) values ("+deptNo.ToString()+",'"+name+"',"+"'"+sex+"')";

            }

            catch

            {

            }

            return result;

        }

}





Ø        根据部门名称获得部门编号



public class ExampleDept

    {

        ……..

        ……..

        /**//// <summary>

        /// 根据指定的部门名称查找该部门的编号

        /// </summary>

        /// <param name="deptName">部门名称</param>

        /// <returns></returns>

        public int search(string deptName)

        {

            /**////根据指定的部门名称查找该部门的编号

            int result = 0;

            try

            {

                DataRow[] searchRow = deptTable.Select("deptName" + "'" + deptName + "'");

                if (searchRow.Length==1)

                {

                    result = int.Parse(searchRow[0]["deptNo"].ToString());

                }

 

            }

            catch

            {

            }

            return result;

        }

}


  以上,我们完成了业务组件的编写,当然我们需要一个通用的数据库操作组件,类似于
下面的结构(业务层与数据层同样是断耦的!)


public class DataAccess

    {

        public DataAccess()

        {

        }

        /**//// <summary>

        /// 执行传入的SQL语句,操作成功返回true,否则返回false;

        /// </summary>

        /// <param name="execSQL"></param>

        /// <returns></returns>

        public bool Execute(string execSQL)

        {

            bool result = false;

            try

            {

                //这里写保存数据的动作;

            }

            catch

            {

            }

            return result;

        }

    }


 

业务组件及数据操作组件都有了,可是我们并没有完整的实现业务逻辑,
在Sloth下,业务方法的组合是很简单的事:

打开Sloth的配置工具,首先将编写的业务组件(只需要dll或exe等文件)

--------------------编程问答--------------------
添加到Sloth中,如图这时就能在配置工具的[注册业务组件]下看到这个业务组件了;

双击这个业务组件,就可以看到组件中包含的几个类:
http://www.cnblogs.com/images/cnblogs_com/duochunyu/2_3.JPG






--------------------编程问答-------------------- 我们看到这个业务逻辑涉及到三个必要的方法,SavePersonnel需要的是部门
编号而不是部门名称,所以我们在执行SavePersonnel方法前,必须先得到部门编号,
也就是说,我们执行的顺序应该是先使用search方法得到部门编号,并将部门编号
传递到SavePersonnel中构造SQL语句,最后,构造好的SQL交由数据操作方法
Execute去执行,完成整个业务逻辑;

配置业务逻辑流程如图:

2.1 设置(SavePersonnel)方法的参数来源及下一节点

如图所示:SavePersonnel的deptNo参数来源于search方法的返回参数


2.2 整个流程的配置图(图形界面):


业务逻辑配置完成后,可自定义虚拟业务名称,例如SavePersonInfo。虚拟
业务的配置信息保存于配置文件中(ControlBus.xml),Sloth将根据此配置文件
来调用业务组件,您甚至可以直接修改配置文件来更改、重组业务。

接下来,我们看看客户端怎么调用这个业务:

整个虚拟业务返回值为最后一个方法Excute的返回值(Bool类型),所以,我们
的客户端代码就应为:

 

//目前sloth使用Object[]传递参数。

                            object[] parameters =new  object[3];

                parameters[0]="QuartetLounge Team";

                parameters[1]="QuartetLounge";

                parameters[2] = "Man";

                //调用组合函数

                bool result = targetSloth.Invoke<bool>("SavePersonInfo", parameters);//只需要调用我们自定义的虚拟业务名

                string strCaption = null;

                if (result)

                {

                    strCaption = "保存成功";

                }

                else

                {

                    strCaption = "保存失败";

      }


    

 

              这样就可以完成虚拟业务的调用了.这时一旦发生业务变化,我只需要修改业务逻辑
配置;如果发生了业务重构,也只需将变动的业务组件重新拷贝覆盖以前的业务组件即可。

至于事务控制,目前Sloth支持分布式事务控制(DTS),但是默认关闭,需要在
配置工具中做相应设置即可。以后将详细讲解。

 

--------------------编程问答-------------------- 唉 谁会自跌身价跟LZ这样的人讨论技术呢。。 --------------------编程问答-------------------- 先让我工作一会儿。等我有空了再继续。好吗? --------------------编程问答-------------------- 我在为 我的客户负责的前提下,也要为我的同事负责。他们不是机器,他们不是靠双手吃饭的,他们也同样十分休闲的工作后得到理想的报酬!

还想,请问,你对自己和你的手下负责了吗? --------------------编程问答-------------------- 为什么没有回答我的问题,高手同志.你不会这些都不会吧. --------------------编程问答-------------------- 今天又碰到一个问题
winform下的listview在virtualmode下用checkboxes时
复选框在item的左边,我想弄到item的下面,不知道怎么弄。 --------------------编程问答-------------------- 我觉得这位老兄,连问题都看不懂。 --------------------编程问答-------------------- D 别让 帖子沉了! 大家看看,切磋的结果!  --------------------编程问答-------------------- 给楼主 发的消息:希望能听到你的高见!如果是切磋,别只有我再说。躲不是办法。不光只有你才有很多事! --------------------编程问答-------------------- 今天,我就在这等你的高见!还有,注意你的言语!当然你如果承认,你就是来捣乱的话,相信管理员会解决的! --------------------编程问答-------------------- 我和楼主之间的 消息对话:


    在2008年01月10日 14点44分30秒,Erice  
何必躲呢?  
    在2008年01月10日 14点40分29秒,Erice 
希望能听到你的高见!如果是切磋,别只有我再说。躲不是办法。不光只有你才有很多事!  
    在2008年01月10日 14点28分48秒, Erice 
我相信 这个是 很好实现的。对于达人,时间只是一个逻辑上的概念。所以请你回帖,或者结贴。  
    在2008年01月10日 14点22分17秒,luoshi 给您发送的消息! 
兄弟啊,今天不是星期天。
 
--------------------编程问答-------------------- 无聊的家伙,您没事做,我还有事情呢! --------------------编程问答-------------------- 我现在真的很忙,不要以为我躲起来什么的。
希望Erice能畅所欲言,无论什么言语,哪怕意淫都行!
--------------------编程问答-------------------- 原来楼主就是一菜鸟,什么都不会,癞蛤蟆上路,就上冒充吉普车呢。 --------------------编程问答-------------------- 你在说无聊的时候,请在镜子面前 先看看你自己。


我只想听听你的高见,以及你引经据典的 话语。。。。来吧!留言吧! --------------------编程问答-------------------- 突然想起了 郭德刚的段子 :“传统相声有1000多段。经过我们这辈的努力,还有200多段!” 很类似,很类似! --------------------编程问答-------------------- D --------------------编程问答-------------------- 我问的问题,到底谁在乱回答呢?

就是一次不见面的切磋,何必呢?说说你的做法,想法,这也好让大家认识你呀!本来论坛就是 一个 相互在对话中了解的过程呀!

你不说,我们怎么知道,你对此类问题的看法。

再说了  子曰:3人行,必有我师焉。 --------------------编程问答-------------------- 我等高手给我解决问题,反正每题200分 --------------------编程问答-------------------- D --------------------编程问答-------------------- 我不想 在楼主你不在场的情况下 阐述过多的东西。希望你看到 这条回复后,上来说说你的看法。 增进对你的了解,以便于我在以后遇到你一样类型的同事时,在待人接物方式的变化!
  谢谢! --------------------编程问答-------------------- 刚才,我有和我的同事谈到"组装业务"的问题。我承认,我没有用没有用过这种概念来开发,现在正在琢磨。
很感谢Erice,这兄弟。
我会在深入了解之后,在回复您。 --------------------编程问答-------------------- 深入了解

可能是3,4年以后了。 --------------------编程问答-------------------- 终于认怂了。 --------------------编程问答-------------------- 顺便问下猪同学,你的这个思路是参考了什么东西?还是说自己的经验总结? --------------------编程问答-------------------- 没有参考,就是我们想偷懒!

因为,你写多了东西,你就觉得,有些就跟拼积木一样。为什么不能复用以前的资源呢?

这样我们就可以将项目成员划分更细,将每位同事的工作疲劳度有效的减轻。同时,现在写的东西,以后又可以服用。


这样说,独立程序就是服务,服务也是程序。

不说这个了,我不想打广告。

LZ ,我回帖,不是代表我水平多高,这里水平高的人大有人在。我只想通过这些证明 谚语: 人外人,天外天 是对的。
还有,在你讲粗话的同时,我依旧以平和的心态处理,这种能力你是欠缺的。至于 上面的问题,不在于谁赢谁输,因为不同的个体
所处角度不同,看待事情的方式不同。如果你认为我错了,告诉我,理由正当的话,我会欣然接受。

--------------------编程问答--------------------


如果有团队可以跟楼主这样的开发人员相处3个月,我TM的服了他

不光是自以为是,还影响队团心情,

.NET提高的效率还没你影响的大 --------------------编程问答--------------------
1、我比较赞同楼主说的,BS模式开发,确实需要程序者至少了解或精通N种开发模式和技术(美工也要会简单的处理),这是基础,和手工作坊无关,不过反过来,手工作坊确实出类似的“全才”。10年BS开发,方觉得其中的不易,BS入门没有那么容易的,光一个HTML的参考书就足有砖头大小——看到它,你还敢说自己BS真的很强么??很多人连最基础的BS最基本的绝对路径、相对路径都没弄明白,就上手Asp.Net,未必是好事。个人见解,保留。
2、我不赞同楼主的为人、和嚣张言论,高手总在云深处。。。
3、这个帖子和讨论哪种开发工具更强大一样无聊,纯熟月经帖。。。鉴定完毕
--------------------编程问答-------------------- 纯熟月经帖。。。鉴定完毕 
--------------------编程问答-------------------- 这个月月经还没来! --------------------编程问答-------------------- to Erice :
你说的那个是博客园的东西吧??
你是博主么? --------------------编程问答-------------------- 其实楼主的心态可以理解
想当年我刚毕业二年的时候
用VB.NET做了一年的代码前置
就觉得自己在WEB方面无所不能了~~~~~~~~

但是现在.......

楼主在混两年
然后回头看看这个帖子~~~~~

只能说楼主太浮躁
跟这个社会很吻合~~~~~ --------------------编程问答-------------------- to lovefootball :
恩!我是。由于工作原因,那个blog 很久没动了。你怎么知道的?
补充:.NET技术 ,  非技术区
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,