什么是开发基于Web的应用程序时要考虑的一些共同的东西要出售 [英] What are some common things to consider when developing a web-based application to be sold

查看:119
本文介绍了什么是开发基于Web的应用程序时要考虑的一些共同的东西要出售的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我开发一个内部客户的应用程序。一的要求是,它在它可能被出售给其他组织这样的方式来开发。该应用程序是为筹款组织,将管理自己的捐赠,捐助者,参与者和事件跟踪应用程序。我已经知道我需要开发一个插件架构进行认证(授权将在内部处理),并从外部目录中获得的人口统计数据。

I'm developing an application for an internal customer. One of the requirements is that it be developed in such a way that it could potentially be sold to other organizations. The application is a tracking application for a fund-raising organization that will manage their donations, donors, participants, and events. I already know that I'll need to develop a plugin architecture for authentication (authorization will be handled internally) and to derive demographic data from an external directory.

应用程序将建ASP.NET/C#/Linq/SQL服务器上。在这一点上我真的不开放,支持替代的数据库,但我想我可以通过不同的LINQ司机将来做到这一点,如果必要的。

The application will be built on ASP.NET/C#/Linq/SQL Server. At this point I'm not really open to supporting alternative databases, but I'm thinking I could do this in the future via different Linq drivers, if necessary.

所有这一切我已经建立至今已定制实现,所以我想知道,如果有,我需要通过插件和/或配置项目,以解决其他事情的Web应用程序。任何投入将是有益的。

All of the web applications that I've built to date have been custom implementations so I'd like to know if there are other things that I need to address via plugins and/or configuration items. Any input would be helpful.

感谢。

推荐答案

我要警告你不要试图让一切的框架。这是一个常见的​​错误,很多开发人员试图建立自己的前几个面向大众市场的软件应用程序时做。

I want to caution you against trying to make the "do everything" framework. This is a common mistake that a lot of developers make when trying to build their first few mass-market software apps.

您有一个客户已经和他们有可能提供资金的应用程序的初始版本。你需要提供尽可能多的这是什么客户需要以最快的速度,你可以或之前,你甚至去思考大众市场的失败。

You have a customer already, and they are likely bankrolling the initial version of the application. You need to deliver as much of what this customer needs as fast as you can or it fails before you even get to thinking about the mass-market.

请你帮个忙,并期望这是永远不会使用或购买应用程序的唯一客户。在设计应用程序pretty多完全相同的,你会在过去设计你的任何其他自定义应用程序。

Do yourself a favor and expect that this is the only customer that will EVER use or buy the application. Design your application pretty much the exact same as you would have designed any of your other custom apps in the past.

你所需要的,以便在以后扩展出来给其他客户做的是要坚持股票asp.net的特性和功能尽可能保持简单和精简越好,切尽可能多的先进从1.x版本的功能,你可以逃脱。

All you need to do in order to scale it out to other customers later is to stick to the stock asp.net features and functionality as much as possible, keep it as simple and lean as possible, and cut as many "advanced" features from version 1.x as you can get away with.

1.x的将是你的试验场。确保你提供能够做什么你最初的客户需要它做一个应用程序,它确实是非常好。

1.x will be your proving ground. Make sure you deliver an application that does what your initial customer needs it to do and that it does it exceedingly well.

如果你成功了,而1.x并真正满足大多数的最初客户的需求,那么你就会知道你也有,这将满足大多数的任何客户的需求的应用程序。恭喜你,你已经大部分地朝着有一个可行的商业市场的应用!

If you are successful, and 1.x does actually meet most of your initial customer's requirements then you will know you also have an application that will meet most of the needs of any of your customers. Congratulations, you are already most of the way towards having a viable commercial market application!

