Microsoft WebMatrix — собой бесплатный инструмент разработки, устраняющий препятствия на пути создания веб-сайтов под управлением тандема из операционной системы Windows и веб-сервера Internet Information Services (IIS) как при нахождении и установке необходимых компонентов, так и при программировании управляемых данными веб-сайтов.

WebMatrix добавляет к сочетанию Windows и IIS такие компоненты, как СУБД SQL Server и среду разработки приложений .Net, однако позволяет легко заменить их на СУБД с открытым исходным кодом MySQL и язык сценариев PHP. В действительности одним из наиболее впечатляющих качеств WebMatrix является поддержка этих и других проектов с открытым исходным кодом. Они указаны в коллекции Web Gallery, которая предоставляет один из самых простых среди известных мне способов создания новых веб-сайтов с помощью популярных проектов с открытым исходным кодом, таких как Wordpress или Drupal.

Однако я столкнулся со множеством трудностей во время тестирования WebMatrix в сочетании с MySQL. Но любую из них удалось преодолеть с помощью пары обходных маневров. Более серьезную проблему представляет объединение продукта с SQL Server Compact Edition (CE). Эта СУБД позволяет плавно перейти к полноценной SQL Server. Но в ней отсутствуют инструменты для миграции на другие приложения Microsoft и интеграции с ними, что не может не удивлять.

Я могу безоговорочно рекомендовать WebMatrix пользователям Windows, заинтересованным в изучении многочисленных проектов создания веб-приложений с открытым исходным кодом и в освоении веб-разработки с помощью инструментов Microsoft. Хотелось бы, чтобы WebMatrix предоставлял более широкий спектр вариантов разработки. Достоинством этого инструмента является сочетаемость с PHP и MySQL. Но он еще больше выиграл бы, если бы поддерживал другие компоненты с открытым исходным кодом, такие как Mono, Linux и Apache.

Просмотр коллекции

Загрузив WebMatrix с соответствующей страницы сайта Microsoft и установив это приложение на тестовой 64-разрядной виртуальной машине под управлением Windows 7, я обратился к библиотеке Web Gallery, где перечисляется 41 веб-приложение с открытым исходным кодом, использующее комбинации из .Net, PHP, MySQL и SQL Server. Я решил установить Wordpress 3.0. Задав имя моего будущего сайта Wordpress, WebMatrix приступил к поиску необходимых компонентов: Wordpress, PHP, MySQL и коннектора .Net MySQL.

Здесь я столкнулся с первой трудностью. Скорость загрузки MySQL оказалась чрезвычайно низкой. Поэтому я ее прервал и запустил процесс заново в надежде, что WebMatrix обратится к более быстрому “зеркалу”. Хотя я несколько раз прерывал процесс, WebMatrix неизменно выбирал все то же медленное “зеркало”.

Хотелось бы, чтобы WebMatrix предоставлял какие-то возможности распределения загрузки между несколькими доступными “зеркалами”. Я загрузил и установил два компонента MySQL вручную и предоставил WebMatrix загрузку остальных.

После этого инсталляция Wordpress протекала без проблем. WebMatrix загрузил несколько устаревшую версию Wordpress 3.0.3 вместо новейшей 3.0.4. Однако я сумел обновить ее через административную консоль Wordpress точно так же, как я сделал бы это с любым другим ПО для блогинга.

WebMatrix имеет простой и удобный интерфейс для редактирования образующих веб-сайт файлов с выделением фрагментов кода цветом. Можно было, например, легко выделить код PHP в элементах HTML моих файлов Wordpress. Я внес изменения в файлы (скажем, удалил название сайта из заголовка используемой по умолчанию темы Wordpress), сохранил правку и увидел изменения в экземпляре IIS, запущенном на моей тестовой машине.

Я установил ряд других указанных в Gallery проектов. Результат был тот же. WebMatrix делает процессы загрузки и конфигурирования очень простыми. А после того как я установил MySQL на своей тестовой машине, мне не пришлось делать это заново.

Сначала мне не удалось установить через Gallery CRM-приложение с открытым исходным кодом SugarCRM из-за неверной подписи файла. Но через несколько дней, когда я предпринял еще одну попытку, проблема была решена.

Сделай сам

WebMatrix предлагает помимо Web Gallery и другие варианты создания сайтов с нуля, используя либо пакеты шаблонов, либо не наполненные содержанием проекты.

Мне было особенно интересно опробовать Razor — синтаксис и методологию для включения кода C# в HTML на обрабатываемых с помощью IIS страницах. Я выбрал довольно простой тест: составить маркированный список публикаций лаборатории eWeek Labs на основе базы данных, которую я веду для учета нашей работы.

Оказалось, что программирование едва ли может быть проще. Я указал выбранную мною базу данных и запрос на странице, которую я составлял, и добавил немного кода на языке C# к маркированному списку в формате HTML, чтобы еще раз пройтись по результатам выполненного запроса и отобразить их.

Гораздо труднее оказалось внести изменения в мой источник данных. Пользовательский интерфейс WebMatrix позволяет очень легко создать новую базу данных SQL Server CE, но не предоставляет никаких инструментов для публикации уже содержащихся в ней данных.

Во включении в WebMatrix варианта, при котором вся информация хранится в одном файле базы данных, есть смысл. Но SQLite (для которой имеется драйвер ODBC) справилась бы с этой ролью лучше, чем SQL Server CE.

Я воспользовался экземпляром MySQL, который уже установил на своей тестовой машине. Его можно было легко подключить к моему сайту WebMatrix, а его данные было легко опубликовать. Я воспользовался разделом Database в интерфейсе WebMatrix, чтобы построить запрос к источнику данных и привести в порядок SQL-выражение.

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

Мне пришлось вручную обновить коннектор MySQL .Net, имевший закрепленный в продукте номер версии 6.2.3, до 6.3.6.

Для проектов обоих типов (“сделай сам” и перечисленные в Web Gallery) WebMatrix предоставляет множество полезных инструментов. Среди них есть средство обнаружения и подсветки кода, который может вызвать проблемы с оптимизацией сайта для поисковых машин. Просматривая такой отчет, я мог с помощью одного щелчка мышкой перейти к соответствующему файлу и внести в него предложенные изменения.