Войти с помощью github
Форум /

Добрый вечер!

Я занимаюсь веб-разработкой на ASP.NET MVC и хотел бы применить методологию БЭМ с этой платформой. Думаю, моих знаний по .NET будет достаточно для написания инструментов, помогающих использовать этот подход, но остались некоторые вопросы, связанные с БЭМ. Буду рад, если кто-то из вас сможет мне помочь.

Итак...

1. Правильно ли я понимаю жизненный цикл запроса к серверу?

- запрос, в зависимости от адреса, приходит в какой-то обработчик;

- выполняется какая-то бизнес-логика (например, достаются данные из БД и как-то обрабатываются);

- строится БЭМ-дерево, содержащее информацию о структуре блоков, из которых состоит страница и данные для блоков;

- по БЭМ-дереву рендерится страница: для нужных блоков подтягиваются соответствующие шаблоны, все js-скрипты  для всех блоков подключаются одним общим файлом, одним общим файлом подключаются все стили и это отправляется на клиент;

2. Правильно ли я понимаю, что блок ничего не знает о вложенных блоках и их состав задается БЭМ-деревом? Т.е. механизм сборки страницы тупо проходит по дереву и подставляет нужные шаблоны.

3. Где хранится информация о том, какие элементы находятся внутри блока? Как код, создающий БЭМ-дерево, узнает что, например, в блок поисковой формы нужно добавить 2 ээлмента дерева: поле ввода и кнопку? Что приозойдет при сборке страницы, если в БЭМ-дереве не окажется какого-то элемента, нужного для блока?

4. Как передаются данные для формирования контента блока? Описана ли где-то ли модель данных? Передаются данные, которые будут непосредственно отображаться, или в блоке может быть логика по их подготовке для отображения?

5. Имеют ли элементы собственные шаблоны, или "элемент" - это только какой-то конкретный тэг конкретного блока?

6. Правильно ли я понимаю, что, если блок содержит таблицу, то каждая ее строка и каждая ячейка - это отдельный элемент, который должен быть помечен отдельным классом (например, "b-block-name__table-cell")?

Буду благодарен, если кто-нибудь ответит хотябы на часть вопросов.