﻿<?xml version="1.0" encoding="utf-8"?><rss version="2.0"><channel><title>Ayende @ Rahien</title><link>http://ayende.com</link><description>Ayende @ Rahien</description><copyright>Copyright (C) Ayende Rahien  2004 - 2021 (c) 2026</copyright><ttl>60</ttl><item><title>jimlowe11 commented on NuGet Perf, Part III&amp;ndash;Displaying the Packages page</title><description>very nice</description><link>http://ayende.com/158209/nuget-perf-part-iii-displaying-the-packages-page#comment29</link><guid>http://ayende.com/158209/nuget-perf-part-iii-displaying-the-packages-page#comment29</guid><pubDate>Thu, 27 Sep 2012 21:03:06 GMT</pubDate></item><item><title>João P. Bragança commented on NuGet Perf, Part III&amp;ndash;Displaying the Packages page</title><description>@Frans,

Pinning a package at a specific nuget version is not that complicated. Install-Package MyPackage -Version x.x.x.x

Almost every other language out there has package management, dunno why .net should be the exception.</description><link>http://ayende.com/158209/nuget-perf-part-iii-displaying-the-packages-page#comment28</link><guid>http://ayende.com/158209/nuget-perf-part-iii-displaying-the-packages-page#comment28</guid><pubDate>Sat, 01 Sep 2012 19:07:34 GMT</pubDate></item><item><title>Ayende Rahien commented on NuGet Perf, Part III&amp;ndash;Displaying the Packages page</title><description>Karep,
a) RavenDB doesn't DO locking. Users can write to the DB all day, it doesn't impact read performance.
b) RavenDB is actually getting faster the more your use it, because it anticipate and optimize itself based on real world usage.</description><link>http://ayende.com/158209/nuget-perf-part-iii-displaying-the-packages-page#comment27</link><guid>http://ayende.com/158209/nuget-perf-part-iii-displaying-the-packages-page#comment27</guid><pubDate>Sat, 01 Sep 2012 10:42:20 GMT</pubDate></item><item><title>Karep commented on NuGet Perf, Part III&amp;ndash;Displaying the Packages page</title><description>Something I don't understand here. You are running one query on database and are proud it takes 17ms. But NuGet's database is not hit by one user, but tousands of users. Users that also write to that database. So there is locking happening. Clearly I am misunderstanding why you present those 17ms.</description><link>http://ayende.com/158209/nuget-perf-part-iii-displaying-the-packages-page#comment26</link><guid>http://ayende.com/158209/nuget-perf-part-iii-displaying-the-packages-page#comment26</guid><pubDate>Fri, 31 Aug 2012 18:48:20 GMT</pubDate></item><item><title>jonnii commented on NuGet Perf, Part III&amp;ndash;Displaying the Packages page</title><description>@Frans, where I work all of our internal libraries are packaged. TeamCity has a built in nuget server, and if you don't use team city then you can put them on a share drive for everyone to consume.</description><link>http://ayende.com/158209/nuget-perf-part-iii-displaying-the-packages-page#comment25</link><guid>http://ayende.com/158209/nuget-perf-part-iii-displaying-the-packages-page#comment25</guid><pubDate>Fri, 31 Aug 2012 14:39:08 GMT</pubDate></item><item><title>Ali Kheyrollahi commented on NuGet Perf, Part III&amp;ndash;Displaying the Packages page</title><description>@Frans I do not have more to say - not sure what I can say. All I can say is that I respect you for what you have done with LLBLGen Pro.</description><link>http://ayende.com/158209/nuget-perf-part-iii-displaying-the-packages-page#comment24</link><guid>http://ayende.com/158209/nuget-perf-part-iii-displaying-the-packages-page#comment24</guid><pubDate>Fri, 31 Aug 2012 12:18:10 GMT</pubDate></item><item><title>Ayende Rahien commented on NuGet Perf, Part III&amp;ndash;Displaying the Packages page</title><description>Frans,
We deliver commercial software via nuget.
It simplify the update process, and most importantly, the dependencies process for both us and our clients.</description><link>http://ayende.com/158209/nuget-perf-part-iii-displaying-the-packages-page#comment23</link><guid>http://ayende.com/158209/nuget-perf-part-iii-displaying-the-packages-page#comment23</guid><pubDate>Fri, 31 Aug 2012 09:27:55 GMT</pubDate></item><item><title>Frans Bouma commented on NuGet Perf, Part III&amp;ndash;Displaying the Packages page</title><description>@Andreas I didn't say one should choose downloading source over a package install. I just don't see the point of nuget over simply referencing a dll you have on disk. Perhaps it's related to ppl who just do OSS work, but many dlls are closed-source. Try to mix two ways of adding references, it gets cumbersome. Add reference's recent tab is much quicker in that regard. Sure it checks dependencies, but as I said, dependencies of a dll you reference are dependencies you have to research up front anyway. At least for professional projects you're shipping to clients: after all your code then depends on these versions as well. If _these_ dlls update, do you then have to update the dll you directly reference? Most likely yes. Can your project do that? that's to be seen. I wouldn't update referenced dlls 'on the spot' just because there's a new version. At least not in professional projects shipped to clients/customers. 

