3层winforms架构 [英] 3-tier winforms architecture

查看:53
本文介绍了3层winforms架构的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我们现在已经开发了一个使用3层架构的网站,现在已经有18个月了。

有一个公共层定义了类 - 使用XML模式。

数据层充当3个数据库的包装 - SQL Server,Oracle

和AS400。

业务层公开Web服务它与

前端ASP.Net进行通信。所有3层都在不同的盒子上。这很有效。

很好。


现在我带领团队建立一个winforms应用程序。我需要一些建议,因为

是最好的方法。该应用程序将有9或10个用户




是否有任何3层示例演示远程处理,或者是web

方法的方法去。在我们将b $ b上线后,我期待很多部署,所以我想尽可能多地保留在服务器上,而不是

必须重新安装每隔几天。或者是Web

服务还有很长的路要走?


部署如何运作?我可以将客户端exe放在用户的PC上吗

并远程进入与

相同框中的数据层对话的业务层?


有人能指点我一些好的教程来帮忙吗?

We''ve been developing a web site using 3-tier architecture for 18
months now.
There is a common layer that defines the classes - using XML schemas.
The data layer acts as a wrapper to 3 databases - SQL Server, Oracle
and AS400.
The business layer exposes web services which communicate with the
front end, ASP.Net. All 3 tiers are on different boxes. This works
well.

Now I am leading a team to build a winforms app. I need some advice as
to the best way to proceed. The application will have 9 or 10 users
only.

Are there any 3-tier examples demonstrating remoting, or are web
methods the way to go. I am anticipating a lot of deployments after we
go live, so I want to keep as much as possible on the server, and not
have to go round re-installing every couple of days. Or are Web
Services still the way to go ?

How does deployment work ? Could I put a client exe on the user''s PC
and remote in to the business tier which talks to the data tier on the
same box ?

Can anyone point me to some good tutorials to help ?

推荐答案

关于Windows Forms Apps的部署。请看一下Smart Client

应用程序模型:
http://msdn.microsoft.com/netframewo...artclient.aspx


和远程处理。拿起Ingo Rammers的书:高级.NET Remoting。在Ingo

Rammers网站上有一个优秀的.NET Remoting用例和最佳

实践 http://www.ingorammer.com/RemotingFA...gUseCases.html


/ Jan

David Noble <哒********* @ hotmail.com>在消息中写道

news:59 ************************** @ posting.google.c om ...
About deployment of Windows Forms Apps. Please take a look at Smart Client
Application Model:
http://msdn.microsoft.com/netframewo...artclient.aspx

And on remoting. Pick up Ingo Rammers book: Advanced .NET Remoting. At Ingo
Rammers web site theres an excellent .NET Remoting Use-Cases and Best
Practices http://www.ingorammer.com/RemotingFA...gUseCases.html

/Jan
"David Noble" <da*********@hotmail.com> wrote in message
news:59**************************@posting.google.c om...
我们已经开发了一个使用3层架构的网站,现在已经有18个月了。
有一个公共层定义了类 - 使用XML模式。 br />数据层充当3个数据库的包装 - SQL Server,Oracle
和AS400。
业务层公开与前端ASP.Net通信的Web服务。所有3层都在不同的盒子上。这很好用。

现在我正带领团队建立一个winforms应用程序。我需要一些建议作为最佳方式继续进行。该应用程序将只有9或10个用户。

是否有任何3层示例演示远程处理,或者是Web方法。在我们上线之后,我期待很多部署,所以我想尽可能多地保留在服务器上,而不是每隔几天就要重新安装一次。或者Web服务还有很长的路要走吗?

部署如何工作?我可以将客户端exe放在用户的PC上,然后远程进入与
同一盒子上的数据层对话的业务层吗?

任何人都可以点我有一些很好的教程可以帮忙吗?
We''ve been developing a web site using 3-tier architecture for 18
months now.
There is a common layer that defines the classes - using XML schemas.
The data layer acts as a wrapper to 3 databases - SQL Server, Oracle
and AS400.
The business layer exposes web services which communicate with the
front end, ASP.Net. All 3 tiers are on different boxes. This works
well.

Now I am leading a team to build a winforms app. I need some advice as
to the best way to proceed. The application will have 9 or 10 users
only.

Are there any 3-tier examples demonstrating remoting, or are web
methods the way to go. I am anticipating a lot of deployments after we
go live, so I want to keep as much as possible on the server, and not
have to go round re-installing every couple of days. Or are Web
Services still the way to go ?

