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

看见某些人天天讨论三层,我的心是相当的忧郁阿.........

好像做个系统不弄个所谓实体,所谓的DAL,所谓的BLL,自己就很菜就不牛比一样。

但是你知不知道,你系统中随意的SQL注入漏斗,随意的一点就“未将对象引用设置到对象的实例。”就错误,实在让我忧郁阿。 --------------------编程问答-------------------- 学习.. --------------------编程问答--------------------
引用楼主 indusl 的回复:
但是你知不知道,你系统中随意的SQL注入漏斗,随意的一点就“未将对象引用设置到对象的实例。”就错误,实在让我忧郁阿。


这关三层什么事... --------------------编程问答-------------------- 。。。难得你还能说出个SQL注入~~不过,注入漏斗是毛?
另外:实体和你说的这两个,风马牛不相及~

另另外:我实在为你的老板担心,招你这么个程序员,这个系统。。。。。呵呵~~ --------------------编程问答-------------------- 楼主干啥? --------------------编程问答-------------------- 我是来接分的。 --------------------编程问答-------------------- 分享lz的忧郁 --------------------编程问答-------------------- 分享lz的忧郁 --------------------编程问答-------------------- SQL注入是UI层的事与DAL和BLL代码何干呢 --------------------编程问答-------------------- 是胡,好像不相关,但我想说的是,基础工作都没做好,天天鼓吹三层有用吗。

他们根本不了记的是,大部分应用时根本无需三层。而且你们的三层根本不失真正的分层,三层在你们的系统纯属摆设。

三层更多的是用在组件开发上。 --------------------编程问答-------------------- 你担心啥,没有这些只会增删改查的人,哪有你发这贴的机会,事实上所谓的****鸟学校,正以生产线一样的速度每月向社会输出这类型的人才 --------------------编程问答--------------------
引用 9 楼 indusl 的回复:
是胡,好像不相关,但我想说的是,基础工作都没做好,天天鼓吹三层有用吗。

他们根本不了记的是,大部分应用时根本无需三层。而且你们的三层根本不失真正的分层,三层在你们的系统纯属摆设。

三层更多的是用在组件开发上。


看着就欢乐~~

我真想扔几个花生给LZ....HAHAHHAHA~~ --------------------编程问答-------------------- 还是先忧好自己吧 --------------------编程问答-------------------- --------------------编程问答--------------------
引用 10 楼 zmcici 的回复:
你担心啥,没有这些只会增删改查的人,哪有你发这贴的机会,事实上所谓的****鸟学校,正以生产线一样的速度每月向社会输出这类型的人才


其实是只会CRUD的人,才会发这种帖... --------------------编程问答-------------------- 支持楼主批判这些形而上学的东西 --------------------编程问答--------------------
引用 15 楼 newdigitime 的回复:
支持楼主批判这些形而上学的东西
. --------------------编程问答-------------------- 楼主应该去出本书,叫《SqlDataSource:软件核心复杂性应对之道》 --------------------编程问答-------------------- 我一般自己做项目都分两层 --------------------编程问答-------------------- --------------------编程问答-------------------- 完全不懂》》》》 --------------------编程问答--------------------
引用 17 楼 karascanvas 的回复:
楼主应该去出本书,叫《SqlDataSource:软件核心复杂性应对之道》


谢谢你尖刻的讽刺!不过如果大家有需要,我也完全不须多让。 --------------------编程问答--------------------
引用 21 楼 indusl 的回复:
引用 17 楼 karascanvas 的回复:

楼主应该去出本书,叫《SqlDataSource:软件核心复杂性应对之道》


谢谢你尖刻的讽刺!不过如果大家有需要,我也完全不须多让。

