Facebook Sharer
选择您要替换的背景颜色:
【农历新年】背景图片:
个性化设定
 注册  找回密码
楼主: KYCITY
打印 上一主题 下一主题

会写3-tier program 请进来帮忙!

[复制链接]

13

主题

0

好友

6850

积分

百变名嘴

Rank: 13Rank: 13Rank: 13Rank: 13

21#
发表于 2010-3-11 06:17 PM |只看该作者
原帖由 ~Zero 于 2010-3-11 11:40 AM 发表
基本上一个 vb 的 windows form application 已经有两层了, design 是一层, code 是一层.
你只要写到有用到 database 的软件, 就可以说是满足 3-tier 的条件了.


他copy你的等下可能会给老师打死=.=。。。


回复

使用道具 举报

13

主题

0

好友

6850

积分

百变名嘴

Rank: 13Rank: 13Rank: 13Rank: 13

22#
发表于 2010-3-11 06:28 PM |只看该作者
MVC我没有写过,不过有读过一点,我说出我懂的(可能不对):从我看到的例子,他确实是presentation tier,不过他的架构比较灵活,可以使一些本来要写n-tier的不用去写n-tier也可以很方便的应用coding。

所以MVC vs ASP.NET会有直接的比较。一个application也可以MVC+n-tier来写。


回复

使用道具 举报

10

主题

0

好友

862

积分

青铜长老

Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7

23#
发表于 2010-3-11 07:13 PM |只看该作者
其实我也搞不太清楚Multi-tier 的定义在哪。

我有科叫做 Multi-tier Application Development 的,assignment 是如此 :

Database Server = 1 tier
Web Application = 1 tier
Web Service Server = 1 tier

Web Content Management Server + Windows Client Application = 1 tier

所以。。。到底是怎么回事????


回复

使用道具 举报

46

主题

6

好友

6456

积分

百变名嘴

Rank: 13Rank: 13Rank: 13Rank: 13

24#
发表于 2010-3-11 07:24 PM |只看该作者
原帖由 zechs 于 2010-3-11 06:28 PM 发表
MVC我没有写过,不过有读过一点,我说出我懂的(可能不对):从我看到的例子,他确实是presentation tier,不过他的架构比较灵活,可以使一些本来要写n-tier的不用去写n-tier也可以很方便的应用coding。

所以 ...


  
有意思,你提到我的疑点了,怎样哦? 在 Presentation Layer 上再架 MVC ? MSDN 的网站上看到。 但是很长。 所以懒惰去看完。
那么Presentation 上的话, Presentation 上的MVC 又要如何用? 这个时候更难分了==
(我连MVC 的分类都已经很乱了, 虽然课本说的简单, 实际分类 起来可是很难的事情)


回复

使用道具 举报

13

主题

0

好友

6850

积分

百变名嘴

Rank: 13Rank: 13Rank: 13Rank: 13

25#
发表于 2010-3-11 07:59 PM |只看该作者
原帖由 宅男-兜着走 于 2010-3-11 07:24 PM 发表


  
有意思,你提到我的疑点了,怎样哦? 在 Presentation Layer 上再架 MVC ? MSDN 的网站上看到。 但是很长。 所以懒惰去看完。
那么Presentation 上的话, Presentation 上的MVC 又要如何用? 这个 ...


http://en.wikipedia.org/wiki/Mod ... %E2%80%93controller
看看wiki对MVC的VIEW讲解。

http://en.wikipedia.org/wiki/N-tier
再看这个。


回复

使用道具 举报

13

主题

0

好友

2113

积分

白金长老

Rank: 10

26#
发表于 2010-3-12 02:37 AM |只看该作者
原帖由 goodday 于 2009-8-21 09:35 AM 发表

路过  本人写着6tier 的
user interface layer
data access layer(data entity)
business logic layer (oop 真正的layer)
ajax communicate layer server side (WCF,json,text)
ajax communicate layer client side (XMLHttpRequest,jquery)
javascripts process layer (client side datagrid,extjs)


