草庐IT

c# - 开发基于 Web 的应用程序进行销售时需要考虑哪些常见问题

coder 2024-05-24 原文

关闭。这个问题需要更多focused .它目前不接受答案。












想改善这个问题吗?更新问题,使其仅关注一个问题 editing this post .

3年前关闭。




Improve this question




我正在为内部客户开发应用程序。其中一项要求是,它的开发方式使其有可能被出售给其他组织。该应用程序是一个筹款组织的跟踪应用程序,该组织将管理他们的捐赠、捐助者、参与者和事件。我已经知道我需要开发一个用于身份验证的插件架构(授权将在内部处理)并从外部目录中获取人口统计数据。

该应用程序将构建在 ASP.NET/C#/Linq/SQL Server 上。在这一点上,我并不是真的愿意支持替代数据库,但我认为如果有必要,我将来可以通过不同的 Linq 驱动程序来做到这一点。

迄今为止,我构建的所有 Web 应用程序都是自定义实现,因此我想知道是否还有其他需要通过插件和/或配置项解决的问题。任何输入都会有所帮助。

谢谢。

最佳答案

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

您已经有一个客户,他们可能正在为应用程序的初始版本提供资金。您需要尽可能快地交付该客户所需的尽可能多的东西,否则在您开始考虑大众市场之前就失败了。

帮自己一个忙,并期望这是唯一会使用或购买该应用程序的客户。设计您的应用程序与您过去设计任何其他自定义应用程序的方式几乎完全相同。

为了以后将其扩展到其他客户,您需要做的就是尽可能多地坚持现有的 asp.net 特性和功能,使其尽可能简单和精益,并从版本 1.x,你可以逃脱。

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

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

