Verstehen und Verwenden "Service-Layer" - .NET MVC 5

Ich bin derzeit in einem Praktikum und von dem, was ich gelernt haben, den controller im MVC-sollte ausschließlich verwendet werden, für den Verkehr, und nur für den Verkehr. Ich habe auch schon gesagt, über so etwas als "service layer", das klingt wie der Ort, wo ich tun sollte, keine Daten - /business-Logik für den controller.

Ich habe die Suche rund um für die Beispiele und tutorials an, aber ich bin nicht etwas zu finden, dass dumbs es nach unten genug für mich, da ich gerade erst gelernt, MVC vor etwa einem Monat. Ich Frage mich, ob jemand in der Lage wäre, zu erklären und mir zeigen, wie ich die übertragung der folgenden ActionResult Index business-Logik in einer "service-Schicht".

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());
}
}

Alles, was dieser code macht ist wieder eine DB-Tabelle, zusammen mit einige zusätzliche Logik, die zieht eine XML-Datei und analysiert einige seiner Informationen.

Frage ich mich, wie konnte ich wiederum in diesem speziellen Beispiel in einem service-layer (oder was auch immer es ist, ich sollte verwenden, für die Logik). Bitte versuchen Sie, diese so einfach wie möglich, ich bin noch neu auf MVC.

InformationsquelleAutor Austin | 2014-07-21
Schreibe einen Kommentar