【问题标题】:ASP.NET MVC open source application. MySQL or SQL Server? [closed]ASP.NET MVC 开源应用程序。 MySQL 还是 SQL Server? [关闭]
【发布时间】:2009-10-18 12:30:35
【问题描述】:

我有大约 4 年的 ASP.NET 和 SQL Server 经验(仅限 Web 表单)。我对 Ruby on Rails 有一点了解,并且在我的工作中使用 ASP.NET MVC 开发了一个非常小的 2-3 页应用程序。现在我和我的一个朋友(和我一样的经历)愿意获得更多的 ASP.NET MVC 经验。为此,我们考虑在 ASP.NET MVC 中开发一个开源应用程序。它可以是博客系统或论坛或其他任何东西,以便社区也可以从中受益。但是我们无法决定 MySQL 和 SQL Server 之间的应用程序的后端数据库。你会在以下方面提出什么建议 -

  1. 社区会更支持或更需要哪个?
  2. 如果我们使用 MySQL,前路会不会很艰难?
  3. 是否有机会通过使用 ORM 来支持两者(我没有使用任何 ORM 的经验)
  4. 还有其他建议吗?

提前致谢。

【问题讨论】:

    标签: asp.net mysql sql-server asp.net-mvc open-source


    【解决方案1】:

    如果您无法决定使用哪个作为后端,那么我有一个建议,我让它为数据层定义一个接口,针对该接口使用 IRepository 模式,然后简单地选择一个并编写数据层的实现对于那个选择。在一个(成功的)开源项目中,想要使用它的每个人都不太可能对什么样的数据库适用于他们有相同的想法。在这种情况下,将其设计为可以使用任何数据库,给定接口的合适实现是明智之举。如果您不介意依赖其他库,那么使用已经支持许多不同数据库的 nHibernate 之类的东西可能是您想要走的路线。

    【讨论】:

    • 你推荐 nHibernate+IRepository 或其中任何一个?抱歉,这两个对我来说都是新手,所以只想确认一下。
    • nHibernate 可能是我会选择的 ORM。如果你使用 nHibernate,你可能想也可能不想在它上面使用 IRepository 模式。
    【解决方案2】:

    社区会更支持或需要哪个?

    对于大多数商业用户和大多数专用的 ASP 托管服务提供商,恕我直言,它将是 Microsoft SQL Server。具有惊人的跨版本号分布。我看到了很多 SQL Server 2008,很多 2005,还有很多令人惊讶的 2000。

    对于小“我们很便宜,是免费的吗?”企业和个人,我也确实在 Windows 上看到了一些 MySQL。我猜在我工作过的公司的小圈子里,你提到的两个数据库是 MSSQL 的 2/3 和 MySQL 的 1/3。

    如果我们使用 MySQL,前路会很艰难吗?

    在更难的发展方面?是与否; LINQ to SQL 或多或少只适用于 MSSQL,许多人发现它是一种简单而自然的技术。如果您的计划是使用 LINQ to SQL 作为您选择的 ORM,那么“是”。正如 Elder_george 所说,其他优秀的 ORM(如 nHibernate)同样适用于两个数据库。

    是否有机会通过使用 ORM 来支持两者(我没有使用任何 ORM 的经验)

    当然,f.x。使用 nHibernate,以及一些用于 nHibernate 配置的额外 XML,以及一些更广泛的安装文档、SQL 脚本等供用户使用。

    还有什么建议吗?

    由于这是您的第一个应用程序,因此请先使用模型和原型制作、UML 或您选择的其他东西来尝试设计。看看你是否可以让一些有经验的 MVC 开发人员来批评你的设计,但不要把他们的批评当成福音,正确做事的方法不止一种。

    一定要考虑 tvanfosson 的建议,即使用 IRepository 来提供存储层的灵活性。

    也考虑从一开始就使用单元测试和依赖注入;两者都是恕我直言,从长远来看非常重要和有帮助。不利的一面是,如果您之前没有这方面的经验,那将是很多新技术。

    【讨论】:

      【解决方案3】:
      • MS SQL 更易于与 .NET 一起使用。 .NET 包含开箱即用的 LINQ to SQL ORM,因此无需安装任何内容。

      • MS SQL 有一个免费的 Express 版本,但由您决定它的功能(4Gb 用于 DB,仅 1 个 CPU 等等)是否足以满足您的应用程序(恕我直言,它们将是 =))

      • 有允许在 DBMS 之间切换的 ORM:NHibernateSubSonicDbLinq。 NHibernate 是目前最强大的野兽,如果您正在寻找来自 RoR 的熟悉概念,它有一个 active record 实现。

      【讨论】:

        【解决方案4】:

        tvanfosson 和 Elder_george 给了很好的 cmets。

        除了 ASP.NET MVC,它更多的是 MySQL 与 MSSQL。我已经使用这两种方法开发了 Web 项目,并且从开发的角度来看它们相对相当。我使用的 ORM 是 NHibernate。

        从部署/生产的角度来看,假设您不打算为此付费,您将受到 MSSQL Express 版本的限制。您可能想在这方面花一些心思。

        【讨论】:

          【解决方案5】:

          使用 ORM -> NHibernate

          https://www.hibernate.org/361.html

          【讨论】:

            【解决方案6】:

            几个月前我也遇到过类似的情况。现在我在 ASP.Net MVC 上的最新项目几乎完成了。这是我选择的套装

            --ASP.Net MVC + MySQL。没有 ORM。--

            我决定使用 MySQL 而不是 MS SQL,因为 MySQL 是免费的,而 MS SQL 非常昂贵。如果你正在制作一个开源应用程序,你必须认真考虑这一点。如果您的目标是广泛采用您的应用程序,这将是一个主要问题。

            起初我尝试通过 ORM -- Enterprise Framework (EF) 使用 MySQL。这是有史以来最糟糕的决定。企业框架完全扼杀了性能。这是坑中的坑。我相信 nHibernate 更好,但我不知道好多少。

            使用我自己的 SQL 代码,速度已经足够快了。

            我的网站的第一次迭代将在本周进行公开测试,然后会有几次迭代。

            进展顺利,所以我很轻松地推荐了我选择的套装。

            【讨论】:

            • MS SQL Server Express 是免费的。它在其限制范围内表现良好。因此,除非您超出 Express 版本,否则这不是成本问题。
            • MS SQL Express 将仅支持 1 GB 的最大内存和高达 4 GB 的数据库大小。你可以比你意识到的更快地超越它们。特别是如果您设置了多个数据库(如果您在服务器上设置了多个站点,则可能会有)。
            • 企业框架还是实体框架?
            • 实体!! ...嗯..我忘记了名字。幸运我!
            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2016-08-13
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多