How does deployment work ? Could I put a client exe on the user''s PC
and remote in to the business tier which talks to the data tier on the
same box ?

Can anyone point me to some good tutorials to help ?



***注意:不要把这个消息个人化,它主要是针对

n-tier白痴的愚蠢和对微软架构的无知

团队以及那些在没有任何回报的情况下反刍这些废话的大师和作家对实际业务需求提出疑问和价值和PLUS实际上在不同的架构上实现了投资回报率......他们仍然停留在这个Windows DNA

模型中......加上....只有微软的Windows应用程序

无论如何....微软本身.....不是你的客户,因为微软= Windows

这意味着请开发体系结构,以便Windows对互联网上的普通冲浪者仍然有一些帮助。

***


3层18个月!!!!显示n-Tier是多么令人难以置信的弱点。

那就像SAP一样......任何项目,无论大小都要经历9-12个月

与现实世界脱节。


现在,您将只为9-10个用户制作Windows应用程序?


是什么原因?制作一个

Windows应用程序会有什么商业优势?


富客户端???就像在Windows应用程序中无法完成的那样(并且

值得做)在Web应用程序上。


如果是很少有9到10人说,嘿,我真的需要这个

在网上,或者我需要在其他地方访问这个,比如在会议中

房间,没有安装软件,或者我们不想要它

安装在那里。


人们认为Windows应用程序给出了一个富有的客户端,但究竟是什么

是Windows客户端为您提供的业务优势?除非你需要实时访问,否则完全没有必要,除了

给你的老板留下一些漂亮的照片......过了一会儿,你的老板会

不要使用它,因为它太不方便且商业价值很低

给他/她


现在,如同我读过,你在三个不同的盒子上有三层!显示

混乱3层的性质,认为你需要3个盒子来运行它。


如果有一个长期运行的应用程序,坚持所有逻辑在它自己的网上

服务器并将其与网络逻辑相结合。所以你有2台网络服务器和一台数据库服务器。

通过使用3个不同的盒子,你只为自己做了两倍的工作。 >
花了你18个月!!!

另外,你有这个MIDDLE等级是单点故障和

这会让你性能降低首先,现在有2个跃点

到表示层。此外,现在你有3个不同的b / b $ b的代码,这对于调试和性能调整非常有用!!!


你有这个3层的东西为了交换数据​​层...好吧猜测

什么,你已经针对所有三个数据库,所以你基本上没有任何需要数据库层的
。你不是每隔一天交换一次从Oracle到Sql Server的相同的东西......所以它的设计是没有意义的......来自Oracle DB的数据将保留,或者来自Oracle DB的
和来自Sql Server和AS400的数据相同。


现在,如果你说你可以轻松切换,你应该使用其中一些18个月来做切换,而不是为* b $ b切换的*可能性*构建。


但是有多少人会重新编写所有那些存储过程并重新编写所有那些表格,当它已经在db上运行时? zippo !!!


" David Noble" <哒********* @ hotmail.com>在消息中写道

news:59 ************************** @ posting.google.c om ...
***NOTE: Don''t take this message personal, it mainly directed to the
stupidity of n-Tier idiots and the ignorance of the Microsoft architecture
team and those gurus and authors who regurgitate this nonsense without ever
questions the real business need and value and PLUS actually do an ROI over
the different architectures...they are still stuck in this Windows DNA
model....plus....it''s only for Microsoft''s Windows applications
anyway....Microsoft itself.....not you the customer as Microsoft = Windows
which means please develop the architecture so Windows will still have some
usefullness to the common surfer on the Internet.
***

18 Months for 3-tier!!!! Shows how incredibly weak n-Tier is.
That''s on par as SAP....any project, big or small going over a 9-12 months
is out of touch with the real world.

Now, you are going to make a Windows Apps for only 9-10 users?

For what reason? Just what business advantage will you achieve making a
Windows App?

Rich client??? Like what is it in that windows app that can''t be done (and
is worth doing) on a Web app.

What happens if a few of those 9 to 10 people say, "Hey I really need this
on the Web, Or I need to access this somewhere else, like in the conference
room, which doesn''t have the software installed, or we don''t want it
installed there".

People think that that Windows App give a RICH CLIENT, but just exactly what
is the BUSINESS Advantage that a Windows Client will give you? Unless you
need real time access, there is absolutely no need for it other than to
impress your boss with some pretty pictures...after a while, your boss will
NOT use it as it will be too inconvenient and of very little business value
to him/her