有需要有需要,估计比郭德纲的相声还好看~~
LZ快写把~ --------------------编程问答-------------------- 一直 一层的路过 --------------------编程问答-------------------- 不懂,这不是问题吧
--------------------编程问答-------------------- 楼主有才,居然有这么多人回复 --------------------编程问答-------------------- 其实三层是这么产生的:
做界面的人不想写业务,说那是别人的事 -> 写数据库的人也不想写业务,说那也不关我的事 -> 项目做不下来,老板又花钱招了个人,专门写业务 -> 三层结构产生了,老板把原来两个人的薪水分成三份,多出来的发给第三个人 --------------------编程问答-------------------- 其实吧,我什么都不会,就接点分去押,刚赌热火 家财散尽,求LZ 可怜我等愚夫  赏点分吧```` --------------------编程问答-------------------- LZ不是忧郁,而是抑郁了!~ --------------------编程问答--------------------
引用 26 楼 superarhow 的回复:
其实三层是这么产生的:
做界面的人不想写业务,说那是别人的事 -> 写数据库的人也不想写业务,说那也不关我的事 -> 项目做不下来,老板又花钱招了个人,专门写业务 -> 三层结构产生了,老板把原来两个人的薪水分成三份,多出来的发给第三个人



NB --------------------编程问答-------------------- 我现在想来 下面的小项目 就几个页面的话 弄什么三层  一层我就马上出炉  懒得写这些东西了  写够了 --------------------编程问答--------------------
引用 11 楼 hdngo 的回复:
引用 9 楼 indusl 的回复:

是胡,好像不相关,但我想说的是,基础工作都没做好,天天鼓吹三层有用吗。

他们根本不了记的是,大部分应用时根本无需三层。而且你们的三层根本不失真正的分层,三层在你们的系统纯属摆设。

三层更多的是用在组件开发上。


看着就欢乐~~

我真想扔几个花生给LZ....HAHAHHAHA~~


,逗猴啊。。。。

LZ啊,三层虽是入门级架构,但也别惊讶于为了三层而三层的想法,在任何未知的事务前,你很难知道此事务将对你当前事局所将产生的利与弊,只有怀着一颗盲目、鲁莽的心,去尝试这些事务,你才能知道利与弊。

为了什么而什么 不可怕,反而能衍生出许多激烈的言论、促进发展

但怀着这种思想,固步自封,不接受自己内心的心声和朋友的改良建议,那就不可取了

--------------------编程问答--------------------
引用 31 楼 wknight_it 的回复:
引用 11 楼 hdngo 的回复:
引用 9 楼 indusl 的回复:

是胡,好像不相关,但我想说的是,基础工作都没做好,天天鼓吹三层有用吗。

他们根本不了记的是,大部分应用时根本无需三层。而且你们的三层根本不失真正的分层,三层在你们的系统纯属摆设。

三层更多的是用在组件开发上。


看着就欢乐~~

我真想扔几个花生给LZ....HAHAHHAHA~~

……


我已经尝试过了,维护起来更麻烦,生产力更低。 --------------------编程问答-------------------- 是被谁给吹了啊 --------------------编程问答--------------------
引用楼主 indusl 的回复:
但是你知不知道,你系统中随意的SQL注入漏斗,随意的一点就“未将对象引用设置到对象的实例。”就错误,实在让我忧郁阿。
知其然不知其所以然。。。。 --------------------编程问答-------------------- SQL注入漏斗


不明白LZ想说明什么 --------------------编程问答-------------------- 我们都在为你忧郁啊……楼主 --------------------编程问答-------------------- --------------------编程问答-------------------- SQL注入是UI层的事与DAL和BLL代码何干呢

sql注入 跟 dal bll没有关系吗???? --------------------编程问答-------------------- 没有太大的联系吧 --------------------编程问答--------------------
引用 6 楼 blackpointofsun 的回复:
分享lz的忧郁

不会用的路过 --------------------编程问答-------------------- --会三层吗?
--不会,我只会二层.
--走吧,不用你,你写二层,剩下一层让我写吗?
--...... --------------------编程问答-------------------- 三层均指三层+实体层
三层难吗?代码器一生成就把这些增删改查的基本操作写好了
自己在逻辑层里调用下dbhelp参数化对象,来弄些组合查询等额外功能,再搞个类专门放上打印,图片,上传,排序,WORD处理等现成方法。