事情需要提防:


  1. 你真的需要支持多个数据库平台?当然,你可能有一些客户的可能preFER的MySql到SQL Server。你会受到诱惑,试图写一些神奇的DAL可以仅仅通过改变一些配置选项,或做出正确的选择可在一个安装程序支持Oracle,MySQL和VistaDB的,SQL Server等。但事实是,这种平台中立增加大量的复杂性,您的设计和什么功能,你利用施加严格限制。像提供者设计模式的事情可能骗你以为这种设计也不是那么难......但是你就错了。务实和设计应用程序,使其可以接受你的潜在市场的90%。随着特定的数据访问它通常是安全地说,90%以上的市场愿意安装和运行ASP.NET应用程序也能够并愿意使用SQLEx preSS或SQL Server。在大多数情况下,你将只是SQL服务器比你将做从支持多个数据库的其他销售设计节省更多的金钱和时间。

  1. Do you really need to support multiple database platforms? Sure, you might have "some" customers that might "prefer" MySql to SQL Server. You will be tempted to try and write some magic DAL that can support Oracle, MySQL, VistaDB, SQL Server, etc. just by changing some config options or making the right selection in an installer. But the fact is that this kind of "platform" neutrality adds massive complexity to your design and imposes severe limitations on what features you take advantage of. Things like the provider design pattern may fool you into thinking that this kind of design isn't so hard... but you would be wrong. Be pragmatic and design your application so that it will be acceptable to 90% of your potential market. With data access in particular it is generally safe to say that 90% or more of the market willing to install and run an ASP.NET application are also capable and willing to use SQLExpress or SQL Server. In most cases You will save much more money and time by designing for just SQL server than you will ever make in additional sales from supporting multiple databases.

尽量避免通过在线管理工具一切配置。例如,你会受到诱惑,在应用程序通过管理工具配置的所有文本。这是伟大的,但它也是昂贵的。它需要更长的时间来开发,需要你增加你的应用程序的范围,包括你不会另有需要管理工具全乱了,它使应用更加复杂和困难的使用为您的客户的90%不介意的默认文本。

Try to avoid making "everything" configurable via online admin tools. For example, you will be tempted to have ALL text in the application configurable by admin tools. That's great, but it is also expensive. It takes longer to develop, requires that you increase the scope of your application to include a whole mess of admin tools that you wouldn't have otherwise needed, and it makes the application more complex and difficult to use for the 90% of your customers that don't mind the default text.

仔细考虑国产化。如果你不认为你将有一个大的国际市场坚持一种语言。本地化是不是太难,但确实你的code一点点的各个方面复杂......而且在任何规模的应用在一切都增加了不少。我的经验法则是只针对我最初市场的语言。如果应用在其它市场的兴趣,然后我回去和2.x版的本地化做的,我从1.0版本收回一些现金,并证明该应用程序有一个可行的市场摆在首位了。但如果你知道你将在多个语言或文化,从一开始就支持​​本地化。

Carefully consider localization. If you don't think you will have a large international market stick to one language. Localization isn't too hard, but it does complicate every aspect of your code a little... and that adds up to a lot in any application of any size at all. My rule of thumb is to target only the language of my initial market. If the app has interest in other markets then I go back and do localization in version 2.x after I recoup some cash from version 1.0 and prove the application has a viable market in the first place. But if you know you will be in more than one language or culture, support localization from the very beginning.

有关1.0版,不用担心太多投递模块或花哨的服务API。如果你已经有很多的可重复使用的框架方面的经验,你将能够有这个东西在1.0的版本,但是如果你在这种架构中缺乏经验,你将只是浪费在这些功能太多时间在1.x版本和你可能会仍然得到它错了,要重新建筑师2.x版无妨。

For version 1.0, don't worry too much about drop-in modules or fancy service APIs. If you already had a lot of experience in reusable frameworks you would be able to have this stuff in version 1.0, but if you lack experience in this kind of architectures you will just waste too much time on these features in version 1.x and you will likely still get it wrong and have to re-architect in version 2.x anyway.

请确保应用程序真的有很好的报告。对于你所谈的一种应用,这将是什么决定,如果应用程序甚至有市场可言。您需要pretty报道,不仅是排序/过滤在屏幕上,但也可打印。把你的时间和金钱到这个出了门。

Make sure the application has REALLY good reporting. For the kind of application you are talking about, this will be what decides if the application even has a market at all. You need pretty reports that are not only sortable/filterable on screen, but are also printable. Put your money and time into this out of the gate.

这篇关于什么是开发基于Web的应用程序时要考虑的一些共同的东西要出售的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