Now, as I read, you have 3-tiers on THREE different boxes!!! Shows the
confusing nature of 3-tier to think that you need 3 boxes to run it.

If there is a long running application, stick all that logic on it''s own web
server and combine that with the web logic. So you have 2 web servers and
one db server.

By using 3 different boxes, you only made twice as much work for yourself as
it took you 18 MONTHS!!!
Plus, you have this MIDDLE tier that is a single point of failure and of
which gives you lower performance in the first place and now there is 2 hops
to the presentation tier. Furthermore, now you have code in 3 different
places which will be great for debugging and performance tuning!!!

You got this 3-tier thing built in order to swap out data tiers...well guess
what, you already target all three databases anyway, so you essentially
defeated any need for a database tier anyway. You are not swapping in and
out the SAME stuff from Oracle to Sql Server every other day...so it''s
pointless to design for this....Data from the Oracle DB is going to stay or
come from the Oracle DB and the same for the Sql Server and AS400.

Now, if you say you can easily switch, you should have used some of those 18
months to do the switch instead of building for the *possibility* of
switching.

But how many people are going to re-write all those stored procs and redo
all those tables when it''s already running on the db''s? zippo!!!




"David Noble" <da*********@hotmail.com> wrote in message
news:59**************************@posting.google.c om...
我们已经开发了一个使用3层架构的网站,现在已经有18个月了。
有一个公共层定义了类 - 使用XML模式。 br />数据层充当3个数据库的包装 - SQL Server,Oracle
和AS400。
业务层公开与前端ASP.Net通信的Web服务。所有3层都在不同的盒子上。这很好用。

现在我正带领团队建立一个winforms应用程序。我需要一些建议作为最佳方式继续进行。该应用程序将只有9或10个用户。

是否有任何3层示例演示远程处理,或者是Web方法。在我们上线之后,我期待很多部署,所以我想尽可能多地保留在服务器上,而不是每隔几天就要重新安装一次。或者Web服务还有很长的路要走吗?

部署如何工作?我可以将客户端exe放在用户的PC上,然后远程进入与
同一盒子上的数据层对话的业务层吗?

任何人都可以点我有一些很好的教程可以提供帮助吗?
We''ve been developing a web site using 3-tier architecture for 18
months now.
There is a common layer that defines the classes - using XML schemas.
The data layer acts as a wrapper to 3 databases - SQL Server, Oracle
and AS400.
The business layer exposes web services which communicate with the
front end, ASP.Net. All 3 tiers are on different boxes. This works
well.

Now I am leading a team to build a winforms app. I need some advice as
to the best way to proceed. The application will have 9 or 10 users
only.

Are there any 3-tier examples demonstrating remoting, or are web
methods the way to go. I am anticipating a lot of deployments after we
go live, so I want to keep as much as possible on the server, and not
have to go round re-installing every couple of days. Or are Web
Services still the way to go ?

How does deployment work ? Could I put a client exe on the user''s PC
and remote in to the business tier which talks to the data tier on the
same box ?

Can anyone point me to some good tutorials to help ?



显然你从未参与过大型项目...

很多时候,客户需要大量的应用程序才能写入b
web或富客户端。分阶段实施

申请,每个阶段可能需要2-3个月才能完成>
开发/测试/发布周期,但整个应用程序(或

系统)可能需要18个月才能完成..


为什么是windows应用..简单..也许客户有一个

帐户包或类似的东西,他们需要将
集成到一个应用程序中..这种集成
使用Windows应用程序(或Linux桌面

应用程序...)
要好得多。


至于3个不同盒子上的3层...再一次,你

显然从未在大型项目上工作过。你有没有听说过可扩展性?
如果其中一个层级严重执行
,那么你可以很容易地投入更多的盒子......

哪个也有删除单点的优势

失败..这是三层

架构的优势......


调试,而不是问题,使用。 NET远程调试,

它真棒......工作待遇..

性能监控......再一次,不是问题,扔掉

的性能计数器,跟踪,记录和你的所有

设置......这真的不是一个问题,你只需要

必须了解IDE之外的调试...


我不认为他在谈论交换

数据库...我想你''我会发现应用程序实际上是使用来自3个不同数据源的数据同时在

..再次,听起来像你从来没有需要

要做到这一点......关于这种方法的最好的事情,

是业务层不需要担心数据来自三个数据源的
...是

只是使用它..


我希望这有助于你理解N-Tiered

开发......


