Split into 2 assemblies
I really enjoy your library. So much even, that i now have several of my backend layers/api's returning IPagedList<T>. Using the IQueryable<T> extensions, directly within my NHibernate's Linq queries, is also a very smooth experience.
What i really dislike though is the fact that, in order to use the IPagedList<T> throughout my application layers (and thus projects) requires a dependency on System.Web and on MVC. Given i also use that same data access layer in f.ex. WPF apps, means that i get saddled up with needless dependencies.
I would suggest breaking the current project up into 2 separate projects/assemblies/nuget packages. One that holds the abstractions and related extension methods -- which i would use in my non-MVC layers -- , and one that deals with MVC specific things -- which i would use in my UI layer only.
Is this something you would consider for this library, or should i resort to a fork? Dow you want a pull request for this?
I can really imagine why you would want this. A pull request would be great ;).
Or maybe you could use the PagedList library (https://github.com/TroyGoode/PagedList) and use that one together with MvcPaging? The pager itself doesn't have a dependency on IPagedList<T> at all.
Had a quick look at that library but it looks like it offers the exact same functionality as MvcPaging, right? So perhaps that would then be a better/simpler option ... Thank you for the pointer anyway.
I think the main difference is that their HTML helper requires the use of IPagedList where our helper doesn't require anything specific (as I remember correctly).