Schimbările esențiale în ASP.NET 5 și MVC 6
Această postare reprezintă traducerea din limba rusă a articolului Важнейшие изменения в ASP.NET 5 и MVC 6
ASP.NET 5 - reprezintă un .NET stack destinat pentru construirea aplicațiilor web moderne, construit de la început de către compania Microsoft, pentru a oferi o platformă optimizată destinată dezvoltării aplicațiilor care vor fi dislocate în nor (cloud) sau pe serverele proprii ale dezvoltatorilor.
În acest articol vom discuta despre 5 modificări aduse în ASP.NET 5/MVC 6 care, după părerea autorului, sunt cele mai esențiale. Lista modificărilor este pur subiectivă și în cazul în care aveți ceva de adăugat, rog să lăsați un comentariu.
1. ASP.NET în OSX și Linux
Pentru prima dată în istorie aplicațiile ASP.NET 5 pot lucra în sistemele de operare OSX și Linux. Acest lucru permite ca ASP.NET să fie accesibil pentru mulți dezvoltatori și designeri, care înainte nu aveau posibilitatea să se folosească de acest framework. Auditoriul tradițional al ASP.NET sunt este compus din programatori profesionali, care lucrează în corporații mari. Clienții acestor companii sunt nevoiți să utilizeze computere cu sistemul de operare Windows.
Acum, când ASP.NET 5 va lucra în sistemele de operare Windows, OSX și Linux, aplicațiile create cu ajutorul acestui Framework vor fi disponibile tuturor dezvoltatorilor și designerilor. Ei vor putea crea aplicații în software-ul lor favorit ca Sublime Text, WebStorm sau Brackets (de Visual Studio nu e nevoie).
Faceți cunoștință cu proiectul OmniSharp și cercetați cum, creând aplicații ASP.NET 5, se poate de folosit diferite redactoare text – Sublime Text, Atom, Emacs și Brackets: www.omnisharp.net.
2. Web Forms nu va mai exista
La acest punct, voi spune succint că în ASP.NET 5 formele web nu vor mai fi. Aplicațiile cu forme web se mai pot dezvolta, dar setând prealabil în Visual Studio 2015 ca platformă utilizată .NET Framework 4.6. Însă să nu uitați că aplicațiile cu Web Forms nu vor suporta nici una din noile posibilități ale ASP.NET 5, descrise în acest articol. Dacă nu doriți să ramâneți în urma progresului tehnologic, vă recomand să rescrieți aplicația din Web Forms în ASP.NET MVC.
3. Tag Helpers
Tag Helpers – este anume acea posibilitate, care poate puternic influența la viziunea făcută de dvs. la procesul creării aplicațiilor ASP.NET MVC. Tag Helpers sunt o alternativă mai comodă decât ajutorii (MVC Helpers) tradiționali ale pattern-ului MVC.
În continuare vom analiza următoarea prezentare în care se conține o simplă formă (conține un Label, Input și un Button):
@model MyProject.Models.Product
@using (Html.BeginForm())
{
<div>
@Html.LabelFor(m => p.Name, "Name:")
@Html.TextBoxFor(m => p.Name)
</div>
<input type="submit" value="Create" />
}
În exemplul susmenționat se aplică Helper-ii Html.BeginForm() Html.LabelFor() și Html.TextBoxFor(). Acești ajutori nu prea cred că li s-au întâlnit vreodată unui Front-End Developer. Iar acum vă propun să trageți atenția cum acum se creează forma cu ajutorul Tag Helpers:
@model MyProject.Models.Product
@addtaghelper "Microsoft.AspNet.Mvc.TagHelpers"
<form asp-controller="Products" asp-action="Create" method="post">
<div>
<label asp-for="Name">Name:</label>
<input asp-for="Name" />
</div>
<input type="submit" value="Save" />
</form>
În versiunea nouă a ASP.NET, forma se compune numai din elemente HTML (la prima vedere așa-i). De exemplu, forma conține tag-ul INPUT, nu helper-ul Html.TextBoxFor(). Designerul părții clientale cu ușurință ar putea crea o asemenea pagină, pentru că cunoștințe suplimentare despre acești Tag Helpers nu necesită. Dacă observați, în această prezentare se folosește atributul asp-for. Acest atribut se folosește pentru suplinirea elementelor cu funcționalul din partea serverului ASP.NET MVC.
În următorul articol, Damian Edwards demonstrează un site în care nu se folosește nimic în afară de Tag Helpers: https://github.com/DamianEdwards/TagHelperStarterWeb
4. Componentele prezentării
În versiunea curentă ASP.NET s-a refuzat de subcontroller-e și au implementat componentele prezentării (View Components). În versiunile precedente se folosea Helper-ul Html.Action() pentru apelul subcontroller-ului. De exemplu, doriți să afișați concomitent în mai multe prezentări un spot de publicitate. În acest caz era nevoie de a crea un subcontroller în care era implementată logica pentru returnarea unui spot concret și ar reacționa acest subcontroller în urma apelului Helper-ului Html.Action() din prezentare.
Subcontroller-ele lipsesc în versiunea actuală MVC 6. În locul lor se aplică o tehnologie alternativă care se numește View Components (Componentele Prezentării).
Iată cum se creează componentul prezentărilor, care drept rezultat arată unul din cele 2 spoturi publicitare în dependență de ora zilei:
using Microsoft.AspNet.Mvc;
using System;
namespace Partials.Components
{
public class BannerAd : ViewComponent
{
public IViewComponentResult Invoke()
{
var adText = "Buy more coffee!";
if (DateTime.Now.Hour > 18)
{
adText = "Buy more warm milk!";
}
return View("_Advertisement", adText);
}
}
}
În perioada pe până la orele 18:00 prezentarea returnează o machetă parțială cu denumirea _Advertisement cu textul “Buy more coffee!”. După orele 19:00 textul se modifică în “Buy more warm milk!”.
Iată cum arată macheta parțială _Advertisement:
@model string
<div style="border:2px solid green; padding:15px">
@Model
</div>
În sfârșit, iată cum se folosește componentul prezentării BannerAd în prezentarea MVC:
@Component.Invoke("BannerAd")
5. GruntJS, NPM и Bower Support
Dezvoltatorii părții clientale preferă ASP.NET 5, deoarece anume în această versiune a fost implementat Framework-ul GruntJS (și ca rezultat final, Gulp).
GruntJS reprezintă un Task Manager, care permite de a aduna resursele pentru partea clientală (de exemplu fișierele JS și CSS). De asemenea, GruntJS se folosește pentru concatenația și micșorarea fișierelor JavaScript la fiecare build în Visual Studio. Sunt o mulțime de plugin-uri GruntJS care permit soluționarea multitudinilor de sarcini (accesați http://gruntjs.com/plugins ).
În primul rând, din cauza că plugin-urile GruntJS sunt distribuite ca pachete NPM, Microsoft a adăugat suportul acestor pachete.
În al doilea rând, din cauza că majoritatea resurselor clientale ca Twitter Bootstrap, jQuery, Polymer și AngularJS se distribuie prin intermediul lui Bower, Microsoft a adăugat suportul acestei aplicații.
Comentarii
Trimiteți un comentariu