.net 我应该如何为项目选择合适的技术和平台?

.net 我应该如何为项目选择合适的技术和平台?,.net,php,mysql,sql-server,asp.net-mvc,.net,Php,Mysql,Sql Server,Asp.net Mvc,以下是我正在启动的一个新项目的一些(当然还有更多)指导原则 可寻址URL 很快 移动-迎合iPhone和其他智能设备 使用现有的社交网络 生活 脸谱网 LinkedIn 推特 Craigslist 等等 使用现有的ID服务 现场ID 开放ID 等等 客户端和在线管理应用程序 瞄准许多设备 功能强大且灵活的报告 功能强大且灵活的筛选条件和搜索 自我维持;不需要大量的管理 基于服务的 API,以便其他人可以利用我们的服务(成本) 易于导入和导出数据 我很好奇——考虑到这些原则,您将如何确

以下是我正在启动的一个新项目的一些(当然还有更多)指导原则

  • 可寻址URL
  • 很快
  • 移动-迎合iPhone和其他智能设备
  • 使用现有的社交网络
    • 生活
    • 脸谱网
    • LinkedIn
    • 推特
    • Craigslist
    • 等等
  • 使用现有的ID服务
    • 现场ID
    • 开放ID
    • 等等
  • 客户端和在线管理应用程序
  • 瞄准许多设备
  • 功能强大且灵活的报告
  • 功能强大且灵活的筛选条件和搜索
  • 自我维持;不需要大量的管理
  • 基于服务的
  • API,以便其他人可以利用我们的服务(成本)
  • 易于导入和导出数据
我很好奇——考虑到这些原则,您将如何确定用于构建此项目的合适技术。NET还是PHP?SQL Server还是mySQL?银光还是闪光?我当然有自己的个人喜好,但我不想让这影响我的判断。我想为这个项目使用正确的工具和技术


有什么想法和/或建议吗?

看起来你在寻找一把金锤。没有。由你来决定哪个最适合这个项目。net/php能够处理所有这些

如果你想要一个真正的iPhone应用程序,当然这些都不行。然而,当您谈论web平台时,输出到设备只是检测设备并相应地呈现视图的问题

如果您计划发布到多个域,您可能需要签出。它可以简化获取应用程序数据和渲染视图的过程,以及为单个设备将它们分开的方法等。

不了解PHP(并且不喜欢PHP),因此只能对ASP.NET说:

  • 可寻址URL—ASP.NETMVC(和System.Web.Routing)可以做到这一点
  • 非常快-取决于您(堆栈溢出非常快,请自行查看)
  • 手机-再次取决于你
  • 使用现有的社交网络-ASP.NET可以做到这一点
  • 使用现有的ID服务-也可以这样做
  • 客户端和在线管理应用程序-
  • 瞄准许多设备-可以做到这一点
  • 功能强大且灵活的报告—可以做到这一点
  • 强大灵活的过滤条件和搜索-Lucene.NET
  • 自我维持;不需要大量的管理-
  • 基于服务-取决于您对“基于服务”的定义
  • API,以便其他人可以利用我们的服务(成本)-ASP.NET可以做到这一点
  • 易于导入和导出数据-取决于它是什么数据

    • 这是经典的“视情况而定”问题之一。您当然希望消除那些明显不适合您的项目的技术——您知道,比如ActiveX用于希望Mac用户能够使用的网站:-)

      但消除不匹配是相当容易的。之后的事情是相当主观的。缩小范围的唯一方法是做出一些选择。例如:支持多种移动设备。到底是哪一个?如果你想针对多个平台,你几乎肯定是在谈论一个web应用程序——也许你已经决定了

      除了您的需求的细节(这应该有助于缩小范围)之外,我的问题是,谁将实际编写它?尽最大努力利用那些人已经知道的东西是有道理的


      简言之,很难在真空中回答“最好”的问题。将会有十几种工具和技术的组合可以做你想做的事情。要从中进行选择,您需要使用特定的需求和资源来缩减列表。

      好的,下面是基本答案:您可以在.NET、PHP、Java或Python中破解此问题。在其中,您可以找到任意数量的框架。这些框架中的大多数都是生产就绪的

      因此,您和您的团队知道或喜欢什么成为一个重大问题。学习一个完全不同的框架需要时间。个人偏好往往是决定因素

      然而,有一个主要因素需要考虑:成本。虽然.NET可能拥有任何环境中最好的工具,但它与Windows有着紧密的联系。如果您计划在服务器场中使用100台机器,则需要计算运行最终解决方案的年度成本

      最后,阅读。如何监视和检测代码的问题可能比您提到的任何特性都更重要