Question: What's the difference between a repository and a service? I don't seem to grasp it.

I'm talking about data access through a data access layer, typically with linq to sql.

Very often i see repositories with simple CRUD methods, and services with more business-specific methods.

We can take [this](https://web.archive.org/web/20160702012441/https://weblogs.asp.net/rashid/shrinkr-url-shrinking-service-developed-with-entity-framework-4-0-unity-asp-net-mvc-and-jquery-part-1) blog post as an example. If you look at the interfaces at the bottom (images), he has two repositories and two services. How does one know what to put where?

As I said, repositories seems to be more for CRUD-like operations and Services more business oriented.

Answer: 
A Repository is essentially a facade for *persistence* that uses Collection style semantics (Add, Update, Remove) to supply access to data/objects. It is a way of decoupling the way you store data/objects from the rest of the application.

A service supplies coordination or other "services" that are required to operate your application. They are very different in that Services don't typically know how to access data from persistence, and repositories typically *only* access data/objects for any services you may have.
I would say as a first try, in the general sense (until you give more context if you have one):

* a **repository** is where you place some global objects, to be used later.
* a **service** is a business logic code, made explicit (and ideally separated from the Presentation layer, and database layer ?)