But perhaps in 'modern day' development one doesn't give a f*ck about whether stuff breaks. 

I'm not saying nuget doesn't serve a purpose, I just don't see the benefit in my day-to-day work and therefore not the hype around it. But apparently it's forbidden to say so, as it's equal to being stupid. </description><link>http://ayende.com/158209/nuget-perf-part-iii-displaying-the-packages-page#comment22</link><guid>http://ayende.com/158209/nuget-perf-part-iii-displaying-the-packages-page#comment22</guid><pubDate>Fri, 31 Aug 2012 09:24:38 GMT</pubDate></item><item><title>jeroenh commented on NuGet Perf, Part III&amp;ndash;Displaying the Packages page</title><description>ouch, someone seems to be in a bad mood or something.

@Frans nuget doesn't force you to upgrade anything, it's a specific action. Also, I concur with Ayende (and the most of the rest of the world) that nuget is useful for just about any project, not just web development. </description><link>http://ayende.com/158209/nuget-perf-part-iii-displaying-the-packages-page#comment21</link><guid>http://ayende.com/158209/nuget-perf-part-iii-displaying-the-packages-page#comment21</guid><pubDate>Fri, 31 Aug 2012 09:24:21 GMT</pubDate></item><item><title>Frans Bouma commented on NuGet Perf, Part III&amp;ndash;Displaying the Packages page</title><description>@Ali What are you talking about? So your project simply takes dependencies on the latest dlls from nuget and if something breaks along the way, because an updated version breaks your code, so what? Not every project can use solely OSS dlls (heck, many projects use only non-OSS dlls), and many projects take a dependency on dll vX.Y and stick with that, because they know it works. Upgrade it 'because nuget says so' is stupid. But hey, I'm not your client, so go ahead. But please don't talk to me like I'm a petty child who doesn't know what software dev looks like. I didn't miss a train, why would I? I'm a professional software developer now for over 18 years, do you really think what's hip and 'new' today is actually 'new' ? haha :D

What I find funny is that if you say you like installed versions over some web-based package site, you suddenly do software dev on a dos box with floppy disks. Like I hit your mother in the face with a baseball bat when I talked about NuGet. Get a life. </description><link>http://ayende.com/158209/nuget-perf-part-iii-displaying-the-packages-page#comment20</link><guid>http://ayende.com/158209/nuget-perf-part-iii-displaying-the-packages-page#comment20</guid><pubDate>Fri, 31 Aug 2012 09:14:44 GMT</pubDate></item><item><title>Karep commented on NuGet Perf, Part III&amp;ndash;Displaying the Packages page</title><description>Frans, jonni: What a nonsense. It's easier to analyze source code to chose classes you need then run one command? And how you update that copied code? </description><link>http://ayende.com/158209/nuget-perf-part-iii-displaying-the-packages-page#comment19</link><guid>http://ayende.com/158209/nuget-perf-part-iii-displaying-the-packages-page#comment19</guid><pubDate>Thu, 30 Aug 2012 19:17:18 GMT</pubDate></item><item><title>Flavio commented on NuGet Perf, Part III&amp;ndash;Displaying the Packages page</title><description>I hope @jonnii is just kidding... </description><link>http://ayende.com/158209/nuget-perf-part-iii-displaying-the-packages-page#comment18</link><guid>http://ayende.com/158209/nuget-perf-part-iii-displaying-the-packages-page#comment18</guid><pubDate>Thu, 30 Aug 2012 16:55:29 GMT</pubDate></item><item><title>Ali Kheyrollahi commented on NuGet Perf, Part III&amp;ndash;Displaying the Packages page</title><description>@Frans "I mean, a lot of devs simply create a folder in their solution, add 3rd party dlls there and reference them in multiple projects" 

