代码之家  ›  专栏  ›  技术社区  ›  tvanfosson

在开发要销售的基于Web的应用程序时,需要考虑哪些常见问题[关闭]

  •  13
  • tvanfosson  · 技术社区  · 17 年前

    我正在为一个内部客户开发一个应用程序。其中一个要求是,它的开发方式可能会将其出售给其他组织。该应用程序是一个基金募集组织的跟踪应用程序,该组织将管理其捐赠、捐助者、参与者和活动。我已经知道我需要为认证开发一个插件架构(授权将在内部处理),并从外部目录中获取人口统计数据。

    该应用程序将构建在ASP.NET/C/Linq/SQL Server上。目前,我对支持其他数据库还不是很开放,但我认为如果必要的话,将来我可以通过不同的LINQ驱动程序来实现这一点。

    到目前为止,我构建的所有Web应用程序都是定制的实现,所以我想知道是否还有其他事情需要通过插件和/或配置项来解决。任何输入都会有帮助。

    谢谢。

    4 回复  |  直到 16 年前
        1
  •  27
  •   Stephen M. Redd    17 年前

    我要提醒您不要试图构建“无所不能”的框架。这是许多开发人员在尝试构建他们最初的几个大众市场软件应用程序时犯的一个常见错误。

    您已经有了一个客户,他们很可能为应用程序的初始版本提供资金。你需要尽可能快地满足客户的需求,否则在你开始考虑大众市场之前就失败了。

    帮自己一个忙,希望这是唯一一个使用或购买该应用程序的客户。设计你的应用程序和你以前设计的任何其他定制应用程序都是一样的。

    为了在以后扩展到其他客户,您需要做的就是尽可能地保留现有的ASP.NET功能和功能,尽可能保持简单和精简,尽可能地从1.x版中删除尽可能多的“高级”功能。

    1.x将是你的试验场。确保您交付的应用程序能够满足初始客户的需求,并且非常出色。

    如果你成功了,并且1.x确实满足了你最初客户的大部分需求,那么你就会知道你还有一个应用程序可以满足任何客户的大部分需求。恭喜你,你已经是拥有一个可行的商业市场应用程序的绝大多数途径了!

    注意事项:

    1. 您真的需要支持多个数据库平台吗?当然,您可能有“一些”客户可能“更喜欢”MySQL而不是SQL Server。您将尝试编写一些可以支持Oracle、MySQL、Vistab、SQL Server等的神奇DAL,只需更改一些配置选项或在安装程序中进行正确的选择。但事实上,这种“平台”中立性给您的设计增加了巨大的复杂性,并对您利用的功能施加了严重的限制。像提供者设计模式这样的事情可能会让你觉得这种设计并不难…但你错了。要实事求是,设计你的应用程序,使它能被90%的潜在市场所接受。尤其是在数据访问方面,一般来说,90%或更多愿意安装和运行ASP.NET应用程序的市场也能够并且愿意使用SQLExpress或SQL Server。在大多数情况下,通过仅为SQL Server设计,您将节省比支持多个数据库带来的额外销售更多的金钱和时间。

    2. 尽量避免通过在线管理工具配置“一切”。例如,您可能会希望应用程序中的所有文本都可以由管理工具配置。很好,但也很贵。它需要更长的时间来开发,要求您增加应用程序的范围,以包含一大堆原本不需要的管理工具,并且它使应用程序更复杂,而且对于90%不介意默认文本的客户来说,很难使用。

    3. 仔细考虑本地化。如果你不认为你将有一个巨大的国际市场,坚持一种语言。本地化并不太难,但它确实使代码的每个方面都有点复杂…这在任何规模的应用中都有很大作用。我的经验法则是只针对我最初市场的语言。如果这个应用程序对其他市场感兴趣,那么在我从1.0版中收回一些现金并证明这个应用程序首先拥有一个可行的市场之后,我会回到2.x版中进行本地化。但是,如果您知道您将使用多种语言或文化,请从一开始就支持本地化。

    4. 对于1.0版,不要太担心模块的插入或花哨的服务API。如果您在可重用框架方面已经有了很多经验,那么在1.0版中就可以拥有这些东西,但是如果您缺乏这种架构的经验,那么在1.x版中,您将在这些特性上浪费太多时间,而且您可能仍然会犯错误,无论如何,您必须在2.x版中重新构建。

    5. 确保应用程序具有良好的报告功能。对于您所讨论的应用程序类型,这将决定应用程序是否有市场。您需要漂亮的报告,不仅可以在屏幕上排序/过滤,而且还可以打印。把你的钱和时间放在门外。

        2
  •  4
  •   abarax    17 年前

    最重要的是设计它的方式必须是完全通用的,即没有硬编码或嵌入的客户特定信息。

    任何特定于客户端的内容都必须通过元数据进行配置。如何做到这一点完全取决于您自己,但主要的方法是通过XML、数据库或属性文件。

    如果您这样设计它,它可以卖给任何数量的客户机,每个客户机都有自己的配置文件或数据。

        3
  •  2
  •   skypecakes    17 年前

    Abarax给出了一个很好的答案,我强调你应该考虑本地化——包括口语(英语、法语、德语等)和组织的语言,例如某些地方可能称之为时间表、记事本或工作订单,如果一切都与他们一直称之为“某物”不符,每个人都会抱怨、抱怨和抱怨。NG。

        4
  •  2
  •   codeinthehole    16 年前

    如果您使用的是开源技术,请花点时间将所有许可证信息保存在一个地方。