这样就流水化生产一般的软件了,哪里来的SQL注入?楼主有点形而上学了,我用三层不是因为三层复杂,恰恰是因为三层写起来更简单 --------------------编程问答-------------------- 不弄DAL,BLL确实有点菜,因为三层一点都不难,用了三层写代码更简单 --------------------编程问答-------------------- 忘记说,业务逻辑层可以把权限组件都集成进去,任何数据库软件,就往自己的框里这么一套,就成了
三层里用参数化查询都很标准,有SQL注入漏洞的恰好是不分层,在UI里拼接字符串的人。 --------------------编程问答--------------------
引用 42 楼 zzz9413 的回复:
三层均指三层+实体层
三层难吗?代码器一生成就把这些增删改查的基本操作写好了
自己在逻辑层里调用下dbhelp参数化对象,来弄些组合查询等额外功能,再搞个类专门放上打印,图片,上传,排序,WORD处理等现成方法。

这样就流水化生产一般的软件了,哪里来的SQL注入?楼主有点形而上学了,我用三层不是因为三层复杂,恰恰是因为三层写起来更简单


呵呵 --------------------编程问答--------------------
引用 42 楼 zzz9413 的回复:
三层均指三层+实体层
三层难吗?代码器一生成就把这些增删改查的基本操作写好了
自己在逻辑层里调用下dbhelp参数化对象,来弄些组合查询等额外功能,再搞个类专门放上打印,图片,上传,排序,WORD处理等现成方法。

这样就流水化生产一般的软件了,哪里来的SQL注入?楼主有点形而上学了,我用三层不是因为三层复杂,恰恰是因为三层写起来更简单


这就是你们严重的三层,真让人忧郁啊。。。。。。。 --------------------编程问答-------------------- 哈哈 大项目三层估计不够啊 --------------------编程问答-------------------- 也许到了一个很不正规的小公司,没有产品研究、没有进度管理、没有真正的质量、甚至没有能用来投标的产品,都是这类临时工,相互之间不应该相互嘲笑,不满意同事就离职嘛。 --------------------编程问答-------------------- 如果有什么质量问题,建议别人加强有针对性的测试,或者要求公司有个正规一点团队经验(而不是花时间在自己研究什么算法、sql语句之类的)的技术负责人。

别人软件编程上有个bug,我想出处可以幸灾乐祸地用来作为理由来讨论“三层”这种不着边的问题。我只知道重复这种事情多几次,同事做不成同事,你们公司的产品也不会好到多有一点专业素质上去。 --------------------编程问答-------------------- 我想出处可以幸灾乐祸地用来作为理由来  -->  我想不出可以幸灾乐祸地用来作为理由来 --------------------编程问答--------------------
引用 48 楼 sp1234 的回复:
也许到了一个很不正规的小公司,没有产品研究、没有进度管理、没有真正的质量、甚至没有能用来投标的产品,都是这类临时工,相互之间不应该相互嘲笑,不满意同事就离职嘛。

不满意就离职???谈何容易,这年头混饭有多年,今天离职明天还不知道去哪里。年纪又大,学不了了。 --------------------编程问答--------------------
引用 46 楼 indusl 的回复:
这就是你们严重的三层,真让人忧郁啊。。。。。。。
引用 42 楼 zzz9413 的回复:

三层均指三层+实体层
三层难吗?代码器一生成就把这些增删改查的基本操作写好了
自己在逻辑层里调用下dbhelp参数化对象,来弄些组合查询等额外功能,再搞个类专门放上打印,图片,上传,排序,WORD处理等现成方法。

这样就流水化生产一般的软件了,哪里来的SQL注入?楼主有点形而上学了,我用三层不是因为三层复杂,恰恰是因为三层写起来更简单

……

我个人在用的,不是全部三层,那些以服务形式发布也叫三层,甚至MVC架构也可以当做三层,三层只是一个思想,一个界面,业务逻辑和底层数据访问分开的思想。你忧郁你就说说你怎么做项目的 --------------------编程问答-------------------- 我这么做三层,哪里来的SQL注入? --------------------编程问答--------------------
引用 44 楼 zzz9413 的回复:
忘记说,业务逻辑层可以把权限组件都集成进去,任何数据库软件,就往自己的框里这么一套,就成了
三层里用参数化查询都很标准,有SQL注入漏洞的恰好是不分层,在UI里拼接字符串的人。


