我不想重新发明轮子,所以请问其他人如何做到这一点......
我有2个即将开展的项目,一个是Delphi,另一个是PHP(加上一个是Java),所以特别欢迎这些信息,但通用答案也是可以接受的。
所以,我有一堆PC和一个数据库服务器(ODBC),并希望开发一个MVC应用程序。
我猜模型位于d / b服务器上,并且视图位于每台PC上。控制器在哪里?一个在d / b服务器上,或每台PC上有一个副本?
在编写数据时,我认为锁定相关的d / b表(?)就足够了。但是如何更新所有这些视图并告诉他们有新数据或者他们正在处理的数据是否被其他用户删除了?
欢迎任何代码以及网址或图书推荐...谢谢
答案 0 :(得分:4)
建议你从这个
开始 http://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller
它是一个常规内联网应用程序吗?你为什么要分开分开一切。模型,视图和控制器只是您执行相关操作的相应文件,它们不在物理上位于不同的位置。我认为你的mvc概念完全错了。 MVC意味着根据代码的功能对代码进行拆分和分层,而不是将它们保持物理上的分离。
为了更清楚地说明您的模型视图和控制器只是应用程序中的目录。您的视图文件会进入您的视图目录(不一定是可以更改的)您的数据库相关操作文件的模型会进入模型,控制和驱动应用程序的类会进入您的控制器目录。
在Intranet上运行它很简单。您需要做的是将您的文件托管在网络中具有静态IP或名称的系统上,然后从其他系统访问您的浏览器并将浏览器指向
http://myserver/myapp或http://192.168.100.100/myapp
我对delphi一无所知,但我上面所说的代表了PHP和许多其他语言。
因此,在您的上述所有内容中,不会在每个系统上单独更新视图,所有文件都在您的中央服务器中,并且在客户端请求时,其中所做的任何更改都会自动反映。
从你的问题我假设你是网络开发或至少mvc的新手,所以首先看看PHP中的一些简单的mvc,如codeigniter。 CI有一个非常好的DOC,所以你可以加快速度。
希望我已经回答了所有问题。
答案 1 :(得分:3)
据我了解MVC,没有关于控制器本身位置的规则。
请注意MVC是architectural pattern,而不是硬件,甚至逻辑设计。如果像在任何n层体系结构中一样,将DB放在专用计算机中是有意义的(出于性能和可维护性/备份的原因),控制器和视图可以......无处不在......
MVC是一种模式,这是一种建模/接口对象和类的方式,而不是将应用程序分发到模块中的方式。事实上,你可以(和恕我直言)在客户端和服务器之间共享MVC代码,而对象仍然以分开的方式实现模型/视图/控制器。
“经典”MVC实现(例如,在Delphi世界中由RoR或DoR或Relax使用 - 都处于草稿状态)使用目录或文件来分割视图和控制器。但这只是这种模式的一种实现设计。
我们可以在pure object中实施our ORM framework MVC定位。事实上,你可以在任何地方拥有对象,处理模型,访问数据库,处理业务服务。
在我们的 mORMot开源框架中,对于Delphi 6-XE,您可以遵循以下开发模式:
我建议您抽出时间下载并查看at the mORMot documentation。它远非完美,但它试图完成。在SAD文档中,您将找到一些关于我们实现的体系结构的页面,特别是MVC,n-Tier,SOA和ORM。不要害怕1000页的PDF - 你不必全部阅读:我刚刚添加了一些可以帮助你建模解决方案的通用图表。
在所有情况下,在为项目实施解决方案之前先屏住呼吸是一个非常好的决定。通过查看现有架构,您现在花费的时间肯定会为您节省未来的痛苦。好开始!