【问题标题】:Is SubSonic dying亚音速会死吗
【发布时间】:2010-01-10 13:01:00
【问题描述】:

我真的对使用 SubSonic 很感兴趣,我已经下载了它,到目前为止我很喜欢它,但是看看 github 和 googlegroups 上的活动,它似乎不是很活跃,看起来很像正在消亡的项目。 tekpub 上没有关于它的视频,而且 Rob 似乎最近都在他的所有项目中使用 nHibernate。我不想专注于学习 SubSonic 并将其集成到我的项目中,如果它不会活得更久的话。 所以我的问题是,亚音速发展正在发生什么,是否即将发布新版本,幕后是否有很多事情发生,或者它是否像看起来那样不活跃?

【问题讨论】:

  • 这是一个播客:herdingcode.com/?p=193
  • 这并没有真正解决我的问题,播客是从去年 7 月开始的。
  • 我不是这个意思。这不是我真正熟悉的技术,我似乎记得播客听起来很乐观;这就是我想提及它的原因。
  • 好的,谢谢。实际上,当它第一次发布时,我就听了那个播客,这是让我对亚音速感兴趣的事情之一。
  • 这个问题似乎离题了,因为它已经过时了

标签: subsonic


【解决方案1】:

如果我不是每 2 个月左右发布一次版本,我就会收到这个问题。我承认我在推出 3.0.0.4 方面落后了 - 但有些人在没有测试的情况下发送了一些补丁代码,我不会接受 - 我宁愿花时间确保我们不推送错误(我显然在 3.0.0.3 中这样做了)。

无论如何 - 这是一个有效的问题,不,SubSonic 并没有“消亡”。观看活动的最佳地点是 Github 网站本身: http://github.com/subsonic/

这是我选择 Github 的主要原因之一,因此人们可以看到活动。我刚刚进行了一些更改,正在等待最后一个进行调整(存在合并冲突)。

RE 你的其他观点: 不,我没有在工作中使用 NHibernate。我将它用于 Kona 和截屏视频。我几乎会回复我从外部组收到的所有电子邮件,但是是的,在修剪垃圾邮件方面,GoogleGroups 是一件可悲的事情。最好的办法是向群组列表发送问题邮件 - 很快就会得到答复。

关于“死亡”——我需要稍微谈谈。开源项目如果诞生于灵感迸发且人们发现它有用,它们就不会消亡。两者都适用于 SubSonic。即使我放弃并告诉每个人都滚开,有人会捡起它并带着它跑。我必须像大多数人一样工作,而且我必须让 SubSonic 融入我在工作和家庭之间的少量空闲时间。但我绝不会让这个死去——这对我来说意义重大。

不管怎样 - 我确信我会在 6 个月后再次回到这里,再次回答这个问题:)。

【讨论】:

  • 谢谢 Rob,这是一个非常令人放心的答案。我想我是在使用最近在 github 上关闭的问题数量来衡量可能不是准确反映的活动。希望你不会把这个问题当作批评我知道开源项目看起来多么吃力不讨好,所以感谢你做出了一个伟大的项目:)
  • 一点都没有:)...我已经习惯了:)
  • @RobConery 页面 subsonicproject.com 发生了什么 - 你要更新它并更新名称吗?反正有没有找到亚音速2的屏幕演员?提前谢谢你。
【解决方案2】:

我怀疑由于人们在一年中的那个时候度假/度假,所以这里的支持减少了。我刚开始使用它,还没有回答一些问题,最后一次发布是在 7 月,所以希望继续支持。

【讨论】:

  • 不仅仅是人们没有在这里做出贡献。这是因为 google 组主要是垃圾邮件,几乎没有任何 github 活动,而且 Rob 似乎不再使用或发布有关 subsonic 的信息。
  • 看官网,好像主要支持在这里,没看过github或者google group,不知道有没有,当时好像支持的不多。
【解决方案3】:

我必须声明,尽管 Rob 说,虽然不是每 2 个月发布一次新版本,但您有时可能会有这种感觉。虽然google群和github上还有动作。如果圣诞节前有更多的新面孔开始做出贡献(甚至是像 doco 这样简单的面孔),这表明我可能比以往任何时候都更感兴趣,只是人们正在接受它。

我的作品在我们可以控制的大多数项目中使用 Subsonic(2.2 和 3.0.0.3)。我们有大约 28 名 .net 开发人员,他们都喜欢它(我们不会陷入它不能做的事情,因为它本身不是 ORM/数据访问。

由于我们只将 Subsonic 用于低级查询工具,而不是作为数据访问层,我认为如果我们需要保释它,我们与它的联系并不太紧密,但我们也没有理由。

我的观点是:它真的很容易使用,容易上手,容易修改,轻量级的查询工具/ORM(在较小程度上)。很少有工具具有所有这些属性,但不会将您锁定在关于事物的一百万种思想流派中。正因为如此,我认为它不会很快死去——它太容易上瘾了,不能放在你的蝙蝠腰带上。

我是活跃的唱片迷和 SubSonic Rocksorz My Sockorz!

因此,我向很多人推荐 SubSonic,并将继续这样做。虽然我们不会在超大型项目中使用它(更多是出于您提到的项目连续性的原因,而不是因为它无法完成这项工作)

【讨论】:

    【解决方案4】:

    嗯。

    我不知道亚音速的进展如何。我从 2007 年开始使用 subsonic,在升级到 subsonic3 之前,我使用 subnoic2 非常方便。它是稳定和可预测的。但是对于 subsonic3,甚至是 3.0.0.3。对我来说有点失望。我不想提及有效的功能。谢谢。亚音速映射表正确。我想谈的是“更新”。我尝试了代码,但它给出了异常。挖掘代码后,它正在签名......

    看看我的代码:

    FarmDB db = new FarmDB();
                    db.Update<UserAdornment>().Set(o => o.is_working == false)
                                .Where(o => o.user_name == HttpContext.Current.User.Identity.Name && o.type == userAdornment.type && o.id != userAdornment.id).Execute();
    

    这是正确的吗?

    修复NullReferenceException 后,有人问我也遭受了哪些痛苦。每次我运行这个查询时,我所有带有user_name=currentname 的行都将is_working 设置为false。检查代码后: 在 update.cs 中

    public Update<T> Where(Expression<Func<T, bool>> column)
    {
        LambdaExpression lamda = column;
        Constraint c = lamda.ParseConstraint();
    

    然后检查lamda.ParseConstraint(); 我明白了,无论我想搜索多少“哪里”,它只会返回第一个,更糟糕的是它之后,

    //IColumn col = tbl.GetColumnByPropertyName(c.ColumnName);
    //Constraint con = new Constraint(c.Condition, col.Name, col.QualifiedName, col.Name);
    //con.ParameterName = col.PropertyName;
    //con.ParameterValue = c.ParameterValue;
    

    它从前一个约束中建立了另一个约束,但删除了最后一个中的所有“条件”。 怎么可能是对的?

    我没有过多地研究 subsonic 的源代码,也不了解它是如何实现的。但是我在我的项目中使用 subsonic3 并且高度依赖它才能正常工作。真心希望每一个bug都能得到及时的测试和修复。

    【讨论】:

      猜你喜欢
      • 2012-04-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多