Как разрабатывать Metro проиложения на Windows 8 Server
Сейчас у всех на слуху Windows 8 и разработка metro приложений. Однако, IIS 8 и серверная Windows 8 тоже очень интересны. И так как совсем не хочется для разработки держать две операционные системы, возникла идея поставить Windows 8 Server и разрабатывать все приложения под этой платформой, благо Metro UI там тоже присутствует. Для начала, я поставил Windows 8 Server на виртуальный диск vhd, с которого можно загружаться. Руководств, как поставить windows на vhd диск очень много, поэтому я не буду описывать эту процедуру. Например, можно прочитать подробное описание установки Windows 8 на vhd в блоге у Scott Hanselman. Комбинация клавиш Shift-F10 отлично работает при установке Windows 8. Правда, чтобы установить Windows 8 на vhd, нужно загрузиться с загрузочного диска. Если просто запустить установку из windows, то инсталлятор ругается на невозможность установить Windows 8 на виртуальный диск. Если же загрузиться, например, с USB-накопителя, то предупреждение о невозможности установки Windows 8 останется, но можно будет продолжить установку, игнорируя его. После завершения процедуры установки и создания профиля пользователя начинается самое интересное. Для начала - несколько полезных нюансов. Во-первых, чтобы запустить установщик программы, скорее всего сначала надо будет его разблокировать, то есть вручную подтвердить что эта программа не зловредная:
Во-вторых, хорошо сразу добавить в консоль поддержку локального языка. Это потребует перезагрузки:
В-третьих, для тестовой машины лучше выключить Internet Explorer Enhanced Security Configuration. Это делается в консоли управления сервером (Server Manager):
После этого я захотел поставить последние обновления. чтобы обновиться, нужен интернет, а чтобы был интернет, в моем случае надо было подключиться к Wi-Fi. Как известно, чтобы в серверных редакциях Windows можно было подключаться к Wi-Fi, нужно сначала установить специальную службу. Для этого снова нужно открыть консоль управления сервером:
После этого в мастере установки выбрать на шаге Installation Type опцию Role-based or Feature-based Installation. Затем на шаге Server Selection выбираем локальный сервер, пропускаем шаг Server Roles и на шаге Features выбираем Wireless LAN Service:
Но после установки, хотя иконка в левом нижнем углу показывала наличие Wi-Fi сетей, подключиться ни к одной из них не получалось - список доступных Wi-Fi сетей был пуст! Потратил довольно много времени пытаясь найти самый свежий драйвер для сетевой карты, в поиске подробной диагностики попал в командную строку. Было очень неожиданно при выполнении команды netsh wlan show all получить список доступных Wi-Fi сетей. Выяснилось, что с драйвером все нормально, а вот GUI для выбора сети просто не работает. Можно было воспользоваться все той же командой netsh чтобы создать профиль сети и подключиться к ней, но для меня было легче сделать все из GUI, благо здесь все было в порядке. Для этого нужно попасть в Network and Sharing Center, щелкнув правой кнопкой мыши на значке беспроводной сети в правом нижнем углу десктопа, и затем выбрать Set up a new connection or network. В открывшемся диалоге нужно выбрать Manually connect to a wireless network:
Затем нажать Next, заполнить сведения о беспроводной сети (их подскажет вывод команды netsh wlan show all) и не забыть поставить галочку Start this connection automatically:
После выполнения этих действий должно произойти успешное подключение к указанной беспроводной сети. Затем нужно установить обновления. Для этого можно воспользоваться быстрым способом - нажать клавиши Window + R, набрать в окне для запуска wuapp и нажать Enter, либо можно открыть на стартовом экране Metro Control Panel, там выбрать More Settings, затем System and Security, и, наконец, Windows Update. Нажимаем слева пункт Check for Updates и выполняем установку обновлений. Затем нужно установить IIS и ASP.NET. Это можно сделать, выбрав роли Web Server и Application Server, но в моем случае инсталляция завершилась неудачей. Поэтому я решил установить минимальный набор для разработки. Чтобы их установить нужно проделать те же шаги, что и в случае с Wireless LAN Service, но не пропускать шаг Server Roles, а поставить в нем следующие галочки:
Затем, в следующем шаге Features нужно выбрать ASP.NET 4.5 и WCF:
После этого нужно завершить мастер установки и подождать, пока закончится установка выбранных компонентов. Затем устанавливаем Visual Studio 2011 Ultimate CTP. Сразу после этого я обычно устанавливаю JetBrains ReSharper, в данном случае версии 6.1. Можно и без решарпера, но я к нему очень привык. Эти шаги я подробно описывать не буду, в данном случае у меня все поставилось без проблем. Затем, попытавшись создать Hello, Metrol World! приложение, при сборке у меня возникла вот такая ошибка:
Порышвись в интернете, нашел способ ее решить. Для этого нужно взять файлы из версии Windows 8 Developer Preview (с предустановленной Visual Studio 2011 Express) из каталога "C:\Program Files (x86)\Windows Kits" и записать их в этот же каталог на Windows 8 Server. Запускаем билд - и все собирается успешно! К сожалению, запустить программу все равно не удается. После попытки запуска я получаю вот такую ошибку:
Её победить мне пока не удалось. На просторах интернета пишут разное, и в основном про разрешение экрана и драйвера видеокарты. Может быть ошибка специфична для моей машины, и у кого-то из читателей все заработает нормально? Был бы рад, если бы кто-то тоже попробовал и поделился со мной информацией. Надеюсь что мой опыт кому-нибудь поможет :)