最好的问候


Eddie de Bear

MCSD

Obviously you have never worked on a large project...
Quite often, clients will require large applications to
be written, either web or rich client.. Implement the
application in phases, each phase may take 2-3 months for
dev/test/release cycle, but the whole application (or
system) could easily take 18 months..

Why a windows app.. Simple.. Maybe the client has an
account package or something similar that they need to
integrate into an application.. This sort of integration
is far better done with a windows app (or linux desktop
app..)

As for 3 tiers on three different boxes.. Once again, you
have obviously never worked on a large project. Have you
heard of scalability??? If one of the tiers is performing
badly, then you can very easily throw in more boxes...
Which also has the advantage of removing the single point
of failure.. That is the advantage of the three tiered
architecture...

Debugging, not an issue, use the .NET remote debugging,
it''s awsome... Works a treat..
Performance monitoring... Once again, not an issue, Throw
in performance counters, traces, logging and your all
set... It''s really not that much of an issue, you just
have to understand debugging outside of the IDE...

I don''t think he was talking about swapping the
databases... I think you''ll find the application is
actually using data from 3 different datasources at the
same time.. Once again, sounds like you have never needed
to do that either... The best thing about this approach,
is the business layer does not need to worry about which
of the three datasources the data is comming from... Is
just uses it..

I hope this has helped in you understanding of N-Tiered
development...

Best Regards

Eddie de Bear
MCSD

-----原帖-----
***注意:不要把这个消息称为个人消息,主要是
针对n-tier白痴的愚蠢以及对
微软架构团队以及那些反叛的大师和作者的无知这个
废话毫无疑问真正的业务需求和价值,PLUS
实际上在不同的架构上做了投资回报......他们仍然停留在这个Windows DNA模型的
....加上...... .it'仅适用于Microsoft的Windows
应用程序....微软本身.....不是你的客户,因为
Microsoft = Windows这意味着请开发架构所以Windows
仍然会对互联网上的普通冲浪者有所帮助。
***

3个月的18个月!!!!显示n-
Tier是多么令人难以置信的弱点。那就像SAP一样......任何项目,无论大小,都会在9-12个月内与现实世界脱节。

现在,您将只为9-10美元b $ b用户制作Windows应用程序?
出于什么原因?您将获得什么样的商业优势?b $ b实现制作Windows应用程序?

富客户端???就像在那个Windows应用程序中那样,在Web应用程序中无法完成(并且值得做)


如果这些9到10个人中的一些人说,会发生什么? 嘿
我真的需要在网上这么做,或者我需要在其他地方访问这个,
就像在会议室里一样,没有安装软件,或者我们需要b $ b don' 我希望它安装在那里。

人们认为Windows应用程序提供了一个富有的客户端,
,但正是Windows客户端将给你带来的商业优势是什么?除非你需要实时访问,否则绝对不需要
除了用一些漂亮的图片来压制你的老板...在
之后,你的老板将不会使用它,因为它太不方便了非常
小商家估价他/她

现在,正如我读到的,你在三个不同的
盒子上有三层!显示3层的混乱性质,认为你需要3
的盒子才能运行它。
如果有一个长期运行的应用程序,请将所有
逻辑粘贴在它自己的网络服务器上将其与网络逻辑相结合。所以你有
2个网络服务器和一个数据库服务器。

通过使用3个不同的盒子,你只花了两倍于b $ b为你自己工作,因为你花了18个月!!!另外,你有这个MIDDLE层是一个单点
的失败,它首先给你带来较低的性能,而
现在有2个hopsto表示层。此外,现在你在3个不同的地方有代码
,这对于调试和性能来说非常好
调整!!!
你有这个3层的东西是为了换掉
数据层...好吧猜测,你已经确定了所有三个数据库的目标,所以
你基本上已经完成了对数据库层的任何需要。每隔
天你就没有交换掉从Oracle到Sql Server的SAME内容......所以没有必要为此设计....来自Oracle DB的数据
将继续从Oracle数据库中获取,并且对于Sql Server
和AS400也是如此。
现在,如果你说你可以轻松切换,你应该使用
这些18个月中的一些来使用做转换而不是建立
*的可能性* ofswitching。

但有多少人会重新编写所有这些
存储过程并重新安装那些表格'已经在db上运行了?
zippo !!!


