【问题标题】:Web App architecture questionsWeb App 架构问题
【发布时间】:2009-08-19 07:48:57
【问题描述】:

背景: 我是一名在 .Net 平台上工作的中级 Web 应用程序开发人员。我的大部分工作都被我的同事或上级很好地定义了,我按照指示完成工作没有问题。

手头的任务: 最近,一位老朋友要求我从头开始重做他的网络应用程序。他的应用程序非常过时,他一直被它破坏而不知所措。有问题的应用程序是库存/CRM 应用程序,目前每个客户都需要重新安装该应用程序(通常通过将其部署到同一服务器上的不同域并指向新数据库来完成)。

目前,如果任何客户想要对表单进行任何修改,例如附加字段、新功能等,我的朋友会进入并手动将这些字段添加到表单、脚本、数据库等。因此,此应用程序的所有安装都是唯一的.这个应用程序没有一个单一的源存储库,也没有一个单一的版本。通常,新功能会超时引入其他站点,但这仍然是在逐个站点的基础上完成的。

我将在非常模块化的基础上解决这个问题。最初,我将编写一个模块,该模块将查询外部 Web 服务以获取一些数据,显示和存储它,并定期自动更新它。下一个模块可能用于存储和显示库存数据。这样,我想随着时间的推移 100% 复制他的应用程序的当前功能集,但要逐步进行。

百万美元问题

  1. 我想让应用拥有用户 可配置的表单字段。用户 应该可以去管理员 页面,创建一个新的表单页面 某个类别,然后指定 他想要在那里的领域。他 可以说'创建一个新的文本字段 称为 Item # 并使其成为 要求”,这将得到 存放在某处。所有表格都将 动态渲染到基于屏幕的 关于用户配置的内容。是 这是解决问题的好方法 不知道什么是问题 客户可能想要一个表格?和 从而能够存储和显示 任何形式的表格数据?什么样的 我应该在这里遵循设计模式吗?

    我熟悉 asp.net 和 .net 框架一般和 对javascript有相当的了解, html、silverlight、jquery、c#等 等等。我可以在网络上工作 应用程序很好,但我不是 确定什么样的框架或技术 我应该用它来完成这个 任务。 ASP.net 3.5 网络表单会是 怎么走?还是我应该调查 ASP.NET MVC?我是否使用 jquery 和 ajax 完全解耦前端和 后端?或者将一个正常的asp.net 带有一些 ajax 飞溅的页面 投入使用代码隐藏 是一天的顺序吗?

在我开始之前只是寻找一般建议。

我目前正在考虑使用 ASP.NET 3.5 webforms、jquery 用于客户端动画、ui、操作和数据验证,以及 sqlserver + a .net 或 wcf webservice 用于后端。

您的建议一如既往地受到赞赏。

【问题讨论】:

    标签: asp.net asp.net-mvc design-patterns architecture


    【解决方案1】:

    我最近为一家保险公司实施了一个白标电子商务系统,该系统允许每个合作伙伴选择自己的一组输入字段、屏幕,并订购应用程序流程以满足他们的个人需求。

    虽然它不是火箭科学,但它增加了复杂性并增加了开发时间。

    非常仔细地考虑用户配置方面事后看来,我的客户和他们的客户反过来都会对更严格的系统感到满意。

    至于您的问题的技术方面,我在 VS2005 中开发了我的项目,使用带有 SQLserver 后端的 asp.net webforms 和 webservices,因此您正在查看的堆栈绝对能够提供有效的产品。就可测试性而言,ASP.net MVC 几乎肯定会有所帮助。

    如果我要重新开始,我现在最大的改变是使用 nServiceBus、MassTransit 等将中间 Web 服务替换为基于消息的服务。虽然 Web 服务运行良好,但基于消息的通信应该更快、更可靠。

    最后,在您开始编写代码之前,请确保您从内到外了解当前系统的功能。如果新系统没有做旧系统所做的事情,那么最终用户会立即明白这一点。

    【讨论】:

    • 您是如何管理“允许每个合作伙伴选择他们自己的一组输入字段、屏幕和排序应用程序流程以满足他们的个人需求”部分的?
    • 我在数据库中有用于流、表单、控件和控件项目的表,这些表被组织成可以分配给每个最终客户端的集合。每个 Web 表单都继承自一个类,该类包含从数据库中获取配置并以正确顺序构建内容并加载到转发器控件的代码。然后当使用按下继续时,另一种方法通过控件集合将值保存到数据库。最后它会检查数据库中的流配置,加载下一个表单并重新开始构建内容。
    猜你喜欢
    • 1970-01-01
    • 2011-06-11
    • 1970-01-01
    • 2011-10-27
    • 1970-01-01
    • 2010-11-19
    • 2015-08-18
    • 2012-03-08
    • 1970-01-01
    相关资源
    最近更新 更多