需要注意的事项:

  • 您真的需要支持多个数据库平台吗?当然,您可能有“一些”客户可能“更喜欢”MySql 而不是 SQL Server。您会很想尝试编写一些神奇的 DAL 来支持 Oracle、MySQL、VistaDB、SQL Server 等。只需更改一些配置选项或在安装程序中进行正确的选择即可。但事实是,这种“平台”中立性给您的设计增加了巨大的复杂性,并对您利用的功能施加了严重的限制。提供者设计模式之类的东西可能会让您误以为这种设计并不难……但您错了。务实并设计您的应用程序,使其能够为 90% 的潜在市场所接受。特别是对于数据访问,通常可以肯定地说,愿意安装和运行 ASP.NET 应用程序的市场中有 90% 或更多的人也有能力并愿意使用 SQLExpress 或 SQL Server。在大多数情况下,与通过支持多个数据库获得的额外销售额相比,仅针对 SQL Server 进行设计将节省更多的金钱和时间。
  • 尽量避免通过在线管理工具使“一切”都可以配置。例如,您可能会想通过管理工具配置应用程序中的所有文本。这很棒,但它也很贵。开发需要更长的时间,需要您扩大应用程序的范围以包含一大堆原本不需要的管理工具,并且这使应用程序变得更加复杂,并且难以为 90% 的客户使用不介意默认文本。
  • 仔细考虑本地化。如果你不认为你会拥有一个庞大的国际市场,那就坚持使用一种语言。本地化并不太难,但它确实使代码的每个方面都变得有点复杂……而且这在任何规模的任何应用程序中都会增加很多。我的经验法则是只针对我最初的市场语言。如果该应用程序对其他市场感兴趣,那么在我从 1.0 版收回一些现金并证明该应用程序首先具有可行的市场后,我会返回并在 2.x 版中进行本地化。但是,如果您知道自己将使用一种以上的语言或文化,请从一开始就支持本地化。
  • 对于 1.0 版,不要太担心插入模块或花哨的服务 API。如果您在可重用框架方面已经有很多经验,那么您将能够在 1.0 版中拥有这些东西,但是如果您缺乏这种架构方面的经验,那么您只会在 1.x 版中浪费太多时间在这些功能上,而您可能仍然会出错,无论如何必须在 2.x 版中重新构建。
  • 确保应用程序具有非常好的报告。对于您所谈论的应用程序类型,这将决定该应用程序是否有市场。您需要漂亮的报告,不仅可以在屏幕上排序/过滤,而且还可以打印。把你的钱和时间投入到这个门外。
  • 关于c# - 开发基于 Web 的应用程序进行销售时需要考虑哪些常见问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/189644/

    有关c# - 开发基于 Web 的应用程序进行销售时需要考虑哪些常见问题的更多相关文章

    1. ruby - 在 Ruby 程序执行时阻止 Windows 7 PC 进入休眠状态 - 2

      我需要在客户计算机上运行Ruby应用程序。通常需要几天才能完成(复制大备份文件)。问题是如果启用sleep,它会中断应用程序。否则,计算机将持续运行数周,直到我下次访问为止。有什么方法可以防止执行期间休眠并让Windows在执行后休眠吗?欢迎任何疯狂的想法;-) 最佳答案 Here建议使用SetThreadExecutionStateWinAPI函数,使应用程序能够通知系统它正在使用中,从而防止系统在应用程序运行时进入休眠状态或关闭显示。像这样的东西:require'Win32API'ES_AWAYMODE_REQUIRED=0x0

    2. ruby - 将差异补丁应用于字符串/文件 - 2

      对于具有离线功能的智能手机应用程序,我正在为Xml文件创建单向文本同步。我希望我的服务器将增量/差异(例如GNU差异补丁)发送到目标设备。这是计划:Time=0Server:hasversion_1ofXmlfile(~800kiB)Client:hasversion_1ofXmlfile(~800kiB)Time=1Server:hasversion_1andversion_2ofXmlfile(each~800kiB)computesdeltaoftheseversions(=patch)(~10kiB)sendspatchtoClient(~10kiBtransferred)Cl

    3. ruby - 如何指定 Rack 处理程序 - 2

      Rackup通过Rack的默认处理程序成功运行任何Rack应用程序。例如:classRackAppdefcall(environment)['200',{'Content-Type'=>'text/html'},["Helloworld"]]endendrunRackApp.new但是当最后一行更改为使用Rack的内置CGI处理程序时,rackup给出“NoMethodErrorat/undefinedmethod`call'fornil:NilClass”:Rack::Handler::CGI.runRackApp.newRack的其他内置处理程序也提出了同样的反对意见。例如Rack

    4. ruby - 在 Ruby 中编写命令行实用程序 - 2

      我想用ruby​​编写一个小的命令行实用程序并将其作为gem分发。我知道安装后,Guard、Sass和Thor等某些gem可以从命令行自行运行。为了让gem像二进制文件一样可用,我需要在我的gemspec中指定什么。 最佳答案 Gem::Specification.newdo|s|...s.executable='name_of_executable'...endhttp://docs.rubygems.org/read/chapter/20 关于ruby-在Ruby中编写命令行实用程序

    5. ruby - 使用 C 扩展开发 ruby​​gem 时,如何使用 Rspec 在本地进行测试? - 2

      我正在编写一个包含C扩展的gem。通常当我写一个gem时,我会遵循TDD的过程,我会写一个失败的规范,然后处理代码直到它通过,等等......在“ext/mygem/mygem.c”中我的C扩展和在gemspec的“扩展”中配置的有效extconf.rb,如何运行我的规范并仍然加载我的C扩展?当我更改C代码时,我需要采取哪些步骤来重新编译代码?这可能是个愚蠢的问题,但是从我的gem的开发源代码树中输入“bundleinstall”不会构建任何native扩展。当我手动运行rubyext/mygem/extconf.rb时,我确实得到了一个Makefile(在整个项目的根目录中),然后当

    6. ruby-on-rails - Rails 应用程序之间的通信 - 2

      我构建了两个需要相互通信和发送文件的Rails应用程序。例如,一个Rails应用程序会发送请求以查看其他应用程序数据库中的表。然后另一个应用程序将呈现该表的json并将其发回。我还希望一个应用程序将存储在其公共(public)目录中的文本文件发送到另一个应用程序的公共(public)目录。我从来没有做过这样的事情,所以我什至不知道从哪里开始。任何帮助,将不胜感激。谢谢! 最佳答案 无论Rails是什么,几乎所有Web应用程序都有您的要求,大多数现代Web应用程序都需要相互通信。但是有一个小小的理解需要你坚持下去,网站不应直接访问彼此

    7. ruby - 无法运行 Rails 2.x 应用程序 - 2

      我尝试运行2.x应用程序。我使用rvm并为此应用程序设置其他版本的ruby​​:$rvmuseree-1.8.7-head我尝试运行服务器,然后出现很多错误:$script/serverNOTE:Gem.source_indexisdeprecated,useSpecification.Itwillberemovedonorafter2011-11-01.Gem.source_indexcalledfrom/Users/serg/rails_projects_terminal/work_proj/spohelp/config/../vendor/rails/railties/lib/r

    8. ruby-on-rails - Rails 应用程序中的 Rails : How are you using application_controller. rb 是新手吗? - 2

      刚入门rails,开始慢慢理解。有人可以解释或给我一些关于在application_controller中编码的好处或时间和原因的想法吗?有哪些用例。您如何为Rails应用程序使用应用程序Controller?我不想在那里放太多代码,因为据我了解,每个请求都会调用此Controller。这是真的? 最佳答案 ApplicationController实际上是您应用程序中的每个其他Controller都将从中继承的类(尽管这不是强制性的)。我同意不要用太多代码弄乱它并保持干净整洁的态度,尽管在某些情况下ApplicationContr

    9. ruby-on-rails - 如何在我的 Rails 应用程序 View 中打印 ruby​​ 变量的内容? - 2

      我是一个Rails初学者,但我想从我的RailsView(html.haml文件)中查看Ruby变量的内容。我试图在ruby​​中打印出变量(认为它会在终端中出现),但没有得到任何结果。有什么建议吗?我知道Rails调试器,但更喜欢使用inspect来打印我的变量。 最佳答案 您可以在View中使用puts方法将信息输出到服务器控制台。您应该能够在View中的任何位置使用Haml执行以下操作:-puts@my_variable.inspect 关于ruby-on-rails-如何在我的R

    10. Ruby Sinatra 配置用于生产和开发 - 2

      我已经在Sinatra上创建了应用程序,它代表了一个简单的API。我想在生产和开发上进行部署。我想在部署时选择,是开发还是生产,一些方法的逻辑应该改变,这取决于部署类型。是否有任何想法,如何完成以及解决此问题的一些示例。例子:我有代码get'/api/test'doreturn"Itisdev"end但是在部署到生产环境之后我想在运行/api/test之后看到ItisPROD如何实现? 最佳答案 根据SinatraDocumentation:EnvironmentscanbesetthroughtheRACK_ENVenvironm

    随机推荐