第一天, 我写了一个 html 的东西 然后 就排版 很开心的 完成了 给顾客 顾客看了 也很满意哦
很开心 就过了一天 (user interface layer)

第二天, 顾客就要我多个 feeback form 就是从里头的东西填了资料  按button 顾客就能收到 email 咯
我的做法 在 code behind 的加一个 method 就能完成咯 快乐的过了 一个上午

到了中午 顾客又打电话来 要加过 7 个 会send mail 的 功能 在不同的page  
我就 copy & paste 给7个form 咯 很快的 又一个中午咯

到了下午 顾客又 打电话来 加多 7 个 send mail 的 功能 在不同的page  
和 mail server 的 ip 不对咯 要改 下次换 ip 的机率 很高

总不能 cut and paste 吧
刚换一个 mail server 的 ip  要开 7 个 files 来改
现在 又加7 个 总共 14 个
下次 如果 100 个我不是 完蛋

好 开一个 BLL (busniess logic layer) 吧

把 他写成 一个 method 改一个 全部都 不用一个一个改 能翻用 而少bug  省时

耶 不止 email 的 method 能翻用 连 string process ,  get country list, captcha image, url rewrite  
如 ecommerce 的 shopping cart, payment method, shipping charge 的计算 都能放在这个 layer

第三天, 顾客又有新的 pattern 咯  要资料库的储存
现在没钱 用mssql express 先 但原有的资料是在 mysql  
等到 有钱要换 oracle , db2  

哇那么多 要求 你以为我是神咩~~~

要做一个 support 4 个不同的资料库的 DAL (data accss layer)
怎么样做??

我看 factory pattern 的方式来完成吧

用一个interface 来定义 最基本的 base type
如 IConnection, ICommand, IResult

每种database 都需要先 connect database 然后发 command (select * from table) 和得到的结果 IResult 能是 datatable dataset datareader

然后分4 种不同的 database 的 class 都要 inherit 那个 basetype
因为base type 是这个 DAL 的 structure

如果不同的东西是 那个database 的特性 就写在 class 不影响 basetype

剩下的是 sql string 的不同 而已 所有的存取 data 不是问题咯
so 将来 换database 是不是问题了

问你 死未 ~~~

第四天  那个顾客有来扎场 要 AJAX 的视界效果
哇靠!!!  很想打死这个 顾客

ajax 的存取 data 是靠一个page 的 show 什么的字
他就读到什么的

普通的
<html>
<head></head>
<body>abv</body>
</html>


ajax 的
ok


没html的(其实也能有的,某情况)

然后你不能直接dal 丢出你的资料吧
开一个 ajax communicate layer server side 的吧
因为 现在的 java framework 如 jquery,extjs,mootool,prototype, yui
data 都是已  xml 和 JSON(JavaScript Object Notation) 的方式 呈现
JSON 是最快的

如 datatable
------------
A | B | C |
------------
1 | 2 | 3  |
------------
4 | 5 | 6  |
------------

JSON

{[{A:"1"},{B:"2"},{C:"3"}],[{A:"4"},{B:"5"},{C:"6"}]}

需要把 不同的 换成 让 jquery 明白的

============还是server 端的========================          ----------------browse IE firefox Chrome Safari----------------------
DB ==〉DAL ==〉BLL==〉ajax communicate layer server side  ==〉 ajax communicate layer client side (XMLHttpRequest,jquery)

但browser 受到你的 data 还是要经过处理的  
那一定很多 .JS .JS 的
或你自己要的排版格式  排位

或者你 能讲是同2个layer 都是 拿资料的
我就分开了 一个是 server 的直接 DT 的
另一个 就是  for ajax 的 要处理成 JSON,XML

如果我 把这个东西交给下一个 programmer 你硬硬 要说 DAL DAL  你看你的下一手 会乱吗??
一个method 是 Datatable 来的 一个是 JSON

为什么不明白的分开 而让人清楚你的 架构??
好的 program 就是容易 extend 和 handover ma
或者你要你的 source 是世界上你自己一个人能看得明白吧

我们做programmer 就是读 你的客户头上的那朵云啊 
分析是我们其中的一个工作
给顾客玩 也是我们的不幸