World of development is different now, OSS with fast development cycles needs painless upgrades. If you have not seen it yet, you might have missed the train - I am afraid.</description><link>http://ayende.com/158209/nuget-perf-part-iii-displaying-the-packages-page#comment17</link><guid>http://ayende.com/158209/nuget-perf-part-iii-displaying-the-packages-page#comment17</guid><pubDate>Thu, 30 Aug 2012 16:37:42 GMT</pubDate></item><item><title>Christopher Wright commented on NuGet Perf, Part III&amp;ndash;Displaying the Packages page</title><description>Holding out for the Linux port of the nuget client.</description><link>http://ayende.com/158209/nuget-perf-part-iii-displaying-the-packages-page#comment16</link><guid>http://ayende.com/158209/nuget-perf-part-iii-displaying-the-packages-page#comment16</guid><pubDate>Thu, 30 Aug 2012 15:02:29 GMT</pubDate></item><item><title>Simon commented on NuGet Perf, Part III&amp;ndash;Displaying the Packages page</title><description>Surely jonnii is just kidding??  </description><link>http://ayende.com/158209/nuget-perf-part-iii-displaying-the-packages-page#comment15</link><guid>http://ayende.com/158209/nuget-perf-part-iii-displaying-the-packages-page#comment15</guid><pubDate>Thu, 30 Aug 2012 14:10:56 GMT</pubDate></item><item><title>Beyers commented on NuGet Perf, Part III&amp;ndash;Displaying the Packages page</title><description>@Frans, @jonnii, I cannot disagree more with you. To me, Nuget is to package and dependency management, as what version control is to source code. Not to mention Nuget private repositories where you can host your own or 3rd party libraries and have a central point to manage and import from.

But hey, feel free to manually copy DLLs around, create ZIP files of project versions, save them to floppy for backups :)</description><link>http://ayende.com/158209/nuget-perf-part-iii-displaying-the-packages-page#comment14</link><guid>http://ayende.com/158209/nuget-perf-part-iii-displaying-the-packages-page#comment14</guid><pubDate>Thu, 30 Aug 2012 14:01:04 GMT</pubDate></item><item><title>dotnetchris commented on NuGet Perf, Part III&amp;ndash;Displaying the Packages page</title><description>This post is a great summation*** if i could type.</description><link>http://ayende.com/158209/nuget-perf-part-iii-displaying-the-packages-page#comment13</link><guid>http://ayende.com/158209/nuget-perf-part-iii-displaying-the-packages-page#comment13</guid><pubDate>Thu, 30 Aug 2012 13:53:01 GMT</pubDate></item><item><title>dotnetchris commented on NuGet Perf, Part III&amp;ndash;Displaying the Packages page</title><description>This post is get summation of every reason I love RavenDB with modern software development. This post shows everything that is wrong for doing modern software development against relational dbs and how large of an impedance mismatch SQL tables have compared to object graphs.</description><link>http://ayende.com/158209/nuget-perf-part-iii-displaying-the-packages-page#comment12</link><guid>http://ayende.com/158209/nuget-perf-part-iii-displaying-the-packages-page#comment12</guid><pubDate>Thu, 30 Aug 2012 13:51:43 GMT</pubDate></item><item><title>Andreas Kroll commented on NuGet Perf, Part III&amp;ndash;Displaying the Packages page</title><description>Frans and jonnii, 