David Noble <哒********* @ hotmail.com>在消息中写道
新闻:59 ************************** @ posting.google。 com ...
-----Original Message-----
***NOTE: Don''t take this message personal, it mainly directed to thestupidity of n-Tier idiots and the ignorance of the Microsoft architectureteam and those gurus and authors who regurgitate this nonsense without everquestions the real business need and value and PLUS actually do an ROI overthe different architectures...they are still stuck in this Windows DNAmodel....plus....it''s only for Microsoft''s Windows applicationsanyway....Microsoft itself.....not you the customer as Microsoft = Windowswhich means please develop the architecture so Windows will still have someusefullness to the common surfer on the Internet.
***

18 Months for 3-tier!!!! Shows how incredibly weak n- Tier is.That''s on par as SAP....any project, big or small going over a 9-12 monthsis out of touch with the real world.

Now, you are going to make a Windows Apps for only 9-10 users?
For what reason? Just what business advantage will you achieve making aWindows App?

Rich client??? Like what is it in that windows app that can''t be done (andis worth doing) on a Web app.

What happens if a few of those 9 to 10 people say, "Hey I really need thison the Web, Or I need to access this somewhere else, like in the conferenceroom, which doesn''t have the software installed, or we don''t want itinstalled there".

People think that that Windows App give a RICH CLIENT, but just exactly whatis the BUSINESS Advantage that a Windows Client will give you? Unless youneed real time access, there is absolutely no need for it other than toimpress your boss with some pretty pictures...after a while, your boss willNOT use it as it will be too inconvenient and of very little business valueto him/her

Now, as I read, you have 3-tiers on THREE different boxes!!! Shows theconfusing nature of 3-tier to think that you need 3 boxes to run it.
If there is a long running application, stick all that logic on it''s own webserver and combine that with the web logic. So you have 2 web servers andone db server.

By using 3 different boxes, you only made twice as much work for yourself asit took you 18 MONTHS!!!
Plus, you have this MIDDLE tier that is a single point of failure and ofwhich gives you lower performance in the first place and now there is 2 hopsto the presentation tier. Furthermore, now you have code in 3 differentplaces which will be great for debugging and performance tuning!!!
You got this 3-tier thing built in order to swap out data tiers...well guesswhat, you already target all three databases anyway, so you essentiallydefeated any need for a database tier anyway. You are not swapping in andout the SAME stuff from Oracle to Sql Server every other day...so it''spointless to design for this....Data from the Oracle DB is going to stay orcome from the Oracle DB and the same for the Sql Server and AS400.
Now, if you say you can easily switch, you should have used some of those 18months to do the switch instead of building for the *possibility* ofswitching.

But how many people are going to re-write all those stored procs and redoall those tables when it''s already running on the db''s? zippo!!!



"David Noble" <da*********@hotmail.com> wrote in message
news:59**************************@posting.google. com...
我们已经开发了一个使用3层
架构的网站18个月了。
有一个公共层定义了类 -
使用XML模式。数据层充当3个数据库的包装器 - SQL
服务器,Oracle和AS400。
业务层公开了
与前端ASP.Net进行通信的Web服务。所有3个层都在不同的
框中。这很有效。

现在我正带领团队建立一个winforms应用程序。 I
需要一些关于最佳方法的建议。该应用程序将只有
9或10个用户。

是否有任何3层示例演示远程处理,
或Web方法是可行的方法。在我们上线后,我期待很多
的部署,所以我想尽可能多地保留在
服务器上,而不必每隔几天重新安装一次。
或Web服务还有可行吗?

部署如何工作?我可以将客户端exe放在
用户的PC上并远程进入与同一个盒子上的
数据层对话的业务层吗?

任何人都可以指出我有一些很好的教程可以帮忙吗?
We''ve been developing a web site using 3-tier architecture for 18 months now.
There is a common layer that defines the classes - using XML schemas. The data layer acts as a wrapper to 3 databases - SQL Server, Oracle and AS400.
The business layer exposes web services which communicate with the front end, ASP.Net. All 3 tiers are on different boxes. This works well.

Now I am leading a team to build a winforms app. I need some advice as to the best way to proceed. The application will have 9 or 10 users only.

Are there any 3-tier examples demonstrating remoting, or are web methods the way to go. I am anticipating a lot of deployments after we go live, so I want to keep as much as possible on the server, and not have to go round re-installing every couple of days. Or are Web Services still the way to go ?

How does deployment work ? Could I put a client exe on the user''s PC and remote in to the business tier which talks to the data tier on the same box ?

Can anyone point me to some good tutorials to help ?




.



这篇关于3层winforms架构的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