我们正处于项目的设计阶段,其目标是将ASP经典应用程序重新转换为ASP.Net 4.0。系统需要完全基于Web。新系统有几个新要求使这个项目成为具有挑战性的项目:
系统需要独立于数据库。它必须在1.0版本上支持MS SQL Server,Oracle,MySQL,Postgres和DB2。
系统必须能够通过第三方报告包轻松地从数据库进行报告。
系统必须允许管理最终用户通过基于Web的界面在数据库中创建自己的表。
系统必须允许管理最终用户设计/配置用户界面(基于Web),在那里他们可以选择系统中的表和字段(我们系统的核心表或他们自己在#3中创建的自定义表) )
系统必须允许管理最终用户创建和维护这些自定义创建表之间的关系,以及这些表与系统核心表之间的关系。
系统必须允许管理最终用户创建业务规则,以强制执行验证,显示/隐藏UI元素,根据特定用户的身份,特定用户组或权限阻止某些操作。
本质上,它是一个具有一些核心票证跟踪功能的系统,但允许最终用户扩展接口,业务规则和数据库。这是否可以构建在.Net,基于Web的环境中?如果是这样,您认为完成这项工作的努力程度如何?我们目前是一个6人的商店,有2.5名全职开发人员。
答案 0 :(得分:3)
有一件事要问是谁创造了这些要求?大多数经验丰富的开发人员过去都会使用通用的do-everything系统,但往往没有成功。这是因为要做到正确并且存在很多陷阱是一件棘手的事情。用户在数据库级别创建自己的表的要求是来自经验丰富的程序员,他们了解安全隐患和设计原则,还是来自“做过一些编程”的项目经理?首先解决您的实际需求。
而不是
系统必须允许 管理最终用户创建 他们自己在数据库中的表 通过基于网络的界面。
也许你应该有这个要求
系统必须允许 管理最终用户定义和 通过网络存储自己的数据 基于界面。
这将阻止您缩小选择范围。头脑风暴不同的实现,创建一些原型和概念设计的proff,并准备扔掉它们。
我的方法是将数据库访问完全抽象到您可能实际上不在数据库本身中创建新的客户端定义表的位置,而是在数据访问层中创建虚拟表。这将有助于使系统数据库不可知。
要进行验证,请查看FluentValidation。它是一个非常易于使用且灵活的验证框架,可以很好地与客户端的JQuery验证配合使用
给你自己一年左右,然后可能增加50%的好措施。实际上,估计这类项目非常困难,但是我们使用最佳实践敏捷方法在一年内与类似的团队实现了类似的规模项目。我假设你的开发人员很有能力。这是一个非常具有挑战性的项目,因为你已经正确地确定了。
答案 1 :(得分:0)
这取决于执行任务的人员的技能。向开发人员提出要求,并尝试从他们那里获得估算。
PS。请详细说明问题标题中的问题'可以做到'有点通用;)
答案 2 :(得分:0)
是的,但对于3和5这样的数字,为什么不使用可用的软件? Sun查询工具,Ms sql management studuio等。
答案 3 :(得分:0)
您提供了6个问题/要求,以下是我的诚实意见。
总的来说,你不是第一个想出这些想法的人。但是像这样的应用程序的整体开发和可维护性可能是一场噩梦。
答案 4 :(得分:-1)
首先,是的,所有可以完成,但它们并不是真正的要求,而是实施细节。当你说最终用途应该能够“创建一个新表”时,你应该说的是“最终用途应该能够定义一个新的实体类型”。它不一定要有自己的表。
无论如何,如果你只有2.5个开发人员(我认为你就是其中之一),并且你没有足够的经验来查看所有要求和当前系统并估计可行性,那么我不会认为该项目将取得成功。