下面是一个论坛上某人的引用


NetTiers 2.0 (CodeSmith) vs SubSonic

.netTiers is not free.  It used to be free, but then Eric J. Smith changed his pricing model and yanked the free version out from under the community that made codesmith a booming product.

 In my opinion, codesmith had the perfect model.  There was a free part, the generator, that everyone could use.  You could build templates on your own, and use the generator, and everyone was excited.  Then, there was a paid for add on that was the ide that would allow you to build templates much easier.  Perfect.  You have a free part, that help build a community, and you had a pay part, that could be a revenue stream.

 Then, after the community was established, and lots of people began seeing how powerful the tool could be, they all started pitching in templates and contributing to the community.  And, then, the free part of the app was taken away.  Kind of an underhanded move, in my opinon.  And, thats just my opinion.  If it was never free, nobody would have even bothered with codesmith.  Nobody would have contributed to the community which actually made that product, and .nettiers wouldnt be what it is today.  You wouldnt see marketing posts like this (how many times does it say .nettiers is free?), and you definitely wouldnt see things like "Join the CodeSmith revolution" on the codesmith home page.  Can I understand why the move was made?  Sure, for the money.  Do I think it was underhanded?  Absolutely.

Back on topic...  As for a comparison of subsonic and .nettiers (which the title of this thread made me think was in here), here are some of my impressions.  Please keep in mind that these tests were using timers and were on my workstation with the webserver and sqlserver running locally.  If you dont agree with these results, or question the integrity, feel free to run your own tests.

  • For raw queries (select column1, column2, columnN from table), nettiers seems to be faster than subsonic by an average of 8/1000ths of a second for my tests, which basically consisted of getting all the rows out of the products table in northwind.
  • Subsonic has dynamic queries on the client, where nettiers uses the same generic code for top, paged, and whatever other dynamic stuff it needs to do (order by and special where clauses).  The subsonic queries are more specific to the task, and are generally faster than the same query on .nettiers, again, we are talking in the 1000ths of seconds in my not-so-scientific tests.
  • Subsonic can only do paging on sql2005, where nettiers can do it anywhere.  Hopefully, that wont always be the case.
  • Nettiers generates 5.82 MB in 457 files in 34 folders for northwind.  Enterprise library and all its terrabytes of references in your bin folder.
  • Subsonic generates 272 KB in 30 files in 1 folder for northwind.  SubSonic.dll in your bin folder.
  • web.config changes:  A couple of unintrusive lines for subsonic, and, well, weve all seen the entlib web.config changes.  Even if the entlib stuff is in an external file, there are still more changes in the web.config than subsonic.
  • .nettiers is far more mature than subsonic.  Its configuration over convention attitude makes for a much more solid generation base.  I mean, it supports multi-column primary keys, better guid support, associative table queries, a domain model or service layer, and has way more eyes looking at it getting bugs identified and fixed.
  • subsonic is free.  .nettiers templates are free, but the template processor is not free.  Its like saying Microsoft Word documents are free, but Microsoft Word is not.
  • nettiers service layer is great.  subsonic probably wont ever do this because that doesnt seem to be the scope of the product.
  • deep load/deep save are implemented much better in .nettiers.
  • rules and validation features baked in to .nettiers seem to be cool, but I havent used them enough to speak to them.
  • .nettiers overall architecture is superb.
  • .nettiers is huge.  Its output is huge and its a lot to wade through, should you ever want to dig into some of the entity objects.
  • .nettiers is not as flexible as subsonic.  It is very easy to get a count of items in a database with subsonic, and its kind of indirect on how you do it with .nettiers.
  • subsonic is better for database independence.  I know the entlib was supposed to do this for us, and it does in many cases.  Its just easier to do in subsonic.

Anyway, those are just some of my observations.  If you dont like it, or dont agree with it, please feel free to do your own research and post your findings.
 
