Pull to refresh
33
0
Андрей Тарицын @Taritsyn

Веб-разработчик

Send message
Проблема в использовании новой беты в том, что в текущей версии Visual Studio 2015 по умолчанию проект на ASP.NET 5 создается с пакетами предыдущей беты.

Можно сгенерировать новый сайт с помощью Yeoman generator for ASP.NET vNext projects, а потом перенести на него свой функционал.
Неужели выпили — и все!? Ну… И да, и нет. Из самого браузера — выпили, из ОС нет — теперь эти параметры настраиваются в All Settings -> Network&Internet -> Proxy, что в принципе верно, просто больше непривычно… Windows 10 — эпоха перемен грядет!

Может «выпилили»?
В преддверии запуска Windows 10, выпуска Visual Studio 2015...

Уже известна дата выхода Visual Studio 2015 RTM?
Похоже, что я ерунду написал. Они есть в промежутке от «Новичок в IT» до «.NET Developer».
Они остались «за бортом», потому что эта карта создавалась на основе списка фирменных учебных курсов и сертификационных статусов Microsoft.
Существует дорожная карта развития .NET-разработчика — edu.cbsystematics.com/ru/education/roadmap.aspx

image
Мне кажется, что эта статья должна быть не на Хабре, а на Geektimes.
Если в выражениях привязки содержаться JavaScript-комментарии, то они тоже удаляются.

Для HTML-кода используется большое количество оптимизаций, и все они описаны в самой первой статье «WebMarkupMin HTML Minifier – современный HTML-минимизатор для платформы .NET».
Насколько я вижу минимизация html чаще всего заключается в удалении пробелов и перносов строки, это же не много. + html шаблоны весят не так много как js и css(по моему личному опыту).

WebMarkupMin не ограничивается только удалением пробельных символов. Используются и другие оптимизации, которые описаны в самой первой статье «WebMarkupMin HTML Minifier – современный HTML-минимизатор для платформы .NET».

Эффективность минимизации HTML-кода не такая высокая, как при минимизации JavaScript и CSS, но, тем не менее, она ощутима. Рекомендую вам прочитать последние статьи Кристенсена «Effect of tabs vs. spaces in HTML files» и «Effects of GZipping vs. minifying HTML files». Чтобы проверить эффективность WebMarkupMin вы можете даже не устанавливать его, а просто протестировать на сайте WebMarkupMin Online.

В bundletransfromer не планируется добавить аналогичную фичу(html bundle, с возможностью сжатия)?

Мне кажется, что реализация HTML-бандлов очень специфична для конкретного проекта и зависит от используемого MV*-фреймворка. Реализация HTML-бандлов в Web Essentials 2013 слишком простая и ей не хватает генерации именованных контейнеров.

По поводу написания модуля для Bundle Transformer пока не могу ничего сказать, потому что не вижу необходимости в использовании инфраструктуры Bundle Transformer для реализации данного функционала. Скорее всего, это будет отдельное расширение под Microsoft ASP.NET Web Optimization Framework, которое будет выпущено как модуль для WebMarkupMin. В качестве основы можно взять код из 5-й главы обучающего курса Трэвиса Госселина «ASP.NET Bundling, Minification & Resource Optimization».
Их можно использовать в SPA-приложениях. Только вам нужно будет самостоятельно обернуть содержимое файлов в именованный контейнер:

<div id="ИМЯ_ФАЙЛА_БЕЗ_РАСШИРЕНИЯ" style="display: none;">…</div>

или

<script type="ТИП_СОДЕРЖИМОГО" id="ИМЯ_ФАЙЛА_БЕЗ_РАСШИРЕНИЯ">…</script>

, где ТИП_СОДЕРЖИМОГО зависит от конкретного фреймворка (например, text/html для KnockoutJS или text/ng-template для AngularJS).
Комментарий был удален, потому что был написан не в ту ветку.
1) Source map мог бы быть доступен через VirtualPath, аналогично тому как вы это сделали

Bundle Transformer производит только трансформации (классы StyleTransformer и ScriptTransformer – это просто реализации интерфейса System.Web.Optimization.IBundleTransform), всю остальную работу, за исключением отладочных HTTP-хэндлеров, делает System.Web.Optimization (он же Microsoft ASP.NET Web Optimization Framework).

2) less/sass возможно, но что такого происходит с typescript, что сломает source map?

В документирующих тегах <reference> также производится преобразование относительных путей в абсолютные:

/// <reference path="jquery.d.ts" />
/// <reference path="TranslatorBadge.ts" />
…


Если бы все было настолько легко и просто, то поддержка генерации .map-файлов уже давно появилась бы в аналогичных продуктах (например, Cassette и SquishIt).

Некорректно сравнивать Microsoft ASP.NET Web Optimization Framework + Bundle Transformer с Grunt/Gulp, т.к. это совершенно разные классы инструментов. Сравнение с Sprockets было бы логичным.

Лучше сравните с ними Web Essentials и Chirpy.
Скорее всего, поддержки .map-файлов не будет. Перечислю основные проблемы:

  1. Bundle Transformer ничего не записывает в файловую систему, потому что является расширением для System.Web.Optimization. Уже были попытки добавить в System.Web.Optimization генерацию встроенных source map`ов (например, проект AspNetBundling), но они оказались неудачными.
  2. Перед трансляцией LESS-, Sass- и TypeScript-файлов Bundle Transformer производит их предварительную обработку (например, преобразует относительные пути в абсолютные), а такая обработка ломает любые source map`ы. Добавьте еще к этому наличие возможности добавлять пользовательские постпроцессоры и трансформации элементов.
Bundling and Minification (он же Microsoft ASP.NET Web Optimization Framework) работает только на уровне ASP.NET. Рекомендую вам посмотреть инструменты, создающие бандлы на этапе сборки проекта (например, Web Essentials или Task Runner Explorer).
По поводу CDN рекомендую вам прочитать следующие материалы: «Bundling and Minification» и «Microsoft ASP.NET Web Optimization 1.1.0 Release Notes».
1. На каждый лэйаут — 1 бандл.
2. Бандлы подключаются только на лэйаутах.
3. Вводим понятие групп, которое будет являться просто массивом строк.

Нужно понимать, что при первоначальной обработке каждого бандла (например, минимизации) расходуются ресурсы процессора и память. Кроме того, код обработанных бандлов кэшируется в памяти веб-сервера. Таким образом, при использовании вашего подхода возникает лишняя нагрузка на сервер.

Классические подходы позволяют более эффективно использовать серверный и браузерный кэш. Если они не подходят вам, то используйте RequireJS.

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Registered
Activity