2009-08-19 47 views
0

背景: 我是一个在.Net平台上工作的中间Web应用程序开发人员。我的大部分工作都是由我的同事或上级为我定义的,我遵循指示并完成工作完全没有问题。Web应用程序体系结构问题

手头的任务: 我最近被一位老朋友要求重做他的web应用程序。他的应用程序非常陈旧,而且他总是被打破。有问题的应用程序是库存/ CRM应用程序,目前每个客户都需要新安装应用程序(通常通过在同一服务器上的不同域上部署并指向新数据库来完成)。

目前,如果任何客户想要对表格进行任何修改(如附加字段,新功能等),我的朋友就会进入并手动将这些字段添加到表单,脚本,数据库等。因此,此应用程序的所有安装都是独特。没有一个单一的源代码库,没有一个单一版本的这个应用程序。一般而言,新功能会加入到其他网站中,但仍按个别网站逐个网站完成。

我将在非常模块化的基础上接近这一点。最初,我将编写一个模块来查询外部Web服务的某些数据,并显示和存储它,并定期自动更新它。下一个模块可能用于存储和显示库存数据。这种方式我想随着时间的推移重复他的应用程序的当前功能集100%,但增量。

百万美元的问题

  1. 我想使应用程序具有用户 配置表单字段。用户 应该能够转到管理员 页面,创建特定类别的新表单页面,然后在那里指定 他想要的字段。他 可以说“创建一个新的文本字段 叫编号,并使其成为 要求”,并且将得到保存在某个地方 。所有形式将 动态地呈现在用户已经配置了什么基于 到画面是 这一个很好的方式去了解 问题,因为他不知道客户可能需要什么样的表格和 因此能够存储和显示 任何类型的表格数据?我应该在这里遵循什么样的 设计模式?

    我熟悉asp.net和 .net framewor K的一般和 了JavaScript, HTML,Silverlight中,jQuery的体面知识,C#等 等我能工作,我的办法解决网络 应用程序的一个好办法,但我不 确定什么样的框架或技术 的我应该用来完成这个 任务。 ASP.net 3.5 webforms将成为 的路要走吗?或者我应该看看ASP.NET MVC的 ?我是否使用jQuery和ajax来完成 前端和 后端的解耦?或将一个正常的asp.net 页面与一些喷溅的ajax 抛出与代码隐藏 是当天的顺序?

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

我目前正在考虑为客户端动画,用户界面,操纵和数据验证使用ASP.NET 3.5 webforms,jQuery,以及用于后端的sqlserver + .net或wcf webservice。

你的意见是一如既往的赞赏。

回答

2

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

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

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

至于你的问题的技术方面,我在VS2005中开发了我的项目,使用asp.net webforms和Web服务与SQLserver后端,所以你看到的堆栈绝对能够提供工作产品。就可测试性而言,ASP.net MVC几乎肯定会有所帮助。

如果我要重新开始我会改变现在最重要的事情是,以取代使用nServiceBus,MassTransit或类似的基于消息的服务中间web服务。虽然web服务工作正常,但基于消息的通信应该更快,更可靠。

最后,在您开始编写代码之前,请确保您了解当前系统的内部和外部功能。如果新系统不能完成旧系统的功能,那么对于最终用户而言,这一点非常明显。

+0

你是如何管理“允许每个合作伙伴选择他们自己的一组输入字段,屏幕,并命令应用程序的流程满足其个人需求”的部分? – 2009-08-19 08:20:23

+2

我在数据库中有表格,控制和控制项目,这些项目被组织到可以分配给每个最终客户端的集合中。每个webform都从一个类继承而来,该类包含代码以将配置从数据库中取出,并以正确的顺序构建内容并加载到中继器控件中。然后,当使用按下继续时,另一种方法通过控件集合保存到数据库的值。最后,它将检查数据库中的流配置,加载下一个表单并重新开始构建内容。 – JustABitOfCode 2009-08-19 09:49:04