La compréhension et l'Utilisation de “Couches de Service” - .NET MVC 5

Je suis actuellement en stage et de ce que j'ai appris le contrôleur MVC doit uniquement être utilisé pour le trafic, et seulement pour le trafic. J'ai été également dit à propos de quelque chose qui s'appelle une "couche de service", qui sonne comme l'endroit où je devrais être en train de faire toutes les données/de la logique métier pour le contrôleur.

J'ai été chercher autour pour des exemples et des tutoriels sur ce sujet, mais je ne parviens pas à trouver quelque chose qui dumbs il assez de recul pour moi, comme je l'ai seulement appris MVC il y a un mois. Je me demandais si quelqu'un serait en mesure d'expliquer et me montrer comment je serait de transférer les suivantes ActionResult Index logique métier dans une "couche de service".

public class LakerLegendsController : Controller
{    
string pathway1 = HostingEnvironment.MapPath(@"~/App_Data/Announcement1.txt");
string pathway2 = HostingEnvironment.MapPath(@"~/App_Data/Announcement2.txt");
string pathway3 = HostingEnvironment.MapPath(@"~/App_Data/Announcement3.txt");
private MoviesEntities db = new MoviesEntities();
public ActionResult Index()
{
//Setting some ViewBag texts from announcement files.
string text1 = System.IO.File.ReadAllText(pathway1);
ViewBag.TextHTML1 = text1;
string text2 = System.IO.File.ReadAllText(pathway2);
ViewBag.TextHTML2 = text2;
string text3 = System.IO.File.ReadAllText(pathway3);
ViewBag.TextHTML3 = text3;
//Following pulls some XML information
XDocument xmlFile = XDocument.Load(@"http://na.leagueoflegends.com/en/rss.xml");
var LoLtitles = from service in xmlFile.Descendants("item")
select (string)service.Element("title");
var LoLlinks = from service in xmlFile.Descendants("item")
select (string)service.Element("link");
var LoLdescriptions = from service in xmlFile.Descendants("item")
select (string)service.Element("description");
var LoLDates = from service in xmlFile.Descendants("item")
select (string)service.Element("pubDate");
var servicing = LoLdescriptions.ToArray();
for (int i = 0; i < 4; i++)
{
servicing[i] = Regex.Replace(Server.HtmlDecode(servicing[i]), @"<[^>]*>", String.Empty);
}
ViewBag.titles = LoLtitles.ToArray();
ViewBag.links = LoLlinks.ToArray();
ViewBag.descriptions = servicing;
ViewBag.dates = LoLDates.ToArray();
//Pulls the DB Table
var users = db.Users.Include(u => u.championList).Include(u => u.championList1).Include(u => u.championList2).Include(u => u.eloList).Include(u => u.rankList).Include(u => u.roleList).Include(u => u.roleList1);
return View(users.ToList());
}
}

Tout ce que ce code est en train de faire est de retourner une table DB, avec une certaine logique supplémentaire qui tire un fichier XML et l'analyse de certaines de ses informations.

Je me demande comment je pourrais faire de cet exemple précis en utilisant une couche de service (ou de ce qu'il est, je devrais utiliser pour la logique). S'il vous plaît essayer de rendre ce processus aussi simple que possible, comme je suis encore nouveau pour MVC.

OriginalL'auteur Austin | 2014-07-21