Jesse Foster | jf26028




    我的看法是subsonic比起ntiers更为轻量级,动态生成sql是一个亮点,因为是一个开源项目而且代码结构很简单所以很容易在代码层做一些特殊的改造。ntier比较深刻,这样形容不知道好不好,在稳定性方面ntiers更加的可靠。尤其得ntiers配合一些模版可以生成支持asp.net2.0的数据源封装,模版代码有种asp.neter的味道,强调一些构架上面的泛性。


    http://actionpack.wekeroad.com/forums/post/1517.aspx

    http://www.nettiers.com/Download.aspx

    http://www.codeplex.com/actionpack


    Feedback

    #1楼    回复  引用  查看    

    2007-03-02 13:11 by iCaca      
    关注nettiers

    #2楼    回复  引用  查看    

    2007-03-02 13:25 by Tony.Gong      
    用firefox看楼主的blog
    页面全部错乱了啊

    #3楼    回复  引用  查看    

    2007-03-02 13:32 by aspnetx      
    用IE7都感觉乱,更别说firefox了

    #4楼    回复  引用  查看    

    2007-03-02 13:36 by iCaca      
    因为fieldset 太大了?

    #5楼    回复  引用  查看    

    2007-03-02 13:37 by shoucao      
    关注nettier,对与实体类以及实体工厂个人感觉不错

    #6楼    回复  引用  查看    

    2007-03-02 13:41 by 大陆响尾蛇      
    actionpack是不是只支持MYSQL啊?

    #7楼    回复  引用    

    2007-03-02 14:25 by A.Z [未注册用户]
    @大陆响尾蛇
    除了mysql还支持sqlserver

    #8楼    回复  引用  查看    

    2007-03-02 14:27 by JesseZhao      
    不错,偶喜欢

    #9楼    回复  引用  查看    

    2007-03-02 14:27 by JesseZhao      
    不错,偶喜欢

    #10楼    回复  引用    

    2007-03-02 14:27 by A.Z [未注册用户]
    @Tony.Gong
    @aspnetx
    我建议大家最好还是用IE6浏览网页,这样可以得到最大的兼容性。

    #11楼    回复  引用    

    2007-03-02 15:22 by 周星星[匿名] [未注册用户]
    我的ie6,页面也是乱的。

    #12楼    回复  引用  查看    

    2007-03-02 15:46 by dudu      
    fieldset设置的太宽造成的。

    #13楼    回复  引用  查看    

    2007-03-02 17:21 by Jack Ma      
    凡事都有两面性,过分强大意味着不容易定制,对于有一定复杂度,特别是应用集成方面的项目,可应用性不强。我说的是 .netTiers。

    #14楼 [楼主]   回复  引用  查看    

    2007-03-02 23:51 by A.Z      
    宽度已经调整

    #15楼    回复  引用    

    2007-03-05 10:21 by shou519 [未注册用户]
    我觉得SUBSONIC用起来感觉还是满不错的,特别是对于喜欢变化的客户而言,不管你数据库如何改,嘿嘿,我无所谓~~~
    大家可以试一试哦~~
    而且它代码清晰简单,你要定制你自己的模板也没有太大的问题的

    #16楼    回复  引用  查看    

    2007-03-09 23:53 by iCaca      

    我对nettiers也研究了一段时间,但是发现,对那些总要改变需求的客户来说,反复使用codesmith生成代码,有点捉襟见肘了。

    #17楼    回复  引用  查看    

    2008-07-11 19:08 by 小龙3      
    Firefox下页面乱了。。。搞技术居然还建议别人用IE6来看,汗一个。。。。。

    #18楼 [楼主]   回复  引用  查看    

    2008-07-14 16:31 by A.Z      
    --引用-------------------------------------------------- 小龙3: Firefox下页面乱了。。。搞技术居然还建议别人用IE6来看,汗一个。。。。。 --------------------------------------------------------


    楼上的朋友,我坚持用IE6自然有我的理由,而且我不是写浏览器的人,更不是以写浏览器里面标签和脚本为主要工作的人,为什么我要我的blog版面兼容Firefox?一个我不用的,市场占有率不及IE的浏览器?


    技术有很多层面,也许你习惯了用Firefox,我不能改变你的习惯,也许你用换IE浏览就可以得到正确的页面效果。