还有顾客是不懂 他的内部架构是那么厉害的 也不会给多你的
很喜欢拿我们和那些 3脚猫  来比  会气死的那种

真的是同一个layer 吗?
对! 都是处理data的吧
但我的需求是真的要分成那样的



原帖由 jacketmaniac 于 2010-3-11 11:30 AM 发表


user interface layer
ajax communicate layer server side (WCF,json,text)
ajax communicate layer client side (XMLHttpRequest,jquery)
javascripts process layer (client side datagrid,extjs)
...


原帖由 qweasdzxc 于 2010-3-11 12:50 PM 发表
ajax communicate layer server side (WCF,json,text)
ajax communicate layer client side (XMLHttpRequest,jquery)
javascripts process layer (client side datagrid,extjs)

以上的应该是表现层。(pre ...


以MVC 来说你们来说对了啦

但很广义叻 

欢迎你们的批评,指教


回复

使用道具 举报

8

主题

0

好友

75

积分

中级会员

Rank: 2Rank: 2

27#
发表于 2010-3-12 02:55 PM |只看该作者









所以 MVC  是 presentation layer 里面其中一种实现方法(implement)。.


那天  顾客 / 你老板  发神经。要用flash la .   winform ya.....    . java applet / swing 去完成 使用者界面呢。

flash , vb , winform , ....... swing . 他们不是都是presentation layer 里面其中一种实现方法吗。 之前asp.net  不是用mvc去implement 的。


回复

使用道具 举报

0

主题

0

好友

18

积分

初级会员

Rank: 1

28#
发表于 2010-3-12 03:02 PM |只看该作者

回复 #26 goodday 的帖子

绝对没有批评你的意思。不过正常来说不是搜集完客户要的需求才开始做的吗?之后要改就是CR(CHANGE REQUEST)要加钱了吗?

就你的例子我以JAVA来说我会用的结构是:
EXTJS -->STRUTS2 -->BLL(SERVICE LAYER)-->MANAGER(DAL-HIBERNATE)
在看情况是否需要在加一层DAO 在最后

STRUTS2的好处是他可以自动帮你的DATA换去JSON也可以普通的URL REDIRECT。只要在XML设定你那一个FUNCTION要那一种就好了
那你的
ajax communicate layer server side (WCF,json,text)
ajax communicate layer client side (XMLHttpRequest,jquery)
这两层都可以省了。

再来如果用HIBERNATE就可以解决不同的DATABASE了。只要你没用到DATABASE自己的UNIQUE SYNTAX好象SQLSERVER的 ~ 等等。不过如果只是小PROJECT用HIBERNATE好象麻烦了点。

不过你一开始COPY&PASTE7个FORM就太不应该了。那时就应该用SERVICE LAYER啦!别这么懒嘛。你也说了交给下一个 programmer 不应该让他不名不白啊。

纯属个人意见。。



回复

使用道具 举报

8

主题

0

好友

75

积分

中级会员

Rank: 2Rank: 2

29#
发表于 2010-3-12 03:06 PM |只看该作者
jacketmaniac  where you working ya?


回复

使用道具 举报

0

主题

0

好友

18

积分

初级会员

Rank: 1

30#
发表于 2010-3-12 03:10 PM |只看该作者

回复 #27 qweasdzxc 的帖子

赞成你的说法。谢谢指教


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

JBTALKS.CC |联系我们 |隐私政策 |Share

GMT+8, 2024-11-20 02:34 AM , Processed in 0.110290 second(s), 21 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

Ultra High-performance Dedicated Server powered by iCore Technology Sdn. Bhd.
Domain Registration | Web Hosting | Email Hosting | Forum Hosting | ECShop Hosting | Dedicated Server | Colocation Services
本论坛言论纯属发表者个人意见,与本论坛立场无关
Copyright © 2003-2012 JBTALKS.CC All Rights Reserved
合作联盟网站:
JBTALKS 马来西亚中文论坛 | JBTALKS我的空间 | ICORE TECHNOLOGY SDN. BHD.
回顶部