var resources = ["user-john","user-doe", "students-Milan"];
var tmp = {};
resources.forEach(function(e){
var a = e.split("-");
if(typeof tmp[a[0]] == "undefined"){
tmp[a[0]] = [];
tmp[a[0]].push(a[1]);
}else{
tmp[a[0]].push(a[1]);
}
});
console.log(tmp);
Ознакомьтесь с веб-страницей Patterns & Practices . Это отличный ресурс по общим шаблонам и передовым методам создания систем и приложений на платформе Microsoft. Возможно, более конкретно, вам следует взглянуть и на страницу Smart Client Guidance .
Также посмотрите в Википедии для общего обзора многоуровневой архитектуры.