你的权限组件是怎么加进去的。 --------------------编程问答-------------------- 就是,喜欢用就用,不喜欢,或者有更高效、低成本的方案,就去跟你的老板提吧;
不过曾经闲的没事时自己弄的项目多数只有两层,后来自己回去看,果然好难懂 --------------------编程问答-------------------- heh --------------------编程问答-------------------- 同感,有人一个项目所有的类访问 都用了依赖倒置,问题他所有的类都只调用一个类。没有第二个类,请问我不明白为何要依赖倒置 --------------------编程问答-------------------- --------------------编程问答--------------------
引用 32 楼 indusl 的回复:
引用 31 楼 wknight_it 的回复:

引用 11 楼 hdngo 的回复:
引用 9 楼 indusl 的回复:

是胡,好像不相关,但我想说的是,基础工作都没做好,天天鼓吹三层有用吗。

他们根本不了记的是,大部分应用时根本无需三层。而且你们的三层根本不失真正的分层,三层在你们的系统纯属摆设。

三层更多的是用在组件开发上。


看着就欢乐~~

我真想……


看着就乐了 --------------------编程问答-------------------- HEHE  --------------------编程问答-------------------- 我是来强势围观的 --------------------编程问答-------------------- 上班看一下,一天好心情~ --------------------编程问答-------------------- 其实三层的整体架构不错。也很好的 。很实用。但是很多人无法理解三层的真实概念问题。三层架构如楼主所说并不试用于所有的程序。当前写的 所有层最好有很详细的开发文档 并且能返回大量有用的东西。同时里面也要有错误处理机制。成熟的东东还是很好的 --------------------编程问答-------------------- HEHE,哎,你有没有在重复着相同的逻辑,相同的代码,相同的操作? 如果是,你的三层有意义吗? --------------------编程问答-------------------- 每天回帖即可获得10分可用分!小技巧:教您如何更快获得可用分 --------------------编程问答--------------------
引用 64 楼 indusl 的回复:
HEHE,哎,你有没有在重复着相同的逻辑,相同的代码,相同的操作? 如果是,你的三层有意义吗?

我猜,你会觉得依赖倒置就是垃圾,抽象就是狗屁,MVC是完全没有必要的~
因为你心里只有过程,没有对象~~~
HOHOHO~~ --------------------编程问答--------------------
引用 66 楼 hdngo 的回复:
引用 64 楼 indusl 的回复:

HEHE,哎,你有没有在重复着相同的逻辑,相同的代码,相同的操作? 如果是,你的三层有意义吗?

我猜,你会觉得依赖倒置就是垃圾,抽象就是狗屁,MVC是完全没有必要的~
因为你心里只有过程,没有对象~~~
HOHOHO~~


此言诧异! 面向对象的本质是封状重用,但是在大多数所谓的三层假构里看不到所谓的封装重用问题。反而只是把更多的精力放在如何去构建所谓的实体类去传送数据。实体类构建后之后再去重复实体应有的逻辑,比如用户的登陆权限验证,一遍一遍写的在你的Page_Load方法里,不类吗?更何况一个商业应用,多数在确定好了数据库(NETG更多也就是sqlserver),是不会轻易甚至完全不会变化数据库的。那么在什么情况在我们才会更多的考虑的数据库的变化?----那就是构筑复用的组件的时候。

当我们把逻辑写好时候,我们无法预测到将来会使用什么的数据库,所以,我们要把数据访问单独列出来,所以在.net里遍处可见的Provider就是这个道理。
--------------------编程问答-------------------- 所以我说,三层更多的时候应该用在组件开发上。

其实我觉得一个成熟的系统至少应该加上一个验证层,对数据进行验证。本身说数据验层不好归类在DAL,也不好归类于BLL,应该形成单独的一层,数据验证层写好了,web应用程序才安全的多。 --------------------编程问答-------------------- 咱就不能这样怨天尤人,你好像怨妇哦。  --------------------编程问答--------------------
引用 68 楼 indusl 的回复:
所以我说,三层更多的时候应该用在组件开发上。