sometimes I cannot believe what I read. You really think it is easier to copy dlls to a directory or even copy code from GitHub to your project than perform an "install-package &lt;name&gt;"???
NuGet really is getting better and better each day. Most packages integrate themselves into solutions very well, so for instance I have IoC ready with one or two install-package commands depending on which container I use. 
What about dependencies? NuGet pulls all dependencies automatically for me. You would have to do that by hand. 
What about updates in your case? I just issue an update command for an updated package and get all the benefits of version checking etc. 

What is it you dislike about NuGet? 
I imagine if you'd work on a linux machine you would also not use a package installer like yast to get tools, but rather install them by hand or even download the code and compile it?
</description><link>http://ayende.com/158209/nuget-perf-part-iii-displaying-the-packages-page#comment11</link><guid>http://ayende.com/158209/nuget-perf-part-iii-displaying-the-packages-page#comment11</guid><pubDate>Thu, 30 Aug 2012 13:50:50 GMT</pubDate></item><item><title>Ayende Rahien commented on NuGet Perf, Part III&amp;ndash;Displaying the Packages page</title><description>Tim,
I don't have the data in SQL format.</description><link>http://ayende.com/158209/nuget-perf-part-iii-displaying-the-packages-page#comment10</link><guid>http://ayende.com/158209/nuget-perf-part-iii-displaying-the-packages-page#comment10</guid><pubDate>Thu, 30 Aug 2012 13:37:58 GMT</pubDate></item><item><title>Tim Murphy commented on NuGet Perf, Part III&amp;ndash;Displaying the Packages page</title><description>Any chance of providing performance data for SQL Server on same or similar machine?</description><link>http://ayende.com/158209/nuget-perf-part-iii-displaying-the-packages-page#comment9</link><guid>http://ayende.com/158209/nuget-perf-part-iii-displaying-the-packages-page#comment9</guid><pubDate>Thu, 30 Aug 2012 13:32:01 GMT</pubDate></item><item><title>Kat commented on NuGet Perf, Part III&amp;ndash;Displaying the Packages page</title><description>While your results are clearly good, you're in no way comparing apples with apples.

The reason the SQL Server version is slow is because the schema is a stinking mess of lots of tables, not because SQL Server is bad and RavenDB is good.

A simple denormalised persisted view along with full-text search would definitely give good results.</description><link>http://ayende.com/158209/nuget-perf-part-iii-displaying-the-packages-page#comment8</link><guid>http://ayende.com/158209/nuget-perf-part-iii-displaying-the-packages-page#comment8</guid><pubDate>Thu, 30 Aug 2012 12:03:07 GMT</pubDate></item><item><title>Ayende Rahien commented on NuGet Perf, Part III&amp;ndash;Displaying the Packages page</title><description>Matt,
That is the value we get from NuGet OData, see:

https://nuget.org/api/v2/Packages?$skiptoken='jQuery','0.0.0.0'

As you can see, you have DownloadCount which is the same for all.

