Вчера, 6-го июля, Скотт Гатри написал в своём блоге о выходе продукта WebMatrix.

WebMatrix — это инструмент, объединяющий в себе все средства, необходимые для автономной web-разработки на платформе .NET. «Автономной» значит, что можно создать простой сайт без установки на машину IIS и SQL Server и даже .NET Framework (он скачается вместе с установщиком). Итак, в состав WebMatrix включены:

  1. IIS Developer Express — экспресс-версия IIS, полностью аналогичная 7-ой версии оригинального продукта.
  2. SQL Server Compact Edition — компактная (файловая) версия MS SQL Server.
  3. Razor — движок отображения.
  4. Search Engine Optimization Toolkit — средство для построения СЕО-отчетов.

Хотя инструмент и позиционируется как помощник начинающему разработчику, после изучения набора фич кажется, что есть два основных сценария использования этого инструмента:

  1. Начинающий веб-разработчик с помощью WebMatrix может без лишних хлопот (не заботясь о IIS, и т.п.) создать простое приложение.
  2. Профессиональный разработчик может использовать WebMatrix как средство централизованного управления проектами и решения типовых задач (СЕО-отчеты, deployment).

Основной функционал

WebMatrix позволяет:

1) Централизовано управлять набором сайтов. Почти как в IIS, только с большей ориентацией на разработку. Естественно, встроенна версия IIS может хостить не только ASP.NET, но и, например, PHP сайты.

2) Устанавливать популярные CMS из самого приложения. По умолчанию в списке есть 25 CMS (.NET и PHP):

Site from gallery

Особенно порадовало, что при установке, например Wordpress, было предложено автоматически установить MySql.

3) Редактировать текстовые файлы сайтов. Автодополнение пока не работает (обещают в будущих версиях), зато есть подсветка синтаксиса.

4) Изменять настройки сайта, останавливать, (пере)запускать сайт.

5) Открывать сайт в различных браузерах.

Продвинутый функционал

1) Очень интересный функционал для развёртывания на рабочем сервере. Во-первых, есть диалог выбора провайдера хостинга:

Find Hosting

В моём списке только три хостера, но список динамический, наверняка скоро их будет намного больше.

Во-вторых, если хостинг уже выбран, можно осуществить развёртывание по протоколу FTP или Web Deploy.

2) Те, кто пользовался инструментом Search Engine Optimization Toolkit знают насколько он клёвый. Теперь его можно использовать прямо из Web Matrix. Кто не знает — SEO Toolkit анализирует страницы веб-сайта и формирует отчет о проблемных с точки зрения СЕО моментах.

Функционал для начинающего веб-разработчика

Когда на хабре опубликовали перевод статьи Скотта Гатри о Razor, первый же комментарий был такой:

Только мне одной кажется, или Microsoft опять изобрела телефон, тьфу, PHP?

Все посмеялись, коммент заминусовали, а оказалось, что так оно и есть! В некотором смысле, конечно. Теперь писать веб-приложения под .NET еще проще чем на PHP (не нужно конфигурировать сервак и базу данных)! Итак, Razor, который все восприняли как MVC View Engine оказывается может быть использован не только в MVC, но и в обычном веб-проекте. При этом в пустом проекте просто создаются cshtml-файлы, содержащие разметку вместе с кодом. То есть, всё также как в стандартном WebForms-сайте, только нет code behind и синтаксис скриптлетов несколько изменен. Примеры настараживают, одно только обращение к базе из кода страницы чего стоит:

@{
    LayoutPage = "~/_Layout.cshtml";
    PageData["Title"] = "Product";

    var db = Database.Open("bakery");
}

<h2>Available Products:</h2>
<div class="products group">
    @foreach (var p in db.Query("SELECT * FROM PRODUCTS")) {
    	<div class="product">
    		<h3>@p.Name</h3>
    		<img src="@Href("~/Images/"+ p.ImageName)" alt="@p.Name"/>
    		<p>@p.Description</p>
    		<ul class="group">
    			<li class="price">$@string.Format("{0:f}", p.Price)</li>
    			<li class="order">
    				<form action="Order" method="post">
    					<input type="hidden" name="ProductId" value="@p.Id"/>
    					<input type="submit" value="Order Now"/>
    				</form>
    			</li>
    		<ul>
    	</div>
    }    
</div>

Но Скотт Гатри нас успокаивает:

ASP.NET Web Pages, построенные с помощью Razor обеспечивают простой и незамысловатый способ веб-разработки. Многие будут говорить, что это не так мощно и клёво как ASP.NET Web Forms или ASP.NET MVC. Это правда — такой подход лишен многих фич и противоречит грамотному подходу к программированию. Но ASP.NET Web Pages очень просты для понимания и освоения. И для бОльшей части аудитории обеспечивают самый легкий путь к изучению основ программирования под .NET на C# или VB. Еще они полезны, когда всё, что вам нужно — это простейшие серверные скрипты и логика отображения данных и вам хочется быстро объединить это в одном сайте...

Если Вы — профессиональный программист, годами работающий под .NET, Вы можете посмотреть на это дело и сказать -- это ведь простейший сценарий -- потребуется узнать и сделать намного больше, чтобы построить «настоящее» приложение. Что насчёт инкапсуляции бизнес-логики, слоя доступа к данным, ORM и тд??? Ну, если вы строите серьёзное бизнес-приложение, которое будет развиваться и поддерживаться годами, тогда забудьте эти легковесные ASP.NET Web Pages. Представьте, однако, что вы пытаетесь обучить друга или ребёнка программированию на примере простейшего веб-сайта. Переменные, условия, циклы и старый добрый HTML — вот с чем им придётся столкнуться. Классы и объекты — это концепции, о которых они даже не слышали...

Одна из целей, которой мы пытались достичь с WebMatrix — это привлечь людей, которые впоследствии могут вырасти до профессионалов, но сейчас делают только первые шаги в обучении...

Вот так. Однако, не стоит думать, что MS переключилась на детей и стариков, инструмент WebMatrix, наверняка, будет интересен гораздо более широкой аудитории.

Progg it

Yataya

Здравствуйте! Подскажите, пожалуйста, насколько подходит WebMatrix для создания, например, электронного портфолио, возможно ли освоить этот инструмент людям без элементарных знаний основ программирования и существует ли инструкция пользователя ну совсем для "чайников"? Печалит тот факт, например, что опубликованное на официальном сайте видео с обучающим курсом выполнено только на английском языке...