2008-11-28 54 views
7

是否有任何理由说明MVC对于桌面应用程序和Web应用程序不同?适用于桌面的MVC.NET

将ASP.NET MVC目录树作为桌面应用程序实现需要什么?

回答

1

我一直认为术语MVC与n层应用程序一样 - 所以如果我在这里错了人,请纠正我。

当我下发展,我总是(除非其它指示)使用下面的模型/结构,同样在应用:

GUI(网页,Winform的,等等) - > 商业逻辑 - > 数据层 - > 还有一个底层的“模型”

......这是一种MVC - 所以是的,它也适用于桌面应用程序。这样做的主要优点是,您可以基于相同的代码开发Web,Win和移动(++)应用程序。

可以做的另一件事,是创建数据/ businesslayers为Web服务...

我觉得这个形式给出将有资格作为SOA。

编辑: 作为一个说明,四个级别的应用程序创建为单独的项目 - 然后用作对项目或DLL,或从GAC(或任何你喜欢的地方.... ):)因此,不需要目录结构。

0

嗯......好吧,您的视图可以呈现为任何东西...... HTML,XML等。那么,为什么不是XAML?我想知道是否可以让你的WPF或Silverlight应用以这种方式在MVC框架中工作......也就是说,不需要Web服务器运行。

+0

哦......尼斯点布赖恩...... Genisio ...从“创世纪”这个词?;) – 2008-11-28 23:08:30

+0

(注意别人:当时的评论发布 - 布赖恩Genisio有“666”点;) – 2008-11-28 23:09:10

0

没有什么从一个桌面应用程序中使用MVC模式阻止你。事实上,自从有了网络之前,它就已经在桌面上使用了。

See Wikipedia for some examples

MVC只是表示“模型视图控制器”,它描述的是关注相互使用MVC模式分离的方式。

至于在桌面上使用ASP.NET MVC,有几个问题。首先,它依赖于HTTP请求和响应。您需要一个服务器层作为您的应用程序体系结构的一部分来侦听请求并发送响应。其次,ASP.NET MVC视图实际上只是一个简单的HTML文本文件,可以被网页浏览器解释。所以,你需要一个HTML渲染组件作为GUI前端。你可能会需要一个CSS渲染引擎和一个JavaScript解释器。

基本上,您所做的只是将专用浏览器作为前端,将本地Web服务器作为后端运行。

真的没有太大的需要,因为有很多伟大的MVC框架已经。还有像MVP(Model View Presenter)和MVVM(Model-View-View Model)等密切相关的模式。例如,许多WPF(Windows Presentation Framework)应用程序都是MVVM。

相关问题