Quando usar o .mdf e quando .sdf?

Depois de ver muitas coisas na internet, não encontrei nenhuma explicação entre os dois tipos de arquivo:.mdf e.sdf.

.sdf seria uma versão compacta do SQL Server (.mdf) Acredito. Ainda assim eles parecem totalmente diferentes.

Ter seguido os dois tutoriais no msdn, ou seja,Aplicativo de filme MVC e aLoja de música. Ambos usam.sdf.

Citação parcial (cheio): 'Antes de tudo, deve ser "| DataDirectory | ASPNETDBContext.mdf" (observe a diferença de extensão). Seu pedido ...

Ambos os tutoriais têm a string de conexão para.sdf, ou seja:

<add name             ="MovieDBContext"
     connectionString ="Data Source=|DataDirectory|Movies.sdf" 
     providerName     ="System.Data.SqlServerCe.4.0"
/>

<add name             ="MusicStoreEntities" 
     connectionString ="Data Source=|DataDirectory|MvcMusicStore.sdf" 
     providerName     ="System.Data.SqlServerCe.4.0"
/> 

Questão:

Minha pergunta é o que usar onde e quando? Mais sobreporque usar onde.

questionAnswers(3)

yourAnswerToTheQuestion