Здравствуйте, товарищи! Имам няколко незначителни нетаджийски въпроси във връзка с MVC. Предходните 5 години съм правил сървиси, малко съм поизпуснал тренда по сайтовете.
Първо, в ASP.NET MVC5 Темплейта при създаване на View
ползваше ViewBag
по default. Например:
// ....
<title>@ViewBag.Title</title>
// ...
Виждам, че в ASP.NET Core 3.1 вече същото е сменено с ViewData[key]
, например:
// ....
<title>@ViewData["Title"]</title>
// ...
Да, едното е dictionary, а другото е dynamic към едни и същи данни. Но какво наложи промяната в темплейта? Някой има ли си идея? Вие какво предпочитате във вашите фирми? Кое от двете налагате?
Второ, въведоха новите tag helper-и, които съществуват заедно с html helper-ите. Виждам, че в layout-а много се използват първите, например:
<li class="nav-item">
<a class="nav-link text-dark" asp-area="" asp-controller="Customer" asp-action="Index">
Customers
</a>
</li>
Но, при генериране на View през Details темплейта, например, все още използва html helper-ите. Например
<dl class="row">
<dt class="col-sm-2">
@Html.DisplayNameFor(model => model.Id)
</dt>
<dd class="col-sm-10">
@Html.DisplayFor(model => model.Id)
</dd>
<dt class="col-sm-2">
@Html.DisplayNameFor(model => model.Name)
</dt>
<dd class="col-sm-10">
@Html.DisplayFor(model => model.Name)
</dd>
</dl>
Сега, ясно е, че понякога html helper-ите правят тъпотии, като например с checkbox. Това настрана, кое предпочитате да използвате вие? Миксирате ли двете, според нуждата, или ползвате твърдо едно от двете? Може ли някой чикита някой ден скоро да ми каже, защо ползваш @Html.TextBoxFor
, а не <input asp-for="prop" />
Трето, ако не гоните твърдо angular/react/etc фронтенд, а трябва да направите нещо набързо, или трябва да се поберете в по- ограничен бюджет, как ще тръгнете с фронтенд-а? Ще го направите класически MVC, ще ползвате Razor Pages, или ще преминете към Blazor. Наскоро ми писаха по няколко обяви с Blazor. Интересно ми е колко се ползва в момента. Засега виждам само @Stilgar да го споменава.
Още един въпрос, откога се използват description list за детайли? По- SEO ли е?
Аз май ползвам ViewBag.Title обаче никога не съм разсъждавал по темата. Буквално Title е единственото за което е позволено да се ползва ViewBag в моите проекти всичко друго си минава по нормалните канали. Ползвам таг хелпъри винаги, може би има някакво изключение когато няма готов таг хелпър и ме мързи да правя, но таг хелпърите според мен са огромно подобрение на Razor и реално онези методи никога не трябваше да съществуват. Razor Pages много ме дразни, все едно PHP дееба. Единственият случай когато бих го ползвал е ако искам да чопна нещо от темплейта на готово и ме мързи да го преправям на MVC. Не че съм голям фен на MVC-то обаче Razor Pages е дъното.
Добре, ако искам да направя просто SPA, тогава няма да сложа Razor Page, а направо Blazor? Трябва да го видя този блейзър скоро 😒 Вече няколко хурки ми пишат за блейзър.
Аз съм скептичен към публичен сайт с блейзър към момента (примерно фейсбук) и то ще е така още минимум 5 години. Обаче в същото време админ панели, счетоводни програми с по максимум 10 потребителя дето цъкат от офисните компютри и други подобни use cases се покриват доста добре от blazor. Може би на тоя етап ще е добре да се напазарува някой пакет с компоненти, нещо тея опен сос не ме впечатляват, но и така е супер далавера.
Вече видях няколко обяви на продуктови компании да търсят блейзър, като възнамеряват да преминават към блейзър. Може да са ти писали вече в линка.
Продуктова компания не значи задължително, че продуктът е за публичен достъп и свободна регистрация на всеки. Също дори когато продуктът е такъв можеш да си бичиш разни непублични части на Blazor както правя аз така че няма противоречие. Иначе ти можеш да направиш и фейсбук на Blazor просто няма да е оптимално, най-вече като производителност и load time
Да, продуктите им не включват публични сайтове. С едните се заговорих, споменаха, че в момента не са намерили 1 човек с опит с блейзър на нашия пазар и са склонни и към добри нетаджии. След време бих се пуснал на интервю, но в момента си имам моя си работа. Докато си имам моята си работа, гледам да се ъпдейтна, че последно време само SOAP, REST и RabbitMQ правя. А и после, като ми се излюпи работата и реве през 3 часа ще видим как ще съм с времето...