What I think I missed is that there is also _VersionDownloadCount_, with the value just for this version, not globally.
</description><link>http://ayende.com/158209/nuget-perf-part-iii-displaying-the-packages-page#comment7</link><guid>http://ayende.com/158209/nuget-perf-part-iii-displaying-the-packages-page#comment7</guid><pubDate>Thu, 30 Aug 2012 11:57:54 GMT</pubDate></item><item><title>Ayende Rahien commented on NuGet Perf, Part III&amp;ndash;Displaying the Packages page</title><description>Frans,
We use nuget in pretty much any project we have now, and we don't do web apps much if at all.
We like to get away from having to manage the deps and nuget does a good job at it.</description><link>http://ayende.com/158209/nuget-perf-part-iii-displaying-the-packages-page#comment6</link><guid>http://ayende.com/158209/nuget-perf-part-iii-displaying-the-packages-page#comment6</guid><pubDate>Thu, 30 Aug 2012 11:51:38 GMT</pubDate></item><item><title>Matt Warren commented on NuGet Perf, Part III&amp;ndash;Displaying the Packages page</title><description>Why is the download count exactly the same for all the jQuery versions?</description><link>http://ayende.com/158209/nuget-perf-part-iii-displaying-the-packages-page#comment5</link><guid>http://ayende.com/158209/nuget-perf-part-iii-displaying-the-packages-page#comment5</guid><pubDate>Thu, 30 Aug 2012 11:23:52 GMT</pubDate></item><item><title>jonnii commented on NuGet Perf, Part III&amp;ndash;Displaying the Packages page</title><description>Frans, I agree with you. I even go one step further, I don't use 3rd party dlls, i just copy and paste the code off github and codeplex for all the libraries I use into my project. Don't have to worry about all these extra dlls anymore, and I only have to include the classes I need! It doesn't matter if the dll versions are compatible with each other because I get new ones every build! </description><link>http://ayende.com/158209/nuget-perf-part-iii-displaying-the-packages-page#comment4</link><guid>http://ayende.com/158209/nuget-perf-part-iii-displaying-the-packages-page#comment4</guid><pubDate>Thu, 30 Aug 2012 11:19:45 GMT</pubDate></item><item><title>Frans Bouma commented on NuGet Perf, Part III&amp;ndash;Displaying the Packages page</title><description>@simon
No I'm saying that nuget is primary a solution to a problem webdevs had, but non-web devs didn't have. I mean, a lot of devs simply create a folder in their solution, add 3rd party dlls there and reference them in multiple projects from that folder. the 'recent' tab in add-reference is then more handy than nuget to add references to multiple projects.  </description><link>http://ayende.com/158209/nuget-perf-part-iii-displaying-the-packages-page#comment3</link><guid>http://ayende.com/158209/nuget-perf-part-iii-displaying-the-packages-page#comment3</guid><pubDate>Thu, 30 Aug 2012 11:08:28 GMT</pubDate></item><item><title>Simon Skov Boisen commented on NuGet Perf, Part III&amp;ndash;Displaying the Packages page</title><description>Frans do you mean to say that NuGet is only useful for people doing webdevelopment? In that case I think you don't know about the breath of different packages is available from NuGet, one of the more popular once is Ninject an IOC container, NUnit a testing framework and log4net a loggin library - not really specific to web-development.</description><link>http://ayende.com/158209/nuget-perf-part-iii-displaying-the-packages-page#comment2</link><guid>http://ayende.com/158209/nuget-perf-part-iii-displaying-the-packages-page#comment2</guid><pubDate>Thu, 30 Aug 2012 09:46:35 GMT</pubDate></item><item><title>Frans Bouma commented on NuGet Perf, Part III&amp;ndash;Displaying the Packages page</title><description>Your linq query is definitely not the source of the SQL you're seeing. It joins several tables twice, pages over a subset and joins that subset. Your linq query would not result in this. 

The cumbersome way the SQL looks is a result of linq though: normally one would move the isprerelease predicate in the where clause inside the ON clause and simply page over the end result of the query. I don't see why they do it this way. Your linq query would result (normally) in a query which looks like the 'filtered' subset, and move the order by inside the query. After all paging in SQL Server might look cumbersome, but it's a wrapper query you apply to the normal query, where you wrap your normal query with the 'paging wrapper' to get paging. As they don't do that here, it's overly complicated. 

I don't know the datamodel of NuGet, but from the looks of it it looks like they used more than 1 table for package storing. One truly wonders why. But then again, it's NuGet, some service which web developers think is 'useful' because they find it useful, forgetting that not everyone does webdevelopment</description><link>http://ayende.com/158209/nuget-perf-part-iii-displaying-the-packages-page#comment1</link><guid>http://ayende.com/158209/nuget-perf-part-iii-displaying-the-packages-page#comment1</guid><pubDate>Thu, 30 Aug 2012 09:33:35 GMT</pubDate></item></channel></rss>