我们正处于项目的设计阶段,其目标是将ASP经典应用程序重新转换为ASP.Net 4.0.系统需要完全基于Web.新系统有几个新要求,使这个项目成为具有挑战性的项目:
系统需要独立于数据库.它必须在1.0版本上支持MS SQL Server,Oracle,MySQL,Postgres和DB2.
系统必须能够通过第三方报告包轻松地从数据库进行报告.
系统必须允许管理最终用户通过基于Web的界面在数据库中创建自己的表.
系统必须允许管理最终用户设计/配置用户界面(基于Web),他们可以在这里选择系统中的表和字段(我们系统的核心表或他们自己在#3中创建的自定义表)
系统必须允许管理最终用户创建和维护这些自定义创建表之间的关系,以及这些表和系统核心表之间的关系.
系统必须允许管理最终用户创建业务规则,以强制执行验证,显示/隐藏UI元素,根据特定用户的身份,特定用户组或特权阻止某些操作.
本质上,它是一个具有一些核心票证跟踪功能的系统,但允许最终用户扩展接口,业务规则和数据库.这是否可以构建在.Net,基于Web的环境中?如果是这样,您认为完成这项工作的努力程度如何?我们目前是一个6人的商店,有2.5名全职开发人员.
需要质疑的一件事是谁创建了这些要求?大多数有经验的开发人员过去都会尝试过通用的万能系统,但通常都没有成功。这是因为这是一件棘手的事情,而且有很多陷阱。用户在数据库级别创建自己的表的要求是否来自于了解安全含义和设计原则的经验丰富的程序员,还是来自于“做过一些编程”的项目经理?首先解决您现实世界的需求。
代替
系统必须允许管理最终用户 通过基于 Web 的界面在数据库中创建自己的表。
也许你应该有这个要求
系统必须允许管理最终用户通过基于 Web 的界面定义和存储自己的数据。
这将阻止您缩小选择范围。集思广益不同的实现,创建一些原型并提供概念设计,并准备好扔掉它们。
我的方法是将数据库访问完全抽象到这样的程度:您可能不会真正在数据库本身中创建新的客户端定义的表,而是在数据访问层中创建虚拟表。这将有助于使系统数据库变得不可知。
对于验证,请查看FluentValidation。它是一个非常易于使用且灵活的验证框架,可以与客户端的 JQuery 验证很好地配合
给自己大约一年的时间,然后最好再加上 50%。确实,估计此类项目非常困难,但我们使用最佳实践敏捷方法在一年内与类似的团队实现了类似规模的项目。我假设你们的开发人员有能力。正如您所正确认识到的,这是一个非常具有挑战性的项目。
| 归档时间: |
|
| 查看次数: |
455 次 |
| 最近记录: |