其实我觉得一个成熟的系统至少应该加上一个验证层,对数据进行验证。本身说数据验层不好归类在DAL,也不好归类于BLL,应该形成单独的一层,数据验证层写好了,web应用程序才安全的多。

。。。你知道怎么才算是一层? --------------------编程问答--------------------
引用 70 楼 hdngo 的回复:
引用 68 楼 indusl 的回复:

所以我说,三层更多的时候应该用在组件开发上。

其实我觉得一个成熟的系统至少应该加上一个验证层,对数据进行验证。本身说数据验层不好归类在DAL,也不好归类于BLL,应该形成单独的一层,数据验证层写好了,web应用程序才安全的多。

。。。你知道怎么才算是一层?


你这话问的我摸不着头脑? --------------------编程问答-------------------- 三层 没啥讨论的了,讨论架构! --------------------编程问答-------------------- 你当然摸不着头脑,因为你压根没搞清楚怎么才算是一层~~
--------------------编程问答--------------------
引用 73 楼 hdngo 的回复:
你当然摸不着头脑,因为你压根没搞清楚怎么才算是一层~~


恩恩,你知道。 --------------------编程问答-------------------- 学习学习   飘过 --------------------编程问答-------------------- 其实现在很多小公司,一些程序员 UI,业务,sql部分都要一个人写 --------------------编程问答--------------------
引用 67 楼 indusl 的回复:
更何况一个商业应用,多数在确定好了数据库(NETG更多也就是sqlserver),是不会轻易甚至完全不会变化数据库的。


如果楼主觉得三层是用来应对数据库的变化说明你真的不懂三层 --------------------编程问答-------------------- 那个。。。。有点不理解LZ说这些话的关联是?? --------------------编程问答--------------------
引用 78 楼 ice9ying 的回复:
那个。。。。有点不理解LZ说这些话的关联是??


千万别理解,理解了你就成楼主了。 --------------------编程问答-------------------- 问问楼主不用分层和实体层,那到底是怎么开发软件的?
我怎么开发的我已经说了,三层统一我的代码风格,让我任何项目一拿来就有一个基础框架。各种实体的增删改查,权限验证,各种常用功能集合。 --------------------编程问答-------------------- DAL BLL 是什么 --------------------编程问答--------------------
引用 80 楼 zzz9413 的回复:
问问楼主不用分层和实体层,那到底是怎么开发软件的?
我怎么开发的我已经说了,三层统一我的代码风格,让我任何项目一拿来就有一个基础框架。各种实体的增删改查,权限验证,各种常用功能集合。


你觉得这样的基础框架有意义吗? 
你为何要对实体进行增删改查? 你能说出来原因吗,你这样比我直接在.cs里调用DAL的方法有区别吗?如果有,有点在那里?



--------------------编程问答-------------------- 问你不用三层是怎么做的
你只会问人和反问,逃避问题,失去了和你争论的兴趣
同层次的人交流和辩论才有意思,不在一层的,那是对牛弹琴 --------------------编程问答-------------------- 竟然不知道重复利用基础框架有什么意义。那估计你也不知道面向对象比面向过程好在哪里了 --------------------编程问答-------------------- 最近我在修改一个项目、尽然是用一层开发。。。。
一个查询在不同的页面出现N次
几乎每个页面都有相同的验证、
我几乎都崩溃了
。。。。
如果这个项目是三层开发的、或者有层次感的话
我想我修改会容易一些、
可能我最早也是先接触三层的缘故吧、 --------------------编程问答-------------------- 分,还是不分,关键是看项目来的。 --------------------编程问答--------------------
引用 85 楼 benbencode 的回复:
最近我在修改一个项目、尽然是用一层开发。。。。
一个查询在不同的页面出现N次
几乎每个页面都有相同的验证、
我几乎都崩溃了
。。。。
如果这个项目是三层开发的、或者有层次感的话
我想我修改会容易一些、
可能我最早也是先接触三层的缘故吧、


你似乎不懂的做一个ascx用户控件去避免这种重复。 --------------------编程问答-------------------- 话不对题吗 --------------------编程问答--------------------
引用 88 楼 loveljsheng 的回复:
话不对题吗


这是楼主的特长~ --------------------编程问答-------------------- 个人感觉
分个MDB只是方便操作数据(用代码生成工具可以省很多底层开发时间)
其他sql注入问题
也要重视,不过sql注入更多是开发习惯问题

很多时候MDB三层放在那,不一定用得上,而且在访问量大的地方使用MDB反而会有性能问题,所以看场合应用。。 --------------------编程问答--------------------
需要深入理解 --------------------编程问答-------------------- 乱了乱了!!!3层? 用不用全凭项目。。真正的高手 用不用3层都能写出优秀,可复用的代码。。差的人。。给你个尚方宝剑你也杀不了人!! --------------------编程问答--------------------
引用 9 楼 indusl 的回复:
是胡,好像不相关,但我想说的是,基础工作都没做好,天天鼓吹三层有用吗。

他们根本不了记的是,大部分应用时根本无需三层。而且你们的三层根本不失真正的分层,三层在你们的系统纯属摆设。

三层更多的是用在组件开发上。


yeah! --------------------编程问答-------------------- 声明:我很少像今天这样,有强烈的冲动想发言,LZ可怕的有两点:1.无知且无畏,还什么都敢说,自己以为自己写的东西不被SQL注入就来鄙视三层架构中被注入的人,从而认为三层架构没用。类比一下,因为女人会生孩子而刘翔不会,就说刘翔练110米栏有什么用,还不是照样生不出孩子。
2.明明自己不会,还一点不谦虚,告诉你,你这种心态进步太难了。既然你什么都会,谁还告诉你?你就这样会吧,要不然,11楼想扔花生,我也想把花生给11楼,让他一块扔了,我也多乐会儿。 --------------------编程问答-------------------- 我那里不会呢,楼上的,你说出来我那里不会了? --------------------编程问答--------------------
引用 95 楼 indusl 的回复:
我那里不会呢,楼上的,你说出来我那里不会了?


楼主先说说三层是如何导致主题里说的那两个错误的? --------------------编程问答--------------------
引用 48 楼 sp1234 的回复:
也许到了一个很不正规的小公司,没有产品研究、没有进度管理、没有真正的质量、甚至没有能用来投标的产品,都是这类临时工,相互之间不应该相互嘲笑,不满意同事就离职嘛。


心态应该平和些 --------------------编程问答--------------------
引用 96 楼 karascanvas 的回复:
引用 95 楼 indusl 的回复:

我那里不会呢,楼上的,你说出来我那里不会了?


楼主先说说三层是如何导致主题里说的那两个错误的?


这个是因为曾经我改过的项目中,用代码自动生成工具造成的,让我改的真心烦。
另外前几天见个招聘的,要求这,要求那。我随即在参数中加个',就看到他网站的源代码了,有感而发。 --------------------编程问答-------------------- 哥是来打酱油的
--------------------编程问答-------------------- 这跟三层有什么关系,不用三层,这种错误就会消失吗?大部分程序员,看别人的代码都感觉人家水平不行,开发中,出了点问题,没怎么查,就断定是微软的BUG,好像天下人都不如他似的,好好想想,你还不会写一行代码时,人家的程序是不是已经在生产线上运行好多年了?先看到自己的不足,尽量去学人家的长处,三人行,必有我师!
引用 98 楼 indusl 的回复:
引用 96 楼 karascanvas 的回复:

引用 95 楼 indusl 的回复:

我那里不会呢,楼上的,你说出来我那里不会了?


楼主先说说三层是如何导致主题里说的那两个错误的?


这个是因为曾经我改过的项目中,用代码自动生成工具造成的,让我改的真心烦。
另外前几天见个招聘的,要求这,要求那。我随即在参数中加个',就看到他网站的源代码了,有感而发。
补充:.NET技术 